前言
在網(wǎng)絡(luò)安全領(lǐng)域,內(nèi)網(wǎng)滲透技術(shù)相較于外網(wǎng)攻擊技術(shù),往往不易掌握,因為內(nèi)網(wǎng)數(shù)據(jù)一般較為敏感,安全從業(yè)者不易取得滲透測試授權(quán),從而難以積累經(jīng)驗,本文將闡述如何使用VMware搭建較一個較復(fù)雜的企業(yè)內(nèi)網(wǎng)環(huán)境,便于安全從業(yè)者練習(xí)內(nèi)網(wǎng)滲透或者ctf組織方搭建內(nèi)網(wǎng)滲透環(huán)境。
0×01 網(wǎng)絡(luò)拓?fù)?/p>
完整的網(wǎng)絡(luò)拓?fù)鋱D如下:
圖中黃色部分的網(wǎng)絡(luò)完全由VMware虛擬機(jī)實現(xiàn),環(huán)境搭建需要一臺最低配置為32G內(nèi)存8核CPU、120G空余磁盤空間的主機(jī),搭建完畢后,滲透練習(xí)者只需按圖左側(cè)部分準(zhǔn)備一臺windows實體機(jī),安裝滲透測試軟件及kali虛擬機(jī),然后與已經(jīng)搭建好滲透測試平臺的主機(jī)進(jìn)行連接,即可進(jìn)行環(huán)境配置及練習(xí)。
架設(shè)過程中用到的系統(tǒng)鏡像下載地址如下:
0×02架設(shè)過程
首先架設(shè)公網(wǎng)部分,即下圖中藍(lán)色部分:
公網(wǎng)部分包含攻擊者的公網(wǎng)出口路由、企業(yè)的公網(wǎng)出口路由、攻擊者使用的公網(wǎng)windows(win7)和linux(kali)。下面為具體架設(shè)過程:
1. 在虛擬機(jī)的虛擬網(wǎng)絡(luò)編輯器中添加4個虛擬網(wǎng)段(VMnet2、VMnet3、VMnet4、VMnet5):
注意將4個網(wǎng)段均設(shè)置為“僅主機(jī)模式”,且都要取消“將主機(jī)虛擬器適配器連接到此網(wǎng)絡(luò)”以及“使用本地DHCP服務(wù)將IP地址分配給虛擬機(jī)”選項,4個網(wǎng)段ip設(shè)置及作用如下:
VMnet2 111.111.0.0 mask 255.255.0.0 作用:模擬公網(wǎng)網(wǎng)段
VMnet3 172.168.2.0 mask 255.255.255.0 作用:模擬第一層內(nèi)網(wǎng)網(wǎng)段
VMnet4 10.10.10.0 mask 255.255.255.0 作用:模擬第二層內(nèi)網(wǎng)網(wǎng)段
VMnet5 192.168.222.0 mask 255.255.255.0 作用:模擬第三層內(nèi)網(wǎng)網(wǎng)段
2.架設(shè)本地出口路由(攻擊者的出口路由)
環(huán)境中的虛擬路由用的都是愛快路的鏡像,安裝完畢后的界面如下(系統(tǒng)版本號可能與下載的不太一樣,我用的是兩年前下載的鏡像,不過操作應(yīng)該是一樣的):
安裝完畢后,將其初始網(wǎng)卡設(shè)為橋接模式,然后再為其添加一張網(wǎng)卡,設(shè)為VMnet2模式,同時將兩張網(wǎng)卡的mac地址記錄下來,因為后面要在虛擬路由設(shè)置界面中設(shè)置哪張網(wǎng)卡是wan,哪張是lan:
然后選擇虛擬路由菜單選項8重啟(如果不重啟可能導(dǎo)致讀取mac地址不正常)。
重啟過后,選擇菜單1設(shè)置網(wǎng)卡綁定,這里需要根據(jù)剛才記錄下來的mac地址來判斷哪張是橋接模式的網(wǎng)卡,哪張是VMnet2的網(wǎng)卡,將那張橋接模式的網(wǎng)卡設(shè)置為lan1,VMnet2那張網(wǎng)卡設(shè)置為wan1,lan1就是與第一層內(nèi)網(wǎng)相連的網(wǎng)卡,wan1就是與公網(wǎng)網(wǎng)段相連的網(wǎng)卡,如判斷eth0為橋接模式的網(wǎng)卡,則用“set lan1 eth0”來將其設(shè)為lan1,然后“set wan1 eth1”將eth1設(shè)為虛擬路由的wan口:
然后選擇軟路由菜單2設(shè)置lan地址,依據(jù)網(wǎng)絡(luò)拓?fù)鋱D,我這里設(shè)置路由器1的出口地址為192.168.1.120:
然后選擇虛擬路由菜單3設(shè)置web端口,我這里設(shè)置為8080,隨后就可以通過本地實體機(jī)訪問http://192.168.1.120:8080來繼續(xù)配置路由器(注意本地實體機(jī)要訪問虛擬公網(wǎng),有兩種方法:1是設(shè)置默認(rèn)網(wǎng)關(guān)為192.168.1.120;2是執(zhí)行route add 111.111.0.0 mask 255.255.0.0 192.168.1.120添加一條路由):
默認(rèn)用戶名、密碼均為admin,登錄后,進(jìn)入外網(wǎng)設(shè)置菜單,
設(shè)置參數(shù)如下圖,將router1的wan口地址設(shè)置為111.111.111.1:
這樣,本地出口路由就設(shè)置完畢!
3.架設(shè)攻擊者的公網(wǎng)vps
安裝公網(wǎng)win7及kali都很簡單,安裝完win7后,設(shè)置其網(wǎng)卡模式為VMnet2,進(jìn)入系統(tǒng)后,設(shè)置其ip地址為111.111.111.2,設(shè)置密碼,并為其開啟遠(yuǎn)程桌面;安裝完kali后,設(shè)置其網(wǎng)卡模式為VMnet2,進(jìn)入系統(tǒng),設(shè)置其ip地址為111.111.111.4,然后/etc/init.d/networking restart重啟網(wǎng)絡(luò)服務(wù),但由于kali默認(rèn)沒有開啟ssh遠(yuǎn)程登錄,需要按下列步驟為其配置ssh遠(yuǎn)程連接:
(1)修改/etc/ssh/sshd_config文件,將#PasswordAuthentication no的注釋去掉,并將NO修改為YES,將PermitRootLogin without-password修改為PermitRootLogin yes
(2)重啟ssh服務(wù):/etc/init.d/ssh restart
(3)設(shè)置系統(tǒng)自啟動ssh服務(wù):update-rc.d ssh enable
配置完畢后,在本地攻擊機(jī)遠(yuǎn)程桌面公網(wǎng)win7,成功則配置正常,在本地用ssh軟件(推薦xshell)遠(yuǎn)程連接公網(wǎng)kali,成功則配置正常。
4.架設(shè)軟路由router2(企業(yè)的出口路由)
配置router2的過程大致與router1相同,注意將其初始的網(wǎng)卡模式設(shè)為VMnet2,然后為其添加一塊網(wǎng)卡模式為VMnet3,同樣記下兩張網(wǎng)卡的mac地址,用于稍后的網(wǎng)卡綁定,在網(wǎng)卡綁定中,設(shè)置VMnet3模式的網(wǎng)卡為LAN1,設(shè)置VMnet2模式的網(wǎng)卡為WAN1,然后配置LAN1的地址為172.168.2.3,web管理端口為8080:
隨后進(jìn)一步的配置需要同樣處于VMnet3模式的一臺主機(jī)訪問才能進(jìn)行,所以我們先安裝第一層內(nèi)網(wǎng)中的一臺win7(也就是IP地址為172.168.2.200的那臺win7),安裝完畢后,將在虛擬機(jī)設(shè)置中將這臺win7其網(wǎng)卡模式配置為VMnet3,進(jìn)入系統(tǒng),設(shè)置ip為172.168.2.200,掩碼255.255.255.0,默認(rèn)網(wǎng)關(guān)172.168.2.3(router2的lan1的地址),設(shè)置完成后,通過瀏覽器訪問,默認(rèn)用戶名admin密碼admin登錄路由web界面,配置router2的外網(wǎng)地址如下圖:
配置完畢后,從本地攻擊主機(jī)ping 111.111.111.3這個地址(即router2的wan1地址),如果正常,則說明配置成功。
至此,模擬環(huán)境的公網(wǎng)部分配置完畢了,接下來配置第一層內(nèi)網(wǎng),也就是下圖中黃色部分:
該層內(nèi)網(wǎng)中有1臺server2008(172.168.2.2)服務(wù)器,充當(dāng)企業(yè)對外的門戶網(wǎng)站,一臺win7作為管理員主機(jī),1臺雙網(wǎng)卡的centos7(172.168.2.120&&10.10.10.110),代替路由作為第一層與第二層的橋梁。Win7剛剛已經(jīng)配置過,下面配置server2008與centos7,
安裝完畢server2008后設(shè)置其網(wǎng)卡模式為VMnet3,ip地址設(shè)為172.168.2.2,掩碼255.255.255.0,默認(rèn)網(wǎng)關(guān)172.168.2.3(即router2的lan1地址),然后在其上安裝phpstudy,并架設(shè)一個存在漏洞的cms,作為外網(wǎng)突破點(diǎn),為了讓外網(wǎng)能夠訪問這臺server2008上的web服務(wù),必須在router2上做一端口映射,具體操作如下,利用ip地址為172.168.2.200的win7登錄router2的web管理界面http://172.168.2.3:8080,做一個端口映射:
讓server2008的網(wǎng)站能夠暴露在公網(wǎng)上,端口映射配置參數(shù)如下:
配置完成后,從本地攻擊機(jī)訪問http://111.111.111.3,可以看到,我們已經(jīng)可以訪問到內(nèi)網(wǎng)中server2008上的網(wǎng)站了。
然后在172.168.2.200這臺win7上啟動一個機(jī)器人腳本,其內(nèi)容如下:
While True
set obj = createobject("w.shell")
obj.run "cmd /c iexplore http://172.168.2.2/pdf1.html"
W.Sleep(1000*30)
obj.run "taskkill /IM iexplore.exe"
W.Sleep(1000*30)
Wend
這個腳本的作用是每隔一段時間訪問server2008網(wǎng)站上的指定頁面,因為等我們拿下server2008后需要對win7做釣魚,所以做個機(jī)器人比較方便。
然后安裝centos7,為了減小系統(tǒng)開銷,我用的是最小化安裝,安裝完畢后將其初始網(wǎng)卡模式配置為VMnet3,其為再添加一塊網(wǎng)卡,模式配置為VMnet4,centos7配置雙網(wǎng)卡工作的坑稍多,說一下步驟:
進(jìn)入系統(tǒng),首先輸入命令“ip addr”,查看兩張網(wǎng)卡名稱,這里分別為ens33與ens37:
根據(jù)MAC地址,判斷哪張網(wǎng)卡需要連接第一層內(nèi)網(wǎng),另一張則連接第二層內(nèi)網(wǎng),例如確定ens33這張網(wǎng)卡連接第一層內(nèi)網(wǎng),則
“cd /etc/sysconfig/network-s/”進(jìn)入網(wǎng)絡(luò)配置文件目錄,ls查看,
這里的ifcfg-ens33這個配置文件對應(yīng)ens33這張網(wǎng)卡的配置,我們要配置ens33的網(wǎng)絡(luò)參數(shù),就要編輯這個文件,vi ifcfg-ens33,編輯文件內(nèi)容如下:
然后退出vi,下面要編輯ens37這張網(wǎng)卡,先cp ifcfg-ens33 ifcfg-ens37,復(fù)制一份配置文件,然后vi ifcfg-ens37,編輯文件內(nèi)容如下圖:
注意:里面的UUID可能需要用uuidgen命令生成。
配置好ens37,使用命令“nmcli con up ens37”,啟動ens37,如果沒有報錯,則“service network restart”重啟網(wǎng)絡(luò)服務(wù),然后用該層內(nèi)網(wǎng)中win7 ping 172.168.2.120,如果回顯正常則說明配置成功。
然后為win7安裝ssh軟件,登錄centos7,將其密碼改為win7相同的密碼(因為我們要實現(xiàn)一個同密碼攻擊).
至此,第一層內(nèi)網(wǎng)配置完畢。
下面配置第二層內(nèi)網(wǎng),即下圖中黃色部分:
這一層內(nèi)網(wǎng)模擬企業(yè)辦公網(wǎng),所有主機(jī)均在域中,首先安裝域控主機(jī),即ip為10.10.10.56的server2008主機(jī)。
安裝完畢server2008系統(tǒng)后,將其網(wǎng)卡模式配置為VMnet4,ip地址設(shè)為10.10.10.56,掩碼設(shè)置為255.255.255.0,默認(rèn)網(wǎng)關(guān)設(shè)為10.10.10.254,DNS設(shè)為127.0.0.1(因為域中一定需要一臺DNS服務(wù)器,我們稍后會將DNS服務(wù)也安裝到這臺域控上,所以這里可以設(shè)置為127.0.0.1),然后用服務(wù)器管理器“添加角色”,添加Active Directory域服務(wù)(域名稱為domainTest1.com)以及DNS服務(wù)器(DNS服務(wù)器也可以安裝在其他server級別的主機(jī)上,不過如果將兩者分開安裝,需要先安裝DNS服務(wù),并在DNS服務(wù)的正向查找區(qū)域中添加要安裝Active Directory域服務(wù)的域解析記錄,并在安裝Active Directory域服務(wù)之前正確設(shè)置域控主機(jī)的dns服務(wù)器地址,比較麻煩,所以這里采用域控與DNS服務(wù)合并的辦法),安裝完畢后,需要在DNS的正向查找區(qū)域中添加一條主要區(qū)域(即域的解析記錄):
區(qū)域名稱填:
添加完成后,域就可以正常工作。如果對這一部分不太清楚,可以讀一讀《windows server2008R2 Active Directory配置指南》的1-3章相關(guān)內(nèi)容。
域控安裝完畢后,我們繼續(xù)安裝該層內(nèi)網(wǎng)中的其他主機(jī):ip地址為10.10.10.3的win7與10.10.10.88的server2008,安裝完畢后將它們的網(wǎng)卡模式均配置為VMnet4,ip地址依照拓?fù)鋱D上設(shè)置,掩碼255.255.255.0,網(wǎng)關(guān)10.10.10.254,注意DNS都要設(shè)置為域控的ip地址即10.10.10.56,設(shè)置完畢后,登錄兩臺主機(jī)將它們加入域,以win7為例,加入域的方法為:
右擊計算機(jī)–>計算機(jī)名稱、域與工作組設(shè)置–>更改設(shè)置–>計算機(jī)名選項頁–>更改,將“隸屬于”單選框切換到“域”選項:
輸入域的名稱domainTest1.com,點(diǎn)確定,彈出對話框:
這里輸入域管理員的賬戶及密碼,確定后,彈出如下對話框:
表明這臺win7成功加入了域domainTest1.com域,重啟win7,以域內(nèi)賬號登陸即可。
Server2008加入域的步驟與win7類似,不再贅述,待server2008加入域后,以域管理員賬戶登陸,安裝phpstudy,在8080端口上架設(shè)一個企業(yè)內(nèi)部的OA系統(tǒng):
然后在這臺server2008上利用服務(wù)器管理器添加角色,安裝iis,使其在80端口上能夠被第二層內(nèi)網(wǎng)正常訪問,為其添加一個asp頁面。該頁面通過第三個虛擬路由router3連接到第三層內(nèi)網(wǎng)的sqlserver2008。至此,第二層內(nèi)網(wǎng)環(huán)境架設(shè)完畢。
接下來架設(shè)第三層內(nèi)網(wǎng),第三層內(nèi)網(wǎng)模擬企業(yè)的核心數(shù)據(jù)網(wǎng),與第二層之間使用路由器進(jìn)行隔離,下圖中黃色部分為第三層內(nèi)網(wǎng)部分:
首先架設(shè)虛擬路由,依然先安裝愛快路虛擬路由,安裝完畢后,虛擬機(jī)設(shè)置中將其初始網(wǎng)卡模式設(shè)為VMnet4(與LAN2相連),然后再為其添加一張網(wǎng)卡,模式設(shè)為VMnet5(與LAN3相連),記錄下兩張網(wǎng)卡的MAC地址,然后進(jìn)入虛擬路由設(shè)置界面,設(shè)置網(wǎng)卡綁定為:VMnet4模式的網(wǎng)卡為lan1,VMnet5模式的網(wǎng)卡為lan2:
在設(shè)置lan地址中設(shè)置lan1地址為10.10.10.200,設(shè)置web端口為8080,然后用第二層內(nèi)網(wǎng)中的win7訪問http://10.10.10.200:8080,設(shè)置lan2的地址為192.168.222.22
第二層內(nèi)網(wǎng)的server2008(10.10.10.88)需要訪問第三層sqlserver2008數(shù)據(jù)庫(192.168.222.200:1433),而第三層的win10(192.168.222.77)需要訪問第二層的server2008上的web服務(wù)(10.10.10.88:80),所以需要分別在虛擬路由的lan1與lan2的高級設(shè)置中設(shè)置“允許其他LAN訪問此LAN”:
但如果只是打開LAN互訪控制,則第二層內(nèi)網(wǎng)與第三層內(nèi)網(wǎng)就會無限制相互訪問,降低了安全性,所以添加6條ACL規(guī)則:
添加并啟用后,可以保證第二層內(nèi)網(wǎng)內(nèi)只有ip為10.10.10.88的主機(jī)能夠訪問第三層內(nèi)網(wǎng)的192.168.222.200的1433端口,在第三層內(nèi)網(wǎng)中只有192.168.222.77的主機(jī)能夠訪問第二層內(nèi)網(wǎng)的10.10.10.88的80端口。
第三個虛擬路由安裝完畢后,接下來安裝第三層內(nèi)網(wǎng)中的server2008與win10,安裝完系統(tǒng)后,分別依照拓?fù)鋱D設(shè)置ip,掩碼255.255.255.0,默認(rèn)網(wǎng)關(guān)192.168.222.22。然后在server2008上安裝sqlserver2008,并創(chuàng)建名為“test”數(shù)據(jù)庫,執(zhí)行test.sql數(shù)據(jù)庫腳本,導(dǎo)入test.data的數(shù)據(jù),并配置sqlserver2008可以為外網(wǎng)訪問,這里配置稍微繁瑣,簡答介紹一下:
打開SQLserver配置管理器,如下圖設(shè)置SQLServer網(wǎng)絡(luò)配置:
然后雙擊TCP/IP協(xié)議,切換到IP地址選項卡,將所有的IP地址下的“活動”、“已啟用”均切換為是,也就是讓SQLserver在所有IP地址上監(jiān)聽:
最后,在這臺主機(jī)的“高級安全windows防火墻”配置中添加一條規(guī)則,設(shè)置通過1433端口:
最后安裝ip地址為192.168.222.77的win10,安裝完畢后,配置網(wǎng)卡模式為VMnet5,ip地址為192.168.222.77,掩碼255.255.255.0,網(wǎng)關(guān)192.168.222.22,然后用瀏覽器訪問http://10.10.10.88/index.asp?id=1,出現(xiàn)如下界面,說明第三層內(nèi)網(wǎng)配置成功。
最后在win10上啟動一個vbs腳本機(jī)器人,讓其自動訪問http://10.10.10.88上的頁面,因為我們那些第二層內(nèi)網(wǎng)后要對第三層內(nèi)的win10做釣魚攻擊。
至此這個三層內(nèi)網(wǎng)的滲透靶場架設(shè)完畢,至此本文的篇幅已經(jīng)夠長了,所以這個靶場的writeup就不仔細(xì)寫了,下面簡單介紹一下攻擊思路。
0×03 攻擊思路 1. 外網(wǎng)突破
掃描111.111.111.0/24段,發(fā)現(xiàn)111.111.111.3:80開放,登錄發(fā)現(xiàn)網(wǎng)站,awvs掃描發(fā)現(xiàn)網(wǎng)站存在SQL注入漏洞,于是注入獲取用戶名及密碼,登錄成功后獲取網(wǎng)站物理路徑,在網(wǎng)站后臺中試圖上傳webshell不成功,通過御劍掃描網(wǎng)站,發(fā)現(xiàn)phpmyadmin,用弱口令登錄phpmyadmin,試圖用MySQL寫webshell,發(fā)現(xiàn)mysql開啟了secure-file-priv開關(guān)限制了寫文件目錄,使用mysql開啟日志文件,將日志文件的位置設(shè)置為剛才在后臺中發(fā)現(xiàn)的網(wǎng)站物理路徑位置,在sql查詢語句中寫webshell,成功拿到webshell。
2. 第一層內(nèi)網(wǎng)滲透
利用webshell上傳反向socks5代理軟件frpc等,在公網(wǎng)windows上運(yùn)行frps,使得這臺webshell主機(jī)的代理客戶端與公網(wǎng)windows主機(jī)上的代理服務(wù)端相連接,這樣在本地windows攻擊機(jī)上安裝Proxifier、SocksCap64等軟件(kali用proxychains),就可以將攻擊流量發(fā)送至第一層內(nèi)網(wǎng)。
通過在本地掃描webshell網(wǎng)段,可以發(fā)現(xiàn)172.168.2.200(linux)、172.168.2.120(windows)兩臺主機(jī),在webshell主機(jī)的Apache日志中可以發(fā)現(xiàn)172.168.2.120這臺主機(jī)在不斷訪問這個頁面(robot.vbs的作用),于是用CVE-2018-8174對172.168.2.120進(jìn)行釣魚(用法詳見壓縮包),釣魚成功后,獲取172.168.2.120的msf反彈回話,上傳getpass進(jìn)行密碼抓取,然后利用msf的遠(yuǎn)程桌面開啟腳本轉(zhuǎn)出3389到公網(wǎng)kali,遠(yuǎn)程桌面登錄后發(fā)現(xiàn)管理員桌面上有ssh軟件,聯(lián)想到該層內(nèi)網(wǎng)還有一臺linux主機(jī),所以猜測這臺主機(jī)的密碼與linux相同,于是嘗試用相同密碼登錄,登錄成功,于是拿下linux,第一層內(nèi)網(wǎng)滲透完畢!
3. 第二層內(nèi)網(wǎng)滲透
在linux上搜集信息發(fā)現(xiàn)雙網(wǎng)卡,在10.10.10.0/24網(wǎng)段上進(jìn)行掃描發(fā)現(xiàn)3臺主機(jī)存活,并且10.10.10.88這臺主機(jī)上開放了80、8080端口,訪問發(fā)現(xiàn)phpoa系統(tǒng),利用任意文件上傳POC拿到webshell,然后判斷環(huán)境為域環(huán)境,并且當(dāng)前登錄賬戶為域管理員賬戶,于是上傳getpass拿到域控密碼,利用ipc入侵,拿下域內(nèi)其他兩臺主機(jī),第二層內(nèi)網(wǎng)滲透完畢!
4. 第三層內(nèi)網(wǎng)滲透
在10.10.10.88上發(fā)現(xiàn)還打開了80端口,上面運(yùn)行著iis服務(wù),并且連接著192.168.222.200上的sqlserver數(shù)據(jù)庫,于是利用sqlserver存儲過程執(zhí)行命令,不過由于router3的acl規(guī)則很嚴(yán)格,所以無法進(jìn)行回話反彈。另外審查10.10.10.88的iis日志,發(fā)現(xiàn)192.168.222.77的ie瀏覽器對其有規(guī)律性的訪問記錄,所以可以利用CVE-2018-15982對其進(jìn)行釣魚,不過需要注意的一點(diǎn)是192.168.222.77是一臺win10,自帶殺毒軟件,所以需要對可執(zhí)行payload進(jìn)行免殺處理。
架設(shè)過程中用到的素材我已上傳到網(wǎng)盤:鏈接:https://pan.baidu.com/s/1NIOIZgVDLgkg7j6Ch5pjwA 提取碼:kws9 ,如果在架設(shè)過程中遇到問題,歡迎私信聯(lián)系我。
*本文原創(chuàng)作者:Zzzxbug,本文屬于FreeBuf原創(chuàng)獎勵計劃,未經(jīng)許可禁止轉(zhuǎn)載