May 14, 2017

RCC-2017 дисквал writeup (дополнительная задача)

Как-то раз приехали мы на RCC 2017, а он нам как раз, и получили дисквалификацию. В результате каминг-аута (правда, немного запоздалого) крыса-куна, который это провернул, нам удалось выяснить подробности этой операции.

Прежде всего, отметим что на CTF было 4 сервиса, ни один из которых не работал по HTTP, а первый из коробки не работал вообще. Один из сервисов был нативным, и именно на нем мы и сконцентрируемся в данном рассказе.

Сами мы ни одной уязвимости не нашли (кроме сервиса, который никто не раскурил, где удалось найти уязвимость с математикой, но у меня с ней в итоге были problemes), но зато спёрли обе найденные другими командами.

Типичный эксплойт, в котором мы уж точно понимаем, что и как работает
Лично я обычно угорал по безобидным форк-бомбам и всему такому, однако эксплойт достаточно быстро стал общественным достоянием нашей команды и стал использоваться для самых различных целей.

Что характерно, уже к этому моменту сеть чувствовала себя не очень здоровой, а интернет выглядел так, как будто его раздают через один йотовский модем, который взяли погонять на триальный период.

Через некоторое время, впрочем, сеть легла насовсем, и никто из организаторов не мог сказать нам, что произошло. После того как мы пришли разбираться, в чём дело, нам еще и положили все сервисы на несколько раундов.

Как позже оказалось, данное поведение сети (вроде бы) было вызвано поведением некоего неизвестного из нашей команды, который запустил от имени других команд флуд-атаку на команду-автора этого RCE эксплойта (что весьма иронично). По проверенной информации от крыса-куна, он в общем-то даже не понял, что это как-то связано с его деятельностью, так как непосредственно после запуска hping сеть еще поднималась, а потом, уже только минут через 10, легла без всяких дополнительных запусков hping.

Немного модифицированный эксплойт — SYN-флуд, ставший стандартом де-факто в Attack-Defense
Для запуска флудилки из docker-контейнера было необходимо также решить некоторые проблемы, например, отсутствие DNS-сервера и переменной PATH в заспавненном шелле. А также для удобства установки был выбран именно инструмент из репозиториев, hping3.

Что интересно, сами мы данную бинарную уязвимость не патчили иначе чем фаерволлом, несмотря на ее потенциальную опасность.

Твоё лицо, когда на фаерволле включен мат-фильтр
А также при помощи килляния подозрительных bash-сессий, удаления bash, sh и, собственно, rm.

(на самом деле нет)
Тем не менее, несмотря на все усилия, образ у нас был стерт порядка 6 раз, интересно, что по этому поводу думает пункт правил о запрете "проводить деструктивные атаки на серверы команд-соперниц (например, rm –rf /)". Хотя, какие уж там правила, на сайте RCC их, естественно, и вовсе не было.
Важно также отметить, что во время проведения флуда никто из организаторов предпочитал к нам не подходить (или к кому-либо), хотя на других соревнованиях в случае генерации больших объемов трафика команде сперва выносится предупреждение.

По итогам, учитывая все обстоятельства, дисквалификация, хотя и является разумной по правилам (ну, тем самым, о которых вообще не было объявлено), выглядит более как попытка оправдать проблемы с сетью, возникшие задолго до инцидента.
Впрочем, надо сказать, попытка более чем успешная.

No comments:

Post a Comment