iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
Security

逆向系列 第 26

逆向題目練習 - Blade (1)

  • 分享至 

  • xImage
  •  

題目 - Blade

學習來源:https://www.youtube.com/watch?v=cqwT6XCc0zg&t=332s

Writeup 網址:https://kazma.tw/2024/02/19/HITCON-CTF-2023-Full-Chain-The-Blade-Writeup/#0x2-Reverse-Engineering


題目:
https://github.com/hitconctf/ctf2023.hitcon.org/releases/download/v1.0.0/blade-4c2ff1b60902623f702f0245a6a9ea0e71eeb385

理解題目

  • 將題目下載後,命名為 blade,並執行,先隨意輸入一個內容,可以發現列出了3個可執行的指令:help, server, exit

    ./blade.png

  • 當我們輸入 server 後,表示切換為伺服器模式

    • 第一行 [!] SYS_socket and SYS_connect should be allowed

      表示環境裡用到了 socket 系統呼叫(socket、connect),若當前環境有開啟 Seccomp 過濾,則這兩個 syscall 必須允許,否則 shellcode 無法建立連線

      • socket:用於建立 TCP socket
      • connect:連線到指定的 IP + Port
    • Core Commands,可執行以下指令:

      • options → 列出可以設定的參數(例如 IP、Port)
      • set <option> <value> → 設定某個參數
      • run → 啟動伺服器、注入 shellcode
      • close → 關閉伺服器
      • back → 返回上層
        https://ithelp.ithome.com.tw/upload/images/20250828/201683747j3jBDMSdV.png
  • 嘗試執行 run

    • 表示將十六進位形式的 shellcode 丟到「victim server」上執行

    • 可使用 disassembler 將此段 shellcode 反編譯成組合語言,得出以下行為:

      1. 呼叫 socket() 建立 TCP socket
      2. 呼叫 connect() 嘗試連到某個 IP + Port(這裡是 127.0.0.1:4444
      3. 成功後,建立一個「反向連線 (reverse shell)」
    • [*] Waiting for connection on 127.0.0.1:4444

      表示伺服器端正在 監聽 (listen) 這個 port,等 shellcode 執行後「回連」上來。

      這就是典型的 reverse shell 行為:受害者執行 shellcode → 連回攻擊者主機 → 攻擊者獲得控制

      run.png


上一篇
逆向筆記 - Reconnaissance、Rust、Shellcode 與 Seccomp
下一篇
逆向題目練習 - blade(2)
系列文
逆向30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言