Web Application Security – Telegram
Web Application Security
1.8K subscribers
11 photos
1 video
2 files
38 links
Download Telegram
Exploitology_Web_Apps_Exploits_-_Mahdi_Alemi.pdf
7 MB
کتاب تازه اومده
سرفصل های خیلی خوبی رو کاور میکنه

#resource
22🔥4👍1
سایت https://pocorexp.nsa.im/ همه‌ی CVEها رو فهرست کرده و اگر برای هرکدوم اکسپلویت پابلیک وجود داشته باشه، اون رو هم پایینش قرار می‌ده.

#resource
26👍5
یکی از منابع غیررسمی برای یادگیری، وب سایت slideshare.net است. با باز کردن یه اسلاید، معمولا اسلاید های مرتبط با همون موضوع رو هم پیشنهاد میده. برای مثال این اسلاید درباره امنیت OT است و در بخش Recommended موضوعاتی مثل IOT , ICS رو آورده.
برای دانلود اسلاید ها میتونین از slidesaver.app استفاده کنین.

#resource
13👍8
برای پیدا کردن Public IP های یک منطقه (مثل یک دانشگاه، سازمان، محله یا حتی روستا)، باید از طریق Google Maps مختصات جغرافیایی اون منطقه رو به دست بیارین و بعد در سایت shodan با فیلتر geo سرچش کنین.

#shodan
42🔥11👍8
تا حالا شده بخواین کل سرور های آسیب پذیر به یک CVE رو پیدا کنین؟
با shodan و فیلتر vuln این کار ممکنه، اما با اکانت رایگان نمیشه اینکارو انجام داد.
تو آموزشی که اینجا قرار میدم میتونیم این محدودیت رو بایپس کنیم و هزاران سرور آسیب پذیر به یک CVE خاص رو با اکانت رایگان پیدا کنیم.
برای مثال با این کوئری میتونیم کلی سرور آسیب پذیر به BlueKeep رو پیدا کنیم :
Country:"JP" Org:"NTT DOCOMO,INC." OS:"Windows 7 Professional" ssl.version:"tlsv1" ssl.jarm:"26d26d16d26d26d22c26d26d26d26dfd9c9d14e4f4f67f94f0359f8b28f532"

آموزش ساخت کوئری در ویدئو زیر :

#shodan
22👍4🔥2
Forwarded from Security Analysis
⭕️ امنیت⁩ CI/CD رو امشب در خدمتتون هستیم:

🕘 ساعت ۹

💡روشهای نفوذ از طریق CI/CD
💡دسترسی به سرورهای تست و پروداکشن
💡دسترسی به SECRETها
💡اصول امن سازی و توسعه امن نرم افزار

meet.google.com/rdr-cutu-qwd

#CICD #Security
@securation
13👍6
مقدمه ای به امنیت سیستم های کنترل صنعتی؟
Final Results
86%
👍
14%
👎
👍2
امنیت سیستم های کنترل صنعتی قسمت ۱ :

خب شروع میکنیم.
اکثر آموزش های پابلیک تو وب فارسی بدون درک کردن مفاهیم مهم زیرساخت صنعتی وارد فاز اکسپلویت میشن که کاربردی نیست، مثل استفاده از sqlmap بدون دانش دیتابیسه و بخاطر همین اول مفاهیم پایه رو مرور میکنیم.

فرایند صنعتی =
به محموعه‌ای از فعالیت ها گفته میشه که برای تبدیل مواد خام به محصول نهایی در صنعت استفاده میشن. برای مثال همه مراحل مورد نیاز برای تبدیل چوب درخت به کاغذ.

اتوماسیون صنعتی =
همون سیستم تبدیل چوب درخت به کاغذ رو بدون دخالت انسان در نظر بگیرید. اتوماسیون صنعتی 3 بخش داره : سنسور، عملگر، کنترل کننده. سنسور پارامتر فیزیکی رو اندازه گیری میکنه و خروجیش وارد کنترل کننده میشه و کنترل کننده با توجه به ورودی دریافتی به عملگر دستور میده تا روی پارامتر های فیزیکی عمل کنه. برای مثال دماسنج به عنوان یه سنسور دمای محیط رو اندازه گیری میکنه و برای کنترل کننده که مواردی مثل PLC هست ارسالش میکنه و PLC تصمیم میگیره با توجه به دمای محیط به بخاری(به عنوان یک عملگر) دستور روشن یا خاموش شدن رو ارسال کنه.

کنترل کننده یا Controller =
کنترل کننده‌ها انواع مختلفی دارن که PLC پرکاربردترین اونهاست. PLC یه دستگاه الکترونیکی‌ هست که برای کنترل ماشین ها و فرایند های صنعتی استفاده میشه. مثل همون کامپیوتر های شخصی اما فقط برای محیط های صنعتی که بتونن در دمای خیلی بالا یا پایین کار کنن.

مفهوم ICS =
یه عنوان کلی هست و به هر سیستم کنترل صنعتی میتونیم بگیم ICS.

مفهوم SCADA =
یه سیستم کلی هست و مجموعه ای از نرم افزار و سخت افزار هارو شامل میشه. برای کنترل و جمع آوری داده‌ها و اطلاعات از راه دور استفاده میشه‌. داده ها از سنسور ها و PLC ها و..... جمع آوری میشه.

مفهوم HMI =
به معنی رابط بین انسان و ماشین هست. HMI به اپراتور اجازه میده ماشین یا تجهیزات رو کنترل کنه. معمولا یه مانیتور هست که اپراتور میتونه باهاش پارامتر های فیزیکی مانند روشن/خاموش بودن دستگاه‌ها رو ببینه یا کنترل کنه.

مفهوم DCS =
کاربردش مثل SCADA هست اما SCADA به صورت ریموت کار میکنه و معمولا در شبکه WAN استفاده میشه. اما DCS به صورت LAN استفاده میشه و وابستگی به اینترنت نداره در صورتی که ممکنه SCADA نیاز به اینترنت داشته باشه.

مفهوم RTU =
در محل های مختلف نصب میشه که داده هارو از سنسور ها دریافت کنه و به مرکز کنترل مثل SCADA ارسال کنه. میتونه دستوراتی که از مرکز کنترل میاد رو دریافت و اجرا کنه مثل خاموش/روشن کردن تجهیزات.

پروتکل های صنعتی =
پروتکل های صنعتی وظیفه برقراری ارتباط بین اجزای مختلف ICS مثل PLC, HMI رو دارن. پروتکل هایی مثل modbus, DNP3 نمونه هایی از پروتکل های صنعتی ان.

مقایسه پارامتر های زمانی بین IT و OT(همون ICS) =
در حملات IT پارامتر های زمانی خیلی مهم نیست مگر در race condition. چندین دقیقه تاخیر در وب سایت مشکل بزرگی ایجاد نمیکنه. اما در ICS فرض کنین که یک PLC دمای کوره رو کنترل میکنه و اگر اطلاعات دما با چند ثانیه تاخیر ارسال بشه، کنترل دما ممکنه به اشتباه انجام بشه و کوره خیلی داغ تر یا سردتر از حدمجاز بشه که باعث ایجاد مشکل تو فرایند تولید محصول میشه. برای همین availability در OT خیلی خیلی مهم تر از IT هست.

آسیب پذیری در پروتکل های صنعتی =
اکثر پروتکل های صنعتی مثل modbus هیچ گونه Authenticationی ندارن و اطلاعات رو به صورت clear text ارسال میکنن. دلیل این ضعف در پروتکل های صنعتی همون اهمیت زمان هستش و اگر داده ها به صورت cipher text ارسال بشن، یک مدت زمانی تاخیر ایجاد میکنه و ممکنه باعث ایجاد مشکل بشه. در نتیجه در ICS استاندارد های امنیتی به شکلی که تعریف شدن استفاده نمیشن خیلی وقتا.

#ICS
#SCADA
🔥2310👍1
امنیت سیستم های کنترل صنعتی قسمت ۲ :


سیر تکامل ICS =
در ابتدا هیچ شبکه ای وجود نداشت(شاید 50 سال پیش). بعدها دستگاه‌ها دیجیتال شدن و با استفاده از کابل serial ارتباطات رو برقرار میکردن. پروتکل هایی مثل modbus RTU روی کابل پیاده سازی شد. امنیت با ایزوله بودن برقرار بود چون با IP کار نمیکرد و تا وقتی کسی به کابل‌ها دسترسی نداشته باشه امنیت برقراره. امروزه دستگاه ها روی TCP/IP هم کار میکنن و از پروتکل هایی مثل modbus TCP استفاده میشه‌. همون پروتکل های ضعیف و قدیمی حالا روی اینترنت میتونن کار کنن!

ارتباطات در ICS =
ارتباطات اجزای مختلف مثل PLC, HMI و دیوایس های مختلف میتونه سیمی یا بی سیم یا ترکیبی باشه. مثل Ethernet, Serial, WIFI.

محدودیت هایی که باعث آسیب پذیر شدن میشه =
دستگاه های ICS مثل PLC, RTU معمولا منابع خیلی کمی دارن چون برای کارهای ساده و خاص طراحی شدن. درنتیجه یک DOS ساده ممکنه دستگاه رو down کنه و عملیات صنعتی متوقف بشه.

متصل بودن شبکه IT به شبکه OT =
اگر شبکه IT سازمان و OT به صورت مستقیم باهم در ارتباط باشن، شبکه IT میتونه راهی برای نفوذ به شبکه OT باشه. در نتیجه بهتره شبکه IT و OT با DMZ از هم جدا بشن و هیچ ارتباط مستقیمی بین OT و IT نباشه.

آسیب پذیری های IT در OT =
ممکنه روی سرور های HMI برای دسترسی ریموت مواردی مثل RDP یا VNC فعال باشه و با اکسپلویت این سرویس‌ها نفوذگر به HMI دسترسی پیدا کنه.

شبکه Air gap =
به شبکه ای گفته میشه که به اینترنت متصل نیست. زیرساخت های صنعتی معمولا به صورت Air gap پیاده سازی میشن و سرور هایی که با shodan پیدا میکنیم اکثرا honeypot هستند. برای نفوذ به زیرساخت های صنعتی که به شکل Air gap پیاده سازی شدن باید تجهیزات آلوده مثل USB وارد شرکت کرد.

#ICS
#SCADA
13🔥6👍3
امنیت سیستم های کنترل صنعتی قسمت ۳ :


پروتکل modbus =
یک پروتکل صنعتی است که برای تبادل داده بین دستگاه های صنعتی استفاده میشود.

ساختار داده در modbus به 4 شکل زیر است =
1. coil
2. Discrete input
3. Input register
4. Holding register
داده coil دارای قابلیت read و write، داده Discrete input دارای قابلیت read، داده input register دارای قابلیت read و داده  holding register دارای قابلیت read و write است.

فانکشن کد =
برای هر کاری یک function code در modbus وجود دارد.
1 ==> خواندن coil
2 ==> خواندن Discrete register
3 ==> خواندن holding register
4 ==> خواندن input register
5 ==> نوشتن coil
6 ==> نوشتن holding register

استفاده از nmap برای شناسایی modbus =
nmap -p 502 --noscript=modbus-discover 127.0.0.1

آسیب پذیری =
پروتکل modbus روی پورت 502 کار میکنه و بدون Authentication هست. مهاجم میتونه به صورت remote بهش وصل بشه و رجیستر های modbus که برای تبادل داده بین اجزای مختلف ICS استفاده میشه رو بخونه و تغییر بده. روی هر رجیستر از modbus میتونیم هر کدوم از دیتاهارو داشته باشیم. چالشی که وجود داره از بیرون نمیشه فهمید هر رجیستر یا coil برای چه کاری استفاده میشه، شاید مقدار خاموش/روشن بودن یک رله رو ذخیره کرده یا هرچیز دیگری. برای همین در این سناریو حمله به صورت False Data Injection انجام میشه که اگر فرضا آدرس 1 در رجیستر با نوع coil مقدار false را دارد به true تغییر میدهیم و همین طور true را به false تغییر میدهیم و اینکار باعث میشه اتوماسیون صنعتی به صورت معکوس کار کنه. یک مثال خیلی ساده برای درک سناریو : (مثلا آدرس 1 با نوع coil داده مربوط به خاموش یا روشن بودن سیستم خنک کننده اضطراری رو ذخیره کرده و روشنه اما با False Data Injection خاموشش میکنیم و این باعث افزایش دمای تجهیزات و از کار افتادن یا حتی آتش سوزی میشه). در نتیجه هدف این حمله خرابکاری هست.
اسکریپتی که قرار میدم رجیستر های 100 تا 110 رو اسکن میکنه و هر نوع داده های که پیدا کنه در یک فایل json ذخیره میکنه(میتونید بازه رو تغییر بدید). واسه تغییر دیتا هم میتونید همین اسکریپت رو به هوش مصنوعی بدین تغییرش بده.

#ICS
#SCADA
17👍2
modbus.py
1.5 KB
🔥8👍1
نمونه رجیستر های modbus
🔥112👍1
Forwarded from PentesterLand
🚨 Broken Access Control – Part 1
💰 Earned $60K+ in bounties using these private techniques!


Link of video on instagram:

https://www.instagram.com/reel/DNBa3jdIX5O/?igsh=OGY4M3R4Mmd1OTZn


We're starting a new series focused on exclusive tricks and real-world exploitation of Broken Access Control vulnerabilities across different targets.
Watch the first episode now on YouTube and level up your bug bounty skills! 🔥

📺 Uploaded on our YouTube channel: pentesterlanden

Video link: https://www.youtube.com/watch?v=OrKw_j2KLSc


#BugBounty #BrokenAccessControl #CyberSecurity #InfoSec #HackingTips #PentesterLanden #EthicalHacking
12👍2
Forwarded from GO-TO CVE
Dot Suffix Bypass 🤑

Some WAFs block paths by exact hostname. Adding a trailing dot (site.com.) bypasses them — DNS treats it the same, but WAF sees it differently.

Example:
site.com/xxxxxxxxxxxxxx/file.php → 403
site.com/xxxxxxxxxxxxxx./file.php → 404
site.com./xxxxxxxxxxxxxx/file.phpfile.php → 200

This is called Host Header Normalization Bypass.
I earned $3000 bounty using this trick! 💸
🔥141👍1
سلام
بخاطر سربازی واسه یه مدت نسبتا طولانی نیستم و آماده کردن مطالب تخصصی هم ممکن نیست، اما سعی میکنم مطالب ساده و کاربردی که ممکنه باهاش آشنا نباشین رو به اشتراک بزارم.

با این دورک شودان میتونین به کانفیگ های VPN برسین (اشتراک گذاریش به تعداد زیاد این روش رو منسوخ میکنه)
html:"vless" http.noscript:"index of"
با الگو قرار دادن این کوئری میتونین کوئری های کاستوم خودتون رو بنویسین.


خیلی وقتا نیاز به نصب لابراتورهای آفلاین نیست و تو شودان میشه پیداشون کرد مثل این مورد :
http.noscript:"DVWA"
و مواردی مثل bwapp و‌‌....
اینارو میتونین به عنوان easy RCE هم در نظر بگیرین.
49👍5👎1
جاهایی که دوتا CSRF token داریم یکی تو body و یکی تو cookie، معمولا یکسان بودن این دو توسط سرور چک میشه.
برای اکسپلویت نیاز به یک session fixation داریم که برای قربانی CSRF token دلخواه رو در cookie ست کنیم و فقط کافیه همون توکن رو در Body هم ارسال کنیم.

#نکته‌هایی‌از‌کتاب‌
#CSRF
23👍7
Forwarded from Dagen (security) (Dasow)
چجوری از یه جاوا اسکریپت ساده به ادمین پنل رسیدم

اولین کاری که کردم این بود که سورس صفحه رو باز کردم و روی دونه به دونه فایلای جاوا اسکریپت کلیک کردم و دنبال جاوا اسکریپ و سورسی بودم که برام سود اور باشه و بهم سر نخ بده که یه لینک چشممو تیز کرد :

https://log.sub.target.com/collectors/minimized/bundle-main.js


به ظاهر لینک نگاه کنید ادرسی که لینک شده احتمالا js مهمیه و وقتی داخلش رو باز کردم یه جاوا اسکریپت بود که به صورت پک شده و قابل خوندن نبود خب من طبق معمول سعی کردم یه .map به انتها اضافه کنم تا سورس رو به صورت پویا و خوانا ببینم ولی جواب نداد .

بیخیال نشدم و رفتم سراغ تست بعدی !

اینجا بهترین جا برای پیدا کردن باگه و من با این تریک باگ "افشای اطلاعات حساس" زیادی زدم و حتی میتونه دریچه ای برای باگ هایی مثل xss یا idor باشه !

برای این سناریو اولین کاری که همیشه میکنم فاز کردنه ولی چه جور فازی ؟

1 - https://log.sub.target.com/collectors/minimized/bundle-FUZZ.js

2 - https://log.sub.target.com/collectors/minimized/FUZZ-main.js

3 - https://log.sub.target.com/collectors/minimized/bundle-main-FUZZ.js

4 - https://log.sub.target.com/collectors/minimized/FUZZ.js


به چهار حالتی که که بالا میبینید دقت کنید ,هر کدوم رو انجام دادم و فاز کردم .!
کلمه کلیدی "_database" با همچین ادرسی اطلاعات + ادرس پنل ادمین رو بهم به صورت کلیر داخل کد جاوا اسکریپت نشون داد :

https://log.banana.target.com/collectors/minimized/DataBase_-main.js


ادرس پنل داخل کد جاوا اسکریپت و ساب دامینی بود که قابل حدس نبود و با هیچ اسکنر و ساب دامین فایندری پیدا نمیشد این کاملا افشای اطلاعات بود ,
پنل از من یوزر و پسورد نمیخواست و من سطح دسترسی سوپر ادمین رو داشتم و مثل ادمین سایت دسترسی ها برام کاملا باز بود !



توی این سناریو فقط با یک جاوا اسکریپت ساده تونستم یه باگ کریتیکال بزنم و فقط به کمی خلاقیت نیاز داشت . این جاوا اسکریپت توی سورس صفحه نبود و حتی با ریکان گوگل دورک + گیت هاب + وی بک یو آرال پیدا نمیشد و تنها با فاز کردن به دست میومد !

حتما اینجوری فاز کنید تا به سرنخ کلیدی برسید هیچوقت به فاز ساده با ابزار متکی نباشید و قبل از این که چهار تا کامند ران کنید کمی تحلیل کنید 🌷

@Dagen_secuirty
37
General web application penetration testing methodology:


اگه تازه کارین میتونین از این متودولوژی استفاده کنین تا وقتی که متودولوژی شخصی خودتونو بسازین.
هدف: وقتی به یه domain یا subdomain رسیدین چیکار کنین.
نیازمندی ها: آشنایی با تکنولوژی های مختلف استفاده شده در web application ها و آسیب پذیری های مختلف.
ابزار های مورد استفاده:
Burp suite
Waybaclurls
dig
ffuf
Google(for Google  dork)
Arjun or x8
Wappalyzer
Nuclei
Katana
Burp suite extension:
     Logger++
     Js link finder
     Reflection
1. چک کردن تکنولوژی های سایت با افزونه wappalyzer(طبق تکنولوژی های سایت تست های خودمون رو ادامه میدیم، مثلا وقتی تارگت وردپرسه باید متودولوژی مربوط به خودش رو داشته باشیم و وقتی تکنولوژی قدیمیه مثل php میتونیم آسیب پذیری هایی مثل shell upload و sql injection رو تست کنیم در صورتی که اینارو تو Django به این صورت بهشون اهمیت نمیدیم)
2. فعال کردن افزونه foxyproxy که ترافیک های مرورگر به سمت burp suite هدایت بشه، مثل کاربر عادی با وب سایت کار میکنیم تا هم functionality های سایت رو درک کنیم هم ترافیک های وب سایت رو داشته باشیم. و همچنین از نحوه ی Authentication سایت مطلع میشیم که cookie یا token و... هست. وقتی اینارو بدونیم test case های ما تغییر میکنه، برای مثال تو token base Authentication اصلا نباید csrf رو تست کنیم. با دیدن error page ها یا cookie های بخصوص میتونیم حدس بزنیم که WAF پیش رو داریم یا ن.
3. بعد هر action باید برگردیم به برپ و request و response هارو برسی کنیم، مثلا وقتی register انجام دادیم باید بعد از بررسی درخواستشو به تب repeater بفرستیم و اسم تب رو به register تغییر بدیم که در آینده خوانا باشه.
4. دوتا اکانت تو سایت میسازیم، هدف چیه(تست های مربوط به idor و mass assignment).
5. بعد از اینکه با همه functionality های پابلیک وب سایت کار کردیم و درخواست های مهم رو به برپ ارسال کردیم، باید برگردیم سراغ برپ و سناریو هایی که واسه هر بخش داریم رو تست کنیم.(واسه این قسمت باید آسیب پذیری هارو بخوبی بلد باشیم)
6. استفاده از dig برای به دست آوردن اطلاعات مربوط به dns وب سایت، برای مثال اگه cname داشته باشه میتونیم subdomain takeover رو تست کنیم، اگه dnssec داشت میتونیم zone walking رو تست کنیم. و وقتی هم IP وب سایت رو پیدا کردیم میتونیم با روش هایی که تو پست های قبلی بهشون اشاره کردیم بررسی کنیم ببینیم این آیپی original هست یا متلعق به CDN عه. با بررسی رکورد TXT میتونیم متوجه آسیب پذیری email spoofing بشیم. با بررسی رکورد AXFR میتونیم zone transfer رو تست کنیم
7. اگه تو تکنولوژی های سایت که بدست آوردیم فریمورک و تکنولوژی های سمت JS مثل ReactJS استفاده شده بود باید فعال بودن source map رو چک کنیم.
8. بدون توجه به تکنولوژی سایت، میتونیم از Nuclei استفاده کنیم واسه اسکن آسیب پذیری های مختلف، آسیب پذیری هایی که بهمون میده duplicate میشن ولی بهمون دید میده که ممکنه چه آسیب پذیری های دیگه ای رو ممکنه داشته باشه.
9. با افزونه logger++ میایم و اطلاعات خودمون رو که تو response برمیگرده سرچ میکنیم.
`
Response.Body CONTAINS "alireza@gmail.com"
ممکنه یه API پیدا بشه که اطلاعات همه کاربرا رو به نمایش بزاره و منجر به PII بشه.
در غیر این صورت میتونیم CORS misconfiguration و cache deception رو تست کنیم اگه شرط های مورد نیاز رو داشته باشه.
10. با افزونه Reflection میتونیم پارامتر هایی که reflect میشن رو به دست بیاریم و XSS رو تست کنیم.
11. اگه WAF نبود، میتونیم با ffuf فایل و دایرکتوری فاز کنیم و به مسیر های مخفی سایت برسیم، همچنین میتونیم با استفاده از katana به صورت active فایل ها و دایرکتوری های استفاده شده تو سورس کد های سایت رو به دست بیاریم
12. با Google dork به دنبال directory listing متعلق به اون سایت باشیم که میتونیم فایل های درون اون دایرکتوری رو به صورت کامل ببینیم.
13. با Google dork به دنبال فایل های پسوند دار مثل .php .asp .jsp و... باشیم، چون اینا تکنولوژی های قدیمین و میتونیم آسیب پذیری های مختلفی رو تست کنیم.
14. با استفاده از waybackurl میتونیم فایل ها و دایرکتوری هایی که سامانه ی web archive به دست آورده رو بیرون بکشیم و ممکنه حین این کار به اطلاعات مهمی مثل backup file برسیم یا به یک فایل که functionality های مختلفی داشته باشه و باید تست بشه.
15. با js link finder مسیر هایی که تو فایل های js به دست میاد رو بررسی میکنیم.
16. گزارش هایی که Burp suite میده واسه دامنه رو بررسی میکنیم که خیلی وقتا اطلاعات مهمیه، مثل شناسایی IP داخل سورس کد(New asset) و....
17. انجام parameter fuzzing با استفاده از x8/arjun.

#bug_bounty_methodology
18👍3