1 762
مشترکین
-224 ساعت
-17 روز
+230 روز
آرشیو پست ها
امنیت سیستم های کنترل صنعتی قسمت ۲ :
سیر تکامل 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
خب شروع میکنیم.
اکثر آموزش های پابلیک تو وب فارسی بدون درک کردن مفاهیم مهم زیرساخت صنعتی وارد فاز اکسپلویت میشن که کاربردی نیست، مثل استفاده از 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 استاندارد های امنیتی به شکلی که تعریف شدن استفاده نمیشن خیلی وقتا.
Repost from Security Analysis
⭕️ امنیت CI/CD رو امشب در خدمتتون هستیم:
🕘 ساعت ۹
💡روشهای نفوذ از طریق CI/CD
💡دسترسی به سرورهای تست و پروداکشن
💡دسترسی به SECRETها
💡اصول امن سازی و توسعه امن نرم افزار
meet.google.com/rdr-cutu-qwd
#CICD #Security
@securation
تا حالا شده بخواین کل سرور های آسیب پذیر به یک CVE رو پیدا کنین؟
با shodan و فیلتر vuln این کار ممکنه، اما با اکانت رایگان نمیشه اینکارو انجام داد.
تو آموزشی که اینجا قرار میدم میتونیم این محدودیت رو بایپس کنیم و هزاران سرور آسیب پذیر به یک CVE خاص رو با اکانت رایگان پیدا کنیم.
برای مثال با این کوئری میتونیم کلی سرور آسیب پذیر به BlueKeep رو پیدا کنیم :
Country:"JP" Org:"NTT DOCOMO,INC." OS:"Windows 7 Professional" ssl.version:"tlsv1" ssl.jarm:"26d26d16d26d26d22c26d26d26d26dfd9c9d14e4f4f67f94f0359f8b28f532"آموزش ساخت کوئری در ویدئو زیر :
برای پیدا کردن Public IP های یک منطقه (مثل یک دانشگاه، سازمان، محله یا حتی روستا)، باید از طریق Google Maps مختصات جغرافیایی اون منطقه رو به دست بیارین و بعد در سایت shodan با فیلتر geo سرچش کنین.
یکی از منابع غیررسمی برای یادگیری، وب سایت slideshare.net است. با باز کردن یه اسلاید، معمولا اسلاید های مرتبط با همون موضوع رو هم پیشنهاد میده. برای مثال این اسلاید درباره امنیت OT است و در بخش Recommended موضوعاتی مثل IOT , ICS رو آورده.
برای دانلود اسلاید ها میتونین از slidesaver.app استفاده کنین.
Repost from APT IRAN مرکز تحقیقاتی
در این عکس مشاهده میکنید اطلاعات کارمندان Nobitex به مدت طولانی در اختیار مهاجمان بوده.
همانطور که گفتیم متاسفانه تمام سیستم آلوده بوده و این مربوط به امروز یا دیروز نیست و این یک زنجیره حملات به بخش مالی در کشور هستند.
سایت https://pocorexp.nsa.im/ همهی CVEها رو فهرست کرده و اگر برای هرکدوم اکسپلویت پابلیک وجود داشته باشه، اون رو هم پایینش قرار میده.
Repost from GO-TO CVE
سلام بچه ها
چلنج آوردم براتون خیلی آسون و راحت
ربطی به علم xss هم اونقدی نداره فقط یه check ساده توی کد javascript اش رو باید پاس کنید
https://attacker-newrelic.com/challenge.html
در Django یک اقدام امنیتی برای جلوگیری از CSRF وجود داره به نام
CSRF_TRUSTED_ORIGINS که یک وایت لیسته و به Origin های داخل اون اجازه میده درخواست های Cross Origin ارسال کنن و تنظیم این مورد جلوی اکسپلویت CSRF از دامنه هکر رو میگیره.
این یعنی با داشتن XSS از اون Origin میتونیم روی تارگت CSRF بزنیم.
از بیرون نمیتونیم این تنظیمات رو ببینیم. ولی اگر Debug mode سامانه فعال باشه میتونیم این تنظیمات رو ببینیم.
اگه Debug mode فعال نبود باید همه ی دامنه های کمپانی رو FUZZ کنیم(بررسی دامنه های CSP هم خالی از لطف نیست).
#CSRF
#Djangoاگه تو وردپرس Directory listing فعال باشه، معمولا حجم زیادی از دیتارو تصاویر تشکیل میدن در صورتی که باید دنبال فایل هایی مثل log , zip , sql و...... باشیم.
با اسکریپت زیر میتونیم همه ی فایل های مهم و حساس رو به صورت اتومیت به دست بیاریم(دایرکتوری های مربوط به سال 2016 تا 2025 رو بررسی میکنه)
for year in {2016..2025}; do
for month in {01..12}; do
base="https://target.tld/wp-content/uploads/$year/$month/"
echo "[+] Checking $base"
curl -s "$base" | grep -Eo 'href="[^"]+"' | cut -d'"' -f2 |
grep -Ei '\.(bak|old|backup|sql|env|git|log|cfg|conf|ini|db|json|xml|yml|yaml|zip|tar|gz|rar|7z|pem|crt|key|csr|p12|swp|php~|txt|inc|htpasswd|htaccess)(\?|$)' |
while read path; do
if [[ "$path" =~ ^https?:// ]]; then
echo "$path"
elif [[ "$path" =~ ^/ ]]; then
echo "https://target.tld$path"
else
echo "${base}${path}"
fi
done
done
done
#WordPressاگه تو وردپرس Directory listing فعال باشه، معمولا حجم زیادی از دیتارو تصاویر تشکیل میدن در صورتی که باید دنبال فایل هایی مثل log , zip , config و...... باشیم.
با اسکریپت زیر میتونیم همه ی فایل های مهم و حساس رو به صورت اتومیت به دست بیاریم.
for year in {2016..2025}; do
for month in {01..12}; do
base="https://target.tld/wp-content/uploads/$year/$month/"
echo "[+] Checking $base"
curl -s "$base" | grep -Eo 'href="[^"]+"' | cut -d'"' -f2 |
grep -Ei '\.(bak|old|backup|sql|env|git|log|cfg|conf|ini|db|json|xml|yml|yaml|zip|tar|gz|rar|7z|pem|crt|key|csr|p12|swp|php~|txt|inc|htpasswd|htaccess)(\?|$)' |
while read path; do
if [[ "$path" =~ ^https?:// ]]; then
echo "$path"
elif [[ "$path" =~ ^/ ]]; then
echo "https://target.tld$path"
else
echo "${base}${path}"
fi
done
done
done
جاهایی که rate limit روی شماره کار میکنه، میتونیم با اضافه کردن + به +98 بایپسش کنیم.
#rate_limit_bypass
اصولی برای توسعه امن نرم افزار =
1. Least Privilege (اصل کمترین سطح دسترسی) :
برای پیاده سازی این اصل، باید پایین ترین سطح دسترسی به سرویس ها و کاربران داده شود.
برای مثال :
در SQL Server باید مواردی مانند xp_cmdshell غیر فعال شود. از حساب کاربری root استفاده نشود.رعایت نکردن این موارد منجر به افزایش سطح دسترسی میشود. 2. leveraging existing components (اصل استفاده از مؤلفههای موجود و اثبات شده) : باید به جای نوشتن فانکشن امنیتی از صفر، از روش ها و کتابخونه ها و الگوریتم های موجود و اثبات شده استفاده کنیم. برای مثال :
برای Hashing به جای اینکه از الگوریتم های خود ساخته استفاده کنیم بهتره از الگوریتم هایی که طی سال ها اثبات شدن استفاده کنیم مانند bcrypt. در Web Application استفاده از Session Management استاندارد و آزمایششده بهمراتب امنتر از روش های کاستوم است.#application_security
جاهایی که ورودی کاربر داخل cookie قرار میگیره مثل username میشه یه username با طول کاراکتر زیاد رو فرستاد و درنتیجه سرور وقتی کل دیتارو تو cookie قرار بده خطایی ظاهر میشه با عنوان Cookie یا Request header طولانیه و مرورگر نمیتونه اون سایت رو باز کنه تا وقتی cookie پاک بشه. به این آسیب پذیری میگن Cookie Bomb که منجر به DOS میشه. اما این یک سناریو self هست و برای اکسپلویت باید پارامتری پیدا کرد که مقدارش دقیقا تو cookie قرار بگیره و وقتی لینک رو قربانی باز کرد اکسپلویت بشه(مثل سناریو های CSRF که one click هست). برای مثال :
https://target.com/?param=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.........
#Cookie_Bomb
#DOSقبل از یادگیری مباحث فنی تو کامپیوتر بهتره اول "نحوهی سوال پرسیدن رو یاد گرفت"
سوال رو مستقیم بپرسین بدون سرشماری افراد.
یه سلام گفتین منتظر جواب نباشین ادامش سوالتون رو بپرسین.
سوالتون رو کامل و دقیق تو یه پیام بپرسید که بیننده دقیق متوجه بشه خواستهی شما چیه بدون اینکه سوالی بپرسه.
تو گروه قبل از مطرح کردن چیزی حتما قوانینشو بخونین و خارج از قوانین گروه موضوعی مطرح نکنین.
قبل سوال پرسیدن تو گروه یه سرچ کنین شاید سوال شمارو قبلا یکی پرسیده و به جواب رسیده.
پیامتون رو بریده بریده نفرستید.
اگر نحوهی سوال پرسیدن شما یکی از حالت های بالا هست و اگر از گروهی بن شدید یا سوالتون رو جواب ندادن یا جواب سر بالا گرفتید نباید ناراحت بشید چون شما نحوهی مشارکت با بقیه رو بلد نیستید و برای وقت بقیه ارزش قائل نمیشید.
