有人說域是一種組織結構,是個安全邊界。域也有另為一個名字,“活動目錄”。不管域是什么,它總有一些特點,有了它,對管理一個機構的組織單元,人員,特別是計算機就方便了許多,特別是計算機,因為域就是建立在計算機上的。加入域里的計算機,共享文件,共享上網就會很方便。
域里有個比較重要的角色,域控制器(DC)。它有至高無上的權限,它可以在域里對其他計算機(DA)胡作非為。域控制器里還有域內所有用戶的帳號密碼(曾在一個機房的機架上看到一張字條,上面寫著"帳號密碼是黑客攻擊的首要目標",當時偶就笑抽了,機架的鎖上還寫著"這里鎖住的是企業的秘密")。
綜上所訴,域就是我們在進行滲透測試時,會碰到的一種網絡環境。對域比較直觀的展示時,在登錄3389時,在域里的機器會多一個下拉框,見圖。
如果“登錄到”這個下拉框沒有顯示,請點擊“選項(0)”按鈕顯示。仔細看,這個下拉框有兩個選項,一個是此計算機,本地登錄。一個是TESTONE域。再看下圖
這個3389登錄界面里的“登錄到”下拉框只有一個選項TESTONE。沒有此計算機的選項。沒錯,這臺機器就是DC,變身成DC的機器本地帳戶會被禁用,所以不能登錄本機,只能登錄到域中(一些書上是這樣說的,偶學藝不精,沒有準確驗證過)。所以DC是偉大的。
假設我們現在已經在一個域里,當然不是正常的存在。因為我們正在做滲透測試呢,而不是坐在公司里上班打dota。
一般情況下會有兩種情況,第一:我們能登錄一臺域里服務器的3389。第二:我們用遠程控制軟件控制了一臺域里的個人機器。只要有其中一種,你一定想,并很快擁有另一種。
好,情況已經這樣美好了,我們下一步該做點什么了,有人說趕緊把毛片和種子下回來,作為一個脫離低級趣味的人來說,我絕對我大聲的對他說,俺硬盤里還有云存儲里的資源比他多的多,極品的多,還費的著下他的,切!
第一步我覺得不是導hash,而是再給對方種一個或者兩個不同的遠控,留條后路,然后導hash,查看各種信息。導hash的工具gsecdump,wce等,網上都可以下到。
關于導hash,分為導處本地存儲的hash和正在登錄狀態用戶的hash,正在登錄用戶的hash就有可能導到域管理員的,假設你在一臺域里的服務器上轉悠,這時,剛好管理員用域控管理帳戶來視察這臺服務器,那么內存里就有了他的hash,這時里運行一下工具,hash到手,不要說你破解不出來,沒關系,還有那個法國神器,直接給它顯示明文吧,沒有明文也沒關系,還可以hash注入!
關于查看些有用的信息,下面引用網上廣為流傳的命令。
net view? 查看同一域/工作組的計算機列表
net view /domain? 查看域/工作組列表
net view /domain:Secwing? 查看Secwing域中 計算機列表
net group /domain? 查看所在域的組
net user /domain? 查看所在域用戶
net user /domain zerosoul 12345678? 修改域用戶密碼,需要域管理員權限,或者Ctrl+Alt+Del點擊修改則不需要域管理員權限
net localgroup administrators SECWINGzerosoul /add? 域Users組用戶添加到本地Administrators組,需要本地管理員或域管理員在本機登陸域后進行
下面的命令 只能用于 域控制器:
net group "Domain controllers"? 查看域控制器(如果有多臺)
net group? 查看域的組
net group "domain admins"? 查看域管理員
net group "domain users"? 查看域管理員
PS:打開配置域控制器向導的命令?
dcpromo
psexec /accepteula 繞過第一次驗證窗口
mstsc /admin 遠程桌面登錄到console會話解決hash無法抓出問題
我們查看信息的目的是找出域控制器,網上一般提出過很多方法參考地址
http://hi.baidu.com/cao2109/item/6f7115687616e5166895e682
不過偶覺得微軟提供的方法更好用(一個朋友教的,在此感謝)。官方解說:
http://msdn.microsoft.com/zh-cn/cc755655%28zh-cn,WS.10%29.aspx
對,就是用dsquery。在2003自帶,system32目錄里。要在xp執行,把dsquery.exe和dsquery.dll拷貝出來放在同目錄就可以用了。dsquery不僅可以找域控制器,在一臺普通域里的機器上就可以運行,列出域里的基本信息,包括組織單元,計算機,用戶,子網,聯系人(說實話,偶不懂這個耶)等。
找到域控后,很多時候不止一臺域控。現在不管你用什么方法,exp啊,0day啊,hash注入呀,弱口令呀,社工呀,Arp呀,蒼井空啊。弄到域控的權限,有了域管理員的帳號和密碼,那么在域里YY就不愁了。
假設現在我們拿到了域控管理員的帳號和密碼,我們可以登錄域內一臺服務器,當然域控也沒問題。不過管理會經常登域控,這樣偷情肯定很容易被發現,所以最好找一臺沒有什么作用,被遺棄的服務器上去操作。
有了帳號密碼,IPC鏈接。內網為了共享啥的方便,server服務都不會關閉,要是我自己電腦server和workstation是肯定要關的。假設我們的域管理員名字是CK,密碼是123456,域的名字叫ALIYUN。我要到域里ip為192.168.4.6的機器上執行命令。我就去會敲出。
net use 192.168.4.6c$ 123456 /user:ALIYUNCK
要是這個IP其實不在域里,那么把ALIYUN的地方改成192.168.4.6,用戶名改成administrator,然后再試試,可能有驚喜哦。
要是命令執行成功,執行net use可以看到已經建立的映射。
然后用psexec來執行命令,第一次運行請記得跳過驗證
psexec /accepteula 繞過第一次驗證窗口
不然坐在電腦面前的那個她會嚇死的(你要在遠控里的話)。
建立映射后,在交互式的cmdshell里,比如3389上去打開的cmdshell執行
Psexec -s 192.168.4.6 cmd.exe
就可以得到一個192.168.4.6機器上的一個cmd.exe.前提是已經net use映射成功了,接下來要干什么,就看你的了。
這是在交互式的cmdshell里,要是在遠控里自帶的cmdshell呢?一般遠控里的cmdshell會用到管道來實現的,而psexec在回顯的時候或許也用了管道,這樣在執行下面的語句是可能會出現問題。
Psexec -s 192.168.4.6 cmd.exe /c ipconfig
回顯會出現時有時無的情況,彈一個交互式的cmdshell就不用想了,除非遠控實現的是一個完全交互式的cmdshell,這個東西有嗎?答案是有的。見下面鏈接:
http://forum.eviloctal.com/thread-40208-1-1.html
不過有方法可以彌補這個缺陷,net use成功后,在遠控里是可以訪問對方的文件系統的,192.168.4.6C$,這樣就可以寫文件進去,比如寫到C盤,寫批處理,在里面寫想執行的命令并把回顯結果重定向到文件,一次寫入多條效率比較高,還可以重復使用,就像這樣:
Ipconfig /all >> C:pp.txt
然后再執行
psexec -s 192.168.4.6 cmd.exe /c C:a.bat
這樣在遠控里把回顯的txt下回來就算行了,還便于保存,是不是很麻煩呀!
監視管理員:
雖然拿到域管理員的密碼可以在域里玩,當跟域里有聯系而且重要的機器可能并不在域里,比如幫助域里機器上網的代理服務器,郵件網關等。 要想在這些機器上玩,就只有監視管理員了,找到管理員的機器,給他種個馬,種個keyloger(鍵盤記錄),或者專門的3389登錄記錄器也可以。當然運氣好,可能在他電腦找到一個password.txt就發達了。管理員的瀏覽器也是藏密碼的地方,他應該會經常登錄一些需要密碼驗證的地方,然后他可能會保存密碼,那么我們就要導出他的密碼,那樣會收獲不小哦。
如果你只有遠控,對方網絡在內網。你無法直接登錄服務器上的3389,那就只有端口轉發了。 如果對方內網不能直接上網,只能通過一個代理服務器上網,比如ISA,squid撒的,再加上一個會隨時斷你線的防火墻,那么麻煩就大了。就算一些木馬能出來,一般的端口轉發也出不來啊~。
這種情況我想到兩種出路:
一 找到內網里可以直接出來的機器,比如管理員為了方便下片什么的開放的。其實可以直接找管理員。(還有一個思路,看對方內網里發郵件到外面的郵件頭,一般都是郵件中繼信息,一步一步跟就從內網到外網了,要是有基于郵件協議的木馬就爽YY了,中了以后直接劫持郵件客服端,隱蔽的發郵件,控制信息由郵件出去)
二 寫程序,搞定代理,刺穿防火墻。