寫在前面
跟web滲透(上一篇)不同,內網滲透需要更多的隨機性和突破口,情況較為復雜,遇到障礙,有時可以換種思路突破,很多時候則無奈的只能止步于此。下面分享一些自己總結的內網滲透經驗。主要是以windows下的操作為主。
0×01 斗轉星移
(在拿到webshell的時候,想辦法獲取系統信息拿到系統權限)
一、通過常規web滲透,已經拿到webshell。那么接下來作重要的就是探測系統信息,提權,針對windows想辦法開啟遠程桌面連接,針對linux想辦法使用反彈shell來本地連接。
① Webshell應該都可以調用系統cmd執行一些簡單的命令,那么whoami(查看當前權限),netuser(查看用戶/組),systeminfo(查看系統補丁修復情況)等常見命令應該是首先被執行
探測的。
I: 不具備系統權限:
① Serv-U提權,現在很多的webshell都集成了Serv-U一鍵提權功能,只需要點擊一下就擁有了系統權限,簡單快速。
② SQL Server提權,利用webshell的目錄翻閱功能,查找網站根目錄下的數據庫配置文件,以php為例則為config.php;查看文件內容一般都會發現數據庫的登陸信息用戶名/密碼,(密碼md5或者其他的加密方式解密一下即可),通過webshell或者數據庫端口開放的話利用數據庫連接工具Navicat等工具來連接數據庫。
連接數據庫檢查xp_cmdshell是否存在,擴展存儲過程是否打開,再利用xp_cmdshell來執行系統命令,添加用戶、開啟遠程桌面等。
常用命令:
select count(*) from master.dbo.sysobjectswhere xtype = ‘x’ and name=’xp_cmdshell’ 返回值是1就是有xp_cmdshell存儲過程
exec master.dbo.sp_addextendedproc ‘xp_cmdshell’,’xplog70.dll’添加cmdshell(Sqlserver 2000)
exec sp_configure ‘show advanced options’,1;當設置advanced options參數為1時,系統才允許修改高級選項;
reconfigure;
exec sp_configure ‘xp_cmdshell’,1; 開啟擴展存儲過程;
reconfigure; (Sqlserver 2005)
通過xp_cmdshell來執行命令:
exec master.dbo.xp_cmdshell ‘命令’
③ MYSQL提權,如SQL Server一樣,首先找到數據庫連接文件來找到數據庫的登陸信息,登陸MYSQL數據庫,利用MYSQL的Create Function來添加自定義函數,向mysql添加命令執行函數來執行系統命令。需要使用的文件為udf.dll。
也有一些自動化工具可以完成以上操作。
II:具備系統權限:
直接通過wehshell來執行相關命令,添加用戶等操作。
② 可能遇到的障礙:
1. 無法執行cmd命令:
有可能執行的命令不具備執行權限或者system32/cmd文件自身拒絕被調用;一般可以通過自己上傳cmd命令程序來解決,為當前用戶權限。
2. 添加用戶的命令net user /add不能被執行:
一般是由于net.exe文件不存在或者拒絕被調用導致,可通過上傳net.exe文件來解決,包括tasklist等命令無法被執行時,都可以通過上傳相應可執行文件來解決。
3. SQL Server擴展存儲過程無法開啟:
在管理員做過數據庫加固的情況下,xplog70.dll文件會被管理員刪除,從而不能夠成功開啟數據庫擴展存儲過程,解決方案為上傳xplog70.dll文件。
4. 不能在目錄下上傳文件,或者上傳的文件執行權限不夠:
根據文件目錄的執行權限,首先查找可讀、可寫目錄,假如不好找的話,一般建議將文件上傳到相應盤符的recycler文件夾內,這個文件夾在每個盤下面默認都會存在,并且具有可讀、寫、執行權限。
5. 新建用戶成功,但是無法確定管理員組:
沒有明確標識的administrator組,在新建用戶加入管理員組的過成中,系統管理員已經將管理員組更名,此時需要查詢管理員組名稱,再在相應的組中加入。
6. 3389端口雖然打開,但是遠程桌面無法連接:
一般這種情況是由于windows的防火墻進行的端口限制或者在遠端服務器網絡出口有安全設備如防火墻進行了外聯端口限制,這個時候就要祭出前輩大神的LCX端口轉發工具,對相應端口進行轉發到常規使用的端口上,再從外部連接轉發后的端口。
二、 沒有通過常規滲透拿到webshell,但是由于中間件的配置失誤,可以上傳shell。
Apache,Tomcat等中間件以system權限運行,存在管理控制臺manager,嘗試弱口令或者暴力破解登入,可以通過控制臺上傳jsp、war等格式的webshell,從而進一步執行系統命令。
三、Web存在sql注入,數據庫為SQLServer,通過SQL Server的特性,開啟擴展存儲過程XP_cmdshell,從而添加管理員用戶/組,開啟遠程桌面。或者MYSQL存在web sql中注入,則不通過webshell翻閱文件來獲取數據庫連接密碼,直接從外部利用數據庫連接工具來進行提權。
四、利用系統已知漏洞來提權,通過wehsell執行systeminfo來確定系統打補丁的情況,從而使用metasploit來溢出提權,選擇payloads來開啟遠程桌面。在windows下比較出名的漏洞如MS-08067,MS11-080,MS11-046等。
五、對于Linux系統:
① 在拿到webshell的前提下,一般的流程為使用相應exp或者執行上傳的腳本,反彈shell出來在本地進行連接,運行提權程序獲得root權限。
如windows下一樣,在Linux下首先通過webshell執行whoami來確定當前用戶是什么用戶,執行uname–r來確定Linux的內核版本,依照此版本來找對應的exp;當然對應很多版本的Linux內核,都是沒有exp來對用執行的,很多情況下只能無奈止步或者另辟蹊徑。常用工具nc。
② 可能遇到的障礙:
1.反彈shell的時候在本地無法正常連接:
一般這種情況是由于Linux的iptables防火墻進行的端口限制或者在遠端服務器網絡出口有安全設備如防火墻進行了外聯端口限制,這個時候就要祭出前輩大神的LCX端口轉發工具,對相應端口進行轉發到常規使用的端口上。
2.提權exp或者自己遠程編譯的腳本無法執行:
檢查是否當前文件具有可讀、寫、執行權限,嘗試修改目錄、文件的權限,使用chmod u+x,假如無法修改權限的話就尋找具有相應權限的目錄重新上傳執行。
六、關于一句話木馬:
使用webshell方式固然好處是強大的各種功能,但是webshell的缺點體現在:
1.很容易被管理員發現清除,
2.復雜冗余的功能根據不同的情況可能無法使用,
3.在web應用中上傳webshell的時候困難重重。
對于一句話木馬,在web應用中可以根據情況直接插入,對應的菜刀chopper可以輕松連接一句話翻閱目錄,并且可以進行數據庫管理和自定義cmd路徑執行。好處主要在于不容易被查殺,并且不容易被管理員發現。在上傳了webshell后,在可讀可寫的目錄下新建一句話木馬連接文件也不失為一種保存后門的方式。同時注意隱藏,將一句話木馬的文件名改名為config.php , run.php等系統文件名更具有迷惑性。
0×02 隔山打牛
(在拿到一臺服務器的時候,拿下內網更多的服務器,更有用的信息)
1. 信息獲取
信息獲取總是第一步執行的操作,利用管理員的疏忽或者內網機器的弱口令來發現更多的信息。
① 可以使用工具pwdump來抓取管理員hash,配合彩虹表或者在線hash破解,獲得管理員的明文密碼,這個可以作為自己的密碼表,在進行內網其他機器的登陸時嘗試。
② 查看遠程桌面的連接信息,一般通過遠程桌面經常連接的機器會在該程序打開時候的下拉菜單中保存,如果管理員選擇的是記住密碼的話,那么就輕松跳轉其他機器。
③ 假如存在數據庫管理工具,ftp管理工具等,如Navicat,SecureCRT,flashfxp等,查看是否是保存的密碼,嘗試登陸。
④ 各款瀏覽器的保存登陸密碼,作為自己的密碼表,在進行內網其他機器的登陸時嘗試。
⑤ 有無VPN連接信息。
2. 內網探測
① 通過cmd下執行命令arp –a,查看相鄰主機IP。
② 通過上傳一些工具,如Cain,可以探測本地程序緩存的密碼,通過嗅探器可以嗅探到相鄰機器的username和password。
③ 通過上傳一些工具,如HScan,可以探測同一個段內存活機器的IP,端口,開啟的服務等信息,包括存活機器的弱口令。
④ 通過本地遠程桌面跳轉到相應的服務器上。
⑤ 如web滲透一樣,在進行端口/服務探測時,可以根據探測到的服務版本信息,根據已知的漏洞來使用matesploit進行溢出攻擊,從而獲得對應服務器權限。
3. 找到交換機/路由器
通過內網端口/IP掃描找到類似交換機/F5的設備,網絡設備沒有特殊安全加固的話一般沒有設置權限密碼或者使用默認密碼/弱口令,比較好突破。也可以下載路由器/交換機的配置文件,從而讀取到登陸密碼。拿到網絡設備以后該網段的拓撲結構基本上能做到心中有數。
對內網滲透而言,更多的是利用管理員或者用戶組的疏漏而進行的深入,具有較大的隨機性,很多情況下也是無疾而終,無奈的終結于此。不過思路和方法是多變的,正所謂沒有繞不過的防火墻,終歸會有更好的方法出現來解決更多的問題。
對于外網——內網滲透思路系列,并不是倡導一個如何有效入侵的方案,而是通過種種思路的總結來幫助我們的管理員同志更好地抵御外界的威脅,同時我們也倡導大家做有社會使命感的白帽子。在技術方面共同進步,不浮于表面,更多的去進行學習漏洞挖掘分析等更深層次的技術細節,了解漏洞的原理,為提高我們的技術水平而不懈努力。