justniffer使用手冊(cè)

0x00 簡(jiǎn)介

justniffer使用一個(gè)可用于替代Snort的網(wǎng)絡(luò)協(xié)議分析器银室,可以交互式地跟蹤或者探測(cè)一個(gè)網(wǎng)絡(luò)連接。它可以在線抓取流量焙矛,也可以離線分析'libpcap'和'tcpdump'抓取過來的數(shù)據(jù)包毙石。他也可以幫助我們分析一個(gè)wireshark難以處理的復(fù)雜網(wǎng)絡(luò)掀虎。尤其是他可以幫助我們分析應(yīng)用層流量,如圖像狸剃,腳本以及HTML等內(nèi)容掐隐。

justniffer的特點(diǎn)在于收集一個(gè)復(fù)雜網(wǎng)絡(luò)的所有流量而不影響系統(tǒng)的性能,也可以保存日志便于日后分析钞馁,他還可以進(jìn)行可靠的TCP流重建虑省,能夠基于連接時(shí)間,關(guān)閉時(shí)間僧凰,響應(yīng)時(shí)間或請(qǐng)求時(shí)間來提取信息探颈。justniffer還可以通過python||perl||bash來擴(kuò)展其功能。

0x01 安裝

安裝相關(guān)的user-guide

sudo add-apt-repository ppa:oreste-notelli/ppa 
sudo apt-get update
sudo apt-get install justniffer

要是其他的Linux版本的話训措,先裝以下依賴伪节。

  • patch
  • tar
  • autotools
  • make
  • libc6
  • libpcap0.8
  • g++
  • gcc
  • libboost-iostreams
  • libboost-program-options
  • libboost-regex

解壓source package, 輸入:

./configure 
make 
sudo make install

0x02 命令行選項(xiàng)

手冊(cè)相關(guān)的Man Page

可以通過命令man justniffer查看justniffer的手冊(cè)。

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抓包器會(huì)重新組裝與排序TCP數(shù)據(jù)包绩鸣,連接IP數(shù)據(jù)包怀大,在標(biāo)準(zhǔn)輸出中展示TCP流。這對(duì)于以標(biāo)準(zhǔn)或定制的方式記錄網(wǎng)絡(luò)流量十分有效呀闻。justniffer能夠記錄網(wǎng)絡(luò)服務(wù)的性能(服務(wù)器響應(yīng)時(shí)間或者應(yīng)用服務(wù)器行為等)叉寂。輸出格式也能通過-l來定制。

justniffer是用來監(jiān)控網(wǎng)絡(luò)性能的总珠,而網(wǎng)絡(luò)性能與以下信息有關(guān)屏鳍。

屬性 含義
connection.time 建立連接耗時(shí)
idle.time.0 連接建立后請(qǐng)求到來前時(shí)間間隔
request.time 請(qǐng)求用時(shí)
respone.time 響應(yīng)用時(shí)
response.time.begin 響應(yīng)開始時(shí)刻
response.time.end 響應(yīng)終止時(shí)刻
idle.time.1 響應(yīng)之后新請(qǐng)求或連接關(guān)閉之前時(shí)間間隔

而justniffer的命令行選項(xiàng)如下所示。

選項(xiàng)符號(hào) 選項(xiàng)名 用途
-i interface 監(jiān)聽接口
-f filecap 待分析的pcap文件
-F force read pcap 強(qiáng)制讀取不完整的pcap數(shù)據(jù)包
-p packet filter BPF語法局服,用于篩選數(shù)據(jù)包
-l log format 指定輸出的日志格式
-r raw 輸出原始數(shù)據(jù)流
-s max tcp streams tcp并發(fā)數(shù)調(diào)最大
-d max fragmented IP IP分片數(shù)調(diào)最大
-u unprintable 將不可打印的字符解析為'.'
-x hex encode 將不可打印的字符以16進(jìn)制數(shù)表示
-n not found 無法顯示屬性值時(shí)以該字符串代替
-e execute 對(duì)標(biāo)準(zhǔn)輸出調(diào)用程序或腳本
-U user 使用特定用戶身份執(zhí)行-e的程序
-c config 使用指定的配置文件钓瞭,配置文件是以 屬性-值 的方式來配置

格式關(guān)鍵字

  • %close.time
    • 最后一次響應(yīng)到連接關(guān)閉之間的時(shí)長 值不存在時(shí)可以用-n的值代替
  • %close.timestamp
    • 連接關(guān)閉的時(shí)刻
  • %close.timestamp2
    • 連接關(guān)閉的時(shí)刻 以‘秒.微秒’的格式顯示 值不存在時(shí)可以用-n的值代替
  • %connection
    • 連接持續(xù)指示器
      • unique 唯一的TCP連接
      • start 首個(gè)TCP連接
      • last 末個(gè)TCP連接
      • continue 中間的TCP連接
  • %connection.time
    • 打開連接所用時(shí)長 值不存在時(shí)可以用-n的值代替
  • %connection.timestamp
    • 打開連接的時(shí)刻
  • %connection.timestamp2
    • 連接開啟的時(shí)刻 以‘秒.微秒’的格式顯示 值不存在時(shí)可以用-n的值代替
  • %idle.time.0
    • 開啟連接到首次請(qǐng)求間的時(shí)差 值不存在時(shí)可以用-n的值代替
  • %idle.time.1
    • 末次響應(yīng)到下次請(qǐng)求或連接關(guān)閉間的時(shí)差 值不存在時(shí)可以用-n的值代替
  • %response.time.begin
    • 本次請(qǐng)求到本次響應(yīng)間的時(shí)差 值不存在時(shí)可以用-n的值代替
  • %response.time.end
    • 響應(yīng)開始到響應(yīng)結(jié)束間的時(shí)差 值不存在時(shí)可以用-n的值代替
  • %response.timestamp
    • 響應(yīng)的時(shí)刻
  • %dest.ip
  • %dest.port
  • %source.ip
  • %source.port
  • %request
    • 多行顯示,可能含有不可打印的字符
  • %request.timestamp
  • %request.timestamp2
    • 請(qǐng)求的時(shí)刻 以‘秒.微秒’的格式顯示 值不存在時(shí)可以用-n的值代替
  • %request.size
  • %request.line
    • “GET /index.html HTTP/1.1”
  • %request.method
    • GET POST HEAD
  • %request.url
  • %request.protocol
  • %request.grep(<regular-expression>)
    • 從整個(gè)request里截取匹配正則的字符串
  • %request.header
  • %request.header.host
  • %request.header.user-agent
  • %request.header.accept
  • %request.header.accept-language
  • %request.header.accept-charset
  • %request.header.accept-encoding
  • %request.header.authorization
  • %request.header.connection
  • %request.header.content-encoding
  • %request.header.content-length
  • %request.header.content-md5
  • %request.header.cookie
  • %request.header.range
  • %request.header.referer
  • %request.header.keep-alive
  • %request.header.value(<header-name>)
    • 獲取請(qǐng)求頭部中指定屬性的值
  • %request.header.transfer-encoding
  • %request.header.via
  • %request.header.grep(<regular-expression>)
    • 從整個(gè)request.header里截取匹配正則的字符串
  • %response
  • %response.timestamp
    • 響應(yīng)的時(shí)刻
  • %response.timestamp2
    • 響應(yīng)的時(shí)刻 以‘秒.微秒’的格式顯示 值不存在時(shí)可以用-n的值代替
  • %response.size
  • %response.time
  • %response.line
  • %response.protocol
  • %response.code
    • 200 404 500
  • %response.message
    • OK,Not Found,Internal Server Error
  • %response.grep(<regular-expression>)
    • 從整個(gè)response里截取匹配正則的字符串
  • %response.header
  • %response.header.allow
  • %response.header.server
  • %response.header.date
  • %response.header.content-type
  • %response.header.content-length
  • %response.header.content-md5
  • %response.header.content-range
  • %response.header.content-encoding
  • %response.header.content-language
  • %response.header.transfer-encoding
  • %response.header.etag
  • %response.header.cache-control
  • %response.header.last-modified
  • %response.header.pragma
  • %response.header.age
  • %response.header.connection
  • %response.header.keep-alive
  • %response.header.via
  • %response.header.vary
  • %response.header.www-authenticate
  • %response.header.accept-ranges
  • %response.header.set-cookie
  • %response.header.value(<header-name>)
    • 獲取響應(yīng)頭部中指定屬性的值
  • %response.header.grep(<regular-expression>)
    • 從整個(gè)response.header里截取匹配正則的字符串
  • %tab
  • %-
    • 用于斷開關(guān)鍵詞
  • %%:%
  • %newline

時(shí)間戳格式

  • %A 星期幾全稱
  • %a 星期幾縮寫
  • %B 月份全稱
  • %b 月份縮寫
  • %C 年份/100 代表世紀(jì)
  • %c 時(shí)間日期
  • %D %m/%d/%y
  • %d 日期數(shù)字顯示 01-31
  • %E*
  • %e 日期顯示 1-31
  • %F %Y-%m-%d
  • %G 帶世紀(jì)的年份
  • %g 不帶實(shí)際的年份 00-99
  • %H 24小時(shí)制 00-23
  • %h 月份縮寫
  • %I 12小時(shí)制 01-12
  • %j 一年中的第幾天 001-366
  • %k 24小時(shí)制 0-23
  • %l 12小時(shí)制 1-12
  • %M 第幾分鐘 00-59
  • %m 第幾月 01-12
  • %n 新一行
  • %O*
  • %p am/pm 午前午后
  • %R %H:%M
  • %r %I:%M:%S %p
  • %S 第幾秒 00-60
  • %s 從UTC開始經(jīng)過的秒數(shù)
  • %T %H:%M:%S
  • %t tab
  • %U 一年的第幾個(gè)月 以周日作為一周的開始 00-53
  • %u 周幾 1-7
  • %V 一年的第幾個(gè)月 以周一作為一周的開始 01-53
  • %v %e-%b-%Y
  • %W 一年的第幾個(gè)月 以周一作為一周的開始 00-53
  • %w 周幾 周日作為一周的開始 0-6
  • %X 時(shí)間
  • %x 日期
  • %Y 帶世紀(jì)的日期
  • %y 無世紀(jì)的日期
  • %Z 時(shí)區(qū)名
  • %z 時(shí)區(qū)偏移
  • %+ 日期和時(shí)間
  • %%

0x03 初體驗(yàn)

獲取request中的數(shù)據(jù)代碼

sudo justniffer -i eth0 -u \
                -l "%source.ip %source.port \
                %request.header.grep(X-Forwarded-For\:\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})) \
                %dest.ip %dest.port \
                %request.grep(^Host:\s(.*?)\r\n) \"%request.method %request.url \
              %request.grep(\r\n\r\n(.*)) %request.protocol\"  \
              %response.code %response.header.content-length \
              \"%request.header.referer\" \"%request.header.user-agent\"" \
              >> getpostdata.log &

其中比較重要的就是其中的%request.grep(\r\n\r\n(.*))淫奔,該代碼通過使用正則表達(dá)式去匹配request中的數(shù)據(jù)部分山涡。

其他選項(xiàng)-u將不可打印的字符解析成.,而-l是定制日志的格式。最后將數(shù)據(jù)輸出至getpostdata.log文件鸭丛。

其結(jié)果如圖竞穷。

0x04 深入理解justniffer

施工中

0x05 優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  1. 開源
  2. 直接命令行可以控制抓包
  3. 配合python腳本能夠封裝justniffer源程序,將結(jié)果分類裝入不同的文件夾下
  4. 可能可以進(jìn)行python方面的擴(kuò)展鳞溉,作為進(jìn)一步的事件觸發(fā)(個(gè)人理解)

缺點(diǎn)

  1. 暫未發(fā)現(xiàn)其可以對(duì)檢測(cè)的數(shù)據(jù)包進(jìn)行模式匹配并觸發(fā)檢測(cè)封鎖的操作
  2. 對(duì)http數(shù)據(jù)包中的部分字段需要使用正則表達(dá)式進(jìn)行剝離瘾带,正則的方式可能難以理解。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熟菲,一起剝皮案震驚了整個(gè)濱河市看政,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抄罕,老刑警劉巖允蚣,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異呆贿,居然都是意外死亡嚷兔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門做入,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谴垫,“玉大人,你說我怎么就攤上這事母蛛◆婕簦” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵彩郊,是天一觀的道長前弯。 經(jīng)常有香客問我,道長秫逝,這世上最難降的妖魔是什么恕出? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮违帆,結(jié)果婚禮上浙巫,老公的妹妹穿的比我還像新娘。我一直安慰自己刷后,他們只是感情好的畴,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尝胆,像睡著了一般丧裁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上含衔,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天煎娇,我揣著相機(jī)與錄音二庵,去河邊找鬼。 笑死缓呛,一個(gè)胖子當(dāng)著我的面吹牛催享,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哟绊,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼因妙,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了匿情?” 一聲冷哼從身側(cè)響起兰迫,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤信殊,失蹤者是張志新(化名)和其女友劉穎炬称,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涡拘,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玲躯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鳄乏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跷车。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖橱野,靈堂內(nèi)的尸體忽然破棺而出朽缴,到底是詐尸還是另有隱情,我是刑警寧澤水援,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布密强,位于F島的核電站,受9級(jí)特大地震影響蜗元,放射性物質(zhì)發(fā)生泄漏或渤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一奕扣、第九天 我趴在偏房一處隱蔽的房頂上張望薪鹦。 院中可真熱鬧,春花似錦惯豆、人聲如沸池磁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽框仔。三九已至,卻和暖如春拄养,著一層夾襖步出監(jiān)牢的瞬間离斩,已是汗流浹背银舱。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跛梗,地道東北人寻馏。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像核偿,于是被迫代替她去往敵國和親诚欠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理漾岳,服務(wù)發(fā)現(xiàn)轰绵,斷路器,智...
    卡卡羅2017閱讀 134,702評(píng)論 18 139
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 11,005評(píng)論 6 13
  • 使用 HTTP 服務(wù)器或客戶端功能必須調(diào)用require('http')尼荆。 Node 里的 HTTP 接口支持協(xié)議...
    保川閱讀 1,388評(píng)論 0 1
  • 雖然現(xiàn)在MRC已經(jīng)漸漸退出人們的視線了左腔,但是依然會(huì)有少部分老程序員喜歡用MRC來編程,當(dāng)然捅儒,更多的情況是以前用MR...
    LGirl閱讀 270評(píng)論 0 1
  • 無意發(fā)現(xiàn)今天是24號(hào)液样,寶寶整整一歲二個(gè)月。 坐在回家的大巴車上巧还,想起你昨晚十一點(diǎn)多了還是不肯睡鞭莽,幾次媽媽抱你上床,...
    一路有你ing閱讀 129評(píng)論 0 0