justniffer使用指南
前言
本篇文章基本翻译自justniffer官方文档,因为笔者觉得自己能力有限,自己写这份指南将有损justniffer的强(bi)猛(ge)。同时,这也是NSM兵器谱中常用之一,笔者将会在随后一系列文章中分享这些利器的运筹之道,各位稍安勿躁。
0x00 justniffer介绍
justniffer是一款全面的网络协议分析利器,它可以捕获网络传输的数据包并生成自定义的日志,如Apache web服务器的日志文件,当然它的强大之处在于能够追踪响应时间,并且拦截所有HTTP协议传输的文件。
它能够让你交互式的从一个实时的网络流或者一个数据包文件中追踪TCP数据流。justniffer的数据包处理格式是基于libpcap的,这也是tcpdump等一些其他工具使用的模式。其主要的特点是使用了处理和检索底层协议的能力:IP碎片、TCP重传、重新排序等等。justniffer作为一个可在复杂的网络环境下进行底层数据包嗅探的性能分析工具,它可以快速识别出应用协议级别的最重要的性能瓶颈。
同其他工具比起来,个人觉得Justniffer的高端之处,在于它可以重建和保存http数据流里头的文件。其网络嗅探支持多种类型:HTTP、LDAP、SMTP、SIP、PASSWORD嗅探等等。它可以通过外部的扩展脚本(justniffer_grab_http_traffic)进行HTTP协议中图像、文本、HTML、JavaScript等文件的恢复。由于该脚本是基于python的,在Linux下它可以安装而单独使用,有兴趣的同学可以试试。当然它支持的扩展执行脚本还可以是bash、python、perl以及ELF可执行文件等等。
0x01 justniffer安装
On Ubuntu:
$ sudo add-apt-repository ppa:oreste-notelli/ppa $ sudo apt-get update $ sudo apt-get install justniffer
Other Ubuntus:
下载.deb安装包并安装
$ sudo apt-get install gdebi-core $ sudo gdebi justniffer-x.x.deb
Other Distributions:
源码安装,下载源码:https://sourceforge.net/projects/justniffer/files/
一些第三方的依赖包如下:
patch tar autotools make libc6 libpcap0.8 g++ gcc libboost-iostreams libboost-program-options libboost-regex
下面直接源码安装:
$ ./configure $ make $ make install
0x01 justniffer使用
justniffer [ [-i interface] or [-f <tcpdump file>] ] [-F] [-p <packet filter>] [-u or -x] [ [-r] or [-l <log format>] or [-a <log format>] ] [-c <config file>] [-e <external program>] [-U <user> ] [-n <not-found> ] [-s <max concurrent tcp streams> ] [-d <max concurrent IP fragments> ]
Justniffer默认捕捉eth0接口的数据,并以一种与使用URLsnarf几乎相同的格式显示所有HTTP流量,下面讲解一些常用的参数:
-i <interface>: 指定监听的网络端口
-f <pcap file>: 读取pcap文件中的数据流
-p <filter>: 应用一个包过滤器
-l <format>: 指定显示输出的格式(功能十分强大!)
-c <config file>: 指定配置文件
-e <external program>: 指定扩展脚本
-u 将非ASCII字符打印为(.)
0x02 justniffer_grab_http_traffic
基本功能上面已经介绍了,下面说说具体使用:
Usage: justniffer-grab-http-traffic [options] Options: --version show program's version number and exit -h, --help show this help message and exit -d DIRECTORY, --directory=DIRECTORY MANDATORY: directory where to save files -p PACKET_FILTER, --packet-filter=PACKET_FILTER packet filter (tcpdump filter syntax), default ='port 80' -U USER, --user=USER user to impersonate when saving files, cannot be the root user -i INTERFACE, --interface=INTERFACE network interface to listen on (e.g. eth0, en1, etc.) -f FILECAP, --filecap=FILECAP input file in 'tcpdump capture file format' -P PARSER_SCRIPT, --parser_script=PARSER_SCRIPT parser script to execute, default is /usr/share/justniffer/scripts/http_parser.py
使用,例如:
1. 实时监听网卡所有HTTP数据的内容文件到指定目录:
$ sudo ./justniffer-grab-http-traffic -d /tmp/nav -U nobody -i eth0
2. 从pcap文件中过滤所有HTTP数据的内容文件到指定目录:
$ sudo ./justniffer-grab-http-traffic -d /tmp/nav -U nobody -f test.pcap
由于篇幅有限,将在下一章《justniffer实战应用》中介绍justniffer的格式化输出语法,以及实战中的具体使用。
官方文档参考:http://justniffer.sourceforge.net
Bejtlich博客:http://taosecurity.blogspot.com/