可扩展的集成化测试环境The Web Knife (网刃) — GoLismero (基于Python)
GoLismero is an Open Source security tools that can run their own security tests and manage a lot of well known security tools (OpenVas, Wfuzz, SQLMap, DNS recon, robot analyzer...) take their results, feedback to the rest of tools and merge all of results. And all of this automatically.
Golismero是一款开源的Web扫描器，可以把他看成一个框架, 这个框架的目的就是结合了大量现有的网络安全工具(Openvas,Wfuzz, SQLMap, DNS recon等), 以及自己的各种kit, 将他们组装起来, 完成自动化的安全测试和数据整理. 整个框架用python写成, 你可以不断的加入自己的小东西, 让你的测试器更强大. (过段时间也准备放出,我的一个类似的工具, 不过是newLisp写的--!).
The most interesting features of the framework and why you would like to use it are:
Is Open source. 开源
Real platform independence. Tested on Windows, Linux, *BSD and OS X. 跨平台
No native library dependencies. All of the framework has been written in pure Python. 纯Python写成, 无库依赖
Good performance when compared with other frameworks written in Python and other scripting languages. 执行效率高
Very easy to use. 易于使用
Plugin development is extremely simple. 扩展插件简单
The framework also collects and unifies the results of well known tools: sqlmap, xsser, openvas, dnsrecon, theharvester... 结合了常见的安全工具
Integration with standards: CWE, CVE and OWASP.
Designed for cluster deployment in mind (not available yet). 可集群部署(还未公布)
More information here:
Using GoLismero 2.0 is very easy. Below are some basic commands to start to using it:
Just download and extract the compressed file anywhere you like. GoLismero already ships all of its dependencies, with the exception of the Python interpreter itself.
You can also get the latest version using Git:
git clone https://github.com/golismero/golismero.git
This command will launch GoLismero with all default options and show the report on standard output:
python golismero.py scan <target>
If you omit the default command "scan" GoLismero is smart enough to figure out what you're trying to do, so this works too:
python golismero.py <target>
You can also set a name for your audit with --audit-name:
python golismero.py scan <target> --audit-name <name>
And you can produce reports in different file formats. The format is guessed from the file extension, and you can write as many files as you want:
可指定输出文件格式, 如果不指定, 扫描结束后就得用命令手工生成结果了.
python golismero.py scan <target> -o <output file name>
Additionally, you can import results from other tools with the -i option. You can use -i several times to import multiple files.
可以使用 -i 选项, 导入别的工具扫描的结果.
python golismero.py import -i nikto_output.csv -i nmap_output.xml -db database.db
All results are automatically stored in a database file. You can prevent this with the -nd option:
使用 -nd 可以禁止程序将测试结果存储到数据库中.
python golismero.py <target> -nd
This allows you to scan the target in one step, and generating the report later. For example, to scan without generating a report:
python golismero.py scan <target> -db database.db -no
And then generate the report from the database at a later time (or from a different machine!):
python golismero.py report -db database.db -o report.html
You can also specify multiple output files by repeating the -o option:
python golismero.py report -db database.db -o report.html -o report.rst -o report.txt
To display the list of available plugins:
python golismero.py plugins
You can also query more information about specific plugins:
python golismero.py info <plugin>
The full plugin list is also available online.
Use the -e option to enable only some specific plugins, and -d to disable plugins (you can use -e and -d many times):
python golismero.py <target> -e <plugin>
You can also select multiple plugins using wildcards. For example, you can select all bruteforce plugins like this:
python golismero.py <target> -e brute*
GoLismero currently produces reports on the console, in plain text files, in reStructured text format and in HTML format. In all cases, the reports are self-contained in a single file for easier transport - that means the HTML report is a single .html file with everything bundled in, and you can just attach it in an email to send it to someone else.
If no output files are specified, GoLismero reports on the console by default. But you can choose both at the same time too! For example, let's write an HTML report and also see the output on the console, using the special filename "-":
python golismero.py scan <target> -o - -o report.html
Here's what the HTML report summary looks like:
And the HTML report details:
In this example we'll put everything we've seen above into practice in a single command. We'll import results from an Nmap scan, run a scan of our own but using only the DNS analysis plugins, save the results in a database file of our choosing and produce reports in HTML and reStructured text format.
下面的例子导入Nmap的扫描的结果, 并调用所有的dns插件进行测试, 同时将结果保存到数据库中, 并生成两种格式的报告.
python golismero.py -i nmap_output.xml -e dns* -db database.db -o report.rst -o report.html
Notice how the default "scan" command was ommitted but GoLismero figured it out on its own.
This is how you'd do it if you want to break it into multiple commands instead:
python golismero.py import -db database.db -i nmap_output.xml python golismero.py scan -db database.db -e dns* -nop ython golismero.py report -db database.db -o report.rst -o report.html
Notice how the second command uses the "-no" switch to prevent the default console report from kicking in.
The next features of golismero will be:
Integration with SQLMap, ZAP, Metasploit, Shodan and many other tools.
Web UI. We all know true h4xx0rs only use the console, but sometimes drag&drop does come in handy.
Export results in PDF format.
And more plugins of course!
GoLismero is fully extensible through plugins, and that means you can always roll your own scripts, tailored to your specific needs, or using your favorite tools.
More step-by-step tutorials and howtos are coming soon!
Some gotchas we already know about:
Control-C on Python generally doesn't work very well - it may show bogus errors on screen, but you can ignore them. If stopping GoLismero takes too long, try hitting Control-C twice for force shutdown. Even then, sometimes you just have to be a patient!
GoLismero seems to run slower on Windows than on Linux or Mac. It appears to be related to the Python standard multiprocessing module and the lack of fork() support on Windows.
This is not a bug, just a reminder: GoLismero by default creates a new database file on each run! You can disable the database creation with the -nd switch.