Skip to content

sucof/morph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Morph is an open source browser fuzzing framework written by Walkerfuz of Taurus Security.

It provides an automated way to fuzz a browser, like IE, Firefox, Chrome, etc.

You can write yourself fuzzer for morph, for example nduja, fileja, cross_fuzz.

Features

  • 支持多种浏览器,例如IE、Chrome、Firefox等
  • 支持自定义扩展插件,比如nduja、fileja、cross_fuz

Requirements

  • Python >= 3.4
  • Windbg
  • Current only for Windows

Installation and Usage

1.安装Windbgx86/x64和MSECExtensions !exploitable插件。

注意:需要在Windbg中提前测试load msec.dll是否成功,若出现Can't Load Library的错误,则需要安装Visual C++ Redistributable 2008/2012。

2.将Windbg目录下的cdb.exe设置为默认即时调试器:

cdb.exe -iaec "-logo c:/log.txt -c "!load msec.dll;!exploitable -v;""

其中命令中的c:/log.txt与config.py中的Debugger中的log参数必须一致。

3.如果Fuzz目标是Firefox,则需要关闭安全模式

在firefox进入about:config找到toolkit.startup.max_resumed_crashes(默认是3),将其设置为-1

4.采用Windbg目录下的gflags.exe开启目标进程的页堆调试功能,比如IE浏览器:

gflags.exe /i iexplore.exe +hpa

5.下载Morph并配置Config.py中的参数。

6.运行:

morph.py --browser=IE --fuzzer=nduja.html

Versions Timeline

  • v0.2.1
    • 优化了Fuzzer插件的编写格式,将其分为morph_random、morph_fuzz和morph_notify_href三部分
    • 解决了连续两个样本存在Crash时Morph序号读取死循环的错误
    • 优化了样本重现时的对WebSockets有依赖的逻辑
    • 增加了关闭Firefox安全模式的方法
  • v0.2.0
    • 全面改写为静态Fuzz框架 采用file:///本地打开网页进行Fuzz
  • v0.1.5
    • 解决了MSECExtentions v1.6.0插件在Windbg中出现Can't load Library的错误
  • v0.1.3
    • 增加了t_m.isAlive判断监控进程是否真正结束的标志
  • v0.1.2
    • 解决了Process32First和Process32Next返回值不等同于Python False对象类型引起的bug
  • v0.1.1
    • 解决了threading.join超时后监控CrashProc的Monitor子线程没有结束的bug
  • v0.1.0
    • 解决了浏览器标签页无响应阻塞Fuzz循环继续进行的bug

如果有什么bug或建议,请邮件联系@walkerfuz。

About

An open source browser fuzzing framework for fun.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published