.
@UltronFreeChat - наша группа свободного общения на темы крипты и майнинга
25 Август 2015

Хакеры добрались до РУ фармы!

Всем привет! Давненько не писал — лето, дача, шашлык … 🙂
Решил чиркануть имхо интересное:

Сижу вот, анализирую выдачу Яндекса! да, да именно Яши, где «доров нет» и выдача чиста!
на счёт фарма запросов — и охреневаю от количества лома (взломанных сайтов) с залитыми на них дорами в виде рабочих фарма-аптек
пример лома
http://gromart.ru/info.php?topic=/dapoksetin-kupit-v-novosibirske.php
смотрим «морду сайта» http://gromart.ru/ к аптеке ну никакого отношения не имеет!

причём залито на движки от джумлы (самый уязвимый для лома), самописных и заканчивая якобы непробиваемым Битриксом
похоже ломают через воровство ftp паролей у людей имеющих доступ к сайтам уже непосредственно на стороне этих людей какими нибудь вирусятинами, троями и т.д.

пока сижу и думаю чего же с этим делать … пока не придумал…
то-ли шеллы уже начинать покупать, или самому хакерством увлечься…
сильно напрягает, что незаконно всё это, да и в выдаче не высоко (белые проекты заведомо выше)

то-ли стукачить начать, и желательно в автоматическом режиме, для чистки выдачи от этой херни 🙂

для начала решил изучить заразу поближе и метод заражения — врага нужно знать в лицо
пробую связаться с хозяевами зараженных сайтов, в обмен за информацию о заразе, предлагаю помощь в чистке заразы — пока тишина …

P.S. по запросу в Яше по номеру телефона аптеки — вообще «тушите свет» — лома ой ой ой сколько, надо наверное услуги по чистке предлагать 🙂

P.P.S. походу людям вообще на свои сайты похеру — написал около 30 писем на контакты с завирусёными сайтами — реакции нуль! ну и хер с вами …

рубрики: Bitrix, security, SEO, Администрирование, Размышления | Комментарии (1)

15 Июль 2015

Как перенести настройки iptables через файл

Сегодня с ужасом обнаружил, что на одном из моих серверов iptables пустая (был уверен, что настроено).
Соответственно, рецепт по переносу настроек с одного сервера на другой прост:
1. service iptables save на тот откуда тащим
2. перетаскиваем /etc/sysconfig/iptables
3. service iptables reload на том куда перетащили

P.S.
Отличная статейка по iptables

рубрики: security, Администрирование, Полезности | Комментарии (1)

10 Июль 2015

Взлом сайта по FTP — разрешаем доступ по IP

Вчера ломанули группу сайтов тупо по FTP — законнектились и сделали инжекты во все скрипты php и в html тоже …
Благо сработал скрипт сравнения версий файлов — вовремя отреагировал, всё восстановил.
Причём подозреваю в этом себя т.к. ломанули сайты разные и ко всем у меня был прописан доступ в FAR-е 🙁 (хотя не факт)
Итак:
1. Не храним доступ в открытом виде, не ленимся вводить пароль (очень для меня трудно-исполнимый пункт)
2. Меняем стандартный порт доступа FTP на нестандартный (в конфиге сервера listen).
3. Ограничиваем доступ FTP по IP адресу (заливали файло в левых IP) — в моём случае VSFTPD не позволяет прописывать доступ по IP, поэтому сделаем боле правильно — запретим/разрешим доступ на уровне фаервола iptables

сначала посмотрим текущие
iptables -L INPUT —line-numbers
находим и убираем старое правило
iptables -D INPUT номер
добавляем новое iptables -A INPUT -p tcp -s 192.168.0.0/24 —dport 22 -j ACCEPT
(IP и маску пишем свои — откуда будем цепляться)
service iptables save
service iptables restart

у меня не сработало, т.к. правило добавилось в конец, после запрета всех
пришлось поправить порядок вручную
/etc/sysconfig/itrables.save
service iptables restart

рубрики: security, Администрирование, Полезности | Комментарии (0)

8 Июль 2015

Меняем порт для webmin

Собственно, в логах увидел приличный перебор паролей по 10000 порту (webmin).
Решил поменять порт доступа для пущей секъюрности.

Лезем в настройки /etc/webmin/miniserv.conf
правим две строчки port=10000 и listen=10000
Перезагружаемся /etc/init.d/webmin restart

Разрешаем новый порт
su
iptables -I INPUT -p tcp —dport НОВЫЙ_ПОРТ -m state —state NEW -j ACCEPT
service iptables save
service iptables restart

рубрики: security, Администрирование, Полезности | Комментарии (0)

20 Ноябрь 2014

Linux — поиск файлов по дате изменения

Нашел давеча скрипт спамер на одном из хостингов с помощью обновлённой статейки Как найти php скрипт — mail спамер?
Сразу же вопрос — может ещё чего прокинули одновременно с пробросом данного скрипта, решил найти все файлы созданные/модифицированные этим же днём, что и найденный скрипт.
К удивлению на мой запрос «поиск файлов по дате изменения linux» в поисковиках я находил только поиск изменённых за последние N дней, или раньше чем файл — т.е. конкретно поискать за 11 Октября никак.
Пришлось включать голову и изобретать велосипед 🙂
Решение придумалось такое:

ls -alR | grep «Oct 11» > res.txt

выводим список всех файлов, включая поддиректории, фильтруем по нужному числу — результат кидаем в res.txt для дальнейшего изучения

P.S.

Не забываем ещё поискать по содержимому.

рубрики: security, Администрирование, Полезности | Комментарии (0)

7 Ноябрь 2014

Битрикс — безопасность при многосайтовости. Запираем сайты в своих папках.

В продолжение моей же статьи Битрикс — несколько сайтов на хостинге. Разграничение доступа
Итак, незнаю почему я в прошлой статье и вообще на протяжении всего этого времени я тупил на предмет «…Запереть аппач в root директории сайта возможности нет… ЧТО ДЕЛАТЬ?…» даже не скажу.
Ведь стандартную open_basedir никто не отменял и почему я в своё время посчитал невозможным её использование уже не припомню.
Единственная проблема — это то, что Битрикс по умолчанию хранит файлы сессий и темовые файлы в папке расположенной вне папки сайта, соответственно при использовании open_basedir сайт не сможет работать. Переопределяем эти переменные на вновь созданную папку, врубаем open_basedir и вуаля — скрипты сайта заперты в домашней папке сайта — зараза с одного сайта уже не переползёт на другой!
Если, что конфиги сайтов аппача лежат в /etc/httpd/bx/conf/
123
Для проверки закинул сам себе wso2.php — на верхний уровень нет.
Вообще, по-хорошему, нужно переопределить структуру файлов так, чтобы темповая папка была не в папке сайта, а чуть выше, а open_basedir был настроен на уровень выше.
Как то так:
./site-dir/temp
./site-dir/httpdosc

рубрики: Bitrix, security | Комментарии (0)

29 Май 2014

NGINX — защита от DDOS с одного IP. Параметры limit_zone и limit_req.

У одного из клиентов сайт частенько сайт начал «лежать», изучение логов показало множественные запросы (более 10) с одного и того-же IP адреса, которые и давали нагрузку на сайт.
Фронтендом у клиента стоял nginx — поэтому заблокировать подобную активность не составило никакого труда.
В этом мне помогли директивы limit_zone и limit_req.
Собственно, первое — в секцию httpd добавляем запись, ограничивающую активность до 2х запросов в секунду
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
В секцию обработки динамики собственно активируем нашу запись (зону созданную в httpd)
limit_req zone=one burst=3;

Вуаля, от «лоховских» ботов атакующих с одного и того-же IP мы защищены!
Кому интересно поподробнее — запрос «limit_req_zone» в помощь 🙂

P.S.
Чтоб случайно не «резануть» ботов, рекомендую добавить в robots.txt паузу в запросах от ботов в 1 секунду
Crawl-delay: 1

рубрики: security, Администрирование, Полезности | 4 комментария

7 Май 2014

PHP OpenSSL — работаем с почтой pop.gmail.com

Чего-то хозяева бэкдора активизировались прямо — вчера домены парсили, сегодня тестят работу с гугулом по SSL.
Собственно, код (имхо полезный):


$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "/dev/null", "a")
);
$cwd = '/tmp';
$process = proc_open('openssl s_client -crlf -connect pop.gmail.com:995', $descriptorspec, $pipes, $cwd, $env);
sleep(1);
if (is_resource($process)) {
// fwrite($pipes[0], 'USER hello');
fclose($pipes[0]);
$res=stream_get_contents($pipes[1]);
// var_dump($res);
if (stristr($res,"OK Gpop ready")){
echo md5("openssl");
}
fclose($pipes[1]);
$return_value = proc_close($process);
}

рубрики: security, Полезности, Программирование | Комментарии (1)

7 Май 2014

Списки всех существующих доменов

Общеизвестная информация по «нашим» доменам:
.RU https://partner.r01.ru/ru_domains.gz
.SU https://partner.r01.ru/su_domains.gz
.РФ https://partner.r01.ru/rf_domains.gz

Международники http://premiumdrops.com/zones.html
НО доступ 25$ в месяц — дороговато…

Так же у меня на «поплавке» висит переделанный бэкдор, который по идее должен исполнять посланный ему PHP код,
я же его просто изучаю и делюсь с тобой, уважаемый читатель — думаю у меня на это есть полное право 😉

Сегодня пришел такой довольно интересный код

set_time_limit(0);
ignore_user_abort(1);
if (@ini_get('open_basedir') or @ini_get('safe_mode')){exit;}
function curlu ($url,$ua,$cookie,$ref,$post) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
if (!empty($ref)) {
curl_setopt($ch, CURLOPT_REFERER, $ref);
}
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
if (!empty($post)) {
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
}
if (!empty($cookie)) {
curl_setopt($ch, CURLOPT_COOKIE,$cookie);
}
$response = curl_exec($ch);
$header=substr($response,0,curl_getinfo($ch,CURLINFO_HEADER_SIZE));
$body=substr($response,curl_getinfo($ch,CURLINFO_HEADER_SIZE));
$resp['page']=$body;
preg_match_all("/Set-Cookie: (.*?)=(.*?);/i",$header,$res);
$cookie='';
foreach ($res[1] as $key => $value) {
$cookie.= $value.'='.$res[2][$key].'; ';
};
$resp['cookie']=$cookie;
$err = curl_error($ch);
$resp['inf'] = curl_getinfo($ch);
print_r ($resp['inf']);
curl_close($ch);
return $resp;
}

$ua="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
for ($i=0;$i<100;$i++){ $p=curlu("http://domain-kb.com/sitemap-index-2013.xml",$ua,"","",""); preg_match_all("/(.*?)<\/loc>/",$p,$match);
foreach ($match[1] as $mu){
$p2=curlu($mu,$ua,"","","");
}
}

рубрики: security, Полезности | Комментарии (0)

13 Март 2014

Возможно, сайт взломан — в htaccess 404 по страничкам дора

Сегодня с «Инструменты для веб-мастеров» Гугла пришло письмо «Возможно, сайт взломан»
с указанием конкретной чужеродной страницы, по мнению Гугла!

И действительно, при открытии этой странички обнаруживаю рецепт маринованых огурчиков!
Яндекс в отличие от Гугла прекрасно скушал дорвей расположенный на моём сайте и даже поставил его в выдачу
(причём сразу на хорошие позиции! обидно — левость всякую в ТОП ставит, а то что нужно — хрен)

По методу взлома я пока писать ничего не буду, а вот принцип работы дора расскажу:

в .htaccess добавляется


RewriteEngine on
RewriteCond %{QUERY_STRING} ^do=(.*)$
RewriteRule ^(.*)$ /wp-includes/js/codepress/engines/jquery/%1

Как видно — непосредственно дор залили сюда /wp-includes/js/codepress/engines/jquery/

А теперь к самому важному — как правильно избавиться от заразы?!
Просто уничтожение дора, (в случае с WP) оставит работоспособной левую страничку с кодом 200 и главной в контенте.
Поэтому модернизируем правило


RewriteEngine on
RewriteCond %{QUERY_STRING} ^do=(.*)$
RewriteRule ^(.*)$ / [R=404]

всё — теперь по страницам дора отдаётся 404я! и это правильно

рубрики: security | 4 комментария

Яндекс.Метрика