Как сделать сниффер на php

Как создать

Создаём свой сниффер на PHP

Andrey_Hit

Начинающий

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

Этап 1. Постановка задачи.

Как я уже ранее говорил, мы будем писать простейший сниффер, который будет использовать только стандартные функции PHP, и ничего лишнего.
Основной задачей сниффера будет сбор информации о жертве, зашедшей на наш сайт и сохранение этой информации в текстовом файле, для дальнейшего нами изучения.
Весь код будет находиться в одном файле, допустим sniffer.php, а результат будет лежать в файле log.php.

Этап 2. Объявляем переменные.

Для начала объявим все нужные нам переменные, как я уже говорил, будем брать по минимуму и только стандартные.

Переменная file будет хранить название и путь к файлу log.txt, нашему файлу с результатами:

Теперь объявим две переменные, первая будет хранить формат Даты, а вторая Времени:

Это необходимо, для того чтобы в будущем нам было проще разобрать какого числа и во сколько была сделана запись в Лог.
Если хотите, то можете изменить формат отображения даты и времени как вам больше нравится, в моем примере будет следующий результат:

Настало время объявить переменные, которые будут брать информацию об IP адресе и характеристиках системы жертвы:

Обе эти переменные используют стандартные функции PHP, которые позволяют нам получить информацию об IP адресе (REMOTE_ADDR) и характеристиках системы (HTTP_USER_AGENT).

После объявления переменных настало время перейти к написанию самого кода сниффера.
И так, сначала с помощью условия if..else и стандартной функции is_file проверим существование файла log.txt, а затем если файл существует, и в него разрешена запись, откроем его, сформируем принятую от жертвы информацию и запишем все в этот файл:

Сниффер готов.
Этап 4. Размещение.

Теперь, когда сниффер полностью готов, время подыскать ему место во всемирной паутине. Если у тебя есть время, то можешь поискать в Яндексе бесплатный хостинг с поддержкой PHP, сейчас их очень много.
Я пользуюсь услугами

Источник

CodeSniffer и PhpEd

На хабре уже ни раз встречалось описание интструмента PHP_CodeSniffer, который используется для проверки соответствия написанного кода стандартам кодирования. Инструмент очень удобный и полезный, думаю, спорить никто не станет. В интернете есть статьи, которые описывают как интергрировать его с системой контроля версий, чтобы осуществлять проверку перед очередным коммитом, но мне захотелось прикрутить его к своей IDE, чтобы проверять код во время его написания.

Исторически сложилось, что в работе я использую IDE от Nusphere – PhpEd. PhpEd позволяет подключать к себе скрипты на php, которые могут выполнять произвольные операции над кодом в редакторе. Скрипт также может запустить внешнюю программу и вернуть данные со стандартного потока вывода непосредственно в редактор кода.

Читайте также:  Как сделать свой справочник

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

Об этой возможности я давно знал, но она не совсем подходит для использования CodeSniffer. Объясню почему. Мы можем перенаправить все данные, полученные в результате анализа нашего кода в отладочное окно редактора, но это будет всего лишь статичный текст. Номера строк с ошибками являются тоже обычным текстом и перемещаться по коду будет невозможно. Придется глазками смотреть номер строки с ошибкой, переходить руками на эту строку и править ее. Разумеется, это дело мне совершенно не нравилось.

В лог окне редактора я заметил колонку location. Скорее всего это то, что мне было нужно, но как вывести данные в эту колонку я не знал.
Перерыв весь форум разработчиков, я нашел несколько тем, посвященных данной проблеме, но везде никаких ответов и рецептов не было. Я уже было отчаялся, как наткнулся на следующее сообщение.

Иными словами, если сформировать выходную строку в соответствии с данным регулярным выражением, то IDE поймет, что мы передаем ей информацию о файле и номере строки в нем. Задача сводилась к тому, чтобы запустить CodeSniffer, получить от него данные, немного переформатировать вывод и направить в окно логов редактора, что является сущим пустяком.

Теперь все по шагам:

0. Устанавливаем pear для php, который идет в составе PhpEd
c:\Program Files\NuSphere\PhpED\php5> go-pear.bat

и пакет php_sniffer
c:\Program Files\NuSphere\PhpED\php5> pear install php_sniffer

1. Качаем мой небольшой класс-обертку над CodeSniffer. Кладем его, скажем, в
c:\Program Files\NuSphere\PhpED\scripts\

Settings > Tools > Integration
Создаем новое меню «Scripts»
Создаем новое подменю «CodeSniffer»

3. Редактируем созданный пункт:

— Execute with «Shell»
— Command line:
«c:\Program Files\NuSphere\PhpED\php5\php.exe» «c:\Program Files\NuSphere\PhpED\scripts\codesnifferwrapper.php» «@Fname@»
— Shortcut: CTL-ALT-0 (или любой удобный)
— Ставим крестики в следующих пунктах:
Show this command in Workspace popup – for files
Show this command in Explorer popup – for files
Show this command in File Bar popup
Redirect Output Stream to log window

Сохраняем результат, открываем любой php файл, жмем назначенное сочетание клавиш и любуемся.

Источник

Как сделать сниффер на php

Автоформатирование кода: PHP CodeSniffer и PHP CS Fixer

На laracasts есть замечательное видео по этой теме в контексте PhpStorm, здесь же пойдёт речь о том, чего не рассказывал в том видео Джефри (ну а если хотите настроить фиксер под Sublime, смотрите эту статью).

PHP CodeSniffer

Давайте начнём с PHP CodeSniffer. Этот инструмент поможет выявить нарушения форматирования, при надлежащей настройке PhpStorm будет вас об этом информировать путём выделения проблемных частей кода. Кроме всего прочего мы можем воспользоваться консолью для вывода информации об ошибках.

Установка
Используемый стандарт

Также хорошенько подумайте о том, достаточно ли набора правил стандарта. Вполне возможно, что ответ будет отрицательным. Перечитайте документацию, и добавьте те, которые Вам понадобятся.

Можно каждый раз в консоли руками пописывать какие-то дополнительные правила или условия, указывать стандарт и т.д. Но, мы же понимаем, что это не оптимальный вариант. Поэтому, в корне проекта создадим файл phpcs.xml и добавим туда следующее (в качестве примера использую код из текущего проекта):

Пояснения:

Основные команды

Вывести список установленных стандартов:

Вывести список снифов, используемых в конкретном стандарте:

Проверить форматирование файла file.php :

Проверить весь проект :

Проверить весь проект с выводом информации о том, где конткретно были встречены ошибки:

Вывести код-репорт, т.е. отчёт со сниппетами кода, где были обнаружены ошибки:

Есть ещё и другие команды, но, по моему мнению, вполне хватает перечисленных. Справедливости ради стоит отметить, что PHP CoedSniffer также включает и code beautifier fixer, т.е. можно исправить ошибки (читай отформатировать) командой:

но я всё же предпочитаю php-cs-fixer

PHP CS Fixer

Установка

Опять-таки подумайте устанвливать интсрумент глобально, или для каждого проекта. Второй вариант:

Если выбираете глобальную установку, убедитесь, что в переменную PATH добавлен путь к бинарным файлам composer-a. Проверьте это командой:

Читайте также:  Как сделать своими руками беляши
Пользовательские правила
Автоформат
Основные команды

Вывести список команд:

Вывести описание правил входящих в конкретный стандарт:

И, как уже был сказано, отформатировать (для разнообразия укажем стандарт Symfony):

В случае с fixer-ом я предпочитаю использовать не консоль, а настроить PhpStorm для использования этого инструмента, добавить горячие клавиши и использовать по месту в конкретных файлах.

Git pre-commit hook

Подведём итоги. Мы используем:

Внимание: php-cs-fixer исправит только те ошибки, которые он может исправить, не более. Например, если у Вас не написан phpdoc, fixer за вас его не напишет. Помните об этом.

Источник

PHP Sniffer

Если кто-то до сих пор сомневается в способностях языка PHP, то это не так. Недавно появился написаный полностью на PHP снифер с поддержкой протоколов IP, ICMP, UDP и TCP. Для его работы требуется PHP >= 4.3.0 с сокетами.

Re: PHP Sniffer

Отлично, теперь остается ждать сниффер написанный на фортране или маткаде!

Re: PHP Sniffer

Срочно пишу интерфейс для brainfuck по вызову внешних либ и напишу на нем сниффер. Тогда все поймут что bf это настоящий язык программирования! И не будут больше сомневаться в его возможностях.

Re: PHP Sniffer

Причем тут сниффер и возможности (в случае PHP крайне убогого) языка программирования?

Re: PHP Sniffer

это часть проекта РОД-линукс?

Re: PHP Sniffer

Re: PHP Sniffer

> Если кто-то до сих пор сомневается в способностях языка PHP, то это не так.

Не понял, что не так-то?

Re: PHP Sniffer

>Если кто-то до сих пор сомневается в способностях языка PHP, то это не так.

Можно и презаерватив на глобус натянуть.

Re: PHP Sniffer

Re: PHP Sniffer

а на awk никто не пробовал?

Про bash вообще не говорю.

Re: PHP Sniffer

комп от Cray, о котором недавно новости тут пробегали, с 24000 процами пахоже как раз потянет в качестве писюка для этого снифера 😉

Re: PHP Sniffer

PHP замечательный язык, больше программ товарищи!!

Re: PHP Sniffer

а чем ПХП снифер хуже, того же перл сниффера или С сниффера?

Re: PHP Sniffer

Защитим ПыхПых от коварных рук империалистов. Он работает очень бысто на моей машине. Особенно пятый. А ваш перл и C можно описать как неудобный и долго-кодить соответственно.

Re: PHP Sniffer

>> Если кто-то до сих пор сомневается в способностях языка PHP, то это не так.

>Не понял, что не так-то?

Если кто-то думает, что он сомневается, то он на самом деле не сомневается! Он на самом деле уверен, что ПХП ни на что не способен. Я так понял.

Re: PHP Sniffer

И чем же он крайне убогий?

Re: PHP Sniffer

>Про bash вообще не говорю.

На bash был написан ассемблер. Таким образом, на bash можно написать вообще всё.

Re: PHP Sniffer

> И чем же он крайне убогий?

Re: PHP Sniffer

Чем некоторые личности и занимаются регулярно.

Re: PHP Sniffer

> Если кто-то до сих пор сомневается в способностях языка PHP, то это не так.

Как говорится, устами младенца глаголит истина 😉

Re: PHP Sniffer

> Если кто-то до сих пор сомневается в способностях языка PHP, то это не так Черномырдин?

Re: PHP Sniffer

>> Если кто-то до сих пор сомневается в способностях языка PHP, то это не так.

>Не понял, что не так-то?

Наверное, новость о том, что таким людям нужно обратиться к психоаналитику на тему несоответствия самооценки.

Re: PHP Sniffer

Скорее тут 100% идентичность Бушем. Его почерк.

Источник

Сниффер — что за зверь

Содержание статьи

Windows реализации снифферов

IRIS
— www.eeye.com
IRIS продукт известной фирмы
eEye. Представляет обширные возможности по фильтрации.
Меня в нем сильно
порадовало три фишки:
1.Protocol Distribution
2.Top hosts
3.Size
Distribution
Также имеется Packet Decoder. Он поддерживает развитую систему
логов. А доступные возможности фильтрации превосходят
все снифферы
обзора. Это Hardware Filter, который может ловить либо все
пакеты (Promiscious), либо с различными ограничениями
(например захватывать
только multicast пакеты или broadcast пакеты, либо только Mac фреймы).
Можно
фильтровать по определенным MAC/IP адресам, по портам,
по пакетам, содержащим
определенные символы. В общем неплохой
сниффак. Требует
50comupd.dll.

Читайте также:  Как сделать алкогольные коктейли рецепты

WinDUMP
Аналог TCPdump for Unix. Этот сниффак действует через
командную строку и представляет минимальные возможности по конфигурации и еще
требует библиотеку WinPcap. Мне не очень.

SniffitNT
Тоже требует WinPcap. Работа только как командной строкой,
так и в интерактивном режиме. Со
сложными опциями. Мне не очень.

ButtSniff
Обычный пакетный
сниффер созданный
известнейшей группой CDC(Cult of the Dead Cow). Фишка его в том,
что его можно использовать, как плагин к BO:)(Очень полезно:)).Работа из командной
строки.

Существуют еще множество снифферов,
таких как NatasX, NetXRay, CooperSniffer, LanExplorer, Net Analyzer и т.д.
Пойдем
дальне.

Unix’овые снифферы

Все снифферы данного обзора можно найти на

packetstorm.securify.com.

linux_sniffer
Linux_sniffer
требуется тогда, когда вы хотите
детально изучить сеть. Стандартная
компиляция. Выдает всякую шнягу дополнительно,
типа isn, ack, syn, echo_request (ping) и т.д.

Как видите, сниффит поддерживает множество
опций. Можно использовать сниффак в интерактивном режиме.
Сниффит хоть и
довольно полезная прога, но я ей не пользуюсь.
Почему? Потому что у Sniffit
большие проблемы с защитой. Для Sniffit’a уже вышли ремоутный рут и дос для
линукса и дебиана! Не каждый сниффер себе такое позволяет:).

READSMB
Сниффер READSMB вырезан из LophtCrack и портирован под
Unix (как ни странно:)). Readsmb перехватывает SMB
пакеты.

ftp.technotronic.com:
02:03:08.918959
195.170.212.151.1039 > 195.170.212.77.domain: 60946+ A?
ftp.technotronic.com.
(38)
02:03:09.456780 195.170.212.77.domain > 195.170.212.151.1039: 60946*
1/3/3 (165)
02:03:09.459421 195.170.212.151 > 209.100.46.7: icmp: echo
request
02:03:09.996780 209.100.46.7 > 195.170.212.151: icmp: echo
reply
02:03:10.456864 195.170.212.151 > 209.100.46.7: icmp: echo
request
02:03:10.906779 209.100.46.7 > 195.170.212.151: icmp: echo
reply
02:03:11.456846 195.170.212.151 > 209.100.46.7: icmp: echo
request
02:03:11.966786 209.100.46.7 > 195.170.212.151: icmp: echo
reply

В общем, снифф полезен для отладки сетей,
нахождения неисправностей и
т.д.

Dsniff
Dsniff требует libpcap, ibnet,
libnids и OpenSSH. Записывает только введенные команды, что очень удобно.
Вот пример лога коннекта
на unix-shells.com:

Вот
dsniff перехватил логин с паролем (stalsen/asdqwe123).
Install:
#./configure
#make
#make
install

Защита от снифферов

AntiSniff for Windows
Этот продукт выпустила известная группа
Lopht. Это был первый продукт в своем роде.
AntiSniff, как сказано в
описании:
«AntiSniff is a Graphical User Interface (GUI) driven tool for
detecting promiscuous Network Interface Cards (NICs) on your local network
segment». В общем, ловит карты в promisc режиме.
Поддерживает огромное
количество тестов (DNS test, ARP test, Ping Test, ICMP Time Delta
Test, Echo Test, PingDrop test). Можно сканить как одну машину,
так и сетку. Здесь имеется
поддержка логов. AntiSniff работает на win95/98/NT/2000,
хотя рекомендуемая
платформа NT. Но царствование его было недолгим и уже в скором
времени появился сниффер под названием AntiAntiSniffer:),
написанный Майком
Перри (Mike Perry) (найти его можно по адресу www.void.ru/news/9908/snoof.txt).Он
основан на LinSniffer (рассмотренный далее).

Unix sniffer detect:
Сниффер
можно обнаружить командой:

ppp0 Link
encap:Point-to-Point Protocol
inet addr:195.170.y.x
P-t-P:195.170.y.x Mask:255.255.255.255
UP POINTOPOINT PROMISC
RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:3281
errors:74 dropped:0 overruns:0 frame:74
TX packets:3398 errors:0
dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10

Как
видите интерфейс ppp0 стоит в PROMISC mode. Либо оператор
загрузил снифф для
проверки сети, либо вас уже имеют. Но помните,
что ifconfig можно спокойно
подменить, поэтому юзайте tripwire для обнаружения
изменений и всяческие проги
для проверки на сниффы.

AntiSniff for Unix.
Работает на
BSD, Solaris и
Linux. Поддерживает ping/icmp time test, arp test, echo test, dns
test, etherping test, в общем аналог AntiSniff’а для Win, только для
Unix:).
Install:
#make linux-all

Опции настолько просты, что no
comments.

Источник

Оцените статью
Полезные советы и лайфхаки для жизни