本期靶场:EMPIRE系列

getcap和setcap

内容比较复杂,看这里

大概就是可以了解一些文件的操作权限是什么,比如一个有root读取权限的可执行文件就能利用

netdiscover

一句命令即可查完内网存活主机,比nmap快n倍

dirb

目录扫描,dirsearch可以平替,但两者字典库不一定一样

enum4linux

用来枚举已开启SMB服务的linux主机用户

wfuzz

模糊路径搜索器,和dirsearch最大区别就在于能够指定一些参数和模糊路径,例如枚举/~myfiles这样的东西。具体用法看这里

ffuf

也是一个模糊搜索工具,不一样的地方在于这个工具是可以自己选择后缀名的

什么意思呢,比如用wfuzz扫http://192.168.2.17/~secret/.FUZZ这个链接,结果只能是某个目录,而如果使用ffuf,则可以扫描到名叫FUZZ的某个文件html,txt,php等各种可自定义后缀的文件

Base家族

凡是带有=填充符,base64要是不行就试试58或者其他的

ssh2john

这是一个ssh私钥处理脚本,在使用john进行ssh私钥爆破时需要先用这个脚本处理

sudo

  • -V 显示版本编号

  • -h 会显示版本编号及指令的使用方式说明

  • -l 显示出自己(执行 sudo 的使用者)的权限

  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码

  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

  • -b 将要执行的指令放在背景执行

  • -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)

  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell

  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )

  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

os模块巧用

在一个python模块或代码中带有import os,那么大概率可以利用os.system("/bin/bash")直接获取某用户的shell

例如,用户A拥有让用户B执行某段带有os模块的代码权限(例如用户A能利用sudo -u加用户名的形式让用户B执行东西),那么用户A就能利用os.system("/bin/bash")直接拿到用户B的shell

pip提权

如果某用户有使用root执行pip的权限,不管什么版本的pip都能做到提权

命令如下

TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
pip install $TF

更多功能性漏洞提权可以看这里