ssh私鑰洩露學習記錄
宣告:此部落格只是記錄自己的ctf學習過程,請勿用於非法途徑。
目標:從外部進入靶場主機並獲得root許可權。
kali linux:192.168.31.113
在kali的終端輸入:
netdiscover -r 192.168.31.1/24
以發現靶機IP地址
使用nmap對靶場主機開放的服務資訊進行探測:
nmap -sV 192.168.31.37
發現靶場主機開放了一個ssh服務和兩個http服務。
對於開放http服務的大埠,可以採取http://ip:port/訪問:
html原始碼中也沒有想要的資訊。這條路走不通。
使用dirb工具對http服務的隱藏檔案進行探測:
dirb http://192.168.31.37:31337/
探測完畢:
robots.txt裡面存放著是否允許搜尋引擎檢視的檔名,開啟:
發現敏感檔案:taxes
我們在瀏覽器中瀏覽該檔案,發現第一個flag值:
開啟之前發現的.ssh檔案:
通過瀏覽器訪問並下載id_rsa以及authorized_keys
在終端嘗試直接用id_rsa連線遠端伺服器:
先檢視有哪個伺服器使用者:
cat authorized_keys
發現一個simon使用者
ssh -i id_rsa simon@192.168.31.37
發現無法登入,因為id_rsa許可權不對,對id_rsa許可權進行更改:
chmod 600 id_rsa
賦予id_rsa可讀可寫許可權
再進行遠端登陸:提示需要進行密碼:
密碼是來源於私鑰檔案的,使用ssh2john將id_rsa檔案進行轉換:
ssh2john id_rsa > rsacrack
若找不到ssh2john,則使用locate ssh2john查詢路徑後再使用
python /usr/share/john/ssh2john.py id_rsa > rsacrack
進行轉換
然後桌面上就出現了rsacrack檔案
然後使用字典對rsacrack進行解密:
使用zcat工具對rsacrack進行解密:
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack
得到密碼:starwars
重新使用ssh登入並輸入上述密碼,登陸成功!此時我們獲取了simon使用者許可權。
切換都r根目錄看看有沒有啥敏感檔案:
cd /root ls
發現了flag.txt,cat一下:
發現並沒有許可權去檢視,說明我們許可權不夠,需要提升許可權。
我們先查詢具有root許可權的檔案:
find / -perm -4000 2>/dev/null
其中2>dev>null是為了避免錯誤操作
發現read_message檔案之前出現在根目錄下過
檢視一下該檔案:
cat read_message.c
發現了flag2
程式碼的意思大概就是將authorized與輸入的字元前5個進行對比,相等就輸出資訊並執行program
那麼在這兒可以進行溢位操作
成功獲得root許可權,再:
cat flag.txt
成功獲得最後一個flag值。