Как узнать IP ламера в чате Отвечаем на самый-самый Ча.Во.

Шутов (shutov@xakep.ru)

Xakep, номер #050, стр. 050-052-1


Тебе не кажется, что этот вопрос стал риторическим? Его всегда задавали и будут задавать. А сколько появляется все новых и новых решений... в ТОР FAQ нашего горячо любимого журнала это один из лидирующих вопросов. Задают же его чаще всего те, кто только встает на "хакерский", как говорится, путь, и пытается "взломать" различные чаты. Но знаний, как правило, не хватает. А тем, у кого хватает, это уже неинтересно: высокий уровень - высокие интересы, хотя это уже философия. Так что вернемся к нашей теме.

HTML обделка

Сейчас я хочу продемонстрировать один из способов решения вышеозначенной задачи. Итак, как обычно, понадобятся мозги, прямые руки, а также кое-какие знания HTML'а и Delphi. Сразу отмечу, что не придется лезть на сервак и изучать внутренности чата, а просто будет применена хитрость, немного социальной инженерии и, естественно, знания. Итак, начнем. Прежде всего необходимо завести себе сайт (страницу в интернете) на любом хостинге. Здесь самое важное - наличие "правильного" адреса. Под этим я подразумеваю лишь одно: он должен нести небольшую смысловую нагрузку, но не более того (что-нибудь вроде in-zone.net.ru). В принципе, придумать его не составит особого труда.

Теперь необходимо подготовить страницу для закачки на сервер. Главное, чтобы страница содержала фреймы, причем один из них должен быть скрытым! В принципе неважно, каким способом это осуществить, просто через фрейм, на мой взгляд, удобнее. Итак, надо сделать фреймы таким образом: простой фрейм должен грузиться со страницы, которая находится на том же сервере, а скрытый должен грузиться "с домашнего компа" :). Сейчас объясню в чем тут фишка: пользователь, загрузив такую пагу с сервера, на самом деле незаметно для себя запросит страницу к нашей IP-шке, то есть соединится с нами! А если он это сделает, то просто засветит свой IP. Вот в чем весь смысл этого способа определения IP чела из чата! Я тут накатал необходимую хтмлку (т.е. index.htm):

<html>

<head>

<title>Site_Name</title>

</head>

<frameset cols=100%,*">

<frame src="next_page.htm" noresize>

<frame src="http://your_ip/" noresize>

</frameset>

</html>

На месте your_ip необходимо ввести свой IP-адрес, чтобы браузер пользователя запросил страницу. Если же выход в интернет происходит через dialup, то в таком случае придется туговато: каждый раз придется менять IP-адрес в форме и опять заливать это на сервер. А все из-за того, что большинство провайдеров при каждом новом соединении выдают новый IP. Потом следует закачать next_page.htm, иначе у пользователя возникнут ненужные подозрения. В этот файл можно повесить все что угодно, допустим, надпись "сайт на реконструкции", или вообще сделать редирект на нормально работающий сервер.

Написание спецсофта

Теперь, как можно догадаться, нужен сам софт. Написан он на родных дельфях. Берется Delphi (не ниже 6.0). Суть данной программы будет сводиться к тому, чтобы отловить запрос на 80-ый порт, куда и будет коннектиться браузер жертвы. Создается новый проект: File->New->Application. Кидается на Form'у: ListBox, MainMenu, PopupMenu, StatusBar (с закладки Win32), IdHTTPServer (c закладки IndyServers). Сразу же оговорюсь, что не обязательно юзать IdHTTPServer, данный пример можно легко переделать под ServerSocket, просто показательнее и проще будет продемонстрировать программу именно с этим компонентом. Но вернемся к программе и поменяем имена компонентов следующим образом:

Содержание  Вперед на стр. 050-052-2