Awesome
SWEETMON
'SWEETMON' is a fuzzer monitoring service based python3 + django. User can check their fuzzers and crashes on the web. It can reduce repetitive work for fuzz testers.
What is this?
Sweetmon provides several useful things for monitoring fuzzers and crashes.
- Monitoring
- Fuzzers
- IP, fuzzer name, status
- Number of crashes
- Fuzzers
- Monitoring Crashes
- First or last reported time
- Number of (duplicated) crashes
- Generate one-time-url to download crash.
- Crash logs
- Crash informations (name, machine, summary, debug log, size)
- Notification (via Telegram or email)
- Up/download fuzzer and testcase
- Host testcase or fuzzer file
- Issue
- Support multiple user
Screenshots
-
Initial screen
-
User Profile
-
Fuzzer list
-
Fuzzer information
-
Crash list
-
Crash details
-
Crash details (2)
-
Testcase & Fuzzer list
-
Testcase & Fuzzer details
-
Issue list
-
Issue Details
-
Statistics
Installation (Server)
Easy Installation (Recommended, For linux)
- Environment
- Ubuntu 16.04.3 LTS (Server, Clean vm)
-
Install Ubuntu.
-
Download the installer
wget https://raw.githubusercontent.com/sweetchipsw/sweetmon/master/install.sh -O install.sh
-
Set 'DOMAIN' on install.sh
#!/bin/bash # SWEETMON Installer ### # Modify under contents ### DOMAIN='' # domain.com || 192.168.123.123 EMAIL='admin@domain.com'
-
Run installer.
bash install.sh
-
Done!
Manual Installation (For linux)
- Environment
- Ubuntu 16.04.2 LTS (Server)
-
Install python3 + apache2 + virtualenv and sweetmon
sudo apt install python3 python3-pip sudo apt install apache2 sudo apt install virtualenv git clone https://github.com/sweetchipsw/sweetmon.git
-
Update your server and Install dependencies
sudo apt update sudo apt upgrade -y sudo apt install -y python3 python3-pip apache2 virtualenv libapache2-mod-wsgi-py3 letsencrypt git
-
Clone sweetmon project & Set env
git clone https://github.com/sweetchipsw/sweetmon.git export LOCATION=`pwd` export VENV='sweetmon_venv'
-
Install && Activate virtualenv.
virtualenv -p python3 sweetmon_venv . sweetmon_venv/bin/activate
-
Install django + dependencies.
sudo pip3 install -r requirements.txt
-
Make configuration file
sudo vim /etc/apache2/sites-available/sweetmon.conf
-
Paste under contents.
<VirtualHost *:80> WSGIScriptAlias / $LOCATION/sweetmon/sweetmon/wsgi.py WSGIDaemonProcess sweetmon python-path=$LOCATION/sweetmon/ python-home=$LOCATION/$VENV/lib/python3.5/site-packages WSGIProcessGroup sweetmon ServerName $DOMAIN ServerAlias $DOMAIN ServerAdmin $EMAIL DocumentRoot $LOCATION/sweetmon/ ErrorLog /var/log/apache2/sweetmon_error.log CustomLog /var/log/apache2/sweetmon_custom.log combined Alias /robots.txt $LOCATION/sweetmon/static/robots.txt Alias /assets/admin $LOCATION/$VENV/lib/python3.5/site-packages/django/contrib/admin/static/admin Alias /assets $LOCATION/sweetmon/static/ <Directory $LOCATION/sweetmon/> Require all granted </Directory> <Directory $LOCATION/sweetmon/sweetmon/ > <Files wsgi.py> Require all granted </Files> </Directory> <Directory $LOCATION/$VENV/lib/python3.5/site-packages/django/contrib/admin/static/admin/ > Require all granted </Directory> </VirtualHost>
-
Restart apache2 server
sudo a2ensite sweetmon sudo service apache2 restart
-
Migrate DB / Set permission / Create super admin
cd $LOCATION/sweetmon python3 manage.py makemigrations python3 manage.py migrate sudo chown www-data:www-data ./ -R python manage.py createsuperuser
-
Done.
Install SSL certificate on Apache2. (Optional, But highly recommended)
- Not completed yet
-
Install Letsencrypt
sudo apt install letsencrypt
-
Check your port-forwarding status.
- 80 (http)
- 443 (https)
-
Generate SSL Certificate
sudo letsencrypt certonly -a standalone -d domain.com
-
Make configuration file for https.
-
Enable SSL & Restart apache2 server
-
Done!
For windows, OS X
- Not tested on these OS. But it will works.
After Install
1. Change Secret key in settings.py (/sweetmon/settings.py)
- To make your server secure, you should change SECRET_KEY.
# SECURITY WARNING: keep the secret key used in production secret!
# - Please Change this key before install on server.
# SECRET_KEY = 'y3r$r7#g(g_6xt!q35ct=6sqt0kiihqe2vc#k%bktayz@vok2v'
SECRET_KEY = '....'
- Generate 'new' SECRET_KEY
import random
print(''.join(random.SystemRandom().choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)))
# '(vj1g8ps3a7li%g%go6uno4!n(9dfegsj7mvbicy$vv&c#!ak4'
2. You should use sweetmon-client to interact with sweetmon
PS
- Pull Requests are always welcome!
- Please create Issue or send me an email to me if you have any questions or requests.
ETC
- Template : Dashgum by Alvarez.is / You can find it here.
- Donation
- Bitcoin : 1M7usjq5PNz7vjWz1oyyzj2VHwKC6EmSsi
- Ethereum : 0x93357b84488DDC8D52e2C6E51dF745B026F95B71