Skip to content

Commit feeef36

Browse files
author
root
committed
Adds CMSmap v1.0
0 parents  commit feeef36

39 files changed

+75185
-0
lines changed

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
*.pyc
2+
*_plugins_small.txt
3+
*_versions.txt
4+
*_defaultfiles.txt
5+
*_defaultfolders.txt
6+
cmsmap/tmp/
7+
cmsmap/__pycache__/
8+
*.egg-info
9+
.vscode
10+
build
11+
dist

CONTRIBUTING.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Contribution Guidelines
2+
=====
3+
Pull requests are more than welcome! Below a few guidlines for submitting contributions:
4+
5+
* Fork the repository, create a new branch and submit your pull request.
6+
* Give your pull request a useful title and descriptive comments.
7+
* Make sure your local repo is up to date before submitting your pull request.
8+
* Rebase your commits to squash multiple commits into one before submitting your pull request. This keeps the main repo commit history clean and makes it easier to revent changes.
9+
* Use Python 3
10+
* Please TEST YOUR CONTRIBUTION! Be sure that your contribution works against all CMSs before submitting. After testing, changes will be merged to master.

DISCLAIMER.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Usage of CMSmap for attacking targets without prior mutual consent is illegal.
2+
It is the end user's responsibility to obey all applicable local, state and federal laws.
3+
Developers assume NO liability and are NOT responsible for any misuse or damage caused by this program.

LICENSE.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
CMSmap is (C) 2013-2014 Mike Manzotti @ Dionach Ltd.
2+
3+
This program is free software; you may redistribute and/or modify it under
4+
the terms of the GNU General Public License as published by the Free Software Foundation,
5+
either version 3 of the License, or (at your option) any later version.
6+
7+
This program is distributed in the hope that it will be useful,
8+
but WITHOUT ANY WARRANTY; without even the implied warranty of
9+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10+
GNU General Public License for more details.
11+
12+
You should have received a copy of the GNU General Public License
13+
along with this program. If not, see http://www.gnu.org/licenses/.

README.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
CMSmap
2+
======
3+
4+
CMSmap is a python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs. The main purpose of CMSmap is to integrate common vulnerabilities for different types of CMSs in a single tool.
5+
6+
At the moment, CMSs supported by CMSmap are WordPress, Joomla, Drupal and Moodle.
7+
8+
Please note that this project is an early state. As such, you might find bugs, flaws or mulfunctions.
9+
Use it at your own risk!
10+
11+
12+
Preview
13+
=====
14+
* https://asciinema.org/a/MELa2nUcrtATqnDLnc0ig8rcT
15+
16+
17+
Installation
18+
=====
19+
You can download the latest version of CMSmap by cloning the GitHub repository:
20+
21+
git clone https://github.com/Dionach/CMSmap
22+
23+
Then you need to configure the `edbtype` and `edbpath` settings in the `cmsmap.conf`. Use `GIT` if you have a local Git repository of Exploit-db :
24+
25+
[exploitdb]
26+
edbtype = GIT
27+
edbpath = /opt/exploitdb/
28+
29+
Alternatively, use `APT` if you have installed the `debian` exploitdb package. For Kali, use the following settings :
30+
31+
[exploitdb]
32+
edbtype = APT
33+
edbpath = /usr/share/exploitdb/
34+
35+
If you would like to run `cmsmap` from anywhere in your system you can install it with `pip3` :
36+
37+
cd CMSmap
38+
pip3 install .
39+
40+
To uninstall it :
41+
42+
pip3 uninstall cmsmap -y
43+
44+
45+
Usage
46+
=====
47+
usage: cmsmap [-f W/J/D] [-F] [-t] [-a] [-H] [-i] [-o] [-E] [-d] [-u] [-p]
48+
[-x] [-k] [-w] [-v] [-h] [-D] [-U W/J/D]
49+
[target]
50+
51+
CMSmap tool v1.0 - Simple CMS Scanner
52+
Author: Mike Manzotti
53+
54+
Scan:
55+
target target URL (e.g. 'https://example.com:8080/')
56+
-f W/J/D, --force W/J/D
57+
force scan (W)ordpress, (J)oomla or (D)rupal
58+
-F, --fullscan full scan using large plugin lists. False positives and slow!
59+
-t , --threads number of threads (Default 5)
60+
-a , --agent set custom user-agent
61+
-H , --header add custom header (e.g. 'Authorization: Basic ABCD...')
62+
-i , --input scan multiple targets listed in a given file
63+
-o , --output save output in a file
64+
-E, --noedb enumerate plugins without searching exploits
65+
-c, --nocleanurls disable clean urls for Drupal only
66+
-s, --nosslcheck don't validate the server's certificate
67+
-d, --dictattack run low intense dictionary attack during scanning (5 attempts per user)
68+
69+
Brute-Force:
70+
-u , --usr username or username file
71+
-p , --psw password or password file
72+
-x, --noxmlrpc brute forcing WordPress without XML-RPC
73+
74+
Post Exploitation:
75+
-k , --crack password hashes file (Require hashcat installed. For WordPress and Joomla only)
76+
-w , --wordlist wordlist file
77+
78+
Others:
79+
-v, --verbose verbose mode (Default false)
80+
-h, --help show this help message and exit
81+
-D, --default rum CMSmap with default options
82+
-U, --update use (C)MSmap, (P)lugins or (PC) for both
83+
84+
Examples:
85+
cmsmap.py https://example.com
86+
cmsmap.py https://example.com -f W -F --noedb -d
87+
cmsmap.py https://example.com -i targets.txt -o output.txt
88+
cmsmap.py https://example.com -u admin -p passwords.txt
89+
cmsmap.py -k hashes.txt -w passwords.txt
90+
91+
92+
Contribution guidelines
93+
=====
94+
If you want to contribute to CMSmap, be sure to review the [contribution
95+
guidelines](CONTRIBUTING.md).
96+
97+
98+
Disclaimer
99+
=====
100+
Usage of CMSmap for attacking targets without prior mutual consent is illegal.
101+
It is the end user's responsibility to obey all applicable local, state and federal laws.
102+
Developers assume NO liability and are NOT responsible for any misuse or damage caused by this program.

__init__.py

Whitespace-only changes.

cmsmap.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/python3
2+
import signal, sys
3+
4+
from cmsmap.main import main
5+
from cmsmap.lib.report import report
6+
7+
def exit(signum, frame):
8+
signal.signal(signal.SIGINT, original_sigint)
9+
try:
10+
msg = "Interrupt caught. CMSmap paused. Do you really want to exit?"
11+
report.error(msg)
12+
if input("[y/N]: ").lower().startswith('y'):
13+
msg = "Bye! Quitting.. "
14+
report.message(msg)
15+
sys.exit(1)
16+
except KeyboardInterrupt:
17+
msg = "Bye! Quitting.."
18+
report.message(msg)
19+
sys.exit(1)
20+
signal.signal(signal.SIGINT, exit)
21+
22+
if __name__ == "__main__":
23+
original_sigint = signal.getsignal(signal.SIGINT)
24+
signal.signal(signal.SIGINT, exit)
25+
main()

cmsmap/__init__.py

Whitespace-only changes.

cmsmap/cmsmap.conf

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
[general]
2+
user-agent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7
3+
dataPath = data
4+
wordlist = wordlist/rockyou.txt
5+
common_files = data/common_files.txt
6+
conf_extensions = data/conf_extensions.txt
7+
8+
[wordpress]
9+
wp_plugins = data/wp_plugins.txt
10+
wp_plugins_small = data/wp_plugins_small.txt
11+
wp_themes_small = data/wp_themes_small.txt
12+
wp_versions = data/wp_versions.txt
13+
wp_themes = data/wp_themes.txt
14+
wp_timthumbs = data/wp_timthumbs.txt
15+
wp_defaultFiles = data/wp_defaultfiles.txt
16+
wp_defaultFolders = data/wp_defaultfolders.txt
17+
18+
[joomla]
19+
joo_plugins = data/joo_plugins.txt
20+
joo_plugins_small = data/joo_plugins_small.txt
21+
joo_versions = data/joo_versions.txt
22+
joo_defaultFiles = data/joo_defaultfiles.txt
23+
joo_defaultFolders = data/joo_defaultfolders.txt
24+
25+
[drupal]
26+
dru_plugins = data/dru_plugins.txt
27+
dru_plugins_small = data/dru_plugins_small.txt
28+
dru_versions = data/dru_versions.txt
29+
dru_defaultFiles = data/dru_defaultfiles.txt
30+
dru_defaultFolders = data/dru_defaultfolders.txt
31+
32+
[moodle]
33+
; moo_plugins = data/moo_plugins.txt
34+
; moo_plugins_small = data/moo_plugins_small.txt
35+
moo_versions = data/moo_versions.txt
36+
moo_defaultFiles = data/moo_defaultfiles.txt
37+
moo_defaultFolders = data/moo_defaultfolders.txt
38+
39+
[exploitdb]
40+
edbtype = apt
41+
edbpath = /usr/share/exploitdb/

cmsmap/data/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)