{"componentChunkName":"component---src-templates-blog-js","path":"/ctf/a-tinycore-machine-version-facile","result":{"data":{"markdownRemark":{"html":"<p>Dans cet article nous allons voir comment exploiter le service NFS afin d’élever nos privilèges à partir d'un compte standard pour devenir root. </p>\n<h4>Table des matières:</h4>\n<ul>\n<li>outils</li>\n<li>scan</li>\n<li>exploitation</li>\n<li>conclusion</li>\n</ul>\n<h4>Outils</h4>\n<p>Pour ce challenge on va utiliser une VM légère configurée exprès pour cela: une tinycore. Retrouvez la VM <a href=\"https://www.gatsbyjs.org/\">ici</a>.</p>\n<p>On a besoin d'une machine d'attaque  et nous avons choisi d'utiliser une VM kali, l'une des dernières versions. Nous allons sauter les étapes d'installation de notre environnement virtuel considérant cela comme acquis. Toutefois assurons nous d'avoir sur le même réseau la VM cible et la VM d'attaque.</p>\n<h4>Scan</h4>\n<p>Cette étape consiste à  trouver l'adresse IP de la machine cible. En effet après l'avoir lancée on se retrouve avec cet écran :</p>\n<p><img src=\"/assets/tc-invite-screen.png\" alt=\"tc machine\" title=\"tc machine\"></p>\n<p>Il nous faut à présent connaître les adresses ip des deux machines. J'ai configuré la VM de la Kali avec une unique carte réseau</p>\n<p>Dans un terminal de la machine d'attaque nous faisons un :</p>\n<pre><code class=\"language-shell\"># ifconfig eth0\n</code></pre>\n<p><img src=\"/assets/kali-ip.png\" alt=\"kaliip\" title=\"kali ip\"></p>\n<p>Sachant que la machine cible est sur le même réseau que notre Kali, ce qui nous facilite la tache, nous allons utiliser nmap pour trouver son adresse ip et en même temps identifier les services qui tournent.</p>\n<pre><code class=\"language-shell\"># nmap -A 192.168.1.0/24 \n</code></pre>\n<p>Étant donné que nous avons  scanné tout le réseau, à chaque ip adresse, ip active, nmap va renvoyer un résultat.</p>\n<p>Voila le résultat pour la machine cible :</p>\n<p><img src=\"/assets/service-actif-tc.png\" alt=\"runningservices\" title=\"services actifs\"></p>\n<h4>Exploitation</h4>\n<p>Trois services sont actifs sur la machine cible. Deux d'entre eux sont très intéressants: `ssh` et `nfs`.</p>\n<p>Le protocole nfs est un protocole de partage de répertoire. Ceci étant dit nous allons rechercher quel répertoire  la machine cible partage.</p>\n<pre><code class=\"language-shell\"># showmount -e 192.168.1.37\n</code></pre>\n<p><img src=\"/assets/sharedir.png\"></p>\n<p>Grace à ces informations on connaît non seulement le chemin complet du répertoire partagé mais on peut déduire que bob est un potentiel utilisateur du système.</p>\n<p>Nous allons maintenant monter le répertoire partage sur notre kali afin de voir ce qu'il contient. Créons un répertoire de montage puis montons le répertoire /home/bob de la cible dessus</p>\n<pre><code class=\"language-shell\"># mkdir mount_point\n# mount -t nfs 192.168.1.37:/home/bob mount_point/\n# cd mount_point\n</code></pre>\n<p><img src=\"/assets/files_in_bob.png\" alt=\"ls\" title=\"liste\"></p>\n<p>Nous sommes à présent dans le répertoire partage et nous avons pu lister son contenu. Puisque nous avons déduit que c'est le répertoire personnel de l'utilisateur bob nous pouvons essayer de nous logger via le protocole <code>ssh</code> . Créons un répertoire .ssh dans lequel on ajoutera un fichier qui va contenir la clé ssh publique de ma machine d'attaque. Ainsi des que je voudrais me connecter à distance sur le système il ne va pas me demander de mot de passe car il va me reconnaître en tant que machine habilitée à me connecter de cette façon.</p>\n<p>Pour cela générons la clé publique de la kali si ce n'est pas encore fait:</p>\n<pre><code class=\"language-shell\"># ssh-keygen -t rsa\n</code></pre>\n<p><img src=\"/assets/public_ssh_key_kali.png\"></p>\n<p>Pour ma par je l'avais déjà généré, il me demande d'écraser le premier. Bref. La commande crée d'abord une clé secrète <code>id.rsa</code> et la clé publique <code>id_rsa.pub</code> et  sauvegarde le tout  dans le répertoire <code>/root/.ssh</code> .</p>\n<p>Copions la clé publique dans <code>/root/mount_point/.ssh</code></p>\n<pre><code class=\"language-shell\"># cp /root/.ssh/id_rsa.pub /root/mount_point/.ssh/authorized_keys\n</code></pre>\n<p><img src=\"/assets/copi_pub_key.png\" alt=\"copy_id_rsa\"></p>\n<p>Ouvrons à présent un autre terminal pour nous logger via ssh.</p>\n<pre><code class=\"language-shell\"># ssh bob@192.168.1.37\n</code></pre>\n<p><img src=\"/assets/established_connection.png\" alt=\"connected\"></p>\n<p>A la question qui m'a été posée j'ai répondu yes. C'est simplement la kali qui me demande si j'accepte d'ajouter la machine ayant pour adresse ip <code>192.168.1.37</code> dans la liste des machines qu'elle connaît. Je me suis bel et bien connecté sans avoir à entrer de mot de passe.</p>","frontmatter":{"date":"March 30, 2020","path":"ctf/a-tinycore-machine-version-facile","title":"Exploiter NFS ( machine tinycore)","tags":["elevation","privilege","vulnerabilite","nfs","tinycore"],"categorie":"ctf","thumbnail":"/assets/kevin-horvat-pyjp2zmxulk-unsplash.jpg"},"fields":{"readingTime":{"text":"4 min read"}}},"file":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQCAwX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAByoUCPChX/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAECEgMRITH/2gAIAQEAAQUC5XG03KK2eF5H/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBABAQEBAQAAAAAAAAAAAAAAAQAxEBL/2gAIAQEABj8CbyhYd2//xAAaEAADAQADAAAAAAAAAAAAAAAAARExIWGB/9oACAEBAAE/IVzKn4aJscMQK5KJtqnGdg//2gAMAwEAAgADAAAAEE8P/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8QR//EABYRAQEBAAAAAAAAAAAAAAAAAAARAf/aAAgBAgEBPxCrj//EAB0QAQACAgIDAAAAAAAAAAAAAAEAESExQVFxkdH/2gAIAQEAAT8QV7zC3vqGFDLAR+QLKnqVKyniGVBpJ3N5n//Z","aspectRatio":1.4970059880239521,"src":"/static/078828d0781e8e5fb4f7d8c085c8573d/a7715/kevin-horvat-pyjp2zmxulk-unsplash.jpg","srcSet":"/static/078828d0781e8e5fb4f7d8c085c8573d/8f7df/kevin-horvat-pyjp2zmxulk-unsplash.jpg 250w,\n/static/078828d0781e8e5fb4f7d8c085c8573d/0f3a1/kevin-horvat-pyjp2zmxulk-unsplash.jpg 500w,\n/static/078828d0781e8e5fb4f7d8c085c8573d/a7715/kevin-horvat-pyjp2zmxulk-unsplash.jpg 1000w,\n/static/078828d0781e8e5fb4f7d8c085c8573d/37d86/kevin-horvat-pyjp2zmxulk-unsplash.jpg 1500w,\n/static/078828d0781e8e5fb4f7d8c085c8573d/a41d1/kevin-horvat-pyjp2zmxulk-unsplash.jpg 2000w,\n/static/078828d0781e8e5fb4f7d8c085c8573d/947df/kevin-horvat-pyjp2zmxulk-unsplash.jpg 5472w","sizes":"(max-width: 1000px) 100vw, 1000px"}}}},"pageContext":{"slug":"ctf/a-tinycore-machine-version-facile","featuredImage":"kevin-horvat-pyjp2zmxulk-unsplash.jpg"}}}