免費b2b網(wǎng)站要怎么做谷歌seo教程
關(guān)于Mallet
Mallet是一款功能強(qiáng)大的協(xié)議安全分析工具,該工具支持針對任意協(xié)議創(chuàng)建用于安全審計的攔截代理,該工具本質(zhì)上與我們所熟悉的攔截Web代理類似,只是通用性更強(qiáng)。

工具運行機(jī)制
Mallet建立在Netty框架之上,并且依賴于Netty管道概念,即允許以圖形方式組裝處理程序圖。在Netty世界中,處理程序?qū)嵗峁指?#xff08;即消息從哪里開始和結(jié)束)、協(xié)議解碼和編碼(將字節(jié)流轉(zhuǎn)換為Java對象,然后再轉(zhuǎn)換回來,或者將字節(jié)流轉(zhuǎn)換為不同的字節(jié)流),以及更高級別的邏輯。通過仔細(xì)區(qū)分編解碼器與實際操作消息的處理程序,Mallet可以從現(xiàn)有的大量編解碼器庫中受益,并避免重新實現(xiàn)許多協(xié)議。
Mallet 不一定只用于安全審查。由于Mallet是建立在Netty框架之上的,因此一旦使用 Mallet制作了管道原型,我們就可以毫不費力地將代碼遷移到普通的Netty應(yīng)用程序中。
下面給出的是一個簡單的SOCKS 代理的示例,可作為我們理解Mallet處理網(wǎng)絡(luò)流量的一個概覽:

一旦我們了解了流量的實際情況,就可以開始在管道中添加適當(dāng)?shù)腃hannelHandler類了。
工具要求
1、最新版本的Java運行時環(huán)境;
2、Maven;
工具安裝
由于該工具基于Java開發(fā),因此我們首先需要在本地設(shè)備上安裝并配置好最新版本的Java運行時環(huán)境。
接下來,廣大研究人員可以直接使用下列命令將該項目源碼克隆至本地:
git clone https://github.com/sensepost/mallet.git
然后切換到項目目錄中,使用Maven對項目源碼進(jìn)行編譯:
cd malletmvn package
工具使用
cd target/java -jar mallet-1.0-SNAPSHOT-spring-boot.jar
項目的examples/目錄中提供了一些示例圖,其中JSON圖要求 JSON客戶端通過localhost:9998/tcp連接到 Mallet,而真實服務(wù)器則位于localhost:9999/tcp。只有最后一個JSON圖(json5.mxe)對傳遞的 JSON消息的結(jié)構(gòu)做出了任何假設(shè),因此它們應(yīng)該適用于發(fā)送JSON消息的任何應(yīng)用程序。
demo.mxe顯示了一張復(fù)雜的圖,其中包含兩個管道,即TCP和UDP。TCP管道分別支持端口80和443上的HTTP和HTTPS以及WebSockets,同時將任何其他流量直接中繼到其目的地。UDP管道用于處理localhost:1053/udp上的DNS請求,將對google.com的查詢替換為對www.sensepost.com的查詢,并將請求轉(zhuǎn)發(fā)到Google DNS服務(wù)器。
項目地址
Mallet:【GitHub傳送門】
參考資料
GitHub - netty/netty: Netty project - an event-driven asynchronous network application framework
https://netty.io/
https://netty.io/4.1/api/io/netty/channel/ChannelHandler.html