Windows Remote Management (WinRM) to protokół zdalnego zarządzania, który umożliwia nam wykonywanie programu PowerShell. W rozdziale 16 przyjrzymy się bliżej niektórym rzeczom, które możemy z nim zrobić, ale w tym ćwiczeniu wystarczy wiedzieć, że po uruchomieniu zwykle będzie on działał w kontekście wysokiej integralności, co oznacza, że jest już podniesiony. Zbadajmy, jak sprawdzić, jaki jest poziom integralności powłoki. Najpierw w programie PowerShell na komputerze z systemem Windows użyjmy whoami, aby sprawdzić nasze uprawnienia:
Etykieta informuje, jaki jest poziom Mandatory Integrity Control (MIC). Średni pozwala na uruchamianie wielu zadań, ale nie funkcji administracyjnych. Wysoki poziom integralności pozwala na wykonywanie zadań administracyjnych. Połączmy się z hostem z naszego pudełka Kali Lab za pomocą evil-winrm, aby sprawdzić, jaki jest nasz poziom. Najpierw otwórz nowe połączenie z Kali w laboratorium i uruchom evil-winrm:
Widzimy, że połączenie WinRM, nawet z tymi samymi poświadczeniami, ma zastosowany poziom High Integrity. Wyjdźmy z powłoki, wpisując exit i zbudujmy pojedynczy plik do użycia w fazie przygotowawczej z naszym serwerem internetowym. Użyj swojego ulubionego edytora i dodaj następujący kod do nowego pliku o nazwie stage.txt:
Połącz się ponownie z Evil-WinRM i wywołaj skrypt zdalnie:
Polecenie powinno zostać zawieszone, a my powinniśmy zobaczyć nowe połączenie w Empire:
Mamy teraz nowego agenta, który powinien mieć podwyższone uprawnienia. Możemy sprawdzić, czy mamy podniesioną powłokę, wpisując agents i szukając gwiazdki (*) przy użytkowniku, która wskazuje podwyższone uprawnienia. Zauważamy również, że na Rysunku
proces nie jest wymieniony jako „powershell”, ale jako „wsmprovhost”, który jest procesem, pod którym działa WinRM. Możemy również zobaczyć, jakie inne poświadczenia mogą znajdować się w pamięci, używając Mimikatz. Aby to zrobić, możemy uruchomić polecenie usemodule, aby załadować polecenie mimikatz logonpasswords, a następnie wykonać je w kontekście naszego agenta:
UWAGA Uruchomienie Mimikatz może spowodować zniknięcie powłoki. Jeśli nie otrzymasz informacji, pamiętaj, aby wpisać polecenie agenta, aby sprawdzić, czy agent nadal działa. Jeśli nie, wróć i ponownie uruchom krok Evil-WinRM, aby uzyskać nową powłokę, aby wykonać resztę laboratorium. Możesz również nie widzieć poświadczeń w postaci zwykłego tekstu; jeśli tak jest, zaloguj się ponownie do systemu za pomocą protokołu RDP i spróbuj ponownie. Tutaj widzimy, że mamy hasło użytkownika docelowego w postaci zwykłego tekstu, a także skrót NTLM dla użytkownika. Jeśli zalogowani byli inni użytkownicy, może to być dodatkowy sposób na zebranie poświadczeń, ale ponieważ mamy już poświadczenia dla tego użytkownika, możemy po prostu dodać trwałość, więc jeśli poświadczenia się zmienią, będziemy mogli wrócić. Aby to zrobić, musimy po prostu użyć modułu trwałości i go wykonać:
UWAGA Uruchomienie Mimikatz może spowodować zniknięcie powłoki. Jeśli nie otrzymasz informacji, pamiętaj, aby wpisać polecenie agenta, aby sprawdzić, czy agent nadal działa. Jeśli nie, wróć i ponownie uruchom krok Evil-WinRM, aby uzyskać nową powłokę, aby wykonać resztę laboratorium. Możesz również nie widzieć poświadczeń w postaci zwykłego tekstu; jeśli tak jest, zaloguj się ponownie do systemu za pomocą protokołu RDP i spróbuj ponownie. Tutaj widzimy, że mamy hasło użytkownika docelowego w postaci zwykłego tekstu, a także skrót NTLM dla użytkownika. Jeśli zalogowani byli inni użytkownicy, może to być dodatkowy sposób na zebranie poświadczeń, ale ponieważ mamy już poświadczenia dla tego użytkownika, możemy po prostu dodać trwałość, więc jeśli poświadczenia się zmienią, będziemy mogli wrócić. Aby to zrobić, musimy po prostu użyć modułu trwałości i go wykonać: