一、扫描神器W3AF(Web Application Attack and Audit Framework)
1.W3AF简介
W3AF是阿根廷人Andres Riancho创建的一个开源项目,目标是成为一个Web应用攻击和统计的平台。目前W3AF分为主要两个部分——核心模块和插件部分。
核心模块负责进程的调度和插件的使用,插件部分则负责查找并攻击Web安全漏洞。
插件部分根据功能的不同,又分为8类模块,包括:发现模块、审计模块、搜索模块、攻击模块、输出模块、修改模块、入侵模块、破解模块,他们之间的运行关系如图:
2.各模块的功能
(1)发现模块
负责查找HTTP信息,并探测服务器、数据库、web应用防火墙等信息例如halberd、hmap、afd、fingetprint等信息。在发现模块中,最重要的插件是webSpider,它基于爬虫技术爬取网站的每个链接和表单,这是进行漏洞探测不可或缺的信息。
(2)暴力破解
破解哪些需要认证的页面,在发现过过程中,经常会遇到认证登陆页面,暴力破解模块支持对基本认证机制的破解(需要配置字典),以及表单登陆机制的暴力破解。
(3)审计模块
探测漏洞的模块,W3AF支持目前主流的web应用漏洞类型的探测,例如SQLi、XSS等,探测漏洞的方法也是多种多样的,例如模式匹配、基于显示错误的方法、基于时间延迟的方法、远程创建、响应差别(如采用不同的参数输入AND 1=1、AND 1=2)等,当确定存在安全漏洞的同时,存在漏洞的URL会被保存,等待攻击模块对它实施攻击。
(4)搜索Grep
捕获HTTP请求与应答过程中的一些关注信息(例如IP、Email地址、信用卡信息等),它仅能用来分析数据,统统是修改模块允许使用者基于正则表达式修改相关的请求和应答消息。
(5)攻击模块
用来读取前面扫描获取的扫描信息,然后试图通过该类模块中的各种插件来攻击安全漏洞,例如:sql_webshell、advshell、sqlmap、xssbeef、remote file include shell、os command shell等。
3.W3AF使用
Metasploit-6-1 Web应用渗透之基础知识与Wmap扫描操作
一、web应用渗透技术基础知识
二、web应用攻击发展趋势
三、owasp Web漏洞 TOP 10
1.SQL注入攻击
2.跨站脚本
3.跨站伪造请求
4.会话认证管理缺陷
5.安全误配置
6.不安全密码存储
7.不安全的对象参考
8.限制URL访问失败
9.缺乏传输层保护
10.未验证的重定向和跳转
四、web应用攻击典型案例
五、基于metasploit框架的web应用渗透技术
1.辅助模块
metasploit的辅助模块基本都在modules/auxiliary/下。web应用辅助扫描、漏洞查找等模块。
(1)wmap web扫描器
0x01 wmap简介
Wmap本身不是一个独立的漏洞扫描器,而是作为Metasploit的一个模块,结合Web漏洞和Web服务相关的模块协同工作,完成目标服务器的扫描任务,也就是说,如果我们想要使用Wmap模块就需要将它在Metasploit中载入才可以使用。
0x02 metasploit数据库准备
在运行 Metasploit 终端前,我们需要先启动用于存储扫描结果的数据库服务:
service postgresql start
如果是初次使用,需要初始化并启动数据库:
msfdb init
msfdb start
0x03 Wmap使用
首先打开一个终端,启动Metasploit:
msfconsole
然后等待msf打开之后,我们在msf中载入wmap的插件:
load wmap
0x04 wmap渗透测试
实验环境:
攻击主机:kali linux 2019.1
靶机:www.dvssc.com(10.10.10.129)
msf5 > load wmap
.-.-.-..-.-.-..---..---.
| | | || | | || | || |-'
`-----'`-'-'-'`-^-'`-'
[WMAP 1.5.1] === et [ ] metasploit.com 2012
[*] Successfully loaded plugin: wmap
msf5 > help
wmap Commands
=============
Command Description
------- -----------
wmap_modules Manage wmap modules
wmap_nodes Manage nodes
wmap_run Test targets
wmap_sites Manage sites
wmap_targets Manage targets
wmap_vulns Display web vulns
msf5 > wmap_sites -a http://10.10.10.129 (1)
[*] Site created.
msf5 > wmap_sites -l (2)
[*] Available sites
===============
Id Host Vhost Port Proto # Pages # Forms
-- ---- ----- ---- ----- ------- -------
0 10.10.10.129 10.10.10.129 80 http 0 0
通过命令添加要扫描的网站(1)查看扫描的targest(2)
msf5 > wmap_targets -t http://10.10.10.129 (3)
msf5 > wmap_run -t (4)
[*] Testing target:
[*] Site: 10.10.10.129 (10.10.10.129)
[*] Port: 80 SSL: false
============================================================
[*] Testing started. 2019-03-26 03:59:14 -0400
[*] Loading wmap modules...
[*] 39 wmap enabled modules loaded.
[*]
=[ SSL testing ]=
============================================================
[*] Target is not SSL. SSL modules disabled.
[*]
=[ Web Server testing ]=
............................................skip
添加网站作为扫描目标(3),同时查看哪些模块将会在扫描中使用(4)
msf5 > wmap_run -e (5)
[+] 10.10.10.129:80 Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch mod_python/3.3.1 Python/2.6.5 mod_perl/2.0.4 Perl/v5.10.1
(6)
[+] Contents of Robots.txt: (7)
User-agent: *
Disallow: /administrator/
Disallow: /cache/
msf5 > vulns (8)
Vulnerabilities
===============
Timestamp Host Name References
--------- ---- ---- ----------
2019-03-26 08:01:35 UTC 10.10.10.129 HTTP Trace Method Allowed CVE-2005-3398,CVE-2005-3498,OSVDB-877,BID-11604,BID-9506,BID-9561
查看wmap扫描结果并进行攻击(5)看到目标服务器的旗标等信息(6),同时找到服务器敏感信息(7),最后通过vulns显示扫描出来的漏洞信息(8)
Metasploit-4 Web应用漏扫注入工具与Msf数据共享功能
1.漏洞扫描
(1)openvas类似于nessus漏洞扫描器
功能:识别远程主机、web应用存在的各种漏洞。
2.web应用漏洞扫描、渗透测试软件的接口
(1)W3AF
功能:综合性web应用扫描和审计工具
(2)SQLMap
功能:SQL注入和攻击工具
(3)wXf(找不到了)
功能:开源web渗透测试框架
(4)XSSF
功能:跨站脚本攻击框架
(5)BeEF**
功能;浏览器攻击平台框架
3.开源web应用漏洞扫描工具
(1)
2.渗透测试信息数据库与共享
功能和具体使用步骤参考metasploit魔鬼训练p134
Metasploit-2 Nmap扫描原理及口令猜测与嗅探
一、.主机探测与端口扫描
活跃主机扫描,指已连接到网络上、处于运行状态且网络功能正常的主机。
1.ICMP ping -c 次数 目的ip地址
2.metasploit的主机发现模块
(1)arp_sweep //地址解析协议定义,ip地址转化为MAC地址,进行广播
udp_sweep
ARP扫描器
use auxiliary/scanner/discovery/arp_sweep ; show options ; set RHOSTS 10.10.10.0/24 ; set THTEADS 50 ; set INTERFACE 网卡名称 ; run
(2)Nmap进行主机探测
nmap -sP ip地址 //同通过发送ICMP echo请求探测主机是否存活原理通ping
-sT TCP connect 扫描,类似Metasploit中的tcp扫描模块
-sS TCP SYN扫描 类似Metasploit中的syn扫描模块
-sF/-sX/-sN 这些扫描通过发送一些特殊标志位以避开设备或软件的检测
-sU 探测目标主机开放了哪些UDP端口
-Pn 在扫描之前,不发送ICMP echo 请求测试目标是否活跃
-O 启用对于TCP/IP协议栈的指纹特征获取远程主机的操作系统类型等信息
更加详细见nmap探测原理.pdf
二、口令猜测与嗅探
1.攻击SSH服务
需要好的用户名和口令字典
(1)use auxiliary/scanner/ssh/ssh_login ; set RHOSTS 10.10.10.2544 ; set USERNAME root ;set PASS_FILE /root/words.txt ; set THREADS 50 ; run
(2)session -l查看获得权限的主机名称 ; seeion -i 编号 取得shell
2.psnuffle口令嗅探
获取FTP明文登陆口令
use auxiliary/sniffer/psnuffle ; run
Metasploit-3 网络漏洞扫描之Openvas环境搭建与使用
一、漏洞扫描前期知识点梳理
1.通过网络对目标进行搜集主要技术有主机探测与端口扫描、服务扫描与查点与网络漏洞扫描等,最强大的开源网络扫描软件为Nmap和OpenVAS,都可以集成到metasploit框架中。
2.metasploit提供了丰富网络扫描、服务扫描、查点功能
3.metasploit提供了对postgresql数据库的支持,能够存储渗透测试过程中搜集目标网络情报信息,为渗透测试的威胁建模、漏洞分析、渗透攻击与报告撰写等阶段提供数据支持,并支持数据库共享与MSF RPC服务两种方式在渗透测试团队之间共享信息。
4.黑盒扫描、白盒扫描
二、openVAS漏洞扫描器介绍与环境搭建
1.功能
类似于nuessus的综合型漏洞扫描器,可以用来识别主机、web应用存在的各种漏洞。
opoenvas环境搭建过程
2.主要功能模块
3.openvas安装
(1)apt install openvas
(2)重置密码openvasmd –user=admin –new-password=hahaha
(3)openva-start开启openvas
(4)openvas-check-setup检查openvas配置是否正确
4.openvas简单漏扫步骤
0x01 建立一个扫描目标
0x02 建立一个新的扫描任务
建立完扫描目标之后,需要建立扫描任务关联扫描目标。
建立扫描任务有两种方式:
① 可以使用任务向导进行任务的创建,任务向导可以快速的建立并开启一个扫描任务;高级任务向导有更详细的选项,如登录凭证之类的信息;修改任务向导可以快速的选择之前创建的任务重新创建任务开启扫描。任务向导中没有填写的选项都按照设置(Extras→My Settings)的默认配置进行扫描任务配置。
② 可以通过星型图标新建任务创建扫描任务,内容较详细。
0x03 扫描测试
扫描机:kali-2019.1
靶机:metasploit魔鬼训练营dvssc网络环境
扫描结果:
Metasploit-1 公开信息收集
Sqlmap-1 基础使用操作
sqlmap使用教程
1.检测注入点是否可用
sqlmap.py -u “url”
-u 输入指定注入点url
2.若需要用户输入[y/n],系默认需添加一个参数
sqlmap.py -u “url” –batch
注入结果显示
(1)注入参数id为GET注入,注入类型有四种分别为boolean-based、error-based、time-based blind、union query
(2)web服务器系统为linux-centOS 7-1708
(3)web应用技术为 apache 2.4.6 php 5.4.16
(4)数据库类型为mysql 5
3.爆库
一条命令即可爆出该sqlserver所有数据库名称
sqlmap.py -u “url” –dbs
4.web使用当前的数据库
sqlmap.py -u “url” –current-db
5.web数据库使用账户
sqlmap.py -u “url” –current-user
6.列出mysql所有用户
sqlmap.py -u “url” –users
7.数据库账户与密码
sqlmap.py -u “url” –password
8.列出数据库中的表
sqlmap.py -u “url” -D 数据库名称 –tables
参数:
-D:指定数据库名称
–tables:列出表
9.列出表中的字段
sqlmap.py -u “url” -D 数据库名称 -T 表名称 –columns
参数:
-D:指定数据库名称
-T:指定要列出字段的表
–columns:指定列出字段
10.爆字段内容
sqlmap.py -u “url” -D 数据库名称 -T 表名称 -C 字段名
参数:
-C:指定要爆的字段
–dump:将结果盗出
11.如果字段内容太多,需要花费很多时间。可以指定导出特定范围的字段内容,命令如下:
sqlmap.py -u “url” -D 数据库名称 -T 表名称 -C 字段名 –start 1 –stop 10 –dump
参数:
–start:指定开始的行
–stop:指定结束的行