您好,登錄后才能下訂單哦!
小編給大家分享一下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 @@"
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 IDs | 產(chǎn)品 | 發(fā)現(xiàn)人 |
---|---|---|
CVE-2019-9631 CVE-2019-7310 CVE-2019-9959 | Poppler | Maksim Shudrak |
CVE-2018-17019 CVE-2018-16807 CVE-2019-12175 | Bro/Zeek | Maksim Shudrak |
如果你使用Manul成功發(fā)現(xiàn)了新的漏洞的話,大家可以將漏洞信息添加到這個(gè)列表之中。
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āng)前版本的Manul支持兩種類型的操作指令,即基于AFL的指令(afl-gcc、afl-clang和afl-clang-fast)和DBI模式。
你可以使用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
在使用該模式時(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:
在使用之前,你需要去掉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)行通信。
編譯指令庫(kù),我們需要安裝最新版本的DynamoRIO。指令庫(kù)源代碼可以在Manul主目錄下的“dbi_clients_src”中找到。
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
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)行下列命令:
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)
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)
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
以上是“Manul是一款什么工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(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)容。