Awesome
<div align="center"> <h1><a href="https://mongoaud.it"><img src="https://raw.githubusercontent.com/stampery/mongoaudit/master/rsc/github-header.png" alt="mongoaudit"/></a></h1> <a href="https://travis-ci.org/stampery/mongoaudit"><img src="https://travis-ci.org/stampery/mongoaudit.svg?branch=master"></a> <a href="https://landscape.io/github/stampery/mongoaudit/master"><img alt="Code Health" src="https://landscape.io/github/stampery/mongoaudit/master/landscape.svg?style=flat"/></a> <a href="https://codeclimate.com/repos/588f61f717e4fe24b80046f6/feed"><img alt="Code Climate" src="https://codeclimate.com/repos/588f61f717e4fe24b80046f6/badges/ed691ca1655c0eb8a4a5/gpa.svg" /></a> <a href="https://codeclimate.com/repos/588f61f717e4fe24b80046f6/feed"><img alt="Issue Count" src="https://codeclimate.com/repos/588f61f717e4fe24b80046f6/badges/ed691ca1655c0eb8a4a5/issue_count.svg" /></a> <br/><br/> <p><strong>mongoaudit</strong> is a CLI tool for auditing MongoDB servers, detecting poor security settings and performing automated penetration testing.</p> </div> <h2 align="center">Installing</h2>Clone this repository and run the setup:
> git clone https://github.com/stampery/mongoaudit.git
> cd mongoaudit
> python setup.py install
> mongoaudit
<h2 align="center">Introduction</h2>
<p>It is widely known that there are quite a few holes in MongoDB's default configuration settings. This fact, combined with abundant lazy system administrators and developers, has led to what the press has called the <a href="http://thenextweb.com/insider/2017/01/08/mongodb-ransomware-exists-people-bad-security/"><i>MongoDB apocalypse</i></a>.</p>
<p><strong>mongoaudit</strong> not only detects misconfigurations, known vulnerabilities and bugs but also gives you advice on how to fix them, recommends best practices and teaches you how to DevOp like a pro! </p>
<p>This is how the actual app looks like:</p>
<p align="center">
<img align="center" src="https://raw.githubusercontent.com/stampery/mongoaudit/master/rsc/screenshot.png" alt="mongoaudit screenshot"/>
<br /><i>Yep, that's material design on a console line interface. (Powered by <a href="https://github.com/urwid/urwid">urwid</a>)</i>
</p>
<h2 align="center">Supported tests</h2>
- MongoDB listens on a port different to default one
- Server only accepts connections from whitelisted hosts / networks
- MongoDB HTTP status interface is not accessible on port 28017
- MongoDB is not exposing its version number
- MongoDB version is newer than 2.4
- TLS/SSL encryption is enabled
- Authentication is enabled
- SCRAM-SHA-1 authentication method is enabled
- Server-side Javascript is forbidden *
- Roles granted to the user only permit CRUD operations *
- The user has permissions over a single database *
- Security bug CVE-2015-7882
- Security bug CVE-2015-2705
- Security bug CVE-2014-8964
- Security bug CVE-2015-1609
- Security bug CVE-2014-3971
- Security bug CVE-2014-2917
- Security bug CVE-2013-4650
- Security bug CVE-2013-3969
- Security bug CVE-2012-6619
- Security bug CVE-2013-1892
- Security bug CVE-2013-2132
Tests marked with an asterisk (*
) require valid authentication credentials.
Once you run any of the test suites provided by mongoaudit, it will offer you to receive a fully detailed report via email. This personalized report links to a series of useful guides on how to fix every specific issue and how to harden your MongoDB deployments.
For your convenience, we have also published the mongoaudit guides in our Medium publication.
<h2 align="center">Contributing</h2>We're happy you want to contribute! You can help us in different ways:
- Open an issue with suggestions for improvements and errors you're facing.
- Fork this repository and submit a pull request.
- Improve the documentation.
To submit a pull request, fork the mongoaudit repository and then clone your fork:
git clone git@github.com:<your-name>/mongoaudit.git
Make your suggested changes, git push
and then submit a pull request.
"With great power comes great responsibility"
- Never use this tool on servers you don't own. Unauthorized access to strangers' computer systems is a crime in many countries.
- Please use this tool is at your own risk. We will accept no liability for any loss or damage which you may incur no matter how caused.
- Don't be evil! :trollface: