今天给大家介绍的是一款名叫NagaScan的针对Web应用程序的分布式被动漏洞扫描器,NagaScan目前支持包括XSS、SQL注入、以及文件包含等漏洞。
NagaScan的运行机制
首先NagaScan会设置一个代理,例如Web浏览器代理或移动Wi-Fi代理。随后目标Web应用的网络流量副本会被传到NagaScan的中央数据库中进行解析处理,接下分布式扫描器便会自动分配NagaScan来扫描常见的Web应用安全漏洞。
工具及组件要求
Web控制台
sudo pip install mysql-connector sudo pip install jinja2 sudo pip install bleach
扫描器
sudo apt-get install python-pip python-devlibmysqlclient-dev sudo pip install requests sudo pip install MySQL-python sudo pip install -U selenium sudo apt-get install libfontconfig
代理
sudo apt-get install python-pip python-devlibmysqlclient-dev
sudo pip install MySQL-python
安装与配置
数据库
1. 安装MySQL,创建一个数据库用户名,并设置密码,例如root/toor;
2. 为NagaScan创建一个数据库,使用命令:source schema.sql
Web控制台
1. 使用我们自己的数据库配置信息修改Web控制台的配置文件www/config_override.py:
configs = { 'db': { 'host':'127.0.0.1', 'user':'root', 'password':'toor' } }
2. 运行下列命令开启Web控制台:
sudo python www/wsgiapp.py
扫描器
1. 用我们自己的数据库配置信息修改扫描器的配置文件scanner/lib/db_operation.py:
def db_conn(): try: user ="root" pwd ="toor" hostname ="127.0.0.1"
2. 安装PhantomJS
Linux 64位:
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 tar -jxvfphantomjs-2.1.1-linux-x86_64.tar.bz2
Linux 32位:
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-i686.tar.bz2 tar -jxvf phantomjs-2.1.1-linux-i686.tar.bz2
3. 按照下列代码修改scanner/lib/hack_requests.py的第28行代码:
self.executable_path='[Your Own Phantomjs Binary Path]' #e.g. /home/ubuntu/phantomjs-2.1.1-linux-x86_64/bin/phantomjs
4. 运行下列命令启动扫描器:
扫描文件包含漏洞
python scanner/scan_fi.py
扫描XSS漏洞
python scanner/scan_xss.py
扫描SQL注入漏洞
python scanner/scan_sqli.py
代理&解析器
1. 安装MitmProxy
Ubuntu 16.04(首选):
sudo apt-get install python3-dev python3-pip libffi-devlibssl-dev sudo pip3 install mitmproxy
Ubuntu 14.04:
sudo apt-get install python-pip python-dev libffi-devlibssl-dev libxml2-dev libxslt1-dev libjpeg8-dev zlib1g-dev sudo pip install "mitmproxy==0.18.2"
MacOS:
brew install python3 brew install mitmproxy
2. 运行下列命令开启代理
mitmdump -p 443 -s "proxy/proxy_mitmproxy.py/tmp/logs.txt"
3. 用我们自己的数据库配置信息修改解析器的配置文件parser/lib/db_operation.py:
def db_conn(): try: user ="root" pwd ="toor" hostname ="127.0.0.1"
4. 运行下列命令开启解析器:
python parser/parser_mitmproxy.py /tmp/logs.txt
工具的使用
使用默认的用户名和密码(nagascan@example.com/Naga5c@n)访问Web控制台,完成一些基本的配置并增加SQLMAP服务器:
操作步骤
1. 为浏览器或移动设备安装MitmProxy证书【证书安装教程】
2. 添加一个代理(Web浏览器或移动Wi-Fi)
3. 使用浏览器访问目标网站,或在移动设备上使用待测试的App
4. 祝大家好运!
* 参考来源:来自FreeBuf.COM