网络渗透测试(四):漏洞映射
自动化工具不能识别逻辑错误,未发现的漏洞,未公布的软件缺陷,以及影响安全的人类因素。因此,应当同时结合自动化分析和人工分析的方法,综合评估安全漏洞,这将大幅度提升渗透测试工作的成果概率
文章目录
1. 漏洞的类型
按照产生缺陷的不同阶段,漏洞可划分为以下三个大类:
- 设计类:
在软件设计阶段,因软件规格指标设计不当产生的安全弱点 - 实施类:
位于系统代码中的技术安全缺陷 - 运营类:
由于系统的配置或部署不当而导致的安全漏洞
两种通用的漏洞类型:
- 本地漏洞
- 远程漏洞
2. 本地漏洞
攻击人员以本地(物理)访问方式,通过执行代码的手段才能触发的漏洞称为**“本地漏洞”**。攻击人员能够利用这种类型的漏洞提高自身的访问权限,不受限制地访问计算机系统
3. 远程漏洞
在物理上不接触主机的情况下,攻击人员使用恶意程序通过网络触发的系统漏洞,称作远程漏洞。这种类型的漏洞是的攻击人员越过物理上的和本地上的限制,获取远程主机的访问权限
4. 漏洞的分类
安全分类标准 | 有关链接 |
---|---|
HP软件安全标准 | hpenterprisesecurity.com |
Seven pernicious kingdoms | cigital.com |
Common Weakness Enumeration | cwe.mitre.org |
OWASP TOP 10 | owasp.org |
Klocwork | klocwork.com |
GrammaTech | grammatech.com |
WASC威胁分类法 | projects.webappsec.org |
5. OpenVAS
OpenVAS是一款分装了多种安全工具和安全服务的软件,是一个强大的漏洞管理平台它采用了客服端/服务端的框架
- OpenVAS scanner(扫描器):负责管理,执行各种网络漏洞测试
- OpenVAS Client(客户端):即传统形式的桌面客工具和命令行工具
- OpenVAS Manager(管理程序):漏洞扫描平台的中央控制服务
- Greenbone Security Assistant (安全助手):工作于OMP的Web服务
- OpenVAS administrator:负责用户管理和订阅更新
OpenVAS使用的工具
OpenVAS集成的工具清单如下:
安全工具 | 简介 |
---|---|
Amap | 应用层协议的检测工具 |
IKE-scan | IPSec VPN的扫描,识别和测试工具 |
LdapSearch | 从LDAP目录中获取信息的工具 |
Nikto | Web服务器评估工具 |
Nmap | 端口扫描程序 |
Ovaldi | 开放式漏洞与评估语言转换程序 |
pnscan | 端口扫描程序 |
Portbunny | 端口扫描程序 |
Seccubus | OpenVAS常规扫描的自动化工具 |
SLAD | 多款本地安全审计工具,包括John-the-Ripper,Chkrootkit等 |
SNMPwalk | SNMP数据采集程序 |
Strobe | 端口扫描程序 |
w3af | Web程序攻击与审计框架 |
相关详情
# man openvas-adduser
6. Cisco分析工具
Cisco公司是顶级网络设备商之一,目前大多公司和政府机构都采用了他们的设备。
Cisco品牌的硬件有路由器,交换机,安全设备,无线产品,软件产品如IOS,NX-OS,安全设备管理,Cisco Works,统一通信管理器等。
6.1 Cisco Auditing Tool
Cisco Auditing Tool简称CAT,属于小型的安全审计工具。它可检测出CIsco路由器上的常见漏洞,能够发现注入默认密码,默认SNMP字符串和老版本IOS上存在的bug问题
使用指令:
// -h指定主机名(在扫描单个主机的时候使用该选项)
// -w指定字典文件(以猜测团体字符串)
// -a指定密码列表(以穷举密码)
// -i即[ioshist](检测该IOS在历史)
# cd /usr/share
# CAT --help
//简单使用:
# CAT -h ww.xx.yy.zz -w lists/community -a lists/passwords -i
6.2 Cisco Global Exploiter
Cisco Global Exploiter (CGE) 是小型的Perl脚本程序。它可测试Cisco设备的14种独立的漏洞
//启动CGE
# cd /usr/bin/
# cge.pl
//简单使用
# cge.pl 10.200.253.25 3
这种基于HTTP的强行访问漏洞可让入侵人员执行路由器指令,而且并不验证他们的身份
6.3 Fuzz(模糊)分析工具
模糊分析是一种软件测试技术。审计人员和开发人员采用模糊分析技术,测试以外数据,无效数据和随机的数据输入对应用程序的影响。模糊分析是一种相对简单有效的测试方法,可用于质量保证和安全测试。由于这个原因,它有时也被称为健壮性测试和否定测试
模糊分析的关键步骤:
- 识别目标
- 识别输入
- 生成模糊测试数据
- 执行模糊数据
- 监控输出和鉴别问题的可利用性(是否是expolit)
6.4 BED
Bruteforce Exploit Detector(BED)是纯文本协议的模糊测试工具,用于检测软件长见漏洞,它可以检测出缓冲区溢出漏洞,格式化字符串漏洞,整数溢出,Dos条件等漏洞
启动命令:
# cd /usr/share/bed/
# bed.pl
查看某个协议的插件详细说明,使用的指令是:
//查询FTP插件的参数
# bed -s FTP
利用BED测试目标系统的FTP守护进程
// -u用户名 -v密码 -o超时时间
# bed -s FTP -u ftpuser -v ftpuser -t 192.168.0.1 -p 21 -o 3
6.5 JBroFuzz
JBroFuzz是对Web应用程序进行模糊测试的著名平台。它可模拟HTTP协议和HTTPS协议的Web请求
JBroFuzz的关键功能包括模糊管理,payload的分类处理,通过浏览器的代理服务器嗅探Web请求和回复,枚举网站目录等。这些功能都能是应用协议模糊测试不可或缺的组成部分
# cd /usr/share/zaproxy/lib/jbrofuzz
# java -jar JBroFuzz.jar
6.6 SMB分析工具
Server Message Block(SMB)是应用层协议,通常用于文件和打印机共享服务。此时,它还可将网络中不同节点的串口服务和其他通信协议共享。SMB又称为CIFS(Common Internet File System)
SMB采用了单纯的客户端/服务器的CS架构,而且兼容Linux和Windows等多平台
ImpacketSamrdump
ImpacketSamrdump是获取主机敏感信息的工具,它可列举同一局域网内的目标主机上的所有的系统共享,用户账户和其他信息
启动ImpacketSamrdump:
# cd /usr/share/doc/python-impacket-doc/example/samrdummp.py
# python samrdump.py
实际操作:
//格式:
# user:pass@ip port/SMB
//例如:
# python samrdump.py h4x:123@192.168.0.7 445/SMB
SNMP分析工具
SNMP是一个运行于UDP协议161端口的应用层协议。SNMP协议主要用于网络设备运行状态的监控,以关注需要管理员干预的事情,以及了解诸如电源断电,网络不可达等网络运行情况。采用了SNMP管理技术的网络结构,通常由网络设备,管理端和代理端组成
SNMP Walk
SNMP Walk是一个功能强大的SNMP信息采集工具。它可以依据设备类型提取所有配置数据。这些信息将对攻击的后续工作非常有用。此外,SNMP Walk可针对性地获取单组MIB数据或特定OID值
启动snmpwalk:
# snmpwalk
实际操作:
# snmpwalk -v 2c -c public -O T -L f snmpwalk.txt 10.20.127.49
7. Web程序分析工具
现在的应用程序大多采用了多种web技术,这不仅增加了程序问题的复杂性,而且增加了敏感数据泄露的风险
7.1 数据库评估工具
7.2 DBPwAudit
DBPwAudit是一款审计Oracle,MySQL,MS-SQL和IBM DB2服务器密码安全性的工具,它是java程序。这款工具大幅度地简化了使用数据库(评估)技术的难度。在目标系统没有采用强密码安全策略的情况下,它可帮助渗透测试人员找到数据库管理=系统的有效账户。目前,它支持字典式密码攻击机制
启动dbpwaudit:
# cd /usr/share/dbpwaudit/
# dbpwaudit
如需知道DBPwAudit可以驱动的数据库类型
# dbpwaudit -L
上述指令将列出该程序可以审计的数据库类型。特别注意数据库系统的别名(aliases),在命令行中指定数据库类型时要使用数据库的别名
# dbpwaudit -s 10.2.251.24 -d pokeronline -D MySQL -U \ users.txt -P passwords.txt
7.2.1 SQLMap
SQLMap是一款先进的自动执行SQL注入的审计工具。针对指定的URL,它可以扫描,发现并利用SQL注入漏洞。
SQLMap采用4种独特的SQL注入技术,分别是
- SQL盲注
- 联合查询注入
- 累加式注入
- 基于时间的SQL注入技术
启动sqlmap:
# cd /usr/share/sqlmap
# sqlmap -h
实际操作:
# sqlmap -u "http://testphp.example.com/articles.php?artist=2" -p "artist" -f -b --current-user --current-db --dbs --users
7.2.3 SQL Ninja
SQL Ninja的功能有:对服务器进行指纹识别,暴力破解密码,提升权限,上传后门,直接调用shell,反连方法连接shell(绕过防火墙的技术),反射shell,DNS隧道,单命令执行等
如何使用?
首先,您要将样本配置文件解压出来,把它重新命名,然后移动到正确的目录中,进行如下修改
# cd /usr/share/doc/sqlninja
# gzip -d sqlninja.conf.example.gz
# cp sqlninja.conf.example.gz /usr/share/sqlninja/sqlninja.conf
然后,我们需要修改配置文件
# vim sqlninja.conf
在配置好文件之后,您就可以使用它的攻击模式-m t/test对目标进行检测
# sqlninja -m -t
8. Web应用程序评估工具
8.1 Burp Suite
Burp Suite组合了一系列功能强大的Web应用程序的安全工具
# burpsuite
8.2 Nikto2
Nikto2是一款基础的Web服务器安全扫描的工具。它可以扫描,检测由下述问题引起的安全漏洞:服务器的配置不当问题,默认和不安全的文件,过旧的服务端应用程序
实际操作:
# nikto -h testphp.example.com -p 80 -T 3478b -t 3 -D \ V -o webtest -F htm
8.3 Paros Proxy
Paros Proxy是一款名不见经传的深入分析安全漏洞的评估工具。它能以爬虫方式分析整个网站的网址,并执行各种漏洞测试。同时,审计人员还可以利用它的代理服务器功能拦截本机浏览器和目标应用程序服务器之间的Web流量(支持HTTP/HTTPS协议)
# paros
8.4 W3AF
W3AF是一款功能丰富的Web应用程序攻击和审计框架,它主要用于探测和利用Web漏洞。它实现了全自动化的应用程序安全评估过程。它可检查,利用的Web应用程序漏洞包括SQL注入,跨站脚本,远程和本地文件包含,缓冲区溢出,XPath注入,操作系统命令,错误的应用配置等
# w3af_console
w3af>>>help
8.5 WafW00f
WafW00f是检测Web应用程序防火墙(WAF)的Python脚本程序。在评估WAF保护的目标主机是,许多漏洞评估技术都难以奏效;而这正是WafW00f程序擅长的测试环境
# wafw00f
# wafw00f http://www.example.net/
8.6 WebScarab
WebScarab是一款功能强大的Web应用程序的安全评估工具。它有多种操作模式,主要模式为拦截代理。将WebScarab代理部署于终端用户浏览器和目标Web应用程序之间,可监控,修改二者之间的请求和回应
# webscarab
声明
本测试仅供学习交流所用,不得在未经被测方有效法律允许的情况下擅自测试