
Regularnie piszemy o tym, jak hakerzy często polegają na wykorzystaniu , aby uniknąć wykrycia. Dosłownie , wykorzystując standardowe narzędzia Windows, tym samym omijając antywirusy i inne narzędzia wykrywania złośliwej aktywności. My, jako obrońcy, jesteśmy teraz zmuszeni zmierzyć się z smutnymi konsekwencjami takich przebiegłych technik łamania: odpowiednio usytuowany pracownik może skorzystać z tej samej metody do skrytego kradzieży danych (własność intelektualna firmy, numery kart kredytowych). A jeśli nie będzie się spieszyć, a pracować powoli i niezauważalnie, będzie niezwykle trudno — ale nadal możliwe, jeśli zastosuje się odpowiednie podejście i odpowiednie , — zidentyfikować taką aktywność.
Z drugiej strony, nie chciałbym demonizować pracowników, ponieważ nikt nie chce pracować w środowisku biznesowym bezpośrednio z „1984” Orwella. Na szczęście istnieje szereg praktycznych kroków i trików, które mogą znacznie utrudnić życie insiderom. Omówimy ukryte metody ataków, stosowane przez hakerów i pracowników z pewnym zapleczem technicznym. A nieco dalej przedyskutujemy sposoby zmniejszenia takich ryzyk – zbadamy zarówno techniczne, jak i organizacyjne podejście.
Co jest złego w PsExec?
Edward Snowden, czy słusznie, czy nie, stał się synonimem wewnętrznej kradzieży danych. Przy okazji, nie zapomnij zerknąć na o innych insiderach, również zasługujących na pewien status rozgłosu. Warto podkreślić jeden ważny punkt dotyczący metod, które stosował Snowden — o ile nam wiadomo, on nie zainstalował żadnego zewnętrznego złośliwego oprogramowania!
Wręcz przeciwnie, Snowden zastosował nieco inżynierii społecznej i wykorzystał swoje stanowisko administracyjnego systemu do zbierania haseł i tworzenia kont. Nic skomplikowanego – żadnych , ataków lub .
Pracownicy organizacji nie zawsze znajdują się w unikalnej pozycji Snowdena, ale z koncepcji „życia na strawie odpadkowej” można wyciągnąć wiele lekcji, o których należy pamiętać — nie prowadzić żadnej złośliwej działalności, która mogłaby zostać wykryta, i szczególnie ostrożnie używać danych logowania. Zapamiętaj tę myśl.
i jego kuzyn zaimponowały niezliczonej liczbie pentesterów, hakerów i blogerów zajmujących się bezpieczeństwem IT. W połączeniu z mimikatz, psexec umożliwia atakującym poruszanie się wewnątrz sieci bez konieczności posiadania hasła w formie jawnej.
Mimikatz przechwytuje hasz NTLM z procesu LSASS, a następnie przekazuje token lub dane uwierzytelniające – tzw. atak „pass the hash” – w psexec, umożliwiając przestępcy logowanie się na innym serwerze jako inny użytkownik. Z każdym kolejnym przemieszczeniem się na nowy serwer, atakujący zbiera dodatkowe dane uwierzytelniające, rozszerzając swoje możliwości w poszukiwaniu dostępnych treści.
Kiedy po raz pierwszy zacząłem pracować z psexec, wydawał mi się magiczny – dziękuję , genialnemu twórcy psexec, – ale również wiem o jego hałaśliwych komponentach. Wcale nie jest dyskretny!
Pierwszy interesujący fakt o psexec polega na tym, że wykorzystuje niezwykle złożony sieciowy protokół plikowy SMB od Microsoftu. Dzięki SMB psexec przesyła małe pliki binarne na docelowy system, umieszczając je w folderze C:Windows.
Następnie psexec tworzy usługę Windows z skopiowanego pliku binarnego i uruchamia ją pod niezwykle „niespodziewaną” nazwą PSEXECSVC. Możesz wszystko to rzeczywiście zobaczyć, tak jak ja, obserwując zdalną maszynę (patrz poniżej).

Wizytówka Psexec: usługa „PSEXECSVC”. Uruchamia plik binarny, który został przesłany przez SMB do folderu C:Windows.
W ramach końcowej fazy, skopiowany plik binarny otwiera połączenie RPC z docelowym serwerem, a następnie przyjmuje polecenia sterujące (domyślnie – przez powłokę cmd Windows), uruchamiając je i przekierowując wejście oraz wyjście na komputer atakującego. Przestępca widzi podstawowy wiersz polecenia – taki sam, jakby był podłączony bezpośrednio.
Wiele komponentów i bardzo hałaśliwy proces!
Skomplikowany mechanizm wewnętrznych procesów psexec tłumaczy komunikat, który zdziwił mnie podczas moich pierwszych testów kilka lat temu: „Starting PSEXECSVC …” i następująca po tym pauza przed pojawieniem się wiersza poleceń.

Psexec z Impacket w rzeczywistości pokazuje, co dzieje się „pod maską”.
Nie ma w tym nic dziwnego: psexec wykonuje ogromną ilość pracy „pod pokrywką”. Jeśli chcesz poznać szczegółowe wyjaśnienie, zapoznaj się z wspaniałym opisem.
Jasne jest, że stosowanie psexec jako narzędzia do administracji systemem, co było jego pierwotnym celem, nie powoduje większych problemów związanych z „brzęczeniem” tych wszystkich mechanizmów Windows. Jednak dla atakującego psexec stwarza komplikacje, a dla ostrożnego i przebiegłego insajdera, takiego jak Snowden, psexec czy podobne narzędzie stanowi zbyt duże ryzyko. W tym momencie pojawia się Smbexec SMB to wyrafinowany i dyskretny sposób transferu plików między serwerami, a hakerzy od zawsze wchodzili bezpośrednio w SMB. Myślę, że wszyscy wiedzą, że nie należy
otwierać
portów SMB 445 i 139 w Internecie, prawda? brav0hax
) zaprezentował, aby pentesterzy mogli przetestować dyskretny atak na SMB. Nie znam całej historii, ale później Impacket dodatkowo doskonalił smbexec. Tak naprawdę, do swojego testowania pobrałem właśnie skrypty Impacket w Pythonie z unika .
przesyłania potencjalnie wykrywalnego pliku binarnego na docelową maszynę. Zamiast tego narzędzie w pełni korzysta z „resztek” za pomocą uruchomienia lokalnej wiersza poleceń Windows. Oto, co robi: przesyła polecenie z maszyny atakującej przez SMB do specjalnego pliku przychodzącego, a następnie tworzy i uruchamia złożoną linię poleceń (jak usługa Windows), która będzie znajoma użytkownikom Linuksa. Krótko mówiąc: uruchamia natywny shell Windows cmd, przekierowuje wyjście do innego pliku, a następnie przesyła go z powrotem przez SMB na maszynę przestępcy. Najlepszym sposobem, aby to zrozumieć, będzie przeanalizowanie wiersza poleceń, który udało mi się uzyskać z dziennika zdarzeń (zob. poniżej).
Czy to nie jest najwybitniejszy sposób przekierowywania wejścia/wyjścia? Nawiasem mówiąc, utworzenie usługi ma identyfikator zdarzenia 7045.
Podobnie jak psexec, smbexec także tworzy usługę, która wykonuje całą pracę, ale ta usługa

jest usuwana
– jest używana tylko raz do uruchomienia polecenia, a potem znika! Pracownik ds. bezpieczeństwa, obserwujący maszynę ofiary, nie będzie w stanie zauważyć oczywistych znaków. oczywistych wskaźników ataków: nie ma żadnego złośliwego pliku do uruchomienia, żadna stała usługa nie jest instalowana, i nie ma dowodów na wykorzystanie RPC, ponieważ SMB jest jedynym środkiem przesyłu danych. Geniusz!
Ze strony atakującego dostępny jest 'pseudo-shel' z opóźnieniami pomiędzy wysłaniem polecenia a otrzymaniem odpowiedzi. Ale to w zupełności wystarcza, aby przestępca - albo insider, albo zewnętrzny haker, który już ma punkt zaczepienia - mógł zacząć szukać interesujących informacji.

Aby przesłać dane z powrotem z docelowej maszyny na maszynę przestępcy, korzysta się z . Tak, to ta sama Samba , ale tylko przerobiona na skrypt Pythona przez Impacket. W rzeczywistości smbclient pozwala na dyskretną organizację przesyłania FTP na SMB.
Zróbmy krok wstecz i zastanówmy się, co to może oznaczać dla pracownika. W moim fikcyjnym scenariuszu, powiedzmy, blogera, analityka finansowego lub wysoko opłacanego konsultanta ds. bezpieczeństwa, któremu zezwolono na użycie osobistego laptopa do pracy. W wyniku pewnego magicznego procesu obraża się na firmę i "gubi się w szaleństwie". W zależności od systemu operacyjnego laptopa, korzysta albo z wersji Pythona od Impact, albo z wersji Windows smbexec lub smbclient w formie pliku .exe.
Jak Snowden, dowiaduje się hasła innego użytkownika, either podglądając je przez ramię, albo ma szczęście i natrafia na plik tekstowy z hasłem. I z tymi danymi logowania zaczyna przeszukiwać system na nowym poziomie uprawnień.
Hacking DCC: nie potrzebujemy żadnego 'głupiego' Mimikatz
W moich poprzednich postach dotyczących pentestu bardzo często korzystałem z mimikatz. To wspaniałe narzędzie do przechwytywania danych logowania - haseł NTLM i nawet haseł w postaci jawnej, ukrytych w laptopach i czekających na wykorzystanie.
Czasy się zmieniły. Narzędzia monitorujące stały się lepsze w wykrywaniu i blokowaniu mimikatz. Administratorzy bezpieczeństwa informacji mają również więcej opcji zmniejszenia ryzyka związanego z atakami typu 'pass the hash' (PtH).
Co więc powinien zrobić inteligentny pracownik, aby zebrać dodatkowe dane logowania bez użycia mimikatz?
W zestawie Impacket znajduje się narzędzie o nazwie , która wyciąga dane logowania z pamięci podręcznej danych uwierzytelniających domeny, w skrócie DCC. Z tego co rozumiem, jeśli użytkownik domeny loguje się na serwer, a kontroler domeny jest w tym czasie niedostępny, DCC pozwala serwerowi na uwierzytelnienie użytkownika. Tak czy inaczej, secretsdump pozwala na zrzut wszystkich tych hashy, jeśli są one dostępne.
Hashe DCC to nie hashe NTML i ich nie można używać do ataku PtH.
Cóż, możesz spróbować je złamać, aby uzyskać pierwotne hasło. Jednak Microsoft stał się mądrzejszy w pracy z DCC i złamanie hashy DCC stało się niezwykle trudne. Tak, istnieje , „najszybszy na świecie łamańce haseł”, ale wymaga GPU do efektywnej pracy.
Zamiast tego, spróbujmy myśleć jak Snowden. Pracownik może przeprowadzić osobistą inżynierię społeczną i być może uzyskać jakiekolwiek informacje o osobie, której hasło chce złamać. Na przykład, dowiedzieć się, czy kiedykolwiek włamywano się do konta online tej osoby i zbadać jej hasło w otwartej formie w poszukiwaniu jakichkolwiek wskazówek.
I to jest scenariusz, którym postanowiłem podążać. Załóżmy, że insajder dowiedział się, że jego przełożony, Cruella, była wielokrotnie włamywana na różnych serwisach. Po zanalizowaniu kilku z tych haseł zdaje sobie sprawę, że Cruella lubi używać formatu nazwy drużyny baseballowej „Yankees” i obecnego roku – „Yankees2015”.
Jeśli teraz próbujesz powtórzyć to w domu, możesz pobrać mały program „C”, , implementujący algorytm haszowania DCC, i skompilować go. , swoją drogą, dodał wsparcie dla DCC, więc można go również użyć. Załóżmy, że insajder nie chce bawić się w analizowanie Johna Rippera i lubi uruchamiać „gcc” na przestarzałym kodzie C.
Odgrywając rolę insajdera, uruchomiłem kilka różnych kombinacji i ostatecznie udało mi się odkryć, że hasło Cruelli to „Yankees2019” (patrz poniżej). Misja zakończona!

Trochę inżynierii społecznej, odrobina zgadywania i szczypta Maltego – i już jesteś na drodze do złamania hasha DCC.
Proponuję na tym zakończyć. Jeszcze wrócimy do tego zagadnienia w innych publikacjach i omówimy więcej wolnych i ukrytych metod ataku, wciąż polegając na wspaniałym zestawie narzędzi od Impacket.
Źródło: habr.com
