- Published on
白帽駭客工具實作04 - [基礎知識] Python直譯器原理、Metasploit 框架架構概說
- Authors
- Name
- Ed Li
- X
Python直譯器基本原理
解析 (Parsing):直譯器首先會讀取和解析(Lexical Analysis 和 Syntax Analysis)Python 源碼,將其轉換成抽象語法樹(Abstract Syntax Tree, AST)。這個過程包括將源程式碼拆分成記號(tokens),並檢查語法是否正確。
編譯 (Compilation):AST 會被編譯成 Python 的中間表示形式——字節碼(Bytecode)。這些字節碼是一種低階、中間形式,可以高效執行。Python 使用 .pyc 文件來儲存編譯後的字節碼,以提高後續執行的速度。
執行 (Execution):Python 的虛擬機器(Python Virtual Machine, PVM)會解釋並執行字節碼。PVM 是一個基於stack、heap的執行引擎,負責解釋字節碼指令並執行對應的操作。
Python直譯器詳細說明
項次 | 功能 | 描述 | 說明 |
---|---|---|---|
1 | 詞法分析 (Lexical Analysis) | 將源程式碼轉換為一系列記號(tokens) | 使用詞法分析器將程式碼中的基本語言構建塊(如關鍵字、標識符、運算符和分隔符)識別出來 |
2 | 語法分析 (Syntax Analysis) | 將記號序列轉換為抽象語法樹(AST) | 使用語法分析器將記號序列結構化表示,展示語法結構而非語法細節 |
3 | 語義分析 (Semantic Analysis) | 檢查語法正確但語義可能不正確的程式碼 | 確保變量在使用前被定義,函數的參數類型匹配等 |
4 | 中間表示 (Intermediate Representation) | 將程式碼轉換為Python字節碼 | 字節碼是一種中間表示形式,類似於低階指令,可以在 Python 虛擬機器上高效執行 |
5 | 優化 (Optimization) | 提高程式碼執行效率 | 包括常量折疊、程式碼消除、迭代展開等優化技術 |
6 | 執行 (Execution) | 執行 Python 字節碼 | 由 Python 虛擬機器(PVM)解釋和執行字節碼指令 |
7 | 模塊和導入 (Modules and Imports) | 組織程式碼並共享功能 | 模塊系統允許將程式碼組織成模塊,導入機制負責定位、加載和初始化模塊 |
Metasploit 框架架構
在講述自行開發工具之前,首先介紹著名的開源滲透測試框架,由Rapid7公司開發和維護。Metasploit提供了豐富的工具和模組,使資訊安全人員能夠進行漏洞利用、滲透測試和安全評估。藉由這個工具再去延伸思考,自行開發白帽駭客工具的屬性跟功能實現。
- Metasploit基礎架構
- Metasploit模組功能
項次 | 模組類型 | 描述 | 常見用途 |
---|---|---|---|
1 | Exploit | 利用特定漏洞執行遠程或本地程式碼 | 系統入侵、權限提升 |
2 | Payload | 在成功利用漏洞後執行的程式碼,用於建立控制或執行特定任務 | 建立反向連接、執行系統命令、資料偷取 |
3 | Auxiliary | 提供輔助功能,如掃描、嗅探、檢測和服務攻擊 | 網絡掃描、服務識別、拒絕服務攻擊、密碼破解 |
4 | Post | 執行後滲透活動,如系統數據收集和保持持久訪問 | 收集敏感信息、修改系統設置、安裝後門 |
5 | NOP | 生成NOP Sled以在利用期間保持正確的payload執行 | 使用NOP指(No Operation)填充緩衝區,以確保payload可以準確地進入執行位置,避免錯位或失敗。這些 NOP 指令讓 CPU 可以順利地跳過它們,直到到達有效載荷的開始 |
6 | Encoder | 編碼payload以逃避檢測 | 使payload更難被防毒軟體檢測或攔截 |