安裝配置docker&maven環境

  • 2022 年 9 月 20 日
  • 筆記
 原文影片:(//blog.sechelper.com/20220919/code-review/docker-maven-install-guid/)

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 version 20.10.17, build 100c701

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
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
987a78763b16 tomcat "catalina.sh run" 6 minutes ago Up 6 minutes 0.0.0.0:8080->8080/tcp my_tomcat

停止容器

 
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定義將相應的鏡像拉取到本地,並且會自動啟動容器以及進行必要的埠映射。

 
# 自動化編譯環境
docker-compose build

# 啟動整個環境
docker-compose up -d

# 刪除環境
docker-compose down -v

啟動後訪問其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」選項,進行組件的自動獲取。

​關注 至察助安 ,專註網路安全優質知識分享,無優質,不分享。