Kiedy mamy bardziej złożone zadanie, miło jest nie martwić się o formatowanie. PowerShell ma przydatny tryb, który pozwala nam przekazać zakodowany ciąg Base64 jako skrypt do uruchomienia — pod warunkiem, że skrypt nie jest zbyt długi. Całkowita długość polecenia wiersza poleceń systemu Windows wynosi około 8000 znaków, więc to jest twój limit. Musimy wprowadzić kilka zmian, aby utworzyć zakodowane polecenie. Przede wszystkim opcja encodedcommand programu PowerShell przyjmuje zakodowany ciąg Unicode Base64, więc najpierw musimy przekonwertować nasz tekst na Unicode, a następnie zakodować go jako Base64. Aby to zrobić, potrzebujemy łatwego sposobu na konwersję do kodowania Base64. Chociaż moglibyśmy użyć narzędzi już dostępnych w Kali, aby to zrobić, użyjemy jednego z moich ulubionych zestawów narzędzi, Ruby BlackBag autorstwa Erica Montiego. Ten klejnot Ruby zawiera wiele narzędzi do kodowania i dekodowania, które pomagają zarówno w analizie złośliwego oprogramowania, jak i hakowaniu. SSH do instancji Kali w laboratorium. Najpierw musimy ją zainstalować, zanim będziemy mogli jej używać:
Po zainstalowaniu tego zestawu narzędzi nie tylko dodaje on funkcjonalność Ruby, ale także tworzy kilka skryptów pomocniczych — jeden z nich nazywa się b64, narzędzie do konwersji Base64. Następnie weźmiemy to samo polecenie, którego użyliśmy w poprzednim laboratorium, i przekonwertujemy je na ciąg Base64 zgodny z PowerShell:
Tutaj używamy echo z opcją -n, aby wydrukować nasze polecenie PowerShell bez włączania nowej linii. Następnie przekazujemy to do iconv, konwertera zestawów znaków, który przekonwertuje nasz tekst ASCII na UTF-16LE, format Windows Unicode. Na koniec przekazujemy to wszystko do b64, jak pokazano poniżej. Ciąg, który on wyprowadza, to ciąg, którego będziemy używać z PowerShell na naszym docelowym systemie Windows w laboratorium.
Powinien pojawić się następujący wynik:
Tutaj widać, że gdy przekazujemy nasz ciąg z opcją -enc, otrzymujemy oczekiwany wynik. Teraz możemy budować bardziej złożone skrypty i przekazywać cały skrypt w wierszu poleceń, dzięki czemu nie musimy się martwić o zapobieganie wykonywaniu skryptów. Oprócz użycia sztuczki b64, możemy to również zrobić bezpośrednio z PowerShell w Kali. Ta instancja ma zainstalowany Microsoft PowerShell i jest wykonywalna za pomocą polecenia pwsh. Możemy używać większości poleceń PowerShell tak samo, jak moglibyśmy to robić w systemie Windows.
Aby wyjść z powłoki PowerShell, wpisz polecenie exit, aby powrócić do zwykłych monitów powłoki.