安裝配置docker&maven環境
- 2022 年 9 月 20 日
- 筆記
Docker是什麼
Docker 是一個開源的應用容器引擎。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。
docker三個基本概念
- Image(鏡像)
- Container(容器)
- Repository(倉庫)
我們可以通過安裝Docker,結合著名的漏洞環境集合Vulhub,快速的來搭建我們想要的漏洞驗證環境。因Vulhub是基於Docker和Docker-compose來搭建的。安全人員可以極其便利地使用Docker生成一個帶有特定漏洞的容器進行調試分析,從而減少在環境配置上的時間消耗,更專註於研究漏洞本身。
Docker的下載與安裝
不同系統下的docker的下載與安裝
//www.runoob.com/docker/ubuntu-docker-install.html
|
我們這裡以macos
系統安裝為例,mac可以選擇brew
安裝也可以直接選擇手動安裝,這裡我們選擇手動安裝
//docs.docker.com/desktop/install/mac-install/
|
跟其他軟體安裝一樣,直接按照提示即可,最後我們可以在應用中看到Docker 圖標,點擊運行即可
查看docker安裝版本命令
docker --version
|
Docker基本使用方法
在docker開啟後,可以使用命令行方式進行鏡像的搜索、拉取、查看等,或者容器的開啟與關閉等操作。
搜索鏡像
search命令可以搜索指定名稱和倉庫的鏡像,例如搜索tomcat的鏡像
docker search tomcat
|
拉取鏡像
pull 命令可以拉取指定倉庫和名稱以及標籤的鏡像。當未指定所獲取鏡像的tags(標籤)時,則自動拉取latest(最新)版本的鏡像。
docker pull dordoka/tomcat
|
查看鏡像
images命令可以讀取已經拉取到本地的鏡像文件,並列出鏡像所存放倉庫名、TAG標籤、鏡像編號、創建時間以及鏡像大小。
docker images
|
刪除鏡像
rmi指令可以刪除已經拉取到本地的鏡像,記得在刪除鏡像前需要先停止容器
docker rmi 鏡像名
|
生成容器
run指令可以以指定的鏡像為模板生成對應的容器。我們這裡啟動一個Tomcat的容器,希望可以訪問它的8080埠,並在容器啟動後在後台默默運行
docker run --name my_tomcat -it -d -p 8080:8080 tomcat
|
查看容器
docker ps
|
停止容器
docker stop CONTAINER ID
|
啟動容器
docker start CONTAINER ID
|
進入容器
docker exec -it [CONTAINER ID] /bin/bash
|
退出容器
exit
|
刪除容器
docker rm [CONTAINER ID]
|
使用Vulhub快速搭建漏洞環境
** Vulhub的下載與安裝**
Vulhub Github地址://github.com/vulhub/vulhub
下載並解壓Vulhub後,可以看到相應的漏洞環境,我們要啟動對應的漏洞環境只需進入相應的文件夾使用Docker-compose命令啟動即可。
啟動漏洞環境
本次使用CVE-2020-1938為例,進入到相對應的文件夾後,編譯完環境後使用docker-compose up –d啟動命令會根據該文件夾中的docker-compose.yml定義將相應的鏡像拉取到本地,並且會自動啟動容器以及進行必要的埠映射。
# 自動化編譯環境
|
啟動後訪問其8080埠即可
Maven基礎知識及掌握
Maven是一個項目構建工具,可以對Java項目進行構建和管理,也可以用於各種項目的構建和管理。
pom.xml文件介紹
pom.xml文件使用XML文件結構,該文件用於管理源程式碼、配置文件、開發者的資訊和角色、問題追蹤系統、組織資訊、項目授權、項目的url、項目的依賴關係等。Maven項目中必須包含pom.xml文件。了解pom.xml文件結構有助於審計應用程式中所依賴的組件和發掘隱藏風險。
pom.xml定義依賴關係
pom.xml文件中的dependencies和dependency用於定義依賴關係,dependency通過groupId、artifactId以及version來定義所依賴的項目。引入Fastjson 1.2.24版本組件的Maven配置資訊。其中groupId、artifactId和version共同描述了所依賴項目的唯一標誌。
Maven的使用
IDEA中可以在新建項目時選擇創建Maven項目。選擇創建Maven項目,右側窗口顯示的是Maven項目的模板。直接使用默認模板並單擊「Next」按鈕,填寫Name(項目名稱)和Location(項目保存路徑)後單擊「Finish」按鈕,即可完成項目的創建。
創建完成的Maven項目中包含該pom.xml文件。pom.xml文件描述了項目的Maven坐標、依賴關係、開發者需要遵循的規則、缺陷管理系統、組織以及licenses,還有其他所有的項目相關因素。對於我們程式碼審計來說,可以從pom.xml中快速的審查當前Java應用程式中是否使用了存在安全隱患的組建,以及快速的搭建特定版本的漏洞環境。
這裡以搭建Fastjson 1.2.24之前版本的反序列化漏洞環境,需要引入版本小於1.2.24的Fastjson組件為例,引入Fastjson相應版本後右鍵單擊pom.xml文件選擇「Maven」選項,進行組件的自動獲取。
關注 至察助安 ,專註網路安全優質知識分享,無優質,不分享。