溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Manul是一款什么工具

發(fā)布時(shí)間:2021-12-27 14:22:50 來(lái)源:億速云 閱讀:155 作者:小新 欄目:數(shù)據(jù)安全

小編給大家分享一下Manul是一款什么工具,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

   Manul是一款基于覆蓋率引導(dǎo)的并行模糊測(cè)試工具,該工具采用純Python開(kāi)發(fā),并且已完全開(kāi)源,廣大研究人員可以使用Manul在Windows、Linux和macOS平臺(tái)上對(duì)目標(biāo)代碼進(jìn)行模糊測(cè)試或黑盒測(cè)試。

馬上使用

pip3 install psutilgit clone https://github.com/mxmssh/manulcd manulmkdir inmkdir outecho "AAAAAA" > in/testpython3 manul.py -i in -o out -n 4 "linux/test_afl @@"

安裝Radamsa

sudo apt-get install gcc make git wgetgit clone https://gitlab.com/akihe/radamsa.git && cd radamsa && make && sudo make install

如果你是用的是Windows平臺(tái),那你就不需要安裝Radamsa了,因?yàn)镸anul針對(duì)Windows平臺(tái)的發(fā)布包中已經(jīng)包含了Radamsa庫(kù)了。

公共CVE列表

CVE IDs 產(chǎn)品 發(fā)現(xiàn)人
CVE-2019-9631 CVE-2019-7310 CVE-2019-9959PopplerMaksim Shudrak
CVE-2018-17019 CVE-2018-16807 CVE-2019-12175Bro/ZeekMaksim Shudrak

如果你使用Manul成功發(fā)現(xiàn)了新的漏洞的話,大家可以將漏洞信息添加到這個(gè)列表之中。

工具演示樣例

Manul是一款什么工具

工具依賴

1、Python3(Python2從2020年1月1日開(kāi)始就已經(jīng)過(guò)時(shí)了,但是Manul在Python2環(huán)境下理論來(lái)說(shuō)可以正常工作)

2、Psutil:【傳送門】

3、Pywin32(Windows平臺(tái)下,DBI持久模式),安裝命令如下:

pip install pywin32

基于覆蓋率引導(dǎo)的模糊測(cè)試

當(dāng)前版本的Manul支持兩種類型的操作指令,即基于AFL的指令(afl-gcc、afl-clang和afl-clang-fast)和DBI模式。

基于覆蓋率引導(dǎo)的模糊測(cè)試-AFL指令模式

你可以使用afl-gcc、afl-clang-fast或Address Sanitizer(建議使用)命令來(lái)進(jìn)行操作,演示樣例如下:

CC=afl-gcc CXX=afl-g++ CFLAGS=-fsanitize=address CXXFLAGS=-fsanitize=address cmake <path_to_your_target>make -j 8USE_ASAN=1 CC=afl-clang-fast CXX=afl-clang-fast++ cmake <path_to_your_target>make -j 8

基于覆蓋率引導(dǎo)的模糊測(cè)試-DBI模式

在使用該模式時(shí),無(wú)需使用專門的命令,但是我們需要在Windows或Linux平臺(tái)中下載最新版本的DynamoRIO框架。

Manul在Linux和Windows平臺(tái)上,是以x86/x64預(yù)編譯客戶端的形式發(fā)布的,你可以在下列目錄中找到它們:linux/dbi_32|dbi_64/libbinafl.so (DynamoRIO client)win/dbi_32|dbi_64/binafl.dll

不幸的是,DynamoRIO目前還不支持在macOS上使用。

使用DynamoRIO對(duì)代碼進(jìn)行黑盒模糊測(cè)試

DynamoRIO:

在使用之前,你需要去掉manul.config文件中的下列代碼行的注釋,并且給DynamoRIO啟動(dòng)器和客戶端提供正確的路徑:

# Choose DBI framework to provide coverage back to Manul ("dynamorio" or "pin"). Example dbi = dynamoriodbi = dynamorio# If dbi parameter is not None the path to dbi engine launcher and dbi client should be specified.dbi_root = /home/max/DynamoRIO/bin64/drrundbi_client_root = /home/max/manul/linux/dbi_64/libbinafl.sodbi_client_libs = None

除此之外,廣大用戶還可以使用持續(xù)內(nèi)存模糊測(cè)試功能來(lái)提升黑盒模糊測(cè)試的性能。在這個(gè)模式下,你可以控制Manul對(duì)特定的函數(shù)進(jìn)行測(cè)試,并通過(guò)取消下列代碼行注釋來(lái)實(shí)現(xiàn)循環(huán)執(zhí)行:

dbi_persistence_mode = 1dbi_target_module = afl_testdbi_target_method = open_file#dbi_target_offset = 0x3198 # optionally you can provide offset of this function instead of namedbi_fuzz_iterations = 1000

winAFL的開(kāi)發(fā)者對(duì)這種模式進(jìn)行了非常詳細(xì)的介紹,而Manul引用了winAFL中大部分指令庫(kù)的代碼,用來(lái)跟待測(cè)目標(biāo)發(fā)送指令或進(jìn)行通信。

編譯DynamoRIO客戶端代碼

編譯指令庫(kù),我們需要安裝最新版本的DynamoRIO。指令庫(kù)源代碼可以在Manul主目錄下的“dbi_clients_src”中找到。

64-bit Linux

cd dbi_clients_srcwget <DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz> - download the latest DynamoRIOtar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gzmkdir client_64cd client_64cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz/cmakeMake

32-bit Linux

cd dbi_clients_srcwget <DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz> - download the latest DynamoRIOtar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gzmkdir client_64cd client_64CFLAGS=-m32 CXXFLAGS=-m32 cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz/cmakeMake

在Windows下,需要安裝Visual Studio(2017或2013),然后啟動(dòng)“VS20XX Cross Tools Command Prompt”,并運(yùn)行下列命令:

64-bit Windows

cd dbi_clients_src<Download and extract the latest version of DynamoRIO>mkdir client_64cd client_64cmake -G"Visual Studio 15 Win64" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmakecmake --build . --config RelWithDebInfo (or just Debug if needed)

32-bit Windows

cd dbi_clients_src<Download and extract the latest version of DynamoRIO>mkdir client_32cd client_32cmake -G"Visual Studio 15" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmakecmake --build . --config RelWithDebInfo (or just Debug if needed)

工具命令行參數(shù)

Example: python3 manul.py -i corpus -o out_dir -n 40 "target @@"positional arguments:  target_binary  The target binary and options to be executed (don't forget to include quotes e.g. "target e @@").optional arguments:  -h, --help     show this help message and exit  -n NFUZZERS    Number of parallel fuzzers  -s             Run dumb fuzzing (no code instrumentation)  -c CONFIG      Path to config file with additional options (see Configuration File Options section below)  -r             Restore previous sessionRequired parameters:  -i INPUT       Path to directory with initial corpus  -o OUTPUT      Path to output directory

狀態(tài)視圖

Manul是一款什么工具

以上是“Manul是一款什么工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI