---
# System prepended metadata

title: Домашняя работа №2 (Задания с root-me)
tags: [Домашние задания Cross Platform Privileges Escalation]

---

# Домашняя работа №2 (Задания с root-me)
###### tags: `Домашние задания Cross Platform Privileges Escalation`

## Задание №1
1. Заходим на виртуалку по полученному логину и паролю `ssh -p 2222 app-script-ch11@challenge02.root-me.org`
    
2. Проверяем какие файлы нам доступны командой `ls -lh`
    ![](https://i.imgur.com/RGeu43Y.png)

3. Проверяем содержимое файлов командой `cat`
    В файле **ch11.c** обнаруживаем код на языке C++, который исполняется файлом **ch11**
    ![](https://i.imgur.com/4nknNkX.png)
    В коде видим команду установку действительного и эффективного id процесса, затем системный вызов команды `ls` к пути с паролем.
4. Используем полученную информацию для получения пароля. Задача попробовать заменть команду ls на любую команду вывода например less. Для этого будем использовать папку tmp, а также вносить изменения в переменную PATH, чтобы явно указать путь к исполняемому файлу.
    `cp /bin/less /tmp/ls` - копируем нужный исполняемый файл
    `export PATH=/tmp/` - явно указываем путь к испольняемому файлу
    `./ch11` - запускаем скомпилированный файл
    
    ![](https://i.imgur.com/jI10NI2.png)

    В результате получаем нужный нам пароль.
    ![](https://i.imgur.com/rMCfTaQ.png)
    

## Задание №2
1. Заходим на виртуалку по полученному логину и паролю `ssh -p 2222 app-script-ch1@challenge02.root-me.org`

2. Проверяем какие файлы нам доступны командой `ls -lh`

    ![](https://i.imgur.com/sxUHQua.png)

3. Мы можем прочитать только файл readme.md. С помощью `cat` просматриваем его.
    
    ![](https://i.imgur.com/AMOyvMw.png)
    
    Находим подсказку, что пароль можно найти по пути **/challenge/app-script/ch1/ch1cracked/.passwd
4. Попытки обратиться к файлу бесполезны. С помощью команды `sudo -l` проверяем есть ли права у пользователя app-script-ch1-cracked выполнять какие-либо без использования пароля.

    ![](https://i.imgur.com/tFsLTd0.png)

    Можем использовать `cat`, но по другому пути
5. Обнаруживаем, что в пути есть \*, которая позволяет нам указать любой путь далее. Можем это использовать, но нужно также указать, что исполнятся данная команда будет от имени другого пользователя - `sudo -u app-script-ch1-cracked /bin/cat /challenge/app-script/ch1/notes/../ch1cracked/.passwd`

    ![](https://i.imgur.com/AFjbBkJ.png)
Получаем пароль.
    
## Задание №3

Усложненный вариант 1 задания.
1. Заходим на виртуалку по полученному логину и паролю `ssh -p 2222 app-script-ch12@challenge02.root-me.org`
    
2. Проверяем какие файлы нам доступны командой `ls -lh`
    ![](https://i.imgur.com/WyMX6fH.png)


3. Проверяем содержимое файлов командой `cat`
    В файле **ch12.c** обнаруживаем код на языке C++, который исполняется файлом **ch12**
    ![](https://i.imgur.com/JCyzSo4.png)

    В коде видим команду установку действительного и эффективного пользователя процесса, затем системный вызов команды `ls` к пути с паролем.
4. Используем полученную информацию для получения пароля. Задача попробовать заменть команду ls на команду вывода, которая может проигнорировать параметры например less. Для этого будем использовать папку tmp, а также вносить изменения в переменную PATH, чтобы явно указать путь к исполняемому файлу.
    `cp /bin/less /tmp/ls` - копируем нужный исполняемый файл
    Обнаруживаем, что нет прав для копирование эту директорию
    `mkdir /tmp/1` - попробуем создать папку
    `cp /bin/less /tmp/1/ls` - копируем в созданную папку
    `export PATH=/tmp/1/` - явно указываем путь к испольняемому файлу
    `./ch12` - запускаем скомпилированный файл
    
    ![](https://i.imgur.com/b3UxDwN.png)


    В результате получаем нужный нам пароль.
    ![](https://i.imgur.com/cMOaxDd.png)

## Задание №4

1. Заходим на виртуалку по полученному логину и паролю `	ssh -p 2222 app-script-ch4@challenge02.root-me.org`

2. Проверяем какие файлы нам доступны командой `ls -lah`

    ![](https://i.imgur.com/sm9HEp3.png)


3. Обращаем внимание на символьную ссылку cron.d, которая ссылается на путь `/tmp/._cron`, очень похоже на путь к выполнению задачи cron или какого либо скрипта, также видим, что можем читать файл ch4. Скорее всего, нам нужно получить содержимое файла .passwd. Посмотрим содержимое файла ch4 командной `cat`.

    ![](https://i.imgur.com/ik5llap.png)

Находим подсказку, что выполнение скрипта происходит каждую минуту, а также как видно из скрипта по пути `/tmp/._cron/` выполняются скрипты. Воспользуемся этим, создадим по пути  `/tmp/._cron/` скрипт (например, с название 1234), в скрипте укажем вывод значения .passwd в файл, а также выдадим права на этот файл.
```
#!/bin/bash

/bin/cat /challenge/app-script/ch4/.passwd > /tmp/1;
/bin/chmod 777 /tmp/1
```
Сохраняем и выходим.
Выдаем созданному скрипту права - `chmod 777 /tmp/._cron/1234`
![](https://i.imgur.com/98uRRFW.png)



4. Дожидаемся около минуты, пока исполнится скрипт. Проверяем содержимое файла /tmp/1 с помощью `cat`. Получаем пароль.

![](https://i.imgur.com/gP0lyHI.png)
