30 lines
1.9 KiB
Markdown
30 lines
1.9 KiB
Markdown
# BMP1
|
||
|
||
На разработчика задачи была проведена атака. Мы так и не выяснили, что произошло, но спустя время заметили, что в систему был встроен скрипт, который при запуске клиента `xfreerdp` добавлял дополнительные параметры. Вся строка запуска указана ниже:
|
||
```
|
||
xfreerdp3 /v:ip /u:Administrator /p:'pass' /cert:ignore \
|
||
/bpp:32 /network:lan \
|
||
/cache:bitmap:on,codec:off,glyph:on,offscreen:on,persist,persist-file:$HOME/.cache/rdp/data.bin \
|
||
-gfx -rfx \
|
||
/w:2020 /h:1280
|
||
```
|
||
|
||
Помогите узнать, чего добивались злоумышленники.
|
||
|
||
## Решение
|
||
|
||
По ключам запуска определяем, что злоумышленники хотели сохранить *сырое графическое представление RDP-сеанса*. Используется глубина 32 бита, отключаются кодеки с потерями, отключается масштабирование, а bitmap-кэш принудительно пишется в `persist-file:$HOME/.cache/rdp/data.bin`.
|
||
|
||
Получается, что цель - собрать из кэша артефакты удалённого экрана и восстановить содержимое сеанса (вплоть до флага).
|
||
|
||
Для извлечения тайлов можно воспользоваться тулзой `bmc-tools`:
|
||
|
||
```bash
|
||
git clone https://github.com/ANSSI-FR/bmc-tools.git
|
||
python3 bmc-tools.py -s data.bin -d ./extracted_tiles
|
||
```
|
||
|
||
После этого остаётся собрать изображение из полученных фрагментов, учитывая размер окна `/w:2020 /h:1280`.
|
||
|
||
**Получаем флаг**: `CAPLAG{oh_uj_etot_vash_bmp_easy_take_it}`
|