[Petit exercice Python] Utiliser Python pour écrire des scripts POC - Partie 1

concept de base

Qu'est-ce que le POC

Poc (nom complet : Proof Of Concept), la traduction chinoise est une preuve de concept. Dans l'industrie de la sécurité des réseaux, il s'agit d' un programme de vérification de vulnérabilité , similaire à une démonstration de fonction dans le développement de programmes. Il prouve uniquement la faisabilité d'une certaine fonction ou d'un certain point de vue et n'est généralement pas "destructeur" .

Qu'est-ce que l'Exp

Exp (nom complet : Exploit), qui se traduit par programme d'exploitation en chinois, est un programme capable d'exploiter la valeur des vulnérabilités. Par exemple, les vulnérabilités d'injection SQL peuvent être utilisées pour obtenir le contenu des données sensibles de la base de données ou les autorisations du serveur en exécutant le script Exp.

Problème commun

Exp est la même chose que Poc ?

À proprement parler, les deux ne sont pas identiques. En termes d'exhaustivité du script , Exp est plus complet que Poc. Exp a non seulement des fonctions de vérification des vulnérabilités, mais également des fonctions d'exploitation des vulnérabilités. La relation entre les deux peut être comprise comme une relation d’inclusion dans des ensembles mathématiques, c’est-à-dire que Exp inclut Poc. D'un point de vue fonctionnel, EXP peut non seulement vérifier l'existence de vulnérabilités, mais également obtenir les informations souhaitées ou les autorisations du serveur via des vulnérabilités, ce qui est généralement « destructeur » .

Par exemple, la serrure de la porte de l'entrepôt est cassée. Vous avez vérifié en poussant la porte ouverte que la porte est cassée et ne peut pas être verrouillée, mais vous n'avez pas endommagé ni volé les biens à l'intérieur. Il s'agit d'une vérification POC. D'un autre côté, vous poussez la porte et constatez que la serrure de la porte est cassée, et vous entrez et volez la propriété à l'intérieur. C'est une attaque EXP.

Pourquoi la plupart des vulnérabilités sur Internet ne divulguent-elles que des POC ?

  • Les intérêts sont liés et le personnel de l'industrie noire exploite souvent les failles pour réaliser des profits. Une fois les failles rendues publiques, elles seront réparées plus rapidement, ce qui affectera des profits inappropriés.
  • En raison de restrictions légales, la diffusion à volonté de détails sur les vulnérabilités entraînera des conséquences inappropriées, la plupart d'entre elles ne sont donc que des preuves.
  • La théorie existe. Par exemple, de nombreuses entreprises exigent désormais que des chapeaux blancs exploitent les vulnérabilités uniquement à des fins de vérification et non pour une exploitation en profondeur. Afin d'éviter que l'entreprise ne soit affectée, la plupart d'entre elles s'arrêtent après avoir prouvé l'existence de la vulnérabilité. Il n’y a pas de processus d’exploitation de vulnérabilité plus approfondi et spécifique. En théorie, cela existe. Il existe également des vulnérabilités de « type de version ». Si la version détectée est relativement faible, cela signifie qu'il existe une vulnérabilité, mais elle ne peut pas être exploitée davantage, il est donc impossible d'écrire Exp.

Pourquoi utiliser Python pour écrire

D'un point de vue pratique, POC n'est qu'un programme de vérification. L'écriture du programme doit tenir compte des habitudes de l'éditeur, de l'environnement d'application et de la commodité, tant que l'objectif peut être atteint. J'ai choisi Python principalement parce qu'il est plus convivial pour les novices, que son seuil d'utilisation est bas et que le programme est facile à lire.

Processus d'écriture

Obtenir des détails

Obtenez des informations sur les vulnérabilités via le compte public WeChat du site Web de renseignement sur les menaces, etc., telles que la clarification du type de vulnérabilité, du principe de fonctionnement, du numéro de version, de l'environnement de déploiement, etc. L'exigence minimale est qu'après avoir lu ces informations, vous puissiez savoir quelle est la vulnérabilité . , à peu près pourquoi la vulnérabilité se produit et comment Répliquer l'environnement de vulnérabilité et comment reproduire la vulnérabilité .
Sites Web de ressources recommandés :
https://x.threatbook.com/v5/vulIntelligence
https://www.cnvd.org.cn/
https://www.exploit-db.com/Compte
public recommandé :
recherchez directement des mots-clés " "Centre de réponse d'urgence" ou "Cert" suffit

Construire un environnement

Sélection de l'environnement : vous pouvez utiliser divers environnements de base intégrés tels que des machines virtuelles, des images Docker et phpstudy. Qu'il s'agisse d'un local ou d'un cloud, cela est décidé en fonction de la situation. La simulation de l'environnement doit être effectuée autant que possible sur la base des informations de vulnérabilité connues pour garantir un taux de réussite élevé de la réplication des vulnérabilités. Le déploiement local de Docker est recommandé, ce qui est plus pratique . et plus vite.
Recommandations de ressources :
https://github.com/fofapro/vulfocus
https://github.com/vulhub/vulhub

Vulnérabilité reproductible

Sur la base des détails de la vulnérabilité, nous reproduisons progressivement la vulnérabilité. Lors de la reproduction, portez une attention particulière à la méthode de requête, au contenu de l'en-tête de requête nécessaire, au contenu des paramètres et à l'identification de l'existence de la vulnérabilité (qui peut être une certaine chaîne ou un certain code d'état), etc. Capable de comprendre les principes des vulnérabilités et de réussir leur exploitation.
A terme, le contenu du paquet de requête devrait être réduit autant que possible tout en garantissant que la vulnérabilité puisse être reproduite, facilitant ainsi l'écriture de scripts.

Scénario

Une fois la récurrence terminée, les scripts sont écrits selon le processus de récurrence et le script est utilisé pour simuler le processus de récurrence. Par exemple, si le fichier de configuration conf.ini du site Web xxx.com est divulgué, les étapes de base pour écrire un script sont les suivantes :
1. Envoyer une demande pour détecter xxx.com/conf.ini
2. Déterminer si le code d'état de la réponse est 200
3. Déterminer si le contenu du paquet de réponse est un contenu conf.ini
4. Tirer une conclusion quant à l'existence de la vulnérabilité.

script de test

Le POC pratiquement écrit teste l'environnement de simulation local pour garantir que le script peut s'exécuter pour obtenir l'effet de détection, puis l'améliore et l'optimise continuellement pour obtenir le dernier effet d'utilisation.

Guess you like

Origin blog.csdn.net/weixin_54430466/article/details/132845259