Narrateur: Vulnérabilités d'exécution de code.
Ces types de vulnérabilités nous permettent d’exécuter
du code du système d’exploitation sur le serveur cible.
Ainsi, si le serveur cible utilise Windows,
nous pourrons exécuter la
commande Windows, s'il utilise Linux, nous pourrons utiliser les commandes Linux.
De toute évidence, il s’agit d’un problème vraiment critique, qui nous
permettrait vraiment de faire tout ce que nous
voulons avec la cible.
Nous pouvons télécharger un
shell PHP, en utilisant la commande wget ou télécharger un payload, un
virus, tout ce
que nous voulons, en utilisant la commande wget Linux.
Vous devez simplement vous assurer que vous le téléchargez
dans un fichier ou dans un répertoire
sur lequel vous êtes autorisé à écrire des éléments.
Une autre façon d’exploiter cette vulnérabilité consiste à
exécuter des commandes de système d’exploitation et à obtenir un bouclier inverse
basé sur ces commandes.
Ainsi, étant donné que nous pouvons exécuter des commandes
du système d'exploitation, nous pouvons utiliser
les langages de programmation pris en charge par ce système d'exploitation
pour essayer d'établir une connexion inverse sur notre ordinateur.
Donc, tout d’abord, supposons simplement que nous
naviguons ici,
et que nous parvenons à y aller, puis
que nous arrivions à un onglet du site Web où
il vous permet de faire, par
exemple, un ping.
Maintenant, ce que vous devriez faire,
c’est que vous devriez toujours essayer d’expérimenter avec tous les travaux d’entrée que vous voyez.
Essayez de voir ce que cette entrée fait et
ce que vous pouvez y
injecter, que pouvez-vous faire pour que les choses fonctionnent.
Ainsi, par exemple, cette entrée fonctionne vous
dit qu'elle va faire un ping.
Et, si vous mettez une
adresse IP, par exemple, je vais mettre 10 20 14 203, qui est
ma propre adresse IP.
Juste pour le voir, pour l'utiliser comme une personne
normale, je vais faire une soumission et aller de l'avant, cingler
pour moi et me donner les résultats.
Donc, à quoi ça ressemble ici, il
exécute en fait la commande ping sur les
systèmes Linux.
Voyons maintenant si nous pouvons exploiter cela.
S'il exécute réellement la commande ping.
Donc, ce que ça
fait, ça va, et ça va.
Nous envoyons donc 10 20 14 203 comme ping.
Et puis cela va sur
le serveur Web et le serveur Web fait un ping, 10 20 14 203.
Voyons si nous pouvons exploiter cela.
Comment l'exploiterions-nous?
Il prend ce que nous entrons, juste ici.
Et puis, c'est faire un ping, ça.
Maintenant, dans les commandes basées sur Linux et Unix,
vous pouvez utiliser le signe Ce signe pour exécuter plusieurs commandes sur
une seule ligne.
Donc, si vous faites cela, par exemple dans votre propre terminal, je
vais simplement passer par mon terminal, ici.
Et je vais juste faire LS, qui est la commande
list puis PWD est ce qui
liste, ce qui montre votre répertoire de travail.
Donc, si je fais un LS, suivi
de ce signe puis de PWD, il exécutera les deux commandes.
Donc, il le fera et il montrera ensuite où se
trouve le répertoire de travail.
Donc, nous pouvons faire la même chose avec cela et voir
si cela fonctionne pour nous.
Donc, nous allons mettre dans IP, une IP correcte,
et ensuite je vais juste
faire un PWD et voir si cela exécutera le PWD pour moi.
Si c'est le cas,
il s'agit d'une vulnérabilité d'exécution de code
et je peux exécuter tout ce que je veux sur le serveur.
Alors voyons ce qui va se passer.
J'ai collé ceci, et je vais cliquer sur Soumettre.
Et comme vous pouvez le constater, nous avons les
résultats du ping, mais à la fin, nous
avons notre répertoire de travail actuel.
Donc, sa vulnérabilité via wwwdvwa est un exec.
Donc, il a exécuté le PWD que j'ai inséré.
Et cela signifie que je peux insérer toutes les commandes
que je veux, là-bas, et elles seront exécutées.
J'ai donc inséré un fichier de ressources
que vous pouvez utiliser pour obtenir une connexion inversée à
partir de l'ordinateur cible.
Maintenant, il y a un
certain nombre de moyens, un certain nombre de
commandes qui vous donneraient une connexion inverse.
Toutes ces commandes dépendent du langage de programmation.
Ainsi, par exemple, nous avons des commandes en PHP,
nous avons des commandes en Ruby, vous avez des commandes Pearl
et nous en avons une pour Bash.
Bash est la commande et le langage du shell Linux.
Ainsi, tous les systèmes d'exploitation Unix seront capables d'exécuter
des commandes Bash.
Donc, c'est une très bonne façon de le faire.
Ainsi, la plupart des systèmes Unix, cette
commande devrait fonctionner sur la plupart des systèmes Unix.
Donc, ce serait un très bon moyen de le faire.
Encore une fois, la plupart d'entre eux auraient
Python, alors Python serait un bon moyen.
Netcat, la plupart d’entre eux ont également Netcat.
Netcat est donc un bon moyen de le faire.
Et nous allons utiliser Netcat dans cette vidéo.
Je vais donc commencer
par écouter les connexions, comme
nous le faisions auparavant avec
Metasploit, lorsque nous faisions du multihandler.
Vous pouvez réellement utiliser un multihandler pour
cela et écouter une connexion.
Eh bien, je vais simplement garder les choses simples
et vous montrer une nouvelle façon.
Et je vais utiliser Netcat.
Donc, Netcat.
Netcat n'est qu'un outil qui
vous permet d'écouter et de connecter des ordinateurs ensemble.
Donc, je vais écouter sur le port 80 80.
Donc, Netcat est le programme.
vv est juste pour voir une sortie commentée, donc on peut
voir beaucoup de sortie, tout ce qui ne
va pas, on peut le voir.
Et nous lui disons d'écouter,
en utilisant l'option L sur le port 8080.
Donc, je vais frapper entrée, et
c'est dire juste en écoutant sur le port 8080, c'est tout ce
que ça va faire.
La prochaine commande que nous allons faire est, nous
allons essayer de nous connecter à partir
du serveur Web à mon ordinateur, en utilisant également Netcat.
Nous supposons donc que le serveur Web a Netcat.
Nous allons l'essayer et voir si cela fonctionne.
Donc, la commande est très simple.
C'est Netcat et nous lui disons d'utiliser bin bash.
Et nous lui donnons l'adresse IP de mon appareil.
Mon appareil attaquant, qui est 10 20 14.
Et puis le port qui est 8080.
C'est là que nous écoutons, juste ici.
Donc, je vais copier ça.
Et je vais simplement l'exécuter de
la même
manière que nous utilisions pour exécuter la commande PWD.
La dernière chose que nous avons faite était donc 10 20 14 203.
Et puis nous avons fait PWD.
Donc, ce
que je vais faire maintenant, je
vais supprimer la PWD et coller le code
que nous venons de créer, que nous essaierons de relier le
serveur Web à la machine cally à la machine attaquante.
Et je vais venir ici.
Et, comme vous pouvez le constater, nous
avons reçu une connexion de 10 20 14 204 à nous.
Donc, c'est l'ordinateur bloqué.
Et, si nous faisons une PWD, vous verrez que nous avons un
shell inversé si nous faisons un LS.
Si nous faisons une identification, vous verrez que nous sommes wwwdata et vous
êtes libre de (marmonner) vous nommez A, juste pour confirmer.
Que je suis dans le Metasploitable et vous pouvez voir que
je suis dans le Metasploitable.
Et, je peux exécuter n'importe quelle commande que je veux
sur l'ordinateur cible.
Donc, fondamentalement, j'ai un accès complet à l'ordinateur cible.