Zaciemnianie ładunku

https://chacker.pl/

Jednym z największych wyzwań, przed którymi stoimy jako etyczni hakerzy, jest to, jak wyprzedzić powszechne kontrole. Wielu przestępców będzie korzystać z niestandardowych narzędzi, aby wyprzedzić te kontrole, ale często nie mamy czasu na tworzenie niestandardowego oprogramowania do różnych testów. Wielu dostawców oprogramowania antywirusowego (AV) szuka publicznie dostępnych narzędzi i tworzy dla nich metody wykrywania, dlatego ważne jest, aby znać wskazówki i triki umożliwiające zmianę ładunku na różne sposoby, abyśmy mogli korzystać z tych narzędzi bez natychmiastowego wykrycia.

Przymierze

https://chacker.pl/

Covenant to framework C2 napisany w języku C#, który może działać zarówno w systemie Linux, jak i Windows. Wraz z popularnością języka C# w działaniach zespołu czerwonego, Covenant zyskał na popularności, ponieważ ma natywną obsługę języka C# do tworzenia plików binarnych i może korzystać z wielu popularnych narzędzi C# po eksploatacji. Ponadto możliwość wykonywania dodatkowych zestawów C# w pamięci i możliwość łatwego rozszerzania frameworka ułatwia dodawanie ulubionych narzędzi C# do frameworka w celu wykonywania operacji. Covenant można również wdrożyć za pośrednictwem Dockera i ma przyjazny interfejs sieciowy. Jest dostarczany z przykładowymi profilami do wykorzystania w sieci i nasłuchiwaniach mostkowych, których można używać w protokołach niestandardowych i zewnętrznym C2. Ponadto posiada funkcje, które są świetne dla czerwonych zespołów, takie jak możliwość śledzenia artefaktów używanych podczas operacji, a także tworzenia wykresów ataków, które pokazują ścieżkę, jaką pokonał tester podczas operacji.

 

Covenant to framework C2 napisany w języku C#, który może działać zarówno w systemie Linux, jak i Windows. Wraz z popularnością języka C# w działaniach zespołu czerwonego, Covenant zyskał na popularności, ponieważ ma natywną obsługę języka C# do tworzenia plików binarnych i może korzystać z wielu popularnych narzędzi C# po eksploatacji. Ponadto możliwość wykonywania dodatkowych zestawów C# w pamięci i możliwość łatwego rozszerzania frameworka ułatwia dodawanie ulubionych narzędzi C# do frameworka w celu wykonywania operacji. Covenant można również wdrożyć za pośrednictwem Dockera i ma przyjazny interfejs sieciowy. Jest dostarczany z przykładowymi profilami do wykorzystania w sieci i nasłuchiwaniach mostkowych, których można używać w protokołach niestandardowych i zewnętrznym C2. Ponadto posiada funkcje, które są świetne dla czerwonych zespołów, takie jak możliwość śledzenia artefaktów używanych podczas operacji, a także tworzenia wykresów ataków, które pokazują ścieżkę, jaką pokonał tester podczas operacji.

Covenant ma pewne konwencje nazewnictwa, które różnią się od wielu innych systemów C2. Grunty są klientami C2. Grunt łączy się ze słuchaczem, który jest usługą obsługującą komunikację C2. Za każdym razem, gdy wydajesz polecenie Gruntowi, jest ono traktowane jako Zadanie i jest śledzone na liście Zadań, gdzie możesz zobaczyć, jakie polecenia zostały wysłane i jakie zwrócone wartości. Aby dodać nowego słuchacza, kliknij łącze Słuchacze po lewej stronie i wybierz opcję Utwórz, aby przejść do ekranu Utwórz słuchacza.

Dla pola HttpProfile wybieramy CustomHttpProfile i następnie musimy wypełnić kilka dodatkowych pól. Pierwszym z nich jest Imię; domyślna nazwa nie jest łatwa do zapamiętania, więc nazwijmy ją http1. Pole BindAddress ma same zera, ponieważ chcemy, aby akceptowało dowolny adres IP znajdujący się na komputerze hosta, ale musimy zmienić pole ConnectAddresses. Jest to adres, z którym będą się łączyć klienci i domyślnie będzie miał jeden z adresów IP Dockera, dlatego musimy ustawić go na wewnętrzny adres IP Kali, 10.0.0.40. Następnie klikamy przycisk Utwórz, aby uruchomić Listener. Kiedy spojrzymy na zakładkę Odbiorniki, powinno pojawić się, że Odbiornik http1 jest „Aktywny”, co oznacza, że ​​ten Odbiornik został poprawnie skonfigurowany. Naszym następnym krokiem jest stworzenie sposobu, aby obiekt docelowy mógł uruchomić nasz plik binarny. W tym celu przejdziemy do zakładki Launchery po lewej stronie i wybierzemy opcję Binary. Zostanie wyświetlony ekran programu uruchamiającego pliki binarne, w którym możemy wprowadzić odpowiednie informacje.

Dla pola HttpProfile wybieramy CustomHttpProfile i następnie musimy wypełnić kilka dodatkowych pól. Pierwszym z nich jest Imię; domyślna nazwa nie jest łatwa do zapamiętania, więc nazwijmy ją http1. Pole BindAddress ma same zera, ponieważ chcemy, aby akceptowało dowolny adres IP znajdujący się na komputerze hosta, ale musimy zmienić pole ConnectAddresses. Jest to adres, z którym będą się łączyć klienci i domyślnie będzie miał jeden z adresów IP Dockera, dlatego musimy ustawić go na wewnętrzny adres IP Kali, 10.0.0.40. Następnie klikamy przycisk Utwórz, aby uruchomić Listener. Kiedy spojrzymy na zakładkę Odbiorniki, powinno pojawić się, że Odbiornik http1 jest „Aktywny”, co oznacza, że ​​ten Odbiornik został poprawnie skonfigurowany. Naszym następnym krokiem jest stworzenie sposobu, aby obiekt docelowy mógł uruchomić nasz plik binarny. W tym celu przejdziemy do zakładki Launchery po lewej stronie i wybierzemy opcję Binary. Zostanie wyświetlony ekran programu uruchamiającego pliki binarne, w którym możemy wprowadzić odpowiednie informacje.

W polu Listener wybieramy http1 i pozostawiamy wszystko bez zmian, z wyjątkiem DotNetVersion, który ustawiamy na Net40. Wersja DotNet jest ważna, ponieważ starsze systemy mogą nie mieć DotNet 4.0, a nowsze systemy mogą nie mieć DotNet 3.5. Pomocne może być tutaj wykonanie krótkiego rozpoznania celu przed wybraniem typu ładunku. Ponieważ wiemy, że naszym docelowym boxem jest Windows Server 2016, możemy śmiało wybrać opcję Net40. Po kliknięciu przycisku Generuj ładunek zostanie wygenerowany w aplikacji, mimo że nie będzie informacji zwrotnej, ale teraz musimy dotrzeć do celu. Następnie widzimy ekran Binary Launcher. W polu Host możemy określić lokalizację, w której będzie hostowany nasz plik binarny. Aby to ułatwić, po prostu określimy lokalizację jako /grunt1.exe, a następnie klikniemy Host

Nie otrzymasz żadnej opinii, ale plik jest teraz hostowany. Możesz przejść do karty Słuchacze, kliknąć swój odbiornik, a następnie kliknąć opcję Hostowane pliki, aby sprawdzić, czy plik jest hostowany, jeśli masz problemy. Aby wykonać Grunt w naszym polu docelowym, przejdź do wiersza polecenia PowerShell, pobierz i wykonaj Grunt:

Gdy to zrobisz, w prawym górnym rogu przeglądarki może na krótko pojawić się alert informujący, że masz nowego Grunta. Aby wyświetlić Grunta, przejdź do zakładki Grunt i kliknij nazwę nowego Grunta. Zakładka Informacje, pokazana obok, zawiera podstawowe informacje o zaatakowanym systemie. Wiemy, że jest to HTTP Grunt działający jako użytkownik GHH\target na WS20 z adresem IP 10.0.0.20. Mamy wersję systemu operacyjnego, datę nawiązania połączenia i godzinę ostatniego zameldowania. Daje nam to podstawowe informacje na temat zdrowia i kontekstu Grunta, ale rzadko jest to to, co chcemy zrobić. Aby wykonać nasze czynności poeksploatacyjne należy przejść do zakładki Zadanie.

Zakładka Zadanie pokazuje różne wbudowane moduły Covenant, które możemy uruchomić. Wybranie zadania spowoduje wyświetlenie opcji dla tego zadania. Aby zrozumieć podstawy, uruchomimy moduł WhoAmI, który pobiera bieżący kontekst użytkownika. Widzieliśmy to już na ekranie Grunt Info, ale za pomocą tego modułu możemy łatwo zweryfikować te informacje.

Gdy uruchomimy zadanie, wyświetli się okno Interakcja. Widzimy polecenie zostało wysłane, ale odpowiedź musi minąć kilka chwil. Dzieje się tak dlatego, że nasz Grunt nie jest Gruntem działającym w czasie rzeczywistym i zamiast tego ma interwał sygnalizacyjny. W przypadku tego interwału udzielenie odpowiedzi może zająć do 10 sekund (5 sekund, aby Grunt zarejestrował się i otrzymał żądanie, a następnie kolejne 5 sekund, zanim zwróci odpowiedź). Dzieje się tak dlatego, że opóźnienie Launchera zostało ustawione na 5 sekund.

Kiedy skończysz z Covenantem, wydaj następującą komendę w Kali, aby zamknąć serwer:

Imperium PowerShella

https://chacker.pl/

PowerShell Empire został wydany na BSides w Las Vegas przez Willa Schroedera i Justina Warnera w 2015 roku. Od tego czasu projekt GitHub jest zarchiwizowany, a rozwidlona wersja jest utrzymywana i ulepszana przez BCSecurity pod adresem https://github.com/BC-SECURITY /Imperium. PowerShell Empire to platforma C2 oparta na języku Python, która do wykonywania zadań wykorzystuje ładunki, moduły pośredniczące i moduły poeksploatacyjne oparte na programie PowerShell. Wykorzystuje komponenty PowerSploit, SharpSploit i inne narzędzia w modułach poeksploatacyjnych, co oznacza, że ​​wiele narzędzi, z których będą korzystać testerzy, jest już wbudowanych. Po wdrożeniu przez Microsoft interfejsu skanowania antymalware (AMSI) i zwiększeniu liczby rejestrów PowerShell, PowerShell stał się mniej popularne, a narzędzia C# zaczęły zyskiwać na popularności. Jednak Empire zawiera teraz AMSI i Blokowanie skryptów pozwala ominąć rejestrowanie, co może pomóc w ukryciu się przed niektórymi nowszymi ulepszeniami zabezpieczeń.

Tworzenie powłoki za pomocą Metasploit

https://chacker.pl/

Na początek utworzymy udział w bloku komunikatów serwera (SMB) w systemie Kali, aby usunąć nasz ładunek. Możemy po prostu użyć katalogu /tmp z smbd w systemie. Dodajmy udział do naszej konfiguracji, a następnie zrestartujmy usługę i sprawdźmy, czy udział jest dostępny:

Na początek utworzymy udział w bloku komunikatów serwera (SMB) w systemie Kali, aby usunąć nasz ładunek. Możemy po prostu użyć katalogu /tmp z smbd w systemie. Dodajmy udział do naszej konfiguracji, a następnie zrestartujmy usługę i sprawdźmy, czy udział jest dostępny:

Właśnie użyliśmy msfvenom, generatora ładunku Metasploit, do stworzenia odwrotnej powłoki TCP Meterpreter, która jest bezstopniowa, co oznacza, że ​​cały ładunek jest w formacie binarnym. I odwrotnie, etapowanie oznacza, że ​​tylko niewielka część modułu ładującego jest włączana do ładunku, a reszta jest pobierana z serwera. Gdy zależy nam na jak najmniejszym ładunku, optymalne jest ustawienie etapowe. Czasami jednak elementy sterujące mogą zobaczyć ładowanie naszego stagera i to nas zdradzi. W większości przypadków, gdy rozmiar nie ma znaczenia, lepszym rozwiązaniem będzie inscenizacja, ponieważ przy tego typu ładunku mniej rzeczy może pójść nie tak. W przypadku tego pliku binarnego możemy stwierdzić, że nasz ładunek jest bezstopniowy ze względu na nazwę ładunku. Ogólnie w Metasploit format ładunków to <platforma>/<ładunek>/<typ ładunku> dla wersji etapowej i <platforma>/<ładunek>_<typ ładunku> dla bezetapowego. Nasza wersja etapowa tego ładunku będzie miała postać Windows/meterpreter/reverse_tcp. Następnie musimy załadować moduł obsługi, aby przechwycił naszą powłokę, gdy ta oddzwoni. Metasploit ma narzędzie zwane handlerem do przechwytywania ładunków. Ze względu na sposób, w jaki Metasploit grupuje exploity według platformy i ponieważ moduł obsługi może przechwycić dowolny typ platformy, znajduje się on w katalogu multi. W Metasploit musimy ustawić typ ładunku na taki sam, jak ładunek msfvenom, a następnie uruchomić komendę exploit, aby go uruchomić:

Teraz, gdy już działa, możemy zdalnie połączyć się z naszym systemem docelowym Windows za pomocą protokołu RDP, zalogować się jako użytkownik docelowy i otworzyć okno programu PowerShell. PowerShell pozwala nam wykonywać polecenia poprzez ścieżkę UNC, więc uruchomimy nasz plik msf1.exe z naszego udziału ghh:

Wracając do naszego Kali Boxa, powinniśmy zobaczyć wywołanie powłoki z powrotem do serwera C2 i otworzyć sesję:

Teraz możemy wykonywać polecenia. Meterpreter ma kilka wbudowanych poleceń, które można wyświetlić za pomocą polecenia help. Do częstych zadań, które możemy chcieć wykonać, zalicza się uzyskanie identyfikatora użytkownika, który wykonał powłokę za pomocą polecenia getuid oraz uzyskanie powłoki za pomocą polecenia Shell:

Teraz możemy wykonywać polecenia. Meterpreter ma kilka wbudowanych poleceń, które można wyświetlić za pomocą polecenia help. Do częstych zadań, które możemy chcieć wykonać, zalicza się uzyskanie identyfikatora użytkownika, który wykonał powłokę za pomocą polecenia getuid oraz uzyskanie powłoki za pomocą polecenia Shell:

Możemy zobaczyć, że nasz docelowy użytkownik jest zalogowany, a następnie możemy zobaczyć dodatkowe dane wyjściowe użytkowników, którzy zalogowali się ostatnio. Aby zakończyć, wpisujemy Quit w celu wyjścia z naszej powłoki, a następnie wychodzimy -y w celu wyjścia z Metasploit. Metasploit ma ogromną ilość funkcjonalności i wyliczenie wszystkich możliwości w tym rozdziale nie jest możliwe. Jednakże dzięki klasie Metasploit Unleashed i niektórym z tych wskazówek powinieneś być na dobrej drodze do używania Metasploit jako generatora ładunku i narzędzia C2.

Metasploit

https://chacker.pl/

Jednym z pierwszych systemów C2, z którego korzysta większość użytkowników, jest Metasploit. Metasploit to platforma testowa zawierająca narzędzia i biblioteki pomagające opracowywać exploity, testować je, wykorzystywać i wykonywać zadania po eksploitacji. Metasploit występuje zarówno w wersji komercyjnej, jak i open source, a jego właścicielem jest Rapid7. Wersja społecznościowa jest zainstalowana na Kali, co ułatwia użytkownikom naukę. Istnieją nawet narzędzia takie jak Metasploitable, które mogą działać jako podatna na ataki maszyna wirtualna w ramach bezpłatnego szkolenia Metasploit Unleashed pod adresem https://www.offensivesecurity.com/metasploit-unleashed /. Ponieważ istnieje wiele wysokiej jakości samouczków, takich jak Metasploit Unleashed, nie będziemy omawiać wszystkich podstaw Metasploit. Zamiast tego skupimy się na podstawach używania Metasploit dla C2.

Systemy dowodzenia i kontroli

https://chacker.pl/

Gdy system zostanie naruszony, osoba atakująca musi mieć możliwość przeprowadzenia dalszego rozpoznania, wykonania poleceń, podniesienia uprawnień i dalszego poruszania się w sieci. Jednym z najlepszych sposobów osiągnięcia tego jest zastosowanie systemu C2. System C2 zazwyczaj ma agenta działającego na zaatakowanym hoście, który odbiera polecenia od osoby atakującej, wykonuje je, a następnie zwraca wyniki. Większość systemów C2 składa się z trzech komponentów: agenta działającego w zaatakowanym systemie, serwera pełniącego rolę pośrednika między osobą atakującą a zaatakowanym hostem oraz oprogramowania zarządzającego, które umożliwia osobie atakującej wydawanie poleceń. Agenci i osoby atakujące komunikują się z serwerem C2 za pomocą odpowiednich komponentów, umożliwiając atakującemu wysyłanie i odbieranie poleceń bez konieczności bezpośredniej komunikacji z zaatakowanym systemem. Agenci mogą komunikować się za pośrednictwem wielu różnych protokołów, w zależności od oprogramowania C2, ale popularnymi protokołami są HTTP, HTTPS, DNS, SMB, surowe gniazda TCP i RPC. Gdy osoba atakująca uruchomi agenta w zaatakowanym systemie, agent połączy się z serwerem i wyśle ​​do systemu podstawowe dane klienta, takie jak poziom uprawnień, użytkownik i nazwa hosta. Serwer sprawdzi, czy są jakieś oczekujące zadania, a jeśli ich nie ma, serwer i klient albo utrzymają zawsze aktywne połączenie, na przykład za pomocą surowych gniazd TCP lub trwałych gniazd HTTP/HTTPS, albo skonfigurują okresowa odprawa, często nazywana czasem nawigacyjnym. Ten czas sygnalizowania to przedział czasu, w którym agent skontaktuje się z Tobą w celu odprawy i dodatkowych zadań. Czasy działania sygnału ostrzegawczego są ważne dla bezpieczeństwa operacyjnego. Zbyt krótki okres czasu spowoduje, że będziesz bardzo głośny, ale dłuższe czasy oznaczają mniej poleceń, które możesz wykonać. Wybór czasu między sygnałami nawigacyjnymi powinien opierać się na celach testu i tym, czy bezpieczeństwo operacyjne stanowi zagrożenie. Jeśli nie stanowi to problemu, bardzo krótki czas świecenia pozwala osiągnąć więcej, ale jeśli tak jest, rzadsze i losowe meldowanie się utrudnia dostrzeżenie wzorców, które mogą spowodować wykrycie. Wykrycia mogą opierać się na częstotliwości meldowania się (ile razy dziennie), natężeniu wysyłanego ruchu, stosunku danych wysłanych i odebranych lub próbach wykrycia wzorców. Wiele systemów C2 ma koncepcję jittera, czyli odchyleń taktowania, którą można zastosować do czasu zameldowania, aby pomóc w unikaniu. Wszystkie systemy C2 mają różne funkcje, ale niektóre typowe obejmują możliwość tworzenia ładunków agentów, możliwość wykonywania poleceń i uzyskiwania wyników oraz możliwość przesyłania i pobierania plików. Istnieją bezpłatne wersje narzędzi C2 obsługiwane przez społeczność, takie jak Metasploit, PowerShell Empire i Covenant. Istnieją również narzędzia komercyjne, takie jak Cobalt Strike i INNUENDO, które mają wsparcie. Wybór systemu C2 powinien być podyktowany Twoimi potrzebami. Nowe systemy C2 wychodzą cały czas, a inne stają się niewspierane. Jeżeli jesteś zainteresowany doborem systemu C2 do swoich potrzeb.

Dowodzenie i kontrola (C2)

https://chacker.pl/

Dla hakerów dostanie się do sieci to dopiero pierwsza część ataku. Bez możliwości interaktywnego wykonywania poleceń w systemach haker (zarówno etyczny, jak i przestępczy) nie może osiągnąć swoich celów. Korzystanie z narzędzi C2 i stosowanie technik unikania może pomóc testerom utrzymać dostęp przez dłuższy czas i ograniczyć wpływ kontroli na hosty i sieci, który może skrócić ich atak.

Streszczenie

https://chacker.pl/

Opisano podstawy etycznego hakowania i czerwonych zespołów. Czerwone zespoły działały na różnych poziomach, począwszy od skanowania podatności, aż po fioletowe zespoły i emulację zagrożeń. Istnieją zalety i wady zarówno konsultantów, jak i korporacyjnych czerwonych zespołów, ale wiele osób przełącza się między nimi w trakcie swojej kariery, aby zdobyć dodatkowe doświadczenie i dostosować się do zmian w stylu życia. W miarę ewolucji organizacji rosną także ich możliwości w zakresie wykrywania i reagowania. Dodanie fioletowego komponentu zespołu może pomóc w zapewnieniu wyższej wierności wykryć specyficznych dla środowiska przy użyciu kombinacji analizy zagrożeń, zespołów obrony, zespołów czerwonych i zespołów inżynieryjnych.

Inżynieria wykrywania

https://chacker.pl/

Inżynieria wykrywania to proces tworzenia sposobów wykrywania różnych typów zdarzeń. Może istnieć poza kontekstem fioletowych drużyn; jednak fioletowe zespoły sprawiają, że jest to drastycznie bardziej skuteczne. Zapewniając trafność, kontekst i możliwość zastosowania w konkretnym środowisku, fioletowe zespoły mogą dostosować wykrywanie do Twojego środowiska, dzięki czemu nie pozostaniesz tylko z treściami dostarczonymi przez dostawcę, które mogą być zbyt hałaśliwe lub nie uwzględniać wielu źródeł, które można połączyć w alerty o wyższej wierności. Dobrym tego przykładem jest sytuacja, w której analiza zagrożeń odkryła, że wielu aktorów zagrażających używa Cobalt Strike dla C2 i gromadzi dane uwierzytelniające za pomocą Mimikatz. Zespół czerwonych może uruchomić tę kombinację narzędzi na hoście docelowym, a następnie współpracować z zespołem poszukiwawczym, aby zobaczyć, jakie artefakty zostaną utworzone. Innym przykładem może być rozwiązanie EDR rejestrujące dostęp LSASS z procesu notmalware.exe i lokalny agent AV rejestrujący połączenie z serwerem proxy z notmalware.exe. Łącząc te dwa elementy, zespół odkrywa, że jest mniej fałszywych alarmów, przekazuje więc informacje zespołowi inżynierów ds. wykrywania, aby w oparciu o te dwa czynniki zbudował alert kombinowany, aby umożliwić obrońcom pierwszej linii zaalarmowanie, gdy taka kombinacja występuje. Dalsze testy przeprowadzone przez zespół czerwonych wykazały, że alert nie zostanie uruchomiony w przypadku użycia Mimikatz w połączeniu z sygnalizatorem SMB firmy Cobalt Strike. Czerwony zespół informuje, że sygnalizatory SMB używają nazwanych potoków do komunikacji, ale obecnie nie wdrożono żadnych narzędzi, które rejestrowałyby nazwane potoki. Zespół obsługi klienta współpracuje z obrońcami przy wdrażaniu Sysmon i konfigurowaniu rejestrowania tworzenia nazwanych potoków. Kiedy zespół czerwonych ponownie przeprowadzi testy, istnieje teraz korelacja między hostami, które utworzyły nazwane potoki w ciągu ostatniej godziny, a uzyskującymi dostęp do LSASS. Poszczególne alerty same w sobie nie byłyby tak skuteczne, gdyby zespoły nie współpracowały ze sobą, przeprowadzając rzeczywiste testy w środowisku i dopasowując strategię ostrzegania i obrony do konkretnego środowiska. Ostatecznie w tym środowisku wszyscy wygrywają, może z wyjątkiem drużyny czerwonej, która musi zbadać nowe techniki emulacji zagrożeń.

Badania nad nowymi zagrożeniami

https://chacker.pl/

Badania nad nowymi zagrożeniami uwzględniają wiele obszarów fioletowego zespołu. Głównymi współautorami są wywiad o zagrożeniach, zespół czerwony, zespoły myśliwskie i reakcja na incydenty. Zespoły te będą współpracować, aby zidentyfikować pojawiające się zagrożenie, takie jak opublikowana luka typu 0-day, nowe informacje na temat techniki wdrażanej w popularnej rodzinie złośliwego oprogramowania lub najnowszy zestaw opublikowanych badań. Zespół ds. analizy zagrożeń zidentyfikuje jak najwięcej informacji na temat tego zagrożenia, a następnie będzie współpracował z zespołem czerwonym i zespołami tropiącymi, aby ustalić, czy będzie to miało wpływ na organizację. Przykładem mogą być luki w zabezpieczeniach programu Microsoft Exchange ujawnione przez firmę Microsoft w marcu 2021 r.1 Oprócz wstępnego ujawnienia ujawniono ograniczone informacje na temat tych luk, ale jeśli obserwowały je zespoły ds. analizy zagrożeń, 10 marca w serwisie GitHub krótko opublikowano komunikat POC, który zawierał działający kod.2 Ten kod mógł zostać pobrany i przekazany zespołowi czerwonemu, który mógłby go przetestować i ustalić, czy działa, czy łatanie powiodło się i jaki poziom uprawnień dał. Stamtąd zespoły myśliwskie mogły ocenić pozostawione kłody, a następnie określić, czy zostały one wykonane przez kogokolwiek innego przeciwko organizacji. Po wprowadzeniu łatek zespół czerwonych mógł ponownie przeprowadzić testy pod kątem środków zaradczych, a zespoły poszukiwawcze mogły ocenić rejestrację po wdrożeniu łatki, aby pomóc w udokumentowaniu, jak by to wyglądało, gdyby atak nastąpił na system z łatką. Wykonywanie tego typu działań zapewniłoby organizacji przewagę pod względem ataków różnych ugrupowań zagrażających, które nastąpiły po POC.