本期靶场: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
更多功能性漏洞提权可以看这里