p0f
Описание p0f
P0f — это инструмент, который использует массив сложных, исключительно пассивных механизмов снятия отпечатков трафика для идентификации игроков стоящих за любым случайным TCP/IP соединением (иногда достаточно единичного нормального SYN) без какого бы то ни было вмешательства. Версия 3 полностью переписана, включает значительное число усовершенствований для снятия отпечатков на уровне сети и представляет возможность сделать вывод о полезной нагрузке уровня приложений (например, HTTP).
Некоторые из возможностей p0f:
- Высокая масштабируемость и крайне высокая идентификация операционной системы и программного обеспечения на обоих концах ванильного TCP соединения — особенно при настройках, когда зондирования NMap заблокированы, слишком медленны, ненадёжны или просто поднимут тревогу.
- Измерение аптайма системы и сетевой машины, дистанцию (включая топологию за NAT или пакетными фильтрами), используемых настроек языка и т.д.
- Автоматическое выявление общих соединений / NAT, балансировок нагрузки и настроек прокси уровня приложения.
- Обнаружение клиентов и серверов, которые подделывают декларативные утверждения, такие как X-Mailer или User-Agent.
Инструмент может работать в фоне как демон и предлагать в реальном времени простой API для сторонних компонентов, которые желают получить дополнительную информацию об интересующих акторах.
Популярное использование p0f включает разведку во время тестов на проникновение; регулярный мониторинг сети; выявление неавторизованных сетевых соединений в корпоративном окружении; обеспечение сигналов для инструментов по предотвращению нарушений; дополнение в наборе криминалистической экспертизе.
Домашняя страница: http://lcamtuf.coredump.cx/p0f3/
Автор: Michal Zalewski
Лицензия: LGPL-2
Справка по p0f
Использование:
p0f [ ...опции... ] [ 'правила фильтра' ]
Опции сетевого интерфейса:
-i интерфейс - прослушивать заданный сетевой интерфейс
-r файл - прочитать оффлайн pcap данные из данного файла
-p - перевести прослушиваемый сетевой интерфейс в неразборчивый режим
-L - список доступных интерфейсов
Операционная настройка и настройки вывода:
-f файл - прочитать базу данных отпечатков пальцев из 'файла' (p0f.fp)
-o файл - записать информацию в данный лог файл
-s имя - отвечать на запросы API на именованный сокет unix
-u пользователь - переключиться на заданный непривилегированный аккаунт и chroot
-d - ответвиться в фон (требует -o или -s)
Опции производительности:
-S лимит - лимит числа параллельных API соединений (20)
-t c,h - установить лимит возраста соединений / кэша хоста (30 секунд,120 минут)
-m c,h - ограничить число активных соединений / хостов (1000,10000)
В командной строке могут быть заданы опциональные выражения фильтра (man tcpdump) для предотвращения попадания случайного сетевого трафика в p0f.
Руководство по p0f
Страница man отсутствует.
Примеры запуска p0f
использовать интерфейс eth0 (-i eth0) в неразборчивом режиме (-p), иохранить результаты в файл (-o /tmp/p0f.log):
root@WebWare:~# p0f -i eth0 -p -o /tmp/p0f.log --- p0f 3.07b by Michal Zalewski <lcamtuf@coredump.cx> --- [+] Closed 1 file descriptor. [+] Loaded 320 signatures from 'p0f.fp'. [+] Intercepting traffic on interface 'eth0'. [+] Default packet filtering configured [+VLAN]. [+] Log file '/tmp/p0f.log' opened for writing. [+] Entered main event loop. .-[ 192.168.1.34/63369 -> 211.36.85.142/80 (syn) ]- | | client = 192.168.1.34/63369 | os = Windows NT kernel 5.x | dist = 0 | params = generic | raw_sig = 4:128+0:0:1460:65535,8:mss,nop,ws,nop,nop,sok:df,id+:0 | `---- .-[ 192.168.1.34/63369 -> 211.36.85.142/80 (mtu) ]- | | client = 192.168.1.34/63369 | link = Ethernet or modem | raw_mtu = 1500 | `---- .-[ 192.168.1.34/63369 -> 211.36.85.142/80 (syn+ack) ]- | | server = 211.36.85.142/80 | os = ??? | dist = 8 | params = none | raw_sig = 4:247+8:0:1460:8190,0:mss:df,id+:0 | `---- .-[ 192.168.1.34/63369 -> 211.36.85.142/80 (mtu) ]- | | server = 211.36.85.142/80 | link = Ethernet or modem | raw_mtu = 1500 | `---- .-[ 192.168.1.34/63369 -> 211.36.85.142/80 (http request) ]- | | client = 192.168.1.34/63369 | app = MSIE 8 or newer | lang = none | params = none | raw_sig = 1:Accept=[*/*],Content-Type=[text/xml],Accept-Encoding=[gzip, deflate], User-Agent,Host,Connection=[Keep-Alive]:Accept-Language,Accept-Charset,Keep-Alive:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/8.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) | `---- .-[ 192.168.1.34/63369 -> 211.36.85.142/80 (http response) ]- | | server = 211.36.85.142/80 | app = ??? | lang = none | params = none | raw_sig = 1:?Cache-Control,Content-Type,Server,X-AspNet-Version=[4.0.30319],X-Powered-By=[ASP.NET], Date,?Content-Length,Connection=[keep-alive]:Keep-Alive,Accept-Ranges:Microsoft-IIS/7.5 | `---- .-[ 192.168.1.34/63370 -> 211.36.85.142/80 (syn) ]- | | client = 192.168.1.34/63370 | os = Windows NT kernel 5.x | dist = 0 | params = generic | raw_sig = 4:128+0:0:1460:65535,8:mss,nop,ws,nop,nop,sok:df,id+:0 | `---- .-[ 192.168.1.34/63370 -> 211.36.85.142/80 (mtu) ]- | | client = 192.168.1.34/63370 | link = Ethernet or modem | raw_mtu = 1500 | `---- .-[ 192.168.1.34/63370 -> 211.36.85.142/80 (syn+ack) ]- | | server = 211.36.85.142/80 | os = ??? | dist = 8 | params = none | raw_sig = 4:247+8:0:1460:8190,0:mss:df,id+:0 | `---- .-[ 192.168.1.34/63370 -> 211.36.85.142/80 (mtu) ]- | | server = 211.36.85.142/80 | link = Ethernet or modem | raw_mtu = 1500 | `---- .-[ 192.168.1.34/63370 -> 211.36.85.142/80 (http request) ]- | | client = 192.168.1.34/63370 | app = ??? | lang = none | params = none | raw_sig = 1:Content-Type=[application/x-www-form-urlencoded],User-Agent, Host,Connection=[Close]:Accept,Accept-Encoding,Accept-Language,Accept-Charset, Keep-Alive:SvrHandler::DownloadFileInternal | `---- .-[ 192.168.1.34/63370 -> 211.36.85.142/80 (http response) ]- | | server = 211.36.85.142/80 | app = ??? | lang = none | params = none | raw_sig = 1:?Content-Length,Content-Type,?ETag,Server,?Last-Modified, Connection=[close],Date:Keep-Alive,Accept-Ranges:Microsoft-IIS/7.5 | `---- ............................. ............................. .............................
Установка p0f
Программа предустановлена в Kali Linux.
Установка в Debian, Ubuntu, Mint
Установка зависимостей
sudo apt-get install libpcap-dev
Скачиваем последнюю версию, распаковываем архив, переходим в каталог с архивом и запускаем сборку:
wget http://lcamtuf.coredump.cx/p0f3/releases/p0f-latest.tgz tar xvzf p0f-latest.tgz cd p0f* ./build.sh
Запускать программу нужно с правами рута
sudo ./p0f
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты p0f
Это утилита командной строки.
Инструкции по p0f
Ссылки на инструкции будут добавлены позже.
Comments are Closed