CTF之Five86-1靶機***實戰

靶機地址:<http://www.vulnhub.com/entry/five86-1,417/>;

本文涉及知識點實操練習:VulnHub***測試實戰靶場Node 1.0 (Node 1.0 是一個難度爲中等的Boot2root/CTF挑戰,靶場環境最初由 HackTheBox 創建,實驗目的是獲取兩個flag)

技術點

  • opennetadmin v18.1.1RCE
    • searchsploit
    • github搜索exp
  • 破解Linux中經過HASH加密的密碼
    • crunch生成字典
    • johnhashcat破解密碼
    • hash-identifier查看HASH類型
  • SSH免密登陸
    • 公鑰複製爲authorized_keys
  • Linux查看當前用戶權限可讀文件和可執行命令
    • 查看當前用戶權限可讀文件find / -type f -user www-data
    • 可執行命令sudo -l

目標發現

nmap -sP 參數使用 ping 掃描局域網主機,目的地址爲 192.168.56.5

發現目標地址

nmap -sS -A -v 192.168.56.5 看一下詳細的掃描結果 -sS 是半開放掃描,-A 是進行操作系統指紋和版本檢測,-v 輸出詳細情況

輸出詳細情況

可以看到開放了 22、80、10000 三個端口,並且 80 端口存在 robots.txt和路徑 /ona

漏洞發現與利用

訪問http://192.168.56.5是個空白頁面,然後去訪問 /ona,可以看到是 opennetadmin的管理頁面,並且版本是 18.1.1

訪問管理頁面

管理頁面

v18.1.1opennetadmin是存在RCE漏洞的,在github找個exp打過去就可以,<https://github.com/amriunix/ona-rce>;

在github找個exp打過去

或者是使用 searchsploit,不過這裏有個坑點,就是要對這個bash腳本進行轉換格式,否則會報錯,使用dos2unix 47691.sh這個命令,而且這裏的shell不能轉成TTY

使用 searchsploit

轉換格式

下面的問題就是如何進行提權了,經過一番測試,發現這裏無法執行的命令是沒有回顯的,並且不能執行cd命令,但是可以使用lscat命令

命令是沒有回顯

命令是沒有回顯

這裏肯定是有權限控制的,可以使用find / -type f -user www-data命令查看這個用戶可以讀取的文件,除了/proc就是/var/www/html/reports/.htaccess/var/log/ona.log

查看這個用戶可以讀取的文件

讀取var/www/html/reports/.htaccess可以找到AuthUserFile的路徑/var/www/.htpasswd

找到路徑

讀取這個文件如下,可以得到用戶名douglas和HASH的密碼$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1,給的提示是只包含aefhrt的十個字符

得到用戶名和HASH的密碼

douglas:$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1

# To make things slightly less painful (a standard dictionary will likely fail),
# use the following character set for this 10 character password: aefhrt 

先用hash-identifier看一下是哪個HASH,結果 hash -type : [+] MD5(APR)

看一下是哪個HASH

然後使用crunch生成對應的字典,命令格式crunch &lt;min-len&gt; &lt;max-len&gt; [charset string] [options],這裏生成只包含aefhrt的10個字符,就可以使用如下命令crunch 10 10 aefhrt -o pass.txt,更多的介紹可以看Linux下的字典生成工具Crunchcrunch命令詳解

生成對應的字典

最後就要用大名鼎鼎的hashcat去破解這個HASH,命令格式hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...,這裏使用的命令爲hashcat -m 1600 -a 0 -o res hash.txt pass.txt

-m是HASH類別,-a是***方式,-o是輸出結果,更多的參數可以參考Hashcat密碼破解攻略。這裏在kali裏面運行一直報錯,就轉移到wsl2裏面了,命令hashcat -m 1600 -a 0 -o res hash.txt pass.txt --force

在kali裏面運行一直報錯

密碼

最終密碼爲 fatherrrrr

或者這裏也可以使用john來進行破解john --wordlist=pass.txt hash.txt,但是速度可能有丶問題

進行破解

使用ssh連接ssh [email protected]

用ssh連接

這裏是個TTY,但還是存在權限控制,使用sudo -l看一下可以使用什麼命令,結果是(jen) NOPASSWD: /bin/cp,這裏就有點奇怪了,douglas可以用jen的身份運行cp命令

存在權限控制

先去訪問一下home目錄,發現douglasjen這兩個用戶,但是隻能用jencp命令,且沒有jen的密碼

訪問一下home目錄

值得注意的是,如果jen用戶下的/home/jen/.ssh/authorized_keys包含douglas的公鑰,那就可以用douglasid_rsa文件登陸jen的ssh,也即免密登陸jen的ssh。這裏複製到/tmp目錄下是因爲jen沒有權限訪問douglas目錄下的文件

cp .ssh/id_rsa.pub /tmp/authorized_keys
chmod 777 /tmp/authorized_keys 
sudo -u jen /bin/cp /tmp/authorized_keys /home/jen/.ssh/

用douglas的id_rsa文件登陸jen的ssh

然後用ssh連接ssh -i id_rsa [email protected]

用ssh連接

成功登陸jen,看到提示mail,還是先執行echo $(find / -type f -user jen) &gt; 1.txt看一下,有一個/var/mail/jen的文件可以讀取

成功登陸jen

或者這裏直接輸入mail的命令也可以看到

直接輸入mail的命令

讀取一下,其內容如下

讀取其內容

關鍵詞:change Moss's passwordhis password is now Fire!Fire!

接着ssh連接moss用戶ssh [email protected]

ssh連接moss用戶

在當前目錄發現了一個隱藏目錄.games,訪問後發現一個root權限的二進制文件upyourgame

二進制文件

運行之後就發現自己神奇的變成root用戶辣

運行之後

最後,flag在/root中,爲8f3b38dd95eccf600593da4522251746

flag

彩蛋時刻,其實在拿到douglas的密碼之後就可以用虛擬機登陸,然後操作,這裏是用的moss的賬號密碼,也是同樣的效果

彩蛋時刻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章