12 KiB
Mythic
Czym jest Mythic?
Mythic to otwartoźródłowy, modułowy framework dowodzenia i kontroli (C2) zaprojektowany do red teaming. Umożliwia specjalistom ds. bezpieczeństwa zarządzanie i wdrażanie różnych agentów (ładunków) na różnych systemach operacyjnych, w tym Windows, Linux i macOS. Mythic oferuje przyjazny interfejs webowy do zarządzania agentami, wykonywania poleceń i zbierania wyników, co czyni go potężnym narzędziem do symulowania rzeczywistych ataków w kontrolowanym środowisku.
Instalacja
Aby zainstalować Mythic, postępuj zgodnie z instrukcjami na oficjalnym Mythic repo.
Agenci
Mythic obsługuje wiele agentów, które są ładunkami wykonującymi zadania na skompromitowanych systemach. Każdy agent może być dostosowany do specyficznych potrzeb i może działać na różnych systemach operacyjnych.
Domyślnie Mythic nie ma zainstalowanych żadnych agentów. Oferuje jednak kilka otwartoźródłowych agentów w https://github.com/MythicAgents.
Aby zainstalować agenta z tego repo, wystarczy uruchomić:
sudo ./mythic-cli install github https://github.com/MythicAgents/<agent-name>
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell
Możesz dodać nowe agenty za pomocą poprzedniego polecenia, nawet jeśli Mythic już działa.
Profile C2
Profile C2 w Mythic definiują jak agenty komunikują się z serwerem Mythic. Określają protokół komunikacji, metody szyfrowania i inne ustawienia. Możesz tworzyć i zarządzać profilami C2 za pomocą interfejsu webowego Mythic.
Domyślnie Mythic jest zainstalowany bez profili, jednak możliwe jest pobranie niektórych profili z repozytorium https://github.com/MythicC2Profiles uruchamiając:
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/<c2-profile>>
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
Apollo Agent
Apollo to agent Windows napisany w C# z użyciem .NET Framework 4.0, zaprojektowany do wykorzystania w szkoleniach SpecterOps.
Zainstaluj go za pomocą:
./mythic-cli install github https://github.com/MythicAgents/Apollo.git
Ten agent ma wiele poleceń, które czynią go bardzo podobnym do Beacona Cobalt Strike z dodatkowymi funkcjami. Wśród nich obsługuje:
Common actions
cat: Wyświetl zawartość plikucd: Zmień bieżący katalog roboczycp: Skopiuj plik z jednego miejsca do drugiegols: Wyświetl pliki i katalogi w bieżącym katalogu lub określonej ścieżcepwd: Wyświetl bieżący katalog roboczyps: Wyświetl uruchomione procesy na systemie docelowym (z dodatkowymi informacjami)download: Pobierz plik z systemu docelowego na lokalną maszynęupload: Prześlij plik z lokalnej maszyny do systemu docelowegoreg_query: Zapytaj o klucze i wartości rejestru w systemie docelowymreg_write_value: Zapisz nową wartość do określonego klucza rejestrusleep: Zmień interwał snu agenta, który określa, jak często sprawdza połączenie z serwerem Mythic- I wiele innych, użyj
help, aby zobaczyć pełną listę dostępnych poleceń.
Privilege escalation
getprivs: Włącz jak najwięcej uprawnień na bieżącym tokenie wątkugetsystem: Otwórz uchwyt do winlogon i zdubluj token, skutecznie eskalując uprawnienia do poziomu SYSTEMmake_token: Utwórz nową sesję logowania i zastosuj ją do agenta, umożliwiając podszywanie się pod innego użytkownikasteal_token: Ukradnij główny token z innego procesu, umożliwiając agentowi podszywanie się pod użytkownika tego procesupth: Atak Pass-the-Hash, umożliwiający agentowi uwierzytelnienie się jako użytkownik przy użyciu ich hasha NTLM bez potrzeby posiadania hasła w postaci tekstowejmimikatz: Uruchom polecenia Mimikatz, aby wyodrębnić dane uwierzytelniające, hashe i inne wrażliwe informacje z pamięci lub bazy danych SAMrev2self: Przywróć token agenta do jego głównego tokena, skutecznie obniżając uprawnienia do pierwotnego poziomuppid: Zmień proces nadrzędny dla zadań poeksploatacyjnych, określając nowy identyfikator procesu nadrzędnego, co pozwala na lepszą kontrolę nad kontekstem wykonania zadańprintspoofer: Wykonaj polecenia PrintSpoofer, aby obejść środki bezpieczeństwa spooling drukarki, umożliwiając eskalację uprawnień lub wykonanie kodudcsync: Synchronizuj klucze Kerberos użytkownika z lokalną maszyną, umożliwiając łamanie haseł offline lub dalsze atakiticket_cache_add: Dodaj bilet Kerberos do bieżącej sesji logowania lub określonej, umożliwiając ponowne użycie biletu lub podszywanie się
Process execution
assembly_inject: Umożliwia wstrzyknięcie loadera zestawu .NET do zdalnego procesuexecute_assembly: Wykonuje zestaw .NET w kontekście agentaexecute_coff: Wykonuje plik COFF w pamięci, umożliwiając wykonanie skompilowanego kodu w pamięciexecute_pe: Wykonuje niezarządzalny plik wykonywalny (PE)inline_assembly: Wykonuje zestaw .NET w jednorazowym AppDomain, umożliwiając tymczasowe wykonanie kodu bez wpływu na główny proces agentarun: Wykonuje binarny plik na systemie docelowym, używając PATH systemu do znalezienia pliku wykonywalnegoshinject: Wstrzykuje shellcode do zdalnego procesu, umożliwiając wykonanie dowolnego kodu w pamięciinject: Wstrzykuje shellcode agenta do zdalnego procesu, umożliwiając wykonanie kodu agenta w pamięcispawn: Uruchamia nową sesję agenta w określonym pliku wykonywalnym, umożliwiając wykonanie shellcode w nowym procesiespawnto_x64ispawnto_x86: Zmień domyślny plik binarny używany w zadaniach poeksploatacyjnych na określoną ścieżkę zamiast używaćrundll32.exebez parametrów, co jest bardzo hałaśliwe.
Mithic Forge
To pozwala na ładowanie plików COFF/BOF z Mythic Forge, który jest repozytorium wstępnie skompilowanych ładunków i narzędzi, które mogą być wykonywane na systemie docelowym. Dzięki wszystkim poleceniom, które można załadować, będzie możliwe wykonywanie typowych działań, uruchamiając je w bieżącym procesie agenta jako BOF (zwykle bardziej dyskretnie).
Zacznij je instalować za pomocą:
./mythic-cli install github https://github.com/MythicAgents/forge.git
Następnie użyj forge_collections, aby pokazać moduły COFF/BOF z Mythic Forge, aby móc je wybrać i załadować do pamięci agenta w celu wykonania. Domyślnie w Apollo dodawane są następujące 2 kolekcje:
forge_collections {"collectionName":"SharpCollection"}forge_collections {"collectionName":"SliverArmory"}
Po załadowaniu jednego modułu, pojawi się on na liście jako inna komenda, jak forge_bof_sa-whoami lub forge_bof_sa-netuser.
Wykonanie Powershell i skryptów
powershell_import: Importuje nowy skrypt PowerShell (.ps1) do pamięci podręcznej agenta do późniejszego wykonaniapowershell: Wykonuje polecenie PowerShell w kontekście agenta, umożliwiając zaawansowane skrypty i automatyzacjępowerpick: Wstrzykuje zestaw ładujący PowerShell do procesu ofiary i wykonuje polecenie PowerShell (bez logowania PowerShell).psinject: Wykonuje PowerShell w określonym procesie, umożliwiając celowe wykonanie skryptów w kontekście innego procesushell: Wykonuje polecenie powłoki w kontekście agenta, podobnie jak uruchamianie polecenia w cmd.exe
Ruch Lateralny
jump_psexec: Używa techniki PsExec do ruchu lateralnego do nowego hosta, najpierw kopiując plik wykonywalny agenta Apollo (apollo.exe) i wykonując go.jump_wmi: Używa techniki WMI do ruchu lateralnego do nowego hosta, najpierw kopiując plik wykonywalny agenta Apollo (apollo.exe) i wykonując go.wmiexecute: Wykonuje polecenie na lokalnym lub określonym zdalnym systemie za pomocą WMI, z opcjonalnymi poświadczeniami do impersonacji.net_dclist: Pobiera listę kontrolerów domeny dla określonej domeny, przydatne do identyfikacji potencjalnych celów do ruchu lateralnego.net_localgroup: Wyświetla lokalne grupy na określonym komputerze, domyślnie na localhost, jeśli nie określono komputera.net_localgroup_member: Pobiera członkostwo lokalnej grupy dla określonej grupy na lokalnym lub zdalnym komputerze, umożliwiając enumerację użytkowników w określonych grupach.net_shares: Wyświetla zdalne udostępnienia i ich dostępność na określonym komputerze, przydatne do identyfikacji potencjalnych celów do ruchu lateralnego.socks: Włącza proxy zgodne z SOCKS 5 w sieci docelowej, umożliwiając tunelowanie ruchu przez skompromitowany host. Kompatybilne z narzędziami takimi jak proxychains.rpfwd: Rozpoczyna nasłuchiwanie na określonym porcie na docelowym hoście i przekazuje ruch przez Mythic do zdalnego adresu IP i portu, umożliwiając zdalny dostęp do usług w sieci docelowej.listpipes: Wyświetla wszystkie nazwane potoki w lokalnym systemie, co może być przydatne do ruchu lateralnego lub eskalacji uprawnień poprzez interakcję z mechanizmami IPC.
Różne polecenia
help: Wyświetla szczegółowe informacje o konkretnych poleceniach lub ogólne informacje o wszystkich dostępnych poleceniach w agencie.clear: Oznacza zadania jako 'wyczyszczone', aby nie mogły być przejęte przez agentów. Możesz określićall, aby wyczyścić wszystkie zadania lubtask Num, aby wyczyścić konkretne zadanie.
Poseidon Agent
Poseidon to agent Golang, który kompiluje się do Linux i macOS wykonywalnych.
./mythic-cli install github https://github.com/MythicAgents/Poseidon.git
Kiedy użytkownik korzysta z systemu Linux, ma do dyspozycji kilka interesujących poleceń:
Common actions
cat: Wyświetl zawartość plikucd: Zmień bieżący katalog roboczychmod: Zmień uprawnienia plikuconfig: Wyświetl bieżącą konfigurację i informacje o hościecp: Skopiuj plik z jednego miejsca do drugiegocurl: Wykonaj pojedyncze żądanie webowe z opcjonalnymi nagłówkami i metodąupload: Prześlij plik do celudownload: Pobierz plik z systemu docelowego na lokalną maszynę- I wiele więcej
Search Sensitive Information
triagedirectory: Znajdź interesujące pliki w katalogu na hoście, takie jak pliki wrażliwe lub poświadczenia.getenv: Pobierz wszystkie bieżące zmienne środowiskowe.
Move laterally
ssh: SSH do hosta przy użyciu wyznaczonych poświadczeń i otwórz PTY bez uruchamiania ssh.sshauth: SSH do określonego hosta(y) przy użyciu wyznaczonych poświadczeń. Możesz również użyć tego do wykonania konkretnego polecenia na zdalnych hostach za pomocą SSH lub użyć go do SCP plików.link_tcp: Połącz się z innym agentem przez TCP, umożliwiając bezpośrednią komunikację między agentami.link_webshell: Połącz się z agentem używając profilu P2P webshell, umożliwiając zdalny dostęp do interfejsu webowego agenta.rpfwd: Rozpocznij lub zatrzymaj odwrócone przekierowanie portów, umożliwiając zdalny dostęp do usług w sieci docelowej.socks: Rozpocznij lub zatrzymaj proxy SOCKS5 w sieci docelowej, umożliwiając tunelowanie ruchu przez skompromitowany host. Kompatybilne z narzędziami takimi jak proxychains.portscan: Skanuj hosty w poszukiwaniu otwartych portów, przydatne do identyfikacji potencjalnych celów do ruchu lateralnego lub dalszych ataków.
Process execution
shell: Wykonaj pojedyncze polecenie powłoki za pomocą /bin/sh, umożliwiając bezpośrednie wykonanie poleceń na systemie docelowym.run: Wykonaj polecenie z dysku z argumentami, umożliwiając wykonanie binariów lub skryptów na systemie docelowym.pty: Otwórz interaktywny PTY, umożliwiając bezpośrednią interakcję z powłoką na systemie docelowym.