前言
CTF-SSH 私鑰泄露,如何從外部進入最終獲得root主機。
靶場鏈接:文章底部可下載
話不多說直接開始
首先攻擊機kali linux。
開啟兩台機器,兩台設置同樣的網路模式,靶機無登入密碼,需要通過ssh遠程登入
kali
登入,ifconfig
檢視ip,然後使用netdiscover -r ip/mask
,我這裡的ip是192.168.71.129
,探測同網段ip地址,找到靶機的地址,然後ping測試連通性
用nmap嗅探埠,探測開放服務。
nmap -sV 192.168.71.129,發現開着三個服務,ssh是我們要攻擊的服務,31337是特殊埠,常用埠為0~1023,針對特殊埠進行探測,尤其對開發大埠的http服務進行排查
打開瀏覽器,輸入ip+埠,我這裡是192.168.71.129:31337
發現沒有東西,檢視源碼後也沒有收穫,那麼我們掃描目錄,探測隱藏文件
用dirb
來探測,輸入
dirb http://ip:port/
這裡檢查後發現兩個對我們有用的敏感文件,我們先看robots.txt
這個是為了防止爬蟲爬取設置的禁止訪問的文件,打開它
發現下面有三個目錄,訪問taxes,得到第一個flag,經過排查其他兩個沒有其他的價值了。
然後我們打開第二個敏感文件.ssh
嘗試目錄下是否存在私鑰和認證關鍵字文件,訪問後發現存在,下載後嘗試ssh登入,登入前需要檢視是否可讀寫
ls -alh
發現可讀寫,然後
ssh -i id_rsa使用者名@主機名
那麼我們怎麼得到使用者名呢,想到我們下載的認證關鍵字文件, 打開發現了我們登入的使用者名
然後嘗試ssh登入,提示錯誤,因為其他權限過高,我們需要修改權限,使用chmod 600 id_rsa修改權限,再嘗試登入,發現需要登入密碼
這裡我們對私鑰信息進行破解,首先使用ssh2john將id_isa密鑰信息轉換成john可識別的信息 ssh2john id_isa > isacrack
然後利用字典進行逐步解密,這時候用zcat 來將字典讀取通過管道符 傳入john 來解密
輸入
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules isacrack
發現得到一條密碼記錄,然後取輸入密碼登入,登入成功後,進入root目錄。
ls後發現目錄下有flag.txt,但是沒有權限打開。說明我們現在不是root權限,需要獲取。
我們通過 find / -perm -4000 2>/dev/null 檢視我們能執行的文件
這裡 find / -pern -4000是查找能夠執行的文件 2>/dev/null是將錯誤信息重定向到null文件中
執行後發現可執行的文件中有一個文件存在root目錄下
cat read_message.c檢視源碼,得到第二個flag
通過分析,發現完全不懂,問了下逆向室友,知道這是一個pwn的題,原理就是因為gets(buf)沒有限制讀取的長度,但是buf[]這個陣列只能儲存20個字符,那麼超過20個字符的就會存入緩衝區,將後面的內容覆蓋。然後當執行到execve的時候原來要執行program[]內的字符,被覆蓋後就可以利用了。所以只要輸入SimonAAAAAAAAAAAAAAA/bin/sh,即可進入root的shell
就得到了root權限啦,然後cat flag.txt就能得到第三個flag了。
111
111
佬,百度網盤鏈接失效了
1
1
1
靶機靶機靶機
靶機靶機靶機靶機靶機靶機
Thanks♪(・ω・)ノ