ADVANCE
配置需求
Vulhub是一個漏洞靶場,都是運行真實存在漏洞的程序。所以,漏洞程序不相同導致對環境的需求也不盡相同。
當前Vulhub的環境中,大部分環境對配置需求不高,我們建議使用1G內存的VPS進行測試。但類似gitlab/CVE-2016-9086,對配置要求相對較高,可能需要2G內存方可運行,這個是因為Gitlab軟件本身的配置需求就比較高。
inode不足導致的問題
另外,Vulhub測試過程中,在配置上出現較多的問題是硬盤inode不足。
先閱讀《理解inode》,了解一下inode。在時間久了以后,因為docker-compose down不會移除鏡像,我們就可能已經下載或編譯過很多漏洞鏡像了。每個漏洞鏡像其實相當于一個Linux系統,小文件比較多,比較占用inode。
某些VPS在分配空間的時候,分配的inode數量較少,我們可以執行df -i查看當前文件系統的inode:
# root @ docker-demo in ~ [20:26:48]
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 56787 404 56383 1% /dev
tmpfs 62210 537 61673 1% /run
/dev/vda1 1280000 136309 1143691 11% /
tmpfs 62210 2 62208 1% /dev/shm
tmpfs 62210 3 62207 1% /run/lock
tmpfs 62210 16 62194 1% /sys/fs/cgroup
tmpfs 62210 4 62206 1% /run/user/0
如果說你發現硬盤空間還沒用完,但提示空間不足,可以查看一下當前的inode,也許是inode數量不足了。
失敗的原因
如果你在編譯的時候出現錯誤,不要盲目開issue,先自己檢查是否是網絡錯誤、docker版本不兼容等問題,如果確定是Vulhub提供的漏洞環境有BUG,再提交issue。
一般出錯的原因有下面幾種:
- HTTP下載出錯
- 源碼編譯失敗
- docker/docker-compose執行時出錯
因為本項目所有源碼都下載至官方網站或Github,在國內有部分網站因為眾所周知的原因無法訪問,所以可能導致下載源碼包的時候失敗,進而造成編譯docker鏡像失敗。所以建議開一臺國外的VPS進行漏洞測試,這樣不管是在成功率,還是編譯速度等方面都會提高很多。
源碼編譯失敗的情況也可能出現,vulhub中的環境全部基于官方鏡像編譯,官方鏡像可能會更新與升級,linux系統升級后可能造成編譯上有一定差別,部分老原來就可能編譯不成功了。當你遇到這種錯誤,請及時提交issue向我反應。
docker自身出錯的情況,多出現在使用的docker/docker-compose版本較老時出現的BUG,最好使用最新版docker測試vulhub項目。
貢獻環境
首先歡迎大家向我們貢獻漏洞靶場環境或代碼。所有貢獻被接受的同學,我們均會將你加入貢獻者列表。
貢獻新的漏洞環境有如下要求:
- 開啟一個新的分支,名稱為“漏洞影響軟件+漏洞CVE編號”,如果該漏洞有具體名字(如heartbleed),也可以以這個名字命名。
- 編譯環境時,必須從官方途徑下載、安裝軟件,不允許將軟件安裝包直接放在代碼目錄里
- Java web漏洞環境,可以將war包放在代碼目錄中進行安裝,但war包大小不允許超過1M
- base分支下放各種軟件,漏洞分支下放Dockerfile和docker-compose.yml
如果你的代碼滿足這些條件,可以向vulhub/vulhub提交PR。當然,上述條件比較苛刻,如果我們發現你提交的代碼不滿足這些條件,也許會拒絕PR。但是我們可能會修改你的代碼后并入Vulhub,并將你的名字加入貢獻者列表。
另外,如果你發現我們已有的漏洞環境代碼中存在BUG,也可以提交PR進行修復。
Vulhub 文檔
推薦文章: