您好,登錄后才能下訂單哦!
小編給大家分享一下Manul是一款什么工具,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Manul是一款基于覆蓋率引導的并行模糊測試工具,該工具采用純Python開發,并且已完全開源,廣大研究人員可以使用Manul在Windows、Linux和macOS平臺上對目標代碼進行模糊測試或黑盒測試。
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平臺,那你就不需要安裝Radamsa了,因為Manul針對Windows平臺的發布包中已經包含了Radamsa庫了。
CVE IDs | 產品 | 發現人 |
---|---|---|
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成功發現了新的漏洞的話,大家可以將漏洞信息添加到這個列表之中。
1、Python3(Python2從2020年1月1日開始就已經過時了,但是Manul在Python2環境下理論來說可以正常工作)
2、Psutil:【傳送門】
3、Pywin32(Windows平臺下,DBI持久模式),安裝命令如下:
pip install pywin32
當前版本的Manul支持兩種類型的操作指令,即基于AFL的指令(afl-gcc、afl-clang和afl-clang-fast)和DBI模式。
你可以使用afl-gcc、afl-clang-fast或Address Sanitizer(建議使用)命令來進行操作,演示樣例如下:
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
在使用該模式時,無需使用專門的命令,但是我們需要在Windows或Linux平臺中下載最新版本的DynamoRIO框架。
Manul在Linux和Windows平臺上,是以x86/x64預編譯客戶端的形式發布的,你可以在下列目錄中找到它們:linux/dbi_32|dbi_64/libbinafl.so (DynamoRIO client)win/dbi_32|dbi_64/binafl.dll
不幸的是,DynamoRIO目前還不支持在macOS上使用。
DynamoRIO:
在使用之前,你需要去掉manul.config文件中的下列代碼行的注釋,并且給DynamoRIO啟動器和客戶端提供正確的路徑:
# 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
除此之外,廣大用戶還可以使用持續內存模糊測試功能來提升黑盒模糊測試的性能。在這個模式下,你可以控制Manul對特定的函數進行測試,并通過取消下列代碼行注釋來實現循環執行:
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的開發者對這種模式進行了非常詳細的介紹,而Manul引用了winAFL中大部分指令庫的代碼,用來跟待測目標發送指令或進行通信。
編譯指令庫,我們需要安裝最新版本的DynamoRIO。指令庫源代碼可以在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),然后啟動“VS20XX Cross Tools Command Prompt”,并運行下列命令:
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是一款什么工具”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。