Скрито хакване на пароли с помощта на Smbexec

Скрито хакване на пароли с помощта на Smbexec

Редовно пишем за това как хакерите често се опират на използването на методи за пробив без злонамерен код, за да избегнат откритие. Те буквално „оцеляват на издръжка“, използвайки стандартни средства на Windows, така спънвайки антивируси и други инструменти за откритие на злонамерена активност. Ние, като защитници, сега сме принудени да се справим с тъжните последствия от такива хитри техники за пробив: удобно разположен служител може да използва същия подход за тайно открадване на данни (интелектуална собственост на компанията, номера на кредитни карти). И ако не бърза, а работи бавно и незабележимо, ще бъде изключително сложно - но все пак възможно, ако се прилага правилният подход и съответните инструменти, - да открие такава активност.

От друга страна, не бих искал да демонизирам служителите, тъй като никой не иска да работи в бизнес среда като „1984“ на Оруел. За щастие, съществуват редица практични стъпки и трикове, които могат значително да усложнят живота на инсайдърите. Ще разгледаме скритите методи на атака, използвани от хакери служители с известен технически опит. А по-нататък ще обсъдим варианти за намаляване на такива рискове – ще разгледаме както техническите, така и организационните действия.

Какво лошо има в PsExec?

Едуард Сноудън, справедливо или не, стана синоним на инсайдерската кражба на данни. Между другото, не забравяйте да погледнете това бележка за други инсайдери, също заслужаващи известен статус на известност. Струва си да се подчертае един важен момент относно методите, които Сноудън е използвал - доколкото знаем, той не е инсталирал никакъв външен злонамерен софтуер!

Обратно, Сноудън е използвал малко социална инженерия и е вложил своето служебно положение на системен администратор, за да събира пароли и създава идентификационни данни. Нищо сложно - никакви mimikatz, атаки man-in-the-middle или metasploit.

Служителите на организациите не винаги са в уникалната позиция на Сноудън, но от концепцията „оцеляване на издръжка“ могат да се извлекат редица уроци, които трябва да се знаят - да не се извършват никаки вредоносни действия, които могат да бъдат открити, и особено внимателно да се използват идентификационните данни. Запомнете тази мисъл.

Psexec и неговият братовчед crackmapexec впечатлили безброй пентестъри, хакери и блогъри по информационна сигурност. В комбинация с mimikatz, psexec позволява на атакуващите да се движат в мрежата без да знаят паролата в открит вид.

Mimikatz interceptира NTLM хеш от процеса LSASS и след това предава токен или удостоверение – т.нар. атака „pass the hash“ – в psexec, позволявайки на злонамерен потребител да влезе на друг сървър от името на друг потребител. С всяко следващо движение към нов сървър, атакуващият събира допълнителни удостоверения, разширявайки спектъра на своите възможности за достъп до информация.

Когато за първи път започнах да работя с psexec, той ми се стори просто магически – благодаря на Марк Русинович, гениалният разработчик на psexec, – но знам и за неговите шумни компоненти. Той изобщо не е скрит!

Първият интересен факт за psexec е, че използва изключително сложен мрежов файлoв протокол SMB от Microsoft. Чрез SMB psexec предава малки бинарни файлове на целевата система, поставяйки ги в папка C:Windows.

След това psexec създава Windows услуга с копирания бинарен файл и я стартира под изключително "неочаквано" име PSEXECSVC. Можете да наблюдавате всичко това, както и аз, наблюдавайки отдалечената машина (вижте по-долу).

Скрито хакване на пароли с помощта на Smbexec

Визитната картичка на Psexec: услуга “PSEXECSVC”. Тя стартира бинарен файл, който е бил поставен през SMB в папка C:Windows.

Като финален етап, копираният бинарен файл отваря RPC връзка с целевия сървър и след това приема управляващи команди (по подразбиране – чрез cmd шел на Windows), изпълнявайки ги и пренасочвайки входа и изхода към домашната машина на атакуващия. По този начин злонамереният потребител вижда основния команден ред – същия, както ако беше свързан директно.

Множество компоненти и много шумен процес!

Сложният механизъм на вътрешните процеси на psexec обяснява съобщението, което ме озадачи по време на първите ми тестове преди няколко години: „Старт на PSEXECSVC ...“ и последващата пауза преди появата на командния ред.

Скрито хакване на пароли с помощта на Smbexec

Psexec от Impacket в действителност показва какво се случва „под капака“.

Не е изненада: psexec е извършвал огромно количество работа "под капота". Ако ви интересува по-подробно обяснение, запознайте се с този страхотен опис.

Очевидно е, че при използването си като инструмент за системно администриране, което беше първоначалното предназначение на psexec, няма нищо лошо в "бръмченето" на всичките тези механизми на Windows. За атакуващия, обаче, psexec ще създаде усложнения и за внимателен и хитър инсайдер, какъвто е Сноуден, psexec или подобна утилита ще бъде твърде голям риск.

И тук идва Smbexec

SMB е изкусен и скрит начин за пренос на файлове между сървъри и хакерите отдавна се внедряват директно в SMB. Предполагам, че всички вече знаят, че не бива да отварят SMB портовете 445 и 139 в интернет, нали?

През 2013 година на Defcon Ерик Милман (brav0hax) представи на света smbexec, за да могат пентестърите да тестват скрито нахлуване в SMB. Не знам цялата история, но след това Impacket допълнително усъвършенства smbexec. Всъщност, за тестовете си свалих конкретно скриптове от Impacket на Python с Github.

В отличие от psexec, smbexec избягва прехвърлянето на потенциално откриваем бинарен файл на целевата машина. Вместо това утилитата напълно живее от "паднали" команди чрез стартиране на локалната командна линия на Windows.

Ето какво прави: предава команда от атакуващата машина през SMB в специален входящ файл и след това създава и стартира сложна командна линия (като услуга на Windows), която ще изглежда позната на потребителите на Linux. Накратко: стартира нативен Windows шелл cmd, пренасочва изхода в друг файл и след това го изпраща обратно по SMB на машината на престъпника.

Най-добрият начин да разберете това е да изследвате командната линия, която успях да получа от журнала на събитията (вижте по-долу).

Скрито хакване на пароли с помощта на Smbexec

Не е ли това най-великият начин за пренасочване на вход/изход? Между другото, създаването на услуга има идентификатор на събитие 7045.

Както psexec, тя също така създава услуга, която извършва цялата работа, но след това услугата се изтрива – тя се използва само веднъж за стартиране на командата и след това изчезва! Служител по информационна сигурност, наблюдаващ машината на жертвата, няма да може да открие очевидни индикатори на атака: няма зловреден изпълним файл, няма постоянна услуга, която да се инсталира, и няма доказателства за използване на RPC, тъй като SMB е единственият метод за предаване на данни. Гениално!

От страна на атакуващия е наличен "псевдо-шел" с забавяния между изпращането на команда и получаването на отговор. Но това е напълно достатъчно за работа на злоумышленика – или инсайдера, или външния хакер, който вече има плацдарм – за да започне да търси интересен контент.

Скрито хакване на пароли с помощта на Smbexec

За извеждане на данни обратно от целевата машина към машината на злоумышленика, се използва smbclient. Да, това е същата Samba, утилита, само че преработена под Python скрипт от Impacket. Всъщност, smbclient ви позволява дискретно да организирате FTP предаване върху SMB.

Нека направим крачка назад и помислим какво би могло да даде това на служителя. В моя измислен сценарий, да кажем, на блогър, финансов анализатор или добре платен консултант по безопасност е разрешено да използва личен лаптоп за работа. В резултат на някакъв магически процес, тя се обижда на компанията и "пуска се надълбоко". В зависимост от операционната система на лаптопа, тя или използва Python версията от Impact, или Windows версията smbexec или smbclient в .exe формат.

Както Сноуден, тя научава паролата на друг потребител, или я подгледа през рамо, или пък има късмет и попада на текстов файл с паролата. С помощта на тези учетни данни, тя започва да изследва системата на ново ниво на привилегии.

Хакване на DCC: не ни трябва никакъв "глупав" Mimikatz

В моите предишни публикации относно пентестинга, много често съм използвал mimikatz. Това е страхотен инструмент за перехващане на учетни данни – NTLM хешове и дори пароли в открит вид, скрити в лаптопи и чакащи да бъдат използвани.
Времената се промениха. Инструментите за мониторинг станаха по-добри в детектирането и блокирането на mimikatz. Администраторите по информационна безопасност също имат множество опции за намаляване на рисковете, свързани с атаки от тип "pass the hash" (по-нататък – PtH).
Какво трябва да направи умният служител, за да събере допълнителни учетни данни без използването на mimikatz?

В набора от инструменти на Impacket има утилита на име secretsdump, която извлича удостоверения от кеша Domain Credential Cache, или накратко DCC. Насколько разбирам, ако домейновият потребител влиза на сървъра, но контролерът на домейна не е на разположение, DCC позволява на сървъра да удостоверява потребителя. Така или иначе, secretsdump ви позволява да дъмпите всички тези хешове, ако са налични.

DCC-хешовете са не NTLM-хешове и те Но можете да се опитате да ги хакнете, за да получите оригиналната парола. Въпреки това Microsoft стана по-умна по отношение на DCC и хакването на DCC-хешовете стана изключително сложно. Да, има.

hashcat , „най-бързият в света подбирач на пароли“, но изисква наличието на GPU за ефективна работа.Вместо това да помислим като Сноудън. Служителят може да проведе очна социална инженерия и, възможно, да разбере някаква информация за човека, чиято парола иска да хакне. Например, да разбере дали онлайн-акаунтът на този човек е бил хакван и да изучи паролата му в открит вид за наличие на подсказки.

И това е сценарият, по който реших да тръгна. Да предположим, че инсайдерът е научил, че неговият ръководител, Круела, е била хаквана няколко пъти на различни уеб ресурси. След анализа на няколко от тези пароли, той осъзнава, че Круела предпочита да използва формата на името на бейзболния отбор „Yankees“ с текущата година след него – „Yankees2015“.

Ако в момента се опитвате да възпроизведете това у вас в домашни условия, можете да изтеглите малко „C“

, реализиращ алгоритъма за хеширане DCC, и да го компилирате. код, между другото, добави поддръжка за DCC, така че може да бъде използвано и това. Да предположим, че инсайдерът не иска да се занимава с изучаване на John the Ripper и харесва да стартира „gcc“ на остарял C-код. John the RipperВ играеща роля на инсайдера, стартирах няколко различни комбинации и в крайна сметка успях да открия, че паролата на Круела е „Yankees2019“ (вижте по-долу). Мисията е изпълнена!

Малко социална инженерия, малко предположения и щипка Maltego – и вече сте на път да хакнете DCC-хеша.

Скрито хакване на пароли с помощта на Smbexec

Предлагам да приключим тук. Ще се върнем към този въпрос в други публикации и ще разгледаме още повече бавни и дискретни методи за атака, като продължаваме да разчитаме на страхотния набор от инструменти от Impacket.

Компанията Microsoft стартира уебсайта opensource.microsoft.com

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster