50 nuances de jeton



Demain à midi, heure de Moscou, un nouveau laboratoire de tests d'intrusion Test Lab 12 sera lancé, qui est une copie d'un véritable réseau d'entreprise avec ses vulnérabilités inhérentes et ses erreurs de configuration. Le site Web du laboratoire a déjà enregistré 25 000 participants, dont des experts de premier plan dans le domaine de la sécurité de l'information des plus grandes entreprises russes et internationales.

Vous trouverez ci-dessous des informations sur la composition du nouveau laboratoire, des exemples de recherche et d'exploitation des vulnérabilités et du matériel de formation.

Dans les laboratoires, l'accent est mis sur le réalisme: la structure informatique est conçue par analogie avec les réseaux d'entreprises, rapprochant les actions des attaquants d'un véritable piratage. Les participants agissant comme des intrus tentent d'exploiter les vulnérabilités et, en cas de succès, d'accéder à des nœuds individuels du laboratoire, chacun contenant un jeton. Le gagnant est le participant qui a d'abord collecté tous les jetons , c'est-à-dire qu'il a en fait reçu un contrôle total sur le réseau d'entreprise virtuel.

Tout le monde, quel que soit son niveau de compétence, peut tester ses compétences de test de pénétration dans des conditions aussi proches que possible des réelles, sans enfreindre la loi.

Le nouveau laboratoire consistera en un réseau informatique distribué, présenté sous la forme de plusieurs périmètres avec différents niveaux de complexité de pénétration. Le premier périmètre (externe) est le plus facile à «percer», puis les progrès deviendront plus compliqués. Dans le secteur le plus complexe, nous plaçons des vulnérabilités dont l'exploitation est difficile avec un grand nombre de participants. Cette approche nous permet de résoudre deux problèmes à la fois:

  • permettre Ă  chacun d'Ă©valuer ses compĂ©tences en laboratoire, tout en conservant son rĂ©alisme;
  • Ă©liminer une situation dans laquelle, lors de l'exploitation de certains types de vulnĂ©rabilitĂ©s ou lors d'une attaque, les participants interfèrent les uns avec les autres.



A joué dans le film dans le laboratoire utilisé:

  • Divers services rĂ©seau (Mail, DNS, AD et VPN, etc.), SIEM et DBMS;
  • WebApp et API (PHP, Python, Django, Java);
  • Applications de bureau auto-Ă©crites;
  • Services d'assistance supplĂ©mentaires pour le rĂ©alisme.

Pour passer le laboratoire, vous aurez besoin de:

  • compĂ©tences professionnelles avec divers protocoles rĂ©seau;
  • la capacitĂ© d'analyser les donnĂ©es du système SIEM, de configurer des filtres de corrĂ©lation, etc.
  • expĂ©rience en ingĂ©nierie inverse;
  • ExpĂ©rience dans la recherche de vulnĂ©rabilitĂ©s dans les services rĂ©seau et les applications Web.

Tests de pénétration en laboratoire privé


Nous avons décidé d'exposer la réalisation de plusieurs tâches de l'ancien laboratoire privé, qui a été développé cet été pour aider les spécialistes novices à acquérir rapidement des compétences de base.

Toutes les informations concernant la composition du laboratoire (systèmes, utilisateurs, etc.) sont fictives et ne servent qu'à créer son image réaliste.

Les techniques de test de pénétration décrites dans l'article sont de nature pédagogique. Ne violez pas la loi.

Toute la structure de l'organisation fictive «UNIONSEC», composée de 15 serveurs, était située derrière la passerelle 192.168.102.10, accessible après l'établissement de la connexion VPN. Les participants ont été chargés de compromettre le réseau d'entreprise du laboratoire. Le résultat du fonctionnement de chacune des vulnérabilités était un jeton, qui devait être transmis via le formulaire sur la page lab.pentestit.ru .



Le laboratoire a été attaqué par 7 équipes de deux participants, mais personne n'a pu compromettre l'ensemble du réseau. Néanmoins, certaines équipes ont montré un résultat décent.



Le travail en laboratoire exigeait une expérience avec divers outils et compétences dans la conduite d'essais de pénétration. En outre, certaines tâches ne pouvaient pas être accomplies sans connaissances dans le domaine du développement et de la rétro-ingénierie. Étant donné le temps limité qui a été accordé aux participants pour accomplir les tâches, la réalisation de près de la moitié des tâches, à notre avis, est un résultat valable.



Intelligence


En utilisant l'utilitaire nmap, nous obtenons une liste de ports ouverts:

nmap 192.168.102.10 -sV





Site Web de l'entreprise


Ă€ l'adresse 192.168.102.10 dans la section "Contactez-nous", nous voyons une liste d'adresses e-mail:


Selon le code HTML de l'application, nous pouvons supposer qu'il utilise le CMS WordPress et contient le plugin wp-symposium-15.1.

Grâce à www.exploit-db.com, nous déterminons que le plugin est vulnérable à l'injection SQL. Grâce à l'URI 192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size= ", nous essayons d'exploiter la vulnérabilité à l'aide du script BASH:

 #!/bin/bash for ((i=0; i<= 10; i++)) do wget --no-proxy -q -O- "http://192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA limit 1 offset $i; --" echo "" done 

Nous obtenons la liste des bases de données:

information_schema
wp_db


et après avoir exploité la vulnérabilité - le jeton:

wget -q -O- 192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=* from token; --"





Mail


Nous énumérons les mots de passe à l'aide d'hydra:

hydra smtp://192.168.101.10 -s 25 -L /tmp/emails -P /tmp/pass



En utilisant les données reçues, nous autorisons le WUI du serveur de messagerie et obtenons le jeton:




Openvpn


Connexion

Depuis le web nord http://192.168.102.10:88 chargeons le fichier «openvpn.conf». Après avoir analysé le serveur (par exemple, avec l'utilitaire DirBuster), nous trouvons .bash_history :

-bash: generating new OpenVPN password for user admin: command not found
-bash: generating: command not found
-bash: date +%F: command not found
-bash: echo "admin:`date +%F | md5sum | sed -s 's/ -//'`" > /etc/openvpn/user.pass: command not found
cat /etc/openvpn/user.pass
service openvpn restart
exit


où vous pouvez trouver le nom d'utilisateur, ainsi que l'algorithme de génération de mot de passe. Pour lire le mot de passe créé précédemment, utilisez la date exacte de création du fichier:



et effectuer la conversion en fonction de l'historique des équipes. Le mot de passe résultant est utilisé pour l'authentification VPN.

Analyse du serveur

Une fois connecté au VPN, nous analyserons les ports du serveur:



Nous obtenons le jeton sur http://10.255.0.1:8080 :





TERMINAL


Le serveur VPN nous envoie plusieurs routages vers les réseaux internes, après avoir scanné que nous trouvons plusieurs hôtes avec un port 22 ouvert. Nous essayons de nous connecter sous le compte dev . Une fois connecté à l'un des serveurs, nous constatons la présence du répertoire / home / support et essayons de sélectionner un mot de passe pour le compte du même nom:

patator ssh_login host=192.168.11.5 user=support password=FILE0 0=usr/share/wordlists/rockyou.txt -x ignore:fgrep='Authentication failed'



Après avoir récupéré le mot de passe, nous obtenons le jeton situé dans le répertoire personnel:



Rétro-ingénierie


Sur le serveur TERMINAL, nous parvenons Ă  trouver l' admin.bin , dont l'action se termine par une demande de mot de passe. En utilisant l'inverse, nous obtenons le mot de passe fv34cm3cm , qui est un jeton. Lorsque vous le saisissez, nous recevons la SSH PRIVATE KEY .

À partir de la clé privée, nous nous authentifions sur le serveur 192.168.11.2 , dans lequel nous trouvons le fichier dump.pcap dans le dump.pcap /opt/ . Nous analysons le vidage du trafic réseau à partir du fichier et extrayons le jeton, ainsi que le mot de passe pour l'autorisation BASIC sur le serveur Web 192.168.11.3 :

tcpdump -r /tmp/dump.pcap -A | grep token





API


Sur 192.168.11.3 , l'API est localisée, accessible depuis le PC de l'administrateur. En utilisant la traduction de port (par exemple, via SSH), nous commençons son étude.

Après avoir exploité la vulnérabilité découverte dans l'API, nous obtenons un jeton qui fait partie du mot de passe de l'utilisateur admin :



Une application Web est disponible sur http://172.16.0.4 , qui est en cours de développement. Du fichier readme.html , nous obtenons une liste des pages développées:



Lors de l'ouverture de http://172.16.0.4/availability.php nous obtenons une erreur. Nous essayons de répéter l'action en utilisant le paramètre REFERRER http://172.16.0.4/index.html , après quoi le formulaire avec le bouton ping devient disponible:



Après avoir vérifié que le champ d'entrée n'a pas de filtrage, nous obtenons le jeton:


Nous sommes connectés via SSH au serveur 172.16.0.1 . Après autorisation, nous sommes accueillis par un script qui demande un code PIN (5 chiffres):



En utilisant un script d'auto-rédaction de mot de passe, nous obtenons un accès complet à la console et trouvons le fichier avec le jeton dans le dossier de l'utilisateur:




Retour vers le futur


Pour vous habituer rapidement au nouveau 12e laboratoire, nous avons préparé une courte liste de matériels et d'outils:


Rendez-vous dans «Test lab 12» et laissez le plus fort gagner!

Source: https://habr.com/ru/post/fr432940/


All Articles