Nous avons couvert le défi boot2root Athéna de TryHackMe. Nous avons analysé la machine avec Nmap et découvert le serveur SMB à partir duquel nous avons extrait une note qui nous dirigeait vers un répertoire du serveur Web où nous avons découvert un outil ping en cours d'exécution. Nous avons utilisé la substitution de commandes pour injecter un shell de liaison et prendre le premier pied. Nous avons découvert un script de sauvegarde s'exécutant périodiquement en tant qu'autre utilisateur. Nous avons modifié le script pour exécuter le reverse shell et ouvert une autre session en tant qu'utilisateur Athena. Lors de l'énumération, nous avons constaté que l'utilisateur Athena peut charger les modules du noyau en tant que sudo en utilisant insmod sans avoir besoin d'un mot de passe root. Nous avons téléchargé le module noyau « venom.ko » et utilisé Ghidra pour procéder à l'ingénierie inverse du binaire. Nous avons découvert qu'il s'agissait d'un rootkit et après analyse du code, nous avons pu interagir avec le module pour appeler une fonction qui élève les privilèges d'Athena à Root.

Obtenir des notes OSCP

Transcription vidéo
La première chose que nous faisons tout le temps est le scan Nmap comme vous pouvez le voir ici. J'ai désactivé le ping vers la machine car parfois la machine ne répond pas aux requêtes ping ou parfois il y a des filtres qui bloquent le ping. Nous pouvons voir que nous avons deux ports ouverts 22 et 80. Voici donc la page principale. Ce ne sont que des lectures et vous vous rendez compte qu'il n'y a rien ici. Page de contact pareil. Si vous essayez d'utiliser la recherche d'annuaire en utilisant gobuster ou dirbuster et que vous ne trouverez rien d'important. Alors on se dirige vers. Le serveur SMB Un serveur de partage de fichiers utilisant SMB donc nous interagissons avec le partage à l'aide de cette commande.
Nous pouvons évidemment nous connecter sans mot de passe. Entrez sans mot de passe ni espace, vous pourrez vous connecter en tant qu'utilisateur anonyme.
Nous voyons deux actions publiques et IPC. Evidemment, celle qui intéresse le plus est la part du public. Et nous fournissons le nom du partage. Nous fournissons un mot de passe vide et nous nous connectons avec succès au partage.
Donc, ici, une fois que nous avons connecté, l'invite change depuis l'invite de la machine ou l'invite de ma machine vers le serveur SMB, car maintenant je me suis connecté au serveur. Je peux désormais interagir avec le serveur SMB. J'utilise donc LS pour lister les fichiers. Et nous pouvons voir. Un fichier texte, nous récupérons le fichier texte à l'aide de la commande get suivie de la définition. Nous affichons donc le contenu du fichier.
Et c'est la note ici administrateur.
Je voudrais informer qu'un nouveau système de ping est en cours de développement et j'ai quitté l'application correspondante.
Dans un chemin spécifique, accessible via l'adresse suivante.
C'est donc ce que vous voyez lorsque vous prenez cette adresse et y accédez via le navigateur. Il s'agit d'un simple outil de ping. il n'y a pas eu d'implémentation de la commande ping en utilisant la ligne de commande à l'aide des applications, donc en gros, allons ici et interagissons avec elle. Donc un à sept zéro zéro un. Et maintenant, il joue The Ping.
Si tu reviens. et essayez quelques méthodes d'injection de commandes comme le chaînage de commandes afin que les analystes en point-virgule envoient et que la tentative soit bloquée, tentative de piratage, alors voici le
on dirait que le personnage est filtré si nous essayons avec l'esperluette et renvoyons une tentative de piratage donc il y a un filtre.
Cela exclut tous les caractères interdits utilisés dans l’injection de commandes ou même dans les shells inversés. Donc, si ces caractères sont filtrés, cela signifie que même les shells inversés ne peuvent pas être utilisés.
Quelle est la solution ici ? La solution consiste à utiliser la substitution de commandes. J'ai expliqué les substitutions courantes dans les vidéos précédentes, les gars. Vous pouvez y revenir spécifiquement cette vidéo.
Contourner les filtres SQL à l'aide de la substitution de commandes
C'était une manifestation le overthewire jeux CTF Natas niveau 16. Très bien, nous allons donc utiliser la substitution de commandes ici.
Comme vous pouvez voir ce que j'ai fait. J'ai utilisé l'adresse IP. Il s'agit de l'entrée que l'application attend de l'adresse IP pour envoyer un ping. C'est celui-là car -C1 est une option. Nous pouvons utiliser dans la commande ping. Donc ici, nous envoyons un paquet et la substitution de commentaires commence. Ainsi, la substitution par virgule commence par le signe $. Et entre deux parenthèses, nous fournissons dans la commande que nous souhaitons exécuter puisque les caractères tels que l'esperluette, la barre verticale et le point-virgule sont bloqués ou filtrés, nous devons utiliser quelque chose de différent.
Nous utilisons un shell de liaison, le shell de liaison est l'inverse, c'est l'opposé du shell inversé. Nous faisons en sorte que le client ou la machine se connecte à nous.
Dans bind shell, nous nous connectons à la machine, ce qui signifie que la machine jouera désormais le rôle d'écouteur. Donc NC – LP quatre cinq quatre cinq le port et je veux que la machine écoute et une fois la connexion reçue. Je vais exécuter /bin/bash. nous faisons donc cela comme vous pouvez le voir maintenant, il tourne, indiquant que l'écouteur est en cours d'exécution, alors allez sur ma machine, c'est le shell de la machine.
Et comme vous pouvez le voir, je me connecte à la machine en utilisant cette commande. C'est ainsi que fonctionne le shell de liaison.
Et comme vous pouvez le voir, je suis capable de me connecter et d'atterrir en premier, donc je suis wwdata, qui est l'utilisateur du serveur Web Apache. J'ai téléchargé pspy64 pour lister les processus et les tâches cron actuels.
Nous remarquons un modèle avec un script de sauvegarde. Ce script de sauvegarde est donc exécuté à intervalles réguliers par l'utilisateur UID 1001.
Athena est donc l'utilisateur dont l'UID est 1001. Cela signifie donc que le script est exécuté périodiquement par l'utilisateur Athena. Nous naviguons vers le répertoire stockant la sauvegarde du partage utilisateur du script.
plus -la sauvegarde du partage utilisateur et ici nous voyons le script de sauvegarde. Étonnamment, l'utilisateur actuel www-data est le propriétaire du script, ce qui signifie que nous pouvons le modifier. Quel est le but de modifier le script puisque ce script est exécuté régulièrement par Athena et comme nous possédons toujours un utilisateur www-data peu privilégié, nous aimerions déplacer les privilèges vers le haut, ce qui signifie que nous voulons passer de www -données à Athéna.

Puisque le script s'exécute sous Athena. Cela signifie que si nous pouvons modifier le contenu du script et mettre un shell inversé lorsque le script s'exécute à nouveau. Il va exécuter le shell inverse. L'utilisateur Athena peut exécuter la commande insmod en tant que sudo sans avoir besoin de fournir un mot de passe root. Nous avons donc téléchargé le module venom.ko sur ma machine pour une ingénierie inverse à l'aide de Ghidra.

Nous pouvons d’abord voir les fonctions et initialiser la diamorphine. La diamorphine est un rootkit. Comment savons-nous qu'il s'agit d'un rootkit que nous utilisons Google
Voici donc la page principale de diamorphine. Selon la description, il s'agit d'un rootkit LKM pour les noyaux Linux. Et voici les instructions pour l'installer et le déverrouiller, comme vous pouvez le voir ici, le modèle commence de manière invisible. Pour le supprimer, vous devez le rendre visible.
C'est donc l'idée d'un rootkit qui est un malware ou un malware qui se cache des processus ou des modules. Ainsi, même si vous énumérez les processus ou si nous essayons de trouver les modules en cours d’exécution, le rootkit n’apparaîtra pas. D'accord, parce que c'est un rootkit. Et les rootkits utilisent le creusement de processus et l’injection de processus pour se cacher des yeux des enquêteurs. Cette commande est donc très importante car cette commande révélera le module.
tuer -63 0
De même, selon le code et les fonctions hacked_kill et give_root, nous devons exécuter la commande ci-dessous pour élever les privilèges
tuer -75 0
Réponses de la salle
Qu'est-ce que le drapeau utilisateur ?
Qu'est-ce que l'indicateur racine ?

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles