iT邦幫忙

2022 iThome 鐵人賽

DAY 4
2
影片教學

從建立環境、驗證漏洞、感受漏洞來學習資安系列 第 4

Day04 - 鯊鯊,你給我翻譯翻譯,甚麼是他X的Log4Shell (作業1)

  • 分享至 

  • xImage
  •  

你給我翻譯翻譯,什麽他媽的是他媽的驚喜!- 讓子彈飛 (2010)

Yes

  • 第四天我們要針對建立的漏洞環境開始進行分析。以往分析不外乎兩種方式,靜態分析及動態分析。靜態分析指的是不執行程式的情況下,針對編譯好的檔案進行各種解析方式,像是觀察原始碼,解析檔案結構或是進行反組譯。動態分析則是執行檔案或是程式,再藉由工具監控環境變化,一般常見的作業系統監控部分包含Process、Memory、File System、Network等等。程式監控部分就可以借助Debugger工具去追查程式當下執行的狀況。但這次漏洞解析會比較注重在弱點專案程式架構、使用的弱點版本以及網路封包流向,因為這些資訊對我們了解弱點、建構弱點環境會比較有幫助。相關分析部分參考如下:

  • 漏洞分析方式

    • 靜態分析
      • JAR 檔案解析
      • Java 物件反組譯
    • 動態分析 :
      • Wireshark 封包監聽

靜態分析主要針對原始碼或是編譯好的檔案進行分析,但因為Java是編譯式語言,所以伺服器上只會有編譯好的相關程式。但這難不倒我們,因為有所謂的反組譯工具可以幫助進行解析。也因此首要的第一步是想辦法拿到編譯好的程式包。之前有提過這個弱點專案是在容器內執行的,因此我們這邊要先學會如何使用docker指令進到目標容器內並且將檔案複製出來。之後再對檔案進行分析。相關步驟如下所示:

1. docker exec -it vulnerable-app sh #進到容器內執行shell指令
2. ps aux #觀察一下容器內執行程式,並得到程式目錄位置
3. exit #脫離容器
4. docker cp vulnerable-app:/app/spring-boot-application.jar . #將容器內的檔案複製到宿主機當前目錄
  • 如此一來我們可以拿到編譯好有弱點應用程式包,但接下來該怎麼分析呢? 這時候可以藉由Java反組譯工具JD-GUI讀取這個檔案進行解析。雖然JAR檔案本身也是壓縮檔結構,但JD-GUI的好處是可以針對.class檔案進行反組譯分析。所以從檔案架構我們可以猜出這個專案使用log4j 2.14.1版本。然後藉由一些設定檔案也可以大致猜出程式的進入點在哪邊。在經過log4j關鍵字的查找,就會發現該程式把送上來的header資訊透過log4j函式庫進行記錄。至此為止,我們已經知道了程式大概的架構,使用弱點函式庫的版本以及觸發弱點的位置。

https://ithelp.ithome.com.tw/upload/images/20220918/20148308HltH0LqAwn.jpg

https://ithelp.ithome.com.tw/upload/images/20220918/20148308GqzD4WX2fY.jpg

https://ithelp.ithome.com.tw/upload/images/20220918/20148308HlCHquYotX.jpg

接著要開始做動態分析,主要需透過網路封包監聽進行監聽及分析。Wireshark是一套很常見用來側錄網路封包的工具,且具有GUI介面方便過濾、觀看封包內容,功能十分強大。採取的步驟大概如下:

1.sudo apt install wireshark -y  #安裝 wireshark
2.sudo wireshark 
3.選對網路介面卡,否則會聽不到目標的封包資訊
4.重現攻擊過程 (參考day03內容)
5.停止擷取封包
  • 此時透過封包搭配攻擊流程圖,就會發現對於這個弱點的攻擊流程清晰了許多。

https://ithelp.ithome.com.tw/upload/images/20220918/20148308i4IdBB06CH.jpg

參考來源 : Digging deeper into Log4Shell - 0Day RCE exploit found in Log4j

參考資料

  1. JD-GUI
  2. Wireshark
  3. docker exec
  4. JAVA THIS 與 STATIC
  5. CVE-2021-44228-PoC-log4j-bypass-words

上一篇
Day03 - 想像帶著 log4j,架了伺服器,紀錄日誌還唱著歌,突然就被駭客RCE了
下一篇
Day05 - 那些年,我們與黑橘大神一起追的Spring4Shell (作業1解答)
系列文
從建立環境、驗證漏洞、感受漏洞來學習資安37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言