NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

Kicky_Mu發表於2023-10-29

R通大殘

1、題目資訊

R通大殘,打了99,補!

2、解題方法

仔細分析題目,聯想到隱寫的R通道。

首先解釋一下:R是儲存紅色的通道,通道里常見有R(紅)、G(綠)、B(藍)三個通道,如果關閉了R通道圖片就沒有紅色的部分,G、B同理。

因此我們想到R大殘應該是不顯示紅色了,猜測結果就在R通道里,所以使用 Stegsolve 開啟附件圖片,把R的通道全勾上,即可看到flag。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

Nmap

1、題目資訊

請給出Nmap掃描得到所有的開放埠用英文逗號分隔,埠號從小到大排列。 例如flag{21,22,80,8080}

2、解題方法

題目要求找出Nmap掃描得到所有的開放埠,並按順序排列。

Nmap通常用於直接掃描目標主機,而不是直接掃描pcap檔案。

因此這裡我們使用wireshark來分析,使用過濾器:

tcp.flags.syn == 1 and tcp.flags.ack == 1

這個過濾條件可以篩選出TCP埠開放的資料包

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

udp

這個過濾條件可以篩選出UDP埠開放的資料包,該過濾條件會匹配所有的UDP資料包,因為UDP沒有像TCP那樣的連線建立過程,所以UDP資料包的到達通常表示埠是開放的。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

icmp and icmp.type == 3 and icmp.code == 3

這個過濾條件用於查詢被目標主機標記為"埠不可達"的資料包,通常表示埠關閉;該過濾條件匹配了ICMP "埠不可達"型別的資料包,其中的 "code" 值為3表示埠關閉。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

因此發現後兩個篩選出來都是空,所以我們只需要看第一個過濾之後的結果就行:

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

記得一定要把顯示過濾器的限制勾上,不然結果並不是過濾之後的結果。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

因此,埠由小到大排序, 80,3306,5000,7000,8021,9000

flag{80,3306,5000,7000,8021,9000}

依舊是空白

1、題目資訊

我們之間還有太多空白格,但是這次的空白格不太一樣

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

2、解題方法

一張圖片但寬高有問題,爆破一下得到密碼。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

s00_b4by_f0r_y0u

而另一個檔案是空白的txt文件,大致看了一下像是不可見字元,結合題目和給了密碼,猜測可能就是snow隱寫了。

將文字附件拖到snow.exe所在目錄,執行命令:

snow.exe -p s00_b4by_f0r_y0u -C White.txt
flag{2b29e3e0-5f44-402b-8ab3-35548d7a6a11}

3-溯源

1、題目資訊

在調查清楚攻擊者的攻擊路徑後你暗暗鬆了一口氣,但是攻擊者仍控制著伺服器,眼下當務之急是繼續深入調查攻擊者對伺服器進行了什麼操作,同時調查清楚攻擊者的身份,請你分析攻擊者與WebShell通訊的流量獲取攻擊者獲取的相關資訊,目前可以得知的是攻擊者使用了冰蠍進行WebShell連線。 Tip:沿著前序題目的進度分析會更符合邏輯,或許有助於解題 FLAG格式:flag{攻擊者獲取到的伺服器使用者名稱_伺服器內網IP地址} 例如flag{web_10.0.0.3}

2、解題方法

題目描述是冰蠍進行WebShell連線的流量包,需要找到攻擊者獲取到的伺服器使用者名稱和伺服器內網IP地址。

首先簡單介紹一下常見webshell工具的流量特徵:

1、中國菜刀
請求體中存在eval、base64等特徵字元;連線過程中使用base64編碼對傳送的指令進行加密;還有一段以QG開頭,7J結尾的固定程式碼。
2、蟻劍
預設的user-agent請求頭是antsword XXX(可以修改)
一般將payload進行分段,分別進行base64編碼;具有像eval這樣的關鍵字和@ini_set("display","0");這段程式碼。
3、冰蠍
PHP程式碼中可能存在eval、assert等關鍵詞;
jsp程式碼中可能會有get class(),get class loader()等字元特徵。
中國菜刀、蟻劍的攻擊流量特徵明顯,容易被各類安全裝置檢測,而冰蠍是一款基於Java開發的動態加密通訊流量的Webshell工具,由於通訊流量被加密,傳統的 WAF、IDS 裝置難以檢測,冰蠍最大特點就是對互動流量進行對稱加密(冰蠍密文采用對稱加密演算法AES加密,加密後還會進行 base64 編碼),且加密秘鑰是由隨機數函式動態生成,因此該客戶端的流量幾乎無法檢測。 

因此解題第一步,先找AES加密演算法的金鑰:

伺服器使用隨機數MD5的高16位作為金鑰,儲存到會話的SESSIONID中,我們可以透過wireshark抓包看到。

在找這些包之前我們其實可以先利用wireshark的過濾器進行初步的篩選:

篩選HTTP POST請求,因為攻擊者通常透過POST請求傳送命令和資料

http.request.method == "POST"

篩選非常大或非常小的HTTP POST資料包,這些可能包含有關伺服器的資訊

http.request.method == "POST" and (frame.len < 1000 or frame.len > 5000)

篩選出具有 ACK 標誌的 TCP 資料包,這些資料包通常表示響應報文

tcp.flags.ack == 1

我們也可以使用 and 對上面的一些條件進行組合篩選 。檢視請求shell.php的包:

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

注意:每個包前面是什麼協議,就追蹤什麼流,比如這裡這個包是http協議,那麼就要追蹤http流,否則出來的響應報文可能會存在格式的問題導致無法解碼和識別。

追蹤http流,找到與AES加密相關的東西:

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

進行base64解碼,拿到 $key="e45e329feb5d925b";

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

接下來我們就可以對請求報文或者響應報文中的AES密文進行解密了:

像下面這種格式的就是AES的密文,紅色部分是請求報文,藍色部分是響應報文。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

可以使用線上網站批次解碼:http://tools.bugscaner.com/cryptoaes/

先給大家看一下我前面提到過關於追蹤流的情況:這是對同一個http協議的包追蹤http流和tcp流的不同結果

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

這裡這個使用者名稱是很好找的,很多包裡面都有,這裡只是列舉了其中某個包:

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

使用者名稱為www-data

而伺服器的內網ip則在長度為100的post請求1.php裡面,其他包裡面可能也還有,可以再找找。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

第一段響應報文解兩次碼後還是密文,在第二段裡面,從圖片框起來的位置一直拉到結尾。

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

先解AES,再對msg的內容解base64:

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

得到一個以basicInfo開頭的東西,對其內容再解base64,注意要去掉basicInfo頭否則會出錯:

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

在解碼內容裡找到伺服器內網ip和使用者名稱:

172.17.0.2 和 www-data

NewStarCTF 2023 公開賽道 WEEK4|MISC 部分WP

flag{www-data_172.17.0.2}

第一次取證(未出)

1、題目資訊

簡單的記憶體取證第一題 附件連結: https://pan.baidu.com/s/1LtVf1j00NR3CB7U38ags5w 提取碼: hg7b

2、解題方法

 

相關文章