在前面的章節中,我們專注於網路流量(.pcap)的監控與還原。然而當攻擊事件發生時,攻擊者留下的足跡不只會在網路上流動,更會深植於系統的**記憶體傾印檔(Memory Dump)與系統日誌(System / Web Logs)**中。
今天我們將邁入記憶體與 Log 鑑識的第一步,學習如何利用 Linux 經典命令列工具(如 strings、grep),在海量的二進位記憶體傾印或文字日誌中,精準搜尋關鍵特徵字串與威脅指標(IOC)。
透過概念解析與實戰操作,掌握以下鑑識搜尋核心技能:
strings 工具從二進位檔案中提取可讀的可列印字串。grep 與正則表達式(Regex)快速過濾威脅特徵(如 IP、Flag、Sensitive Key)。|)建立高效率的命令列鑑識工作流。strings 命令二進位檔案(如 .raw、.dmp、mem.dump 或編譯後的執行檔)包含大量無法直接閱讀的機器碼。strings 工具能掃描檔案,將連續的可列印 ASCII / Unicode 字串印出:
strings -n 8 file.bin:僅顯示長度大於或等於 8 個字元的字串(減少雜訊)。strings -e l file.bin:搜尋 16-bit Little-Endian(Unicode)字串。grep 命令在巨量文字資料中精準定位目標:
grep -i "keyword":忽略大小寫搜尋。grep -n "keyword":顯示關鍵字所在的行號。grep -E "pattern":使用延伸正則表達式(Extended Regex)。grep -C 3 "keyword":顯示關鍵字前後各 3 行的上下文背景(Context)。在 Log 與記憶體分析中,鑑識人員常需要批次尋找以下特徵:
| 特徵類型 | 正則表達式 (Regex Pattern) | 說明 |
|---|---|---|
| IPv4 地址 | [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} |
搜尋網路連接點與來源 IP |
| CTF Flag 格式 | academy\{.*\}, picoCTF\{.*\} |
尋找目標旗標 |
| Web 攻擊特徵 | (?i)(SELECT|UNION|INSERT|<script) |
搜尋 SQLi 或 XSS 攻擊跡象 |
| 敏感路徑 | /etc/passwd, /etc/shadow, cmd.exe |
搜尋系統敏感檔案讀取或 Shell 調用 |
strings 的二進位檔案,請在不執行該檔案的前提下,找出隱藏於其中的關鍵 Flag。在 Linux / WSL 環境下載題目檔案並另存為 strings_it:
cd /mnt/c/Users/acer/Downloads
wget "[https://challenge-files.cylabacademy.net/library/dede17d717e026b75f6b9e7fb2c1601b46093ced6f209b8f6b27ffd883a9ae2f/strings](https://challenge-files.cylabacademy.net/library/dede17d717e026b75f6b9e7fb2c1601b46093ced6f209b8f6b27ffd883a9ae2f/strings)" -O strings_it
strings與grep搜尋 Flag使用strings提取二進位檔內的可列印字串,並透過管道符號|交給grep -E過濾符合 Flag 格式(picoCTF{ 或 academy{)的特徵字串:
strings strings_it | grep -E "picoCTF\{|academy\{"
指令執行後毫秒內回傳結果,順利擷取出目標 Flag:
academy{5tRiNg5_1T_b1e21039}

academy{5tRiNg5_1T_b1e21039}