Создаём On-Line Sniffer))•
Цитата:
Готовимся к покушению Итак, для начала регистрируем новый сайт на каком-нибудь халявном Apache - хостинге, поддерживающем PHP и .htaccess. В качестве примера могу предложить популярный хост Jino-Net.ru . После регистрации зайдите на FTP сайта и создайте новую папку, например IMAGES. Теперь все готово, пришла пора расставить все точки над i и понять, что же нам, собственно, предстоит делать. Теоретический момент. Как известно, взаимодействие пользователя с веб-ресурсами происходит через программу-браузер. Чтобы попасть на нужный сайт, мы вводим адрес в адресной строке обозревателя (или просто нажимаем на ссылку) и, после нескольких секунд (а то и минут) ожидания, можем увидеть контент странички. На самом деле, здесь все чрезвычайно просто: браузер посылает некий запрос веб-серверу, на котором расположен сайт, а веб-сервер отвечает на этот запрос, причем ответом зачастую является веб-страница, которую юзер в последствии видит на экране своего монитора. Но процесс "запрос<->ответ" не происходит без "побочных" данных. Например, браузер сообщает серверу информацию о себе (т.е. кем, он, собственно, является: "Ослом" (Internet Explorer), "Лисой" (Mozilla Firefox) и т.д.), IP адрес клиента, номер удаленного порта и другие служебные данные. А сервер, в свою очередь, посылает обозревателю заголовки, содержащие в себе тип запрашиваемого файла (HTML, CSS, JS, ZIP, RAR и т.д.), тип кодировки, код ответа (404, 403, 200 и т.д.). На основе полученной информации браузер решает, каким образом ему предстоит работать с документом. К чему же это было сказано? А к тому, уважаемые читатели, что на основе выше написанного текста можно сделать вывод, что мы сможем использовать сервер для сбора ценной информации о пользователе-жертве. Для реализации задумок я выбрал язык PHP, поскольку он наиболее удобен и понятен в освоении. На этом закончим нудную теорию и перейдем к самому интересному - к практике. Реализуем он-лайн сниффер. Для начала, необходимо создать файл с расширением php в папке IMAGES (не меняйте имя директории, позже я расскажу, почему посоветовал назвать папку именно так). Такой файл сервер будет воспринимать как скрипт и выполнять команды внутри него. Назовите файл именем photo001.php. Теперь нужно разобраться, что же необходимо написать в теле скрипта. Данные, которые нам необходимо получить, хранятся в так называемых переменных окружения. Для того, чтобы извлечь значение переменной (т.е. получить IP пользователя, тип браузера и т.д.) в PHP необходимо вызвать функцию getenv(). Ниже я привожу те значения аргумента функции (т.е., по сути, имена переменных), которые помогут извлечь данные: getenv("REMOTE_ADDR") - возвращает IP пользователя; getenv("HTTP_USER_AGENT") - возвращает тип браузера; getenv("REMOTE_PORT") - возвращает удаленный порт; Далее. Все данные, которые поможет изъять PHP, мы будем записывать в отдельный LOG - файл. Создайте в директории IMAGES файл logs.txt. Теперь все готово для работы скрипта: PHP код:
И это не все, что мы можем узнать о пользователе. Ведь существует такой замечательный инструмент, как JavaScript, при помощи которого можно узнать разрешение экрана, глубину цвета, платформу браузера. Но проблема в том, что JavaScript не умеет работать с файлами и является, по сути, клиентским языком, т.е. выполнение команд происходит не сервером, а браузером клиента. Но этот нюанс не помешает записать дополнительную информацию о пользователе. В "Яве" существуют так называемые объекты, а внутри объектов содержатся некоторые данные. Сегодня нас интересует два объекта: navigator и screen. Чтобы получить какое-то значение из объекта, необходимо задать этому объекту свойство. Наш скрипт будет извлекать: screen.width - ширина экрана (в пикселях) screen.height - высота экрана (в пикселях) screen.colorDepth - глубина цвета экрана (в битах) navigator.platform - платформа браузера Так как же PHP - скрипту получить JS - данные ? Можно сделать это скрыто, через объект XMLHttpRequest() (т.е. передать POST - запрос), но мы реализуем несколько упрощенный вариант: передадим информацию через адресную строку, через так называемый GET - запрос. Для этого пишем скрипт: PHP код:
Итак, пользователь перенаправляется на новый URL, в адресной строке, после знака вопрос ? записана информация, собранная JavaScript. Теперь дело за малым: получить эту информацию PHP-скриптом. Как я уже говорил, все, что находится после вопроса является GET - запросом. Через адресную строку мы передаем переменные и их значения. Разделителем переменной и значения является амперсенда & . Т.е. в запросе loged=1&w=800&h=600&d=32&p=Win32 для PHP - скрипта доступно 5 переменных: loged ; w ; h ; d ; p. А эти переменные, как известно, сгенерированы JavaScript'ом и содержат в себе дополнительную информацию о пользователе, которую необходимо дописать в ЛОГ - файл. Скрипт считывания GET - запроса и его запись в файл выглядит так: PHP код:
Собственно, вот и все! Мы по кусочкам написали скрипт-ловушку, но остались две немаловажные вещи: собрать скрипт целиком и замаскировать его. Но для начала воссоединяем кусочки кода и получаем примерно такую картину: PHP код:
Может быть, какая-нибудь секретарша или начинающий ламер ничего не заподозрит, но нормальный юзер может и засомневаться: ведь расширение файла php (photo001.php) ... Но и здесь мы не отступимся! Просто заставим сервер выполнять php код в файлах с расширением JPG ... В этой задаче нам поможет файл .htaccess, через который можно произвести некоторые изменения в работе сервера. Создайте этот файл в директории с основным скриптом (учтите, что первый символ в названии - точка). Далее вбивайте в него такой код: RemoveHandler .php AddType application/x-httpd-php .jpg Все, теперь сервер воспринимает JPG - файлы как обычные php скрипты. И остается самая малость - поменять имя photo001.php на photo001.jpg. В итоге получается такая картина: для нас photo001.jpg - скрипт - сниффер, а для обычного пользователя - изображение типа JPG. Ну чем не ловушка ? А теперь предлагаю перейти к следующему не менее важному моменту. Цыпа-цыпа-цыпа... Вроде бы, все готово. Сниффер создан и имеет не внушающую подозрений ссылку: [Ссылки могут видеть только зарегистрированные пользователи. ] . Но как заставит жертву угодить в запланированную ловушку? Способов не так много, но сегодня я предложу, на мой взгляд, один из самых интересных и хитрых. В этом нам поможет сервер, на котором расположен сайт. Создайте в отдельной директории файл mail_send.php. С помощью этого скрипта мы будем слать пользователю сообщения. Код для отправки такой: PHP код:
Статья расчитана на новичков Автор данной статьи: s1ayer. |
Re: Создаём On-Line Sniffer))•
Доброе Время суток! у меня 2 вопроса! :
первый: По какой причине может не работать запись лога в logs.txt? И второй: как настроить переменную $content = "Content"; |
Re: Создаём On-Line Sniffer))•
Цитата:
Цитата:
ЗЫ php - серверный язык (т.е. выполняется на стороне сервера), и при этом не всегда он установлен на сервере |
Re: Создаём On-Line Sniffer))•
Я php только начал изучать!
какой скрипт нужен для Сниффера что бы использовать картинки с *.gif расширениями / разные названия, и что бы записались в один лог! |
Re: Создаём On-Line Sniffer))•
Не могу понять в чем дело:
[Ссылки могут видеть только зарегистрированные пользователи. ] -- вот так логи не идут [Ссылки могут видеть только зарегистрированные пользователи. ] -- а так идут |
Re: Создаём On-Line Sniffer))•
Цитата:
|
Re: Создаём On-Line Sniffer))•
Цитата:
|
Re: Создаём On-Line Sniffer))•
dxMurder,
причин может быть много, скорее всего они в настройках хостера. все-же хостеры не очень любят, когда на их оборудовании ломают кого-то... |
Re: Создаём On-Line Sniffer))•
4айник, Можешь порекомендовать кокойта без платный хостер?
|
Re: Создаём On-Line Sniffer))•
dxMurder, не-а...
обычно для таких целей народ собственные хосты поднимает |
Часовой пояс GMT +3, время: 21:06. |
Работает на vBulletin® версия 3.8.12 by vBS.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot