1. 程式人生 > 實用技巧 >ssh私鑰洩露學習記錄

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值。