Rozmowa o cyberbezpieczeństwie z Jeffreyem Hicksem: czy PowerShell jest dobrym narzędziem hakerskim?

w tym odcinku rozmowy o cyberbezpieczeństwie mam Jeffreya Hicksa. Jest absolutnym profesjonalistą w PowerShell. Ma ponad 25-letnie doświadczenie w pracy w branży infrastrukturalnej. Jest także MVP w specjalizacji PowerShell. Można go znaleźć na Twitterze @JeffHicks i na jego blogu: jdhitsolutions.com

PowerShell-dobre narzędzie hakerskie?

Paula:

sam jestem testerem penetracji i zauważyłem, że PowerShell stał się popularnym narzędziem dla wszystkich, takich jak Administratorzy, a także inne osoby z innych specjalizacji. Używam PowerShella do hakowania. Ale czy uważasz, że PowerShell może być dobrym narzędziem hakerskim? Co o tym myślisz?

:

wiesz, to ciągle się pojawia. Pojawił się, gdy PowerShell pojawił się po raz pierwszy, ponieważ właśnie wróciliśmy z czasów VBScript, i Melissa, ILOVEYOU i te wszystkie brzydkie rzeczy i wszyscy mówili: „o Nie, Microsoft znowu nam to zrobi.”Tak i nie. PowerShell to wspaniałe narzędzie do zarządzania. To dla informatyków. Mogą uzyskać ogromną ilość pracy przy bardzo małej pracy.

oczywiście, jeśli jesteś hakerem lub złym aktorem i chcesz szybko zrobić wiele złych rzeczy, na pewno PowerShell jest doskonałym narzędziem do użycia przede wszystkim dlatego, że nie tylko masz wszystkie wbudowane listy poleceń, ale masz bezpośredni dostęp do pracy pociągu demo. Jeśli masz doświadczenie programistyczne,możesz zrobić ogromną liczbę rzeczy, pod warunkiem uzyskania dostępu.

gdy masz dostęp, jeśli posiadasz już box, to fakt, że używasz PowerShella jest naprawdę nieistotny, jesteś już w złym doo-doo. Ale oczywiście, jeśli jestem złym facetem i chcę szybko zrobić wiele, w tym posprzątać moje ślady, PowerShell jest do tego idealnym narzędziem.

Paula:

szczególnie mamy tak wiele różnych dodatkowych modułów, które można uzyskać, które są bezpłatne do pobrania, które mogą pomóc w bardziej hakerskich działaniach.

:

Jasne.

Paula:

istnieje kilka Mimikatz również napisane w PowerShell. Jesteś w stanie ukraść poświadczenia, po prostu za pomocą PowerShell. Osobiście uważam, że to fajne, w przypadku hackowania PowerShell, to nie jest coś, co jest rozpoznawane przez antywirusa, prawda?

:

racja, ponieważ jest to silnik zarządzania, który sam PowerShell musi być hostowany w aplikacji. Można uruchomić silnik PowerShell tylko z CMD prompt lub nawet myślę w pamięci, więc rzeczy antywirusowe nie musi wykryć, że. To nie jest tak, że ludzie będą uruchamiać skrypty, ponieważ jest to coś, co może być wykrywane przez program antywirusowy. Ale nie, antywirus nie może tego zrobić.

mamy nowe rzeczy w PowerShell wersji 5.1, gdzie Microsoft naprawdę ratcheted się rejestrowanie, więc niekoniecznie być w stanie natychmiast wiedzieć, „Ops, zostałem naruszony,” ale będziesz w stanie wrócić po fakcie i przekopać wszystkie dzienniki i zidentyfikować: co zrobili, kto to zrobił, do jakich maszyn mieli dostęp, Jak się dostali? Przynajmniej z punktu widzenia medycyny sądowej, odzyskiwania, masz teraz znacznie więcej informacji niż kiedykolwiek w poprzedniej wersji PowerShell.

Paula:

i jest tak łatwo dostępny, prawda?

:

jest bardzo dostępny.

czy musimy się bać PowerShella?

Paula:

tak, zastanawiam się, ponieważ ogólnie z perspektywy PowerShella, to może być również narzędzie, którego ludzie się boją. Administratorzy obawiają się, że PowerShell może być użyty w przedsiębiorstwie, aby zapobiec hakowaniu, ponieważ nigdy tego nie zobaczą.

macie jakieś rady dla takich ludzi?

:

PowerShell domyślnie ma wbudowane Osłony bezpieczeństwa. To nie są granice bezpieczeństwa. Są jak pokrywka na przycisku startu nuklearnego. Musisz podnieść pokrywę, ale najpierw musisz mieć dostęp do pokrywy, aby ją podnieść. Są takie rzeczy jak wykonywanie skryptu. Domyślnie nie można uruchomić skryptu PowerShell. Ponadto, jeśli ktoś otrzymywał złośliwy skrypt w e-mailu i dwukrotnie go klikał, nie będziemy uruchamiać skryptu PowerShell.

z pewnością możesz to zmienić jako admin. Jeśli nie wiesz, co robisz i jesteś całkowicie niekompetentny i powinieneś zostać zwolniony i mieć coś złego w uruchomieniu, lub jeśli ktoś skopiuje zawartość tego skryptu, otworzy monit PowerShell, wkleje go. Jeśli mają uprawnienia i niezbędne narzędzia, PowerShell z przyjemnością to zrobi. Łatwizna. Nie dajesz swoim użytkownikom, w tym administratorom, nie działają z podwyższonymi poświadczeniami. Tak więc ich sesje PowerShell są zawsze otwarte jako niższy administrator. Nawet jeśli w jakiś sposób niezamierzony kod został wykonany, nie mają do tego niezbędnych uprawnień. To świetny sposób na ograniczenie.Spójrz na zdrowy rozsądek.

przyjrzyjmy się tylko Administracji

Paula:

brzmi nieźle. Istnieje również wystarczająco dużo Administracji. Co o tym myślisz?

:

wystarczy administracja jest remoting tool – Zestaw Narzędzi faktycznie-który jest przeznaczony dla administratorów, aby zapewnić bardziej bezpieczne środowisko remoting. To znaczy, PowerShell, sposób, w jaki to naprawdę świeci w enterprise, to to, że mogę zarządzać tysiącem serwerów na raz. Chcę znaleźć dzienniki zdarzeń zapytań, muszę sprawdzić dziennik zdarzeń systemowych szukając, powiedzieć, może to, co jest na serwerze zrestartowanym, lub inne wskazanie, że zostałem naruszony. Remoting PowerShell sprawia, że jest to naprawdę łatwe.

jednak domyślnie musisz być administratorem i masz dostęp do wszystkiego. Ale dzięki JEA możesz stworzyć tak zwany ograniczony lub delegowany punkt końcowy. Nadal mogę połączyć się z serwerem, ale wtedy mogę powiedzieć: „tylko ci ludzie mogą łączyć się z tym punktem końcowym, a kiedy się połączą, mogą tylko uruchamiać te polecenia.”

Paula:

co jest całkiem fajne.

:

co więcej, mogę powiedzieć: „Wiesz co? Mogą uruchamiać te polecenia, ale mogą używać tylko tych parametrów, a jeśli te parametry, mogą być tylko tymi wartościami.”Można naprawdę ograniczyć to, co mogą zrobić. Możemy pójść jeszcze dalej, wiążąc go z wystarczającym zestawem narzędzi administracyjnych. Są dwa narzędzia JEA, które zawsze mi się mylą, gdzie można w zasadzie wypchnąć punkt końcowy i zmusić kogoś do powiedzenia: „Masz pół godziny na zrobienie swoich rzeczy, a potem ten punkt końcowy zniknął i nie masz już dostępu”.

PowerShell i remoting

Microsoft zdaje sobie sprawę, że z pewnością istnieje wiele luk w zabezpieczeniach. Ludzie z pewnością mogą skorzystać z PowerShell i remoting, a my robimy rzeczy, aby to utrudnić. Edukacja jest dużą jej częścią. Kolejną rzeczą z remoting, ponieważ o tym wspomnieliśmy, jest to, że wielu profesjonalistów IT myśli, że po włączeniu remoting PowerShell, są gotowe.

ale tak nie jest. PowerShell remoting, włączanie tego, co musisz mieć teraz, ponieważ nie ma sposobu, aby zarządzać rzeczami w Windows. To naprawdę tylko pierwszy krok. Ludzie zapominają: „Och, cóż, mógłbym skonfigurować reguły zapory sieciowej lub użyć IPsec. Mamy różne narzędzia sieciowe. Zupełnie zapominają: „to PowerShell, skończyłem.”Nie. To dopiero pierwszy krok.

nie musisz mieć wszystkich serwerów dostępnych z każdego adresu IP z twojego środowiska. Prawda?

Paula:

słuszna Uwaga.

:

chcę tylko moich adminów domeny, wiem jakie są ich pulpity. Tylko oni mają dostęp, więc mogę robić rzeczy w sieci mądrze.

Paula:

możesz to przyciąć.

:

nie mogę tego przyciąć, więc myślę, że wielu informatyków o tym zapomina. Widzą PowerShella. Podniecają się. Mówią: „o, remoting jest włączony, mogę uzyskać dostęp do wszystkich tych pudełek, mogę iść. Jeśli naprawdę chcesz być bezpieczny, masz więcej pracy, którą chcesz zrobić.

jak PowerShell może poprawić bezpieczeństwo infrastruktury?

Paula:

Tak, oczywiście. Z naszej strony widzimy również, że na przykład istnieją firmy, które chcą wdrożyć rozwiązania zapobiegające wykonywaniu kodu i domyślnie, nawet w Outlooku lub w Windows, masz możliwość włączenia domyślnych reguł, jak je nazywają. Domyślne reguły pozwalają uruchamiać wszystko, co znajduje się w folderze Windows i wszystko, co znajduje się w folderze program files.

zapomnieli, że może to być również niebezpieczne narzędzie, jeśli jest w rękach użytkownika, a użytkownik nie wie, co zrobić. Nadal jest to Użytkownik, ale możemy również, na przykład, zaszyfrować dane za pomocą PowerShell i poprosić o okup. To tylko pomysł, o którym też myśleliśmy.

Ok, więc jak myślisz, jak PowerShell może poprawić bezpieczeństwo infrastruktury i jak zrobić z niego dobre narzędzie zabezpieczające nasze serwery, aby odnieść sukces w walce z hakerami?

:

w porządku, więc kilka rzeczy, które przychodzą mi do głowy. Najpierw wersja PowerShell 5.1 jest teraz dostępny, w tym w dół poziomu do 2008 R2, co miejmy nadzieję, że jest to minimalny poziom, który ludzie działają na swoich serwerach. To jest coś, do czego zachęcam ludzi.

Sprawdź README, więc nie jesteś uruchomiony na serwerze, który może mieć pewne specjalne ograniczenia, ale to zastrzeżenie na bok, ponieważ z 5.1 otrzymasz wszystkie najnowsze funkcje bezpieczeństwa, takie jak logowanie i wszystko to. Po pierwsze, upewnij się, że korzystasz z najnowszej wersji programu PowerShell. Inną funkcją, która moim zdaniem może naprawdę należeć do kategorii bezpieczeństwa, jest DSC: Żądana Konfiguracja Stanu.

Paula:

to świetna cecha.

:

ponieważ z DSC, mogę utworzyć konfigurację, aby powiedzieć, ” Chcę, aby ten serwer wyglądał tak.”Chcę mieć te serwery, te klucze rejestru, te funkcje, cokolwiek. Mogę albo skonfigurować serwer tak, aby ściągał go z centralnego serwera lub pchał do niego. Ale najważniejsze jest to, że mogę skonfigurować ten serwer i powiedzieć: „Hej, sprawdzaj co 15 minut, a jeśli coś jest niezgodne z przepisami, poza konfiguracją, zresetuj to.”

Paula:

to świetnie.

:

DSC to naprawdę framework. Powiedziano mi, że jest jakaś część Departamentu Obrony w USA i używają DSC. Zbudowali własne narzędzia i mają mechanizm, ponieważ chcą sprawdzić szybciej niż co 15 minut, że jeśli wykryją, że serwer jest niezgodny z przepisami, zakładają, że został naruszony i zabijają go.

mają zautomatyzowane procedury, aby wywołać nowy serwer, ponieważ już wiedzą, jak ma wyglądać. Wszystko jest zautomatyzowane. Mogą zabić serwer lub wyłączyć go, aby później go przeanalizować i powiedzieć: „Ok, co się stało? Czy to był prawdziwy problem, czy niektórzy stażyści zrobili coś, czego nie powinni robić?”Ale korzystanie z DSC byłoby świetnym sposobem na upewnienie się, że serwer jest zawsze skonfigurowany tak, jak chcę.

Paula:

co właściwie prowadzi mnie do interesującego wniosku, że DSC, na przykład, może być częścią planu reagowania na incydenty. Na przykład, gdy mamy problem, jesteśmy zhakowani, jak powiedziałeś, jeden z serwerów jest dotknięty. Po prostu go wycieramy. Mamy pełną wygodę w środku, że mamy rozwiązanie, które działa całkiem dobrze, aby zmyślić rzeczy ponownie, i wracamy do działania.

:

cały punkt, który usłyszysz od Microsoftu, to od Jeffreya Snovera, jest taki, że informatycy muszą zacząć traktować swoje serwery jak bydło, a nie jak zwierzęta domowe.

Paula:

dobre porównanie.

czasy, kiedy budowaliśmy serwery od podstaw…

Jeffrey:

najdłużej, a jestem w nim ponad 25 lat, zbudowalibyśmy serwer. Zbudowanie serwera zajęłoby Ci tydzień. Musisz zamówić sprzęt, włożyć wszystko, ręcznie załadować dyskietki, żeby wszystko zdobyć. To zajmie dużo czasu. Zrobiłbyś ten serwer z miłością. Jeśli coś poszło nie tak, ” och, naprawię cię, kochanie. Nic Ci nie będzie.”

Na razie, po pierwsze, serwery są w chmurze. Nie ma ich na końcu korytarza. Teraz po prostu decydujemy i nie nadajemy jej wymyślnych, pięknych imion. To tylko liczba. Jeśli serwer jest zagrożony lub zawiedzie w jakiś sposób, nie poświęcam czasu, aby spróbować go naprawić. Po prostu robię hamburgera, odpalam nową maszynę i wysyłam konfigurację i Wiem, że mogę iść. Oczywiście.

jedna rada od Jeffreya Hicksa dla tych, którzy chcą zostać profesjonalistami IT

Paula:

to bardzo fajne. Oto trudne pytanie. Pytanie brzmi:: Jeśli mamy kogoś, kto jest na samym początku swojej kariery i patrzy na Ciebie i mówi: „Chcę być taki jak on, Chcę wiedzieć wszystkie rzeczy PowerShell i być prawdziwym geekiem”, co byś doradził takiej osobie?

:

oczywiście, istnieje wiele książek i rzeczy. W rzeczywistości mam stronę na moim blogu dotyczącą niezbędnych zasobów PowerShell, ponieważ cały czas o to pytam. „Na jakie książki mam patrzeć? Jakie filmy?”i to wszystko. Oczywiście dużo tego napisałem i stworzyłem. Najważniejsze w uczeniu się PowerShell jest to, że jest to język. To tak, jakbym miał próbować uczyć się polskiego, musiałbym go używać codziennie, aby stać się biegły w nim.

PowerShell jest taki sam. Musisz znaleźć sposób, aby go używać każdego dnia. To numer jeden na wynos.

Paula:

więc ktoś powinien spędzać czas i być tam codziennie, uczyć się, uczyć się czytać książki itd.?

:

nawet jeśli nie robisz nic więcej niż czytanie tematów pomocy na jakieś polecenie raz dziennie.

Paula:

Ok. To może wystarczyć. Tak, jak nauka jednego słowa w języku obcym

:

dokładnie. Uczyć się czegoś nowego. Ale musisz go użyć.

porady dla bardziej zaawansowanych…

Paula:

jasne, a co z zaawansowanymi facetami. Masz administratora i infrastrukturę, a on oczywiście wie wszystko, czym zarządza, albo ona zarządza i w zasadzie ten facet chce wiedzieć więcej w PowerShell, być lepszym, być biegłym. Jakiej rady udzieliłbyś takiej osobie?

:

dam im właściwie dwie małe Rady. Po pierwsze, odwróć się i podziel się swoją wiedzą z młodszą osobą, nie tylko dlatego, że jest to słuszne, ale także dlatego, że próbujesz sformułować swoje myśli. „Dobra, jak mam się komunikować lub dzielić tym, co wiem?”Możesz sobie uświadomić,” może nie wiem tego tak dobrze, jak powinienem. Muszę wrócić i się odświeżyć.”Uczysz się trochę więcej, próbując kogoś nauczyć, nie masz wyboru, jak tylko naprawdę nauczyć się tego samemu.

to byłby numer jeden. Drugi to po prostu trzeba wziąć ten pomysł korzystania z niego każdego dnia do następnego poziomu. Musisz być osobą, która tworzy konfiguracje DSC, oraz narzędziami PowerShell, których używasz do monitorowania serwerów, aby zapewnić analizę kryminalistyczną, jeśli zostałeś naruszony.

musisz nauczyć się nowych rzeczy, takich jak.NET framework. Musisz nauczyć się kilku zaawansowanych. Musisz zacząć myśleć. Idź na niektóre z tajnych konferencji hakerskich, naucz się złych sposobów i znajdź sposoby: „ok, Jak mogę to zrobić w PowerShell?”Staraj się być bardziej proaktywny.

Paula:

jest takie małe powiedzenie, że jeśli czujesz, że coś wiesz, możesz to doskonale przetestować, wyjaśniając to dziadkowi. Wtedy mój dziadek zapyta: „o czym ty mówisz?”Ale może tak samo jest z Powershellem? Musisz być w stanie wyjaśnić to młodszym.

:

racja, jeśli nie potraficie tego komuś wyjaśnić ani kogoś nauczyć, to nie znacie tego wystarczająco dobrze.

Paula:

dokładnie, dokładnie.

kiedy marzysz w Powershell…

używam PowerShell ’ a odkąd był w wersji beta. Napisałem jedną z pierwszych książek. Idę spać i śnię: „co mogę zrobić w PowerShell.”

Paula:

czy marzysz w PowerShell?

:

naprawdę śnię w PowerShell.

Paula:

Poważnie? To takie zabawne. Mogę zapytać, Jak to jest?

:

coś mi się śni, jakiś skrypt nad którym pracuję. Albo jakiś projekt, nad którym chcę pracować następnego dnia. Ja na to: „Och, Och ,w ten sposób obejdę ten problem.”Tak, więc tak. Kiedy uczysz się języka obcego, jeśli zaczynasz marzyć w tym języku, to nauczyłeś się go.

Paula:

na przykład śnię po angielsku, bo cały czas pracuję po angielsku. Kiedy kładę się spać, myślę, że zaczynam po angielsku, a potem zdaję sobie sprawę, że jestem Polakiem, więc może powinienem pomyśleć w moim ojczystym języku.”Ale to tak nie działa, prawda?

:

to oznaka, że masz naprawdę.

Paula:

jesteś w tym głęboko.

:

wchłonęliście to i wiecie, co to jest. Tak, wyznaję wszystkim, że marzę w PowerShell.

Jeffrey Hicks

Ucz się PowerShell w miesiącu obiadów

Paula:

to dobrze. Dzięki Jeff za miłe spostrzeżenia. Myślę, że możemy trochę podsumować nasz wywiad. Rozmawialiśmy o tym.:

  • PowerShell może być narzędziem hakerskim, ale jest bardziej dla administratora.
  • może być również używany dla złych facetów, jeśli mamy możliwość korzystania z niego na pewnym etapie hakowania.
  • wystarczy administracja jest również bardzo ładne rozwiązanie, aby ograniczyć funkcjonalność PowerShell w czyjejś ręce.
  • skonfigurowanie żądanego stanu jest nieco wyzwaniem, ponieważ istnieje tak wiele różnych ruchomych części, a to tylko framework.

Jeffrey:

to nie jest tylko pod klucz, mogę zrobić konfigurację, skończyłem. Jest wiele ruchomych elementów i musisz zdecydować, jak będzie pasować do Twojego otoczenia. Tak, DSC to kluczowa część.

Paula:

to kluczowa część i aby móc płynnie posługiwać się PowerShell ’ em, musisz spędzać co najmniej godzinę dziennie, może gdybyśmy mogli podsumować to w ten sposób, skupić się na różnych rodzajach funkcji PowerShell i tak dalej, lub przynajmniej znać jedną długość CMD dziennie.

:

jedną z najpopularniejszych książek w PowerShell jest ta, którą napisałem wspólnie z Donem Jonesem: „Naucz się Windows PowerShell w miesiąc obiadów”.

obiecuje, że przeczytasz rozdział w przerwie na lunch, bo są wystarczająco krótkie. Czytasz rozdział, ćwiczysz, a w ciągu miesiąca powinieneś znać wystarczająco dużo PowerShella, aby przynajmniej być biegłym. Nie będziesz wiedział na 100%, ale będziesz wiedział wystarczająco dużo, aby zacząć.

Paula:

dziękuję bardzo, mam nadzieję, że wam się podoba i upewnij się, że jeśli masz zamiar mieć jakieś pytania do Jeffa lub na temat tego wywiadu lub do mnie, upewnij się, że zamierzasz opublikować je w sekcji komentarzy poniżej.

podobał Ci się ten wywiad? Zobacz, ile naprawdę wiesz o cyberbezpieczeństwie! Sprawdź się z Paulą Januszkiewicz.

>>>weź jej HARDCORE Windows Security Quiz<<<

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.