Payload – hakerskie narzędzie msfvenom

Dzisiaj pokażemy na przykładzie jak używać następcy narzędzi msfpayload i msfencode pakietu Metasploit Framework. Mowa oczywiście o msfvenom, który służy do generowania i kodowania ładunków payload metasploit. Narzędzie dostępne jest w systemie dla hakerów Kali Linux. Wielką zaletą modułu msfvenom jest jego wszechstronność. Za jego pomocą możemy wygenerować zarówno samodzielny payload dla systemu z rodziny Microsoft Windows jak i interpretatorów języków skryptowych takich jak PHP, Pythona lub Ruby. Cyberprzestępcy wykorzystują takie backdoory w połączeniu z socjaltechniką do zarażenia komputera swojej ofiary nawet z drugiego końca świata i oczywiście przejęcia nad nim pełnej kontroli.

Należy pamiętać, że wpis ma charakter edukacyjny i jest przeznaczony dla przyszłych pentesterów i specjalistów od bezpieczeństwa informatycznego. Często w firmach podczas audytów wykonuje się takie próby w połączeniu z inżynierą społeczną na pracownikach, aby ostatecznie zawrzeć w raporcie odpowiednie wzmianki o świadomości użytkowników sieci firmowej.

Generowanie ładunku payload

Metoda działania payload typu reverse_tcp
Przedstawiona metoda jest wykorzystywana przez cyberprzestępców do infekcji komputerów znajdujących się w dowolnym miejscu na świecie. Cracker wykorzystuje przygotowany payload typu reverse_tcp do infekcji.

Jedyne czego potrzebujemy to system operacyjny Kali Linux opisany w naszej darmowej szkole hakerów. Oczywiście możesz użyć dowolnego innego systemu z zainstalowanym pakietem dla pentesterów o nazwie Metasploit Framework. W celu wygenerowania złośliwego ładunku shell należy wydać następujące polecenie w konsoli systemu:

W powyższym poleceniu zostały zastosowane następujące opcjonalne parametry programu msfvenom:

  • -p – wykorzystany payload programu Metaspolit Framework. Ładunek należy dobrać pod dany cel i system operacyjny ofiary. W naszym przypadku payload przeznaczony jest dla systemu Microsoft Windows, wykorzystuje odwrotne połączenie TCP i da nam dostęp do konsoli meterpretera.
  • LHOST – w przypadku wyboru shellu reverse_tcp wymagane jest podanie adresu IP systemu napastnika z którym uruchomiony plik ma się połączyć. Lepiej to pokazuje obrazek znajdujący się powyżej w tym wpisie. Jeżeli chcemy, aby działało to poza LAN musimy podać oczywiście nasz zewnętrzny adres IP i w niektórych wypadkach przekierować i odblokować port o numerze w naszym przypadku 16666 w ustawieniach naszego routera. Taka czynność nazywana jest potocznie port forwarding.
  • LPORT – port na którym ma działać trojan. Na tym samym porcie haker musi nasłuchiwać przychodzących połączeń
  • -f – format pliku wynikowego. W naszym przypadku jest to standardowa aplikacja Windows z rozszerzeniem .exe.




Listę wszystkich dostępnych ładunków wraz z opisem możemy uzyskać za pomocą polecenia:

Dostępne payloady możesz podejrzeć w pliku ladunki.txt. Warto zapamiętać sobie również, że dla różnych ładunków może być różna ilość parametrów ładunku.

Inne typy ładunków można zobaczyć wydając komende:

W celu uzyskania listy wymaganych argumentów danego pajlołda warto wydać następujące polecenie:

Wybierając port na którym działa backdoor, cyberprzestępca musi pamiętać że nie może on być zajęty. Można sprawdzić to za pomocą opisywanego wielokrotnie przez nas skanera portów nmap. Istotną sprawą jest też zakres portów protokołu (0 do 65535).

Dobrze! Mamy już wygenerowany plik umożliwiający po uruchomieniu na komputerze ofiary na dostanie się do niego z pełnym dostępem.

Rodzaje ładunków payload

Ja osobiście wyróżniłbym trzy podstawowe typy ładunków. Są one następujące:

  • ładunki typu bind_tcp – w tym przypadku na komputerze celu tworzony jest serwer nasłuchujący. To haker musi znać adres IP ofiary i z nim się połączyć. Z jego charakterystyki wynika fakt, że może to być połączenie bezpieczniejsze ponieważ cracker może wykorzystać PROXY do zamaskowania swojego IP. Inną cechą jest wymóg posiadania zewnętrznego IP, czyli ofiara musi mieć mówiąc w uproszczeniu możliwość hostowania serwerów (np. gier).
  • ładunki typu reverse_tcp  w tym przypadku to ładunek łączy się po uruchomieniu z zewnętrznym serwerem lub komputerem hakera. Haker lub serwer musi mieć zewnętrzne IP. Właśnie dlatego w naszym przykładzie payload windows/meterpreter/reverse_tcp wymaga parametru LHOST (host lokalny hakera). Nie jest to oczywiści jedyny payload metasploit typu odwrotnego połączenia TCP/IP.
  • inne ładunki – istnieje wiele innych typów ładunków wykorzystujących wszelakie podatności atakowanego systemu i nie dające bezpośrednio dostępu do komputera ofiary. Dla przykładu niektóre ładunki pobierają tylko w tle pewien plik wedle konfiguracji payloada i go uruchamiają. Przykładem może być  cmd/windows/download_exec_vbs  którego opis jest następujący Download an EXE from an HTTP(S) URL and execute it. Warto przejrzeć listę ładunków wraz z ich opisami za pomocą wcześniej podanego polecania terminala. Na pewno można w ten sposób wiele nauczyć się.

Nasłuchiwanie połączenia ofiary z ładunkiem

To nie koniec próby ataku. Jako, że wybraliśmy ładunek typu reverse_tcp, należy oczywiście nasłuchiwać przychodzących połączeń na porcie 16666. Użyjemy specjalnie do tego celu przygotowany moduł multi/handler pakietu Metasploit Framework. Wydaj następujące polecenie:

Wykorzystaliśmy możliwość wywoływania poleceń za pomocą interfejsu poleceń Msfconsole. Możemy zrobić to również tak jak zaprezentowaliśmy kiedyś na naszym blogu w darmowej szkole hakerów wprost z Metasploit Framework w Kali Linux.

Połączenie z ofiarą za pomocą msfcli payload
Połączenie się z ładunkiem payload następuje automatycznie zaraz po uruchomieniu go.

Gotowe. Jeżeli już nasłuchujemy i na systemie atakowanym zostanie uruchomiony nasz wygenerowany plik to wtedy przejmiemy kontrole nad zdalnym systemem. Możemy uruchomić moduł keyloggera, wykonywać dowolne polecenia w systemie wraz z kasowaniem plików, zdalnie sniffować, uruchomić zdalny pulit VNC, podsłuchiwać dźwięk z mikrofonu lub nawet podglądać obraz z kamerki internetowej. Jeśli chcesz więcej dowiedzieć się o poleceniach meterpretera wpisz polecenie help.

UPDATE 08-12-2015: Uwaga! Wielu czytelników zgłosiło, że nie działa polecenie msfcli w systemach z nowszym pakietem Metasploit Framework np. Kali Linux 2.0. Po zbadaniu sprawy wychodzi na to, że teraz to polecenie nosi nazwę msfconsole.

To by było dzisiaj na tyle. Być może przyda Ci się nasz inny wpis dotyczący tego jak zmienić ikonę pliku. Zapraszamy do pulubienia nas na facebooku HakerEduPL. Trzymajcie się mocno i czytajcie książki zarówno fabularne jak i informatyczne! Pozdrawiamy! :-)




42 myśli na temat “Payload – hakerskie narzędzie msfvenom

    1. Można skorzystać z np: msfencode, jednak są to publiczne rozwiązania i będzie to nadal wykrywalne. Jedynie co możesz zrobić to nauczyć się programować i samemu od zera swój ładunek napisać w jakimś języku, lub również nauczyć się programować ale napisać crypter który szyfruje tak jak msfencode kod.

  1. Jakby przekierować port 80 na swoim routerze to ktoś kto się połączy przez przeglądarkę z naszym zewnątrznym IP z portem 80 będzie widzieć na jakie strony wchodzimy?

    1. Zdecydowanie nie. Żeby cokolwiek zobaczyła osoba w takim przypadku, musiałbyś uruchomić u siebie serwer HTTP. Wtedy ta osoby z poza sieci LAN (za NAT/routera), mogłaby oglądać tą Twoją stronę internetową którą uruchomiłeś.

  2. sprawdzilem wszystkie zapory wylaczone itd i nie wiem juz kompletnie co moze byc przyczyna chcialem sprobowac z TheFatRat ale nie moge zainstalowac mingw32 ;/ polecenie apt-get install mingw32 wyswietla ze nie udalo sie odnalzezc pakietu mingw32 moze jakas podpowiedz??Pozdrawiam czekam na nowe toutoriale :)

  3. Payload nie dziala w windows pojawia sie komunikat program wirus.exe przestał działać i tak za kazdym razem co moze byc nie tak robie wedlug twojego polecenia i haskyego z yt mam win7 x64. Pozdro

    1. Może już ten payload jest wykrywalny i antywirus usunął część zagrożenia? Od tego właśnie są AV, aby chronić przed tego typu backdoorami.

    2. Ok ale jak robie payloada w SET to wszystko sie udaje pokazane jest ze polaczono i sesia otwarta ale nie pojawia sie meterpreter> zostaje tylko na tym ze sesia otwarta i dalej nic nie moge zrobic co moze byc przyczyna?

  4. Witam , czy mozna poprosic o krotki poradnik zwiazany z openvas ? jak wiadomo nessus jest juz tylko wersja trial ale jakze wspanialy jest openvas wiem ze sa u niektorych problemy z instalacja i konfiguracja ale chodzi glownie okorzystanie z niego . Pozdrawiam serdecznie

    1. W nessusie możesz korzystać z tego triala ponieważ nie ogranicza on funkcjonalności w żaden sposób i do treningu wystarczy. Takie narzędzia są w 100% zbędne jeśli nie pracujesz zawodowo w firmie audytorskiej gdzie, ważny jest czas i automatyzacja.

      PS1: widziałeś https://www.youtube.com/watch?v=y9hjkgX9BrU?
      PS2: Nie wykluczam, że jak będzie czas to i onenvas się pojawia, ale wydaje mi się że on już jest w zainstalowany w Kali Linuksie i gotowy do pracy. Korzystanie z niego to podstawy języka angielskiego, bo on za Ciebie nie wykorzysta podatności tylko wskaże prawdopodobieństwo jego wykorzystania.

      Dzięki za komentarz Kim!

    2. zgadza sie ale trial tylko 7 dniowy :( wiec jak bede chial pokorzystac np w wolny weekend to juz lipa :( jakas alternatywa lub cos podobnego polecisz? oczywiscie darmowego bo tak jak mowisz nie jestem pentesterem klasy A+ tylko czasem pokorzystam w celach naukowych na moich dwoch lapkach . A tak poza tematem ostatnio robilem update i upgrade kaliego na vm i dziecko mi wylaczylo vm klikajac co popadnie i system kali linux siadl juz go nie odpalilem wyskakiwal blad :( instalacja od nowa alez koszmar . Pozdrawiam i prowadz bloga dalej bo jest moim podrecznikiem :)

    3. Dzieki za odpowiedzi na moje irytujące pewnie pytania:P , i tu pojawia sie kolejne , chce stworzyc payloada w formacie exe na win 7 64x i tworze, odpalam na kompie i nie laczy mi w metasploicie pojawia mi sie komunikat ze stworzylem ale nie dla tej wersji windowsa chyba chodzi o to ze dziala pod 32 bit jak stworzyc pod 64? widows/meterpreter/reverse_tcp nie działa bo jego wlasnie uzywam i czy port ktory robie np 1666 jak u Ciebie na filmiku musi byc otwart na tym win 7? i jak go otworzyc ? skanujac nmapem pokazuje mi tylko otwarty port 80 i 111 pod te porty robic? czy musze jakos inaczej przegladalem material wiele razy i nie moge dojsc co jest nie tak prosze o podpowiedz . Pozdrawiam

    4. Porty otwiera się na routerze i NMAP nic do tego nie ma. Dokładniej chodzi o przekierowanie portów (port forwarding) i multum stron i informacji na ten temat jest w sieci. Jeśli działasz w sieci LAN tak jak my prezentujemy to nic nie musisz otwierać KIM.

  5. Stworzyłem plik i na moim PC (win7 64bit) się niestety nie chce odpalić.
    Wyskakuje komunikat: „wersja tego pliku jest niezgodne z wersją używanego systemu windows”.
    Można to jakoś przerobić pod system 64 bit aalbo na 64. odpalić ten plik?

    1. Dziwne, wygląda na uszkodzony plik. Czy wysyłasz ten plik e-mailem lub antywirus w tle nie zablokował jego działania lub usunął jego funkcjonalność unieszkodliwiając go? Powinien działać wygenerowany plik na systemie 64 bitowym. Co do sedna Twojego pytania. Inne ładunki możesz zobaczyć wydając polecenie msfvenom --help-formats. Następnie po wyborze odpowiedniego dla siebie wydaj polecenie tak jak zostało przedstawione w tym wpisie z dodatkowym parametrem --format . Wskazujesz nim jaki format pliku do wygenerowania Cię interesuje z listy dostępnych.

  6. Dlaczego kiedy napiszę set payload windows/meterpreter/reverse_tcp i wciśnę enter pisze ,,The value specified for payload is not valid

    1. A wpisujesz to najpierw wybierając exploita? Widocznie dany ładunek payload nie jest dedykowany dla danego exploita który wybrałeś do testów. Dostępne ładunki możesz uzyskać za pomocą następującego polecenia:
      show payloads
      Ciężko wróżyć z fusów, ponieważ tutaj nie użyliśmy polecenia set ponieważ działaliśmy z msfcli (msfconsole).

    1. Po zbadaniu sprawy rzeczywiście pakiet Metasploit Framework uległ w tej wersji systemu aktualizacji. Po przejściu w konsoli do folderu z aplikacjami użytkownika /usr/bin i wydaniu polecenia ls ms* dowiedzieliśmy się, że aplikacja zmieniła nazwę. Teraz aby ją wywołać należy wpisać msfconsole.

      My działaliśmy po prostu na starej wersji Kaliego 1.1.

  7. Pewnie jestem debilem i coś źle zrobiłem, ale dla pewności zapytam. Mimo tego, że przerzuciłem pliczek backdoor.exe na mój drugi komputer (ofiarę) i odpaliłem za pomocą administratora, to oczekiwanie na infekcję trwa w nieskończoność. Jakieś sugestie co robię nie tak jak trzeba?

  8. Czy jest mozliwosc odczytywania sms z tel. innej osoby, np dziewczyny zeby spr czy mowi prawde? Albo czy jest mozliwosc taka zeby spr polaczenia np. zeby kazde polaczenie ktore dana osoba wykona bylo przysylane na maila z nr temtej osoby?

    1. Spróbuj na kali linux 1.1.0, na nim zostały przetestowane polecenia. Nie przypuszczałem, że w nowej wersji coś przekonfigurują lub usuną.

  9. hmm jest sposób żeby „atakować” kogoś z poza sieci lokalnej bez zewnętrznegi ip bo w mojm ruterze nie przekierowywania portów, a chiałbym przeprowadzić audyt swojego kompa

    1. To wtedy musi mieć system atakowany zewnętrzne IP. Po prostu niemożliwością jest połączenie się z czymś czego nie widać tak jak w życiu (ani z jednej ani z drugiej strony). Ewentualnie musiałby mieć obie osoby skonfigurowany program hamachi (wirtualna sieć LAN).

    1. Bo w gruncie rzeczy to trafne spostrzeżenie. Jak najbardziej jest to RAT. Tylko tak jak pisaliśmy payload to jest ładunek więc jego funkcjonalność może być dowolna (on tylko przenosi jak ciężarówka pewną funkcjonalność). Dziękuje za komentarz Defalt. ;-)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *