Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
revsuit — RevSuit è una piattaforma di connessione inversa flessibile e potente progettata per ricevere connessioni dall'host target durante la penetrazione. | Kitploit
Strumenti/GitHubGitHub/li4n0/revsuit
Frameworks per Penetration TestingRicognizioneAnalisi delle VulnerabilitàExploitRaccolta InformazioniSicurezza WebPenetration TestingAnalisi DNS
GitHubli4n0/revsuit

revsuit

RevSuit è una piattaforma di connessione inversa flessibile e potente progettata per ricevere connessioni dall'host target durante la penetrazione.

Vedi Repository
564693 anni faRevisionato da Kitploit

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

RevSuit - Una piattaforma di connessione inversa flessibile e potente

Inglese |简体中文

Panoramica

RevSuit è una piattaforma di connessione inversa flessibile e potente progettata per ricevere connessioni dal sistema target durante un penetration test. Attualmente supporta i protocolli HTTP, DNS, RMI, LDAP, MySQL e FTP.

Flessibile:

  1. RevSuit permette di impostare regole flessibili per intercettare diverse connessioni.
  2. Distribuzione ed esecuzione tramite binari, senza preoccuparsi di fastidiosi errori di dipendenza.

Potente:

  1. Consente di personalizzare la risposta per diverse connessioni tramite regole e supporta la generazione dinamica di risposte utilizzando variabili template.
  2. Supporta una varietà di protocolli e l'utilizzo avanzato di alcuni di essi, come DNS rebinding, MySQL Load Local Data, JDBC Deserialize Exploit, FTP Passive Mode SSRF, ecc.
  3. Supporto nativo per l'uso con scanner.
  4. Supporta notifiche push su software per ufficio più diffusi.
  5. Altre funzionalità ponderate e dettagliate.

Utilizzo base

Installazione e configurazione

Scarica l'ultima versione direttamente o compila seguendo questi passaggi:

root@kitploit:~
git clone https://github.com/Li4n0/revsuit.git
cd revsuit/frontend && yarn install && yarn build
cd ../ && go build ./cmd/revsuit/revsuit.go

RevSuit genera un file di configurazione predefinito al primo avvio. Modifica il file di configurazione secondo le tue esigenze, quindi riavvia. Una descrizione dettagliata del file di configurazione è disponibile qui: Note di configurazione

Esecuzione

Per determinare la posizione IP, è necessario utilizzare un database di geolocalizzazione IP. Per impostazione predefinita viene utilizzato QQwry, ma puoi modificare la configurazione per usare GeoIP. Se il database selezionato non è disponibile nella directory corrente o è stato aggiornato più di una settimana fa, RevSuit scaricherà automaticamente l'ultima versione. Se il download fallisce, il campo IpArea rimarrà sempre nullo.

root@kitploit:~
$ ./revsuit   
2021/05/16 22:55:10 [ INFO] Downloading qqwry.dat...

    ____            _____       _ __ 
   / __ \___ _   __/ ___/__  __(_) /_
  / /_/ / _ \ | / /\__ \/ / / / / __/
 / _, _/  __/ |/ /___/ / /_/ / / /_  
/_/ |_|\___/|___//____/\__,_/_/\__/    
                                   vBeta0.1
     https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Starting HTTP Server at :80, token:your_token
2021/05/16 22:55:22 [ INFO] Start to listen FTP PASV port at :2020, PasvIP is 10.9.8.7
2021/05/16 22:55:22 [ INFO] Starting FTP Server at :21
2021/05/16 22:55:22 [ INFO] Starting MySQL Server at :3306
2021/05/16 22:55:22 [ INFO] Starting RMI Server at :1099
2021/05/16 22:55:22 [ INFO] Starting DNS Server at :53

Dopo l'esecuzione, puoi visitare il percorso /revsuit/admin/ del server HTTP e inserire il token per accedere al pannello di controllo.

Creare regole e ricevere connessioni

Prendiamo come esempio la creazione di una regola HTTP:

Alcune note:

  1. Il name e flagFormat della regola sono univoci.
  2. FlagFormat utilizza la sintassi delle espressioni regolari e, per protocolli diversi, i campi a cui si applica flagFormat sono diversi; puoi controllare i suggerimenti corrispondenti durante la creazione delle regole per maggiori dettagli.
  3. Le regole con rango più alto hanno la precedenza.
  4. Per regole di protocolli diversi, puoi impostare risposte personalizzate diverse; per alcuni protocolli possono essere utilizzate variabili template.
  5. Puoi impostare gruppi con nome nelle espressioni regolari di flagFormat; il risultato del gruppo corrispondente sarà usato come variabile template.

Come mostrato di seguito, creiamo una regola che utilizza variabili template integrate e variabili template personalizzate del protocollo http, e la chiamiamo test_create_rule:

img.png

Quindi effettuiamo una richiesta che soddisfi la regola e osserviamo la risposta.

img.png

La richiesta verrà registrata contemporaneamente sulla piattaforma.

img.png

Notifiche

Se desideri ricevere notifiche per nuove connessioni sul tuo software per ufficio, puoi configurare l'indirizzo webhook del software pertinente nel file di configurazione e attivare l'interruttore Notice per la regola corrispondente. Attualmente sono supportati solo quattro tipi di software: dingtalk, wechat, lark, slack. (Il supporto per Discord e Telegram è in programma.)

Importazione/Esportazione regole

Se stai migrando tra piattaforme o pulendo i dati, ricreare le regole può essere scomodo. Per questo la piattaforma supporta l'importazione e l'esportazione delle regole.

Il punto di accesso per questa funzione si trova in Settings>RULES.

Le regole vengono memorizzate in formato YAML per l'importazione/esportazione, come nell'esempio seguente:

root@kitploit:~
http:
  - name: test_create_rule
    flag_format: (?P<what>\w+)\?
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "302"
    response_headers:
      Location: ${query.url}
    response_body: ${header.say} ${what}
  - name: other_rule
    flag_format: other
    rank: 1
    push_to_client: false
    notice: true
    response_status_code: "200"
    response_headers: { }
    response_body: Hello Revsuit!
dns:
  ... ...

Utilizzo avanzato

Utilizzo con uno scanner

RevSuit è stato separato dal mio progetto scanner, quindi il suo supporto nativo funziona con gli scanner.

Dal punto di vista di RevSuit, chiamiamo uno scanner un client.

Stabilire una connessione

RevSuit utilizza HTTP Server-sent Events (SSE) per stabilire un canale di comunicazione unidirezionale con il client.

L'API per il canale è: /revsuit/api/events?message. Il client deve prima aggiungere l'intestazione Token: your token all'Header, quindi accedere all'API per stabilire il canale. Quando la piattaforma riceve una nuova connessione, il flag catturato dalla regola verrà passato al client attraverso questo canale. img.png

Ecco una demo semplice che utilizza la libreria sse di Golang come esempio.

Multi-client

Come mostrato sopra, RevSuit supporta più client, e ogni client nello stato connesso riceve la notifica del flag, quindi è possibile supportare scansioni distribuite.

Se non desideri che ogni client riceva tutte le notifiche dei flag, puoi utilizzare l'intestazione della richiesta Flag-Filter quando crei una connessione sse per impostare il formato (espressioni regolari) del flag che quel client deve ricevere:

img.png

Coda di archiviazione temporanea

RevSuit memorizza temporaneamente i flag in una coda quando non ci sono client connessi e li invia quando un client si connette, quindi non devi preoccuparti di perdere vulnerabilità a causa della disconnessione del client. (Ciò è particolarmente utile per scoprire vulnerabilità che si attivano con ritardo.)

Utilizzo di flagGroup

In uno scenario reale di scansione delle vulnerabilità, potresti inviare un gran numero di payload diversi per un singolo punto di vulnerabilità, e potrebbero essere tutti validi, con il risultato che la piattaforma di backlink riceve molte richieste, ma sono tutte causate dalla stessa vulnerabilità. Se non desideri che il client riceva molti flag per la stessa vulnerabilità, puoi sfruttare la funzionalità flagGroup di flagFormat della regola.

FlagGroup è il contenuto corrispondente al gruppo anonimo nel campo flagFormat della regola. La piattaforma controlla il contenuto corrispondente nel gruppo e il flag viene inviato al client solo quando il contenuto (flagGroup) viene catturato per la prima volta.

Ad esempio, scansione SSRF.

Prima crea una regola come la seguente:

root@kitploit:~
http:
  - name: ssrf
    flag_format: (ssrf[a-z0-9]{6})[0-9]{1,3}
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "200"
    response_headers: { }
    response_body: "Here is a SSRF!"

Supponiamo che il nostro target sia https://www.testvuln.com?url=api.com&p=useless, e per la SSRF abbiamo 5 payload. La richiesta finale inviata dallo scanner potrebbe essere ['https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni1&p=useless','https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni2&p=useless', ... ,'https://www.testvuln.com?url=//revsuit.com/ssrfa98oni5&p=useless']. Potrebbero avere tutti successo.

Tuttavia, poiché nella regola è stato utilizzato un gruppo anonimo in flagFormat, la piattaforma cercherà il flagGroup connesso, in questo caso ssrfa98oni, e invierà il flag al client solo al suo primo verificarsi, quindi il client riceverà un solo flag: ssrfa98oni1. Questo dimostra già che il parametro url del target è vulnerabile.

Collaborazione multi-modulo

In scenari reali di penetration testing, alcuni compiti possono essere svolti facilmente e rapidamente combinando e abbinando vari moduli di RevSuit. Di seguito è riportato un esempio di XXE cieco in Java Web, che mostra come utilizzare i moduli HTTP e FTP di RevSuit, combinati con variabili template, per eseguire rapidamente una scansione delle porte.

Prima crea una regola HTTP per restituire evil.dtd, personalizzando la risposta con il contenuto del dtd in modo che si connetta al servizio FTP di RevSuit, e utilizza variabili template per passare Host e Porta da scansionare a FTP tramite l'utente e la password di FTP.

Crea regola evil.dtd

Quindi crea una regola FTP che riceve Host e porta da scansionare dalle variabili template utente e password, impostate su Pasv Address.

Crea regola scansione FTP

Poi utilizza BurpSuit per avviare la scansione, impostando i parametri host e porta nell'URL di evil.dtd per definire il target della scansione delle porte.

xxe

Il risultato dell'esecuzione è il seguente:

ftp-scan

Poiché la connessione FTP viene interrotta se Passive Address non è raggiungibile, possiamo determinare se la porta è aperta o meno in base al fatto che la connessione termini normalmente. In questo esempio, abbiamo rilevato con successo che le porte 8005 e 8080 sono aperte.

Ulteriori utilizzi

Una wiki più dettagliata è in preparazione; puoi esplorare autonomamente nel frattempo.

Feedback, suggerimenti e comunicazione

Invia un issue o contattami tramite Weixin: TGk0bjA2Cg==

Riconoscimenti

Riferimenti

Questo progetto si ispira al codice dei seguenti progetti eccezionali:

  • https://github.com/rmb122/rogue_mysql_server
  • https://github.com/256dpi/newdns
  • https://github.com/EmYiQing/JNDIScan

In particolare

Grazie al mio amico @E99p1ant per tutto l'aiuto e i consigli ricevuti durante lo sviluppo di questo progetto.

Licenza

@Apache License 2.0

Scarica lo strumento