All Projects → dobin → Ffw

dobin / Ffw

Licence: gpl-3.0
A fuzzing framework for network servers

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ffw

Ether.network
https://github.com/Eastrall/Sylver
Stars: ✭ 147 (+51.55%)
Mutual labels:  server, network
X
新生命X组件,数据中间件XCode、日志、网络、RPC、序列化、缓存、Windows服务
Stars: ✭ 1,322 (+1262.89%)
Mutual labels:  server, network
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (+69.07%)
Mutual labels:  server, network
Sgf
This is a Smart Game Foundation (Not Framework)
Stars: ✭ 122 (+25.77%)
Mutual labels:  server, network
Tinytcpserver
A small tcp server working under Mono or .NET (4.0) and provides hooks for handling data exchange with clients (works under mono and .net). Behaviour/protocol/reaction could be specified via custom C# script.
Stars: ✭ 14 (-85.57%)
Mutual labels:  server, network
Pesocket
A C# Network Library.
Stars: ✭ 134 (+38.14%)
Mutual labels:  server, network
Nock Nock
🚪 Monitor and validate your websites to maintain maximum uptime.
Stars: ✭ 339 (+249.48%)
Mutual labels:  server, network
Zserver4d
ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透
Stars: ✭ 199 (+105.15%)
Mutual labels:  server, network
Clientserverproject
一个C-S模版,该模版由三部分的程序组成,一个服务端运行的程序,一个客户端运行的程序,还有一个公共的组件,实现了基础的账户管理功能,版本控制,软件升级,公告管理,消息群发,共享文件上传下载,批量文件传送功能。具体的操作方法见演示就行。本项目的一个目标是:提供一个基础的中小型系统的C-S框架,客户端有三种模式,无缝集成访问,winform版本,wpf版本,asp.net mvc版本,方便企业进行中小型系统的二次开发和个人学习。同时网络组件方便的支持读写三菱和西门子PLC的数据,详细见Readme
Stars: ✭ 873 (+800%)
Mutual labels:  server, network
Vssh
Go Library to Execute Commands Over SSH at Scale
Stars: ✭ 707 (+628.87%)
Mutual labels:  server, network
Ddn
DDN, Data Delivery Network, a next generation blockchain system
Stars: ✭ 118 (+21.65%)
Mutual labels:  server, network
Pythem
pentest framework
Stars: ✭ 1,060 (+992.78%)
Mutual labels:  network, fuzzer
Deta cache
缓存cache服务器
Stars: ✭ 106 (+9.28%)
Mutual labels:  server, network
Ansible Role Nfs
Ansible Role - NFS
Stars: ✭ 141 (+45.36%)
Mutual labels:  server, network
Node Minecraft Protocol
Parse and serialize minecraft packets, plus authentication and encryption.
Stars: ✭ 697 (+618.56%)
Mutual labels:  server, network
Go Raknet
An idiomatic Go library implementing a basic version of the RakNet protocol.
Stars: ✭ 40 (-58.76%)
Mutual labels:  server, network
Cifsd
cifsd kernel server(SMB/CIFS server)
Stars: ✭ 76 (-21.65%)
Mutual labels:  server, network
Verge
Official Verge Core Source Code Repository 💪
Stars: ✭ 1,311 (+1251.55%)
Mutual labels:  server
Networkeye
a iOS network debug library, monitor HTTP requests
Stars: ✭ 1,326 (+1267.01%)
Mutual labels:  network
Vis Network
💫 Display dynamic, automatically organised, customizable network views.
Stars: ✭ 1,311 (+1251.55%)
Mutual labels:  network

FFW - Fuzzing For Worms

Fuzzes network servers/services by intercepting valid network communication data, then replay it with some fuzzing.

FFW can fuzz open source applications and supports feedback driven fuzzing by instrumenting honggfuzz, for both open- and closed source apps.

In comparison with the alternatives, FFW is the most advanced, feature-complete and tested network fuzzer.

Features:

  • Fuzzes all kind of network protocol (HTTP, MQTT, SMTP, you name it)
  • No modification of the fuzzing target needed (at all)
  • Has feedback-driven fuzzing (with compiler support, or hardware based)
  • Can fuzz network clients too (wip)
  • Fast fuzzing setup (no source code changes or protocol reversing needed!)
  • Reasonable fuzzing performance

Presentation

Presented at security conference Area 41 2018.

  • (Fuzzing For Worms Slides)[https://docs.google.com/presentation/d/1tLELphbkh2bVLyIedagNoFKBn_DEYv29RskZY4u-szA/edit?usp=sharing]
  • (Youtube)[https://www.youtube.com/watch?v=akpk9hrizc4]

Docker

Easiest way to start is to use the docker image:

By doing so:

docker run -ti --privileged -lxc-conf="aa_profile=unconfined" dobin/ffw:0.1

Examples are located in /ffw-examples.

Manual Installation

Get FFW

git clone https://github.com/dobin/ffw.git
cd ffw/

Note: Manually installed dependencies are expected to live in the ffw/ directory (e.g. honggfuzz, radamsa).

Install FFW dependencies

If its a fresh Ubuntu, install relevant packages for FFW:

apt-get install python python-pip gdb

For honggfuzz:

apt-get install clang binutils-dev libunwind8-dev

And python dependencies:

pip install -r requirements.txt

Install Radamsa fuzzer

$ git clone https://github.com/aoh/radamsa.git
$ cd radamsa
$ make

Default Radamsa directory specified in ffw is ffw/radamsa.

Setup a project

Steps involved in setting up a fuzzing project:

  • Create directory structure for that fuzzing project by copying template folder
  • Copy target binary to bin/
  • Specify all necessary information in the config file fuzzing.py
  • Start interceptor-mode to record traffic
  • Start test-mode to verify recorded traffic (optional)
  • Start fuzz-mode to fuzz
  • Start verify-mode to verify crashed from the fuzz mode (optional)
  • Start upload-mode to upload verified crashes to the web (optional)

For a step-by-step guide:

Unit Tests

Test all:

python -m unittest discover

Test a single module:

python -m unittest test.test_interceptor

Alternatives

Fuzzotron

Available via https://github.com/denandz/fuzzotron. "Fuzzotron is a simple network fuzzer supporting TCP, UDP and multithreading."

Support network fuzzing, also uses Radamsa. Can use coverage data, but it is experimental.

Con's:

  • Does not restart target server
  • Unreliable crash detection
  • Experimental code coverage

Mutiny

Available via https://github.com/Cisco-Talos/mutiny-fuzzer. "The Mutiny Fuzzing Framework is a network fuzzer that operates by replaying PCAPs through a mutational fuzzer."

Con's:

  • No code coverage
  • Only one commit (no development?)
  • Rudimentary crash detection
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].