一、常用漏洞分析工具使用
- NMAP
- AWVS
- AppScan
- Burpsuite
- Netsparker
- JsKy
- safe3wvs
- 椰树
- M7Lrv
1:NMAP常用功能(端口扫描之王)
- 主机探测
- 端口扫描
- 服务版本扫描
- 主机系统指纹识别
- 密码破解
- 漏洞探测
- 创建扫描脚本
端口扫描之王------------NMAP
- Nmaps是一款非常强大的使用工具,可用于:
- 监测活在网络上的主机(主机发现)
- 监测主机上开放的端口(端口发现或枚举)
- 检测到相应的端口(服务发现)
- 操作系统版本监测,硬件特性
- 软件版本监测脆弱性的漏洞(Nmap的脚本)
Nmap是一个非常普遍的工具,它有命令行界面和图像用户界面。
以下介绍的内容包括:
- 介绍Nmap扫描中的重要参数
- 操作系统监测Nmap使用
- Nmap使用不同的技术来执行扫描,包括:Tcp的connect()扫描,TCP反向的Iident扫描,FTP反弹扫描等。
- Nmap的使用取决于目标主机一因为有一个简单的扫描和预先扫描之间的差异。我们需要使用一些先进的技术来绕过防火墙和入侵检测/防御系统,以获得正确的结果。(一般ping扫描会被防火墙拦截,但是Nmap可以绕过防火墙)
-
主机探测(一)
- 扫描单个主机:nmap 192.168.1.2
- 扫描整个子网,命令如下:nmap 192.168.1.1/24
- 扫描多个目标,命令如下:nmap 192.168.1.2 192.168.1.5
- 扫描一个范围内的目标,命令如下:nmap 192.68.1.1-100(扫描IP地址为192.168.1.1-192.168.1.100内的所有主机)
- 如有你有一个IPi地址列表,将这个保存为TXT文件,和nmap在同一个target目录下,扫描h整个TXT内的所有主机命令如下:nmap -iL target.txt
- 如果你想看到你扫描的所有主机的列表,用以下命令:nmap -sL 192.168.1.1/24
- 扫描除了某一个ip外所有子网主机命令:nmap192.168.1.1/24-exclude192.168.1.1
- 扫描除了某一个文件中的ip外的子网主机命令:nmap 192.168.1.1/24 -excludfile xxx.txt(xxx.txt中的文件将会从扫描的主机中排除)
-
端口扫描
- 常用命令: nmap -F -sT -v nmap.org
- -F:扫描100个最有可能开放的端口;-v获取扫描的信息;-sT:用的是TCP扫描 ,不写也可以,默认采用的就是TCP扫描。
- -p指定要扫描的端口
常见几个端口状态:
TCP扫描(-sT)
这是一种最为普通的扫描放到,这种扫描方法的特点是:扫描的速度快,准确性搞,对操作者没有权限上的要求,但是容易被防火墙喝IDS(防入侵系统)发现。
运行原理:通过建立TCP的三次握手连接来进行信息的传递
①Client端发送SYN;
②Server端返回SYN/ACK,表明端口开放;
③Client端返回ACK,表明连接已建立;
④Client端主动断开连接。
SYN扫描(-sS)
这是一种秘密的扫描方式之一,因为在SYN扫描中Client端和Server端没有形成三次握手,所以没有m建立一个正常的TCP连接,因此不被防火墙和日志所记录,一般不会在目标主机上留学任何的恒基,但是这种扫描是需要root权限(对于Windows用户来说是没有root权限的概念的,root权限是linux的最高管理权限,对应windows的管理员权限)
使用UDP ping探测主机: nmap -PU 192.168.1.0/24
服务版本探测:nmap -sV 192.168.1.1(V一般意思代表显示详细信息)
精准的确认端口上运行的服务:nmap -sV --script unusual -port 192.168.1.1(加上一个脚本)
探测目标主机的操作系统:
nmap -O 192.168.0.1
nmap -A 192.168.0.1
-oN 导出扫描结果
-oX 导出扫描结婚xml格式
密码破解:(这个不常用,做个了解)
漏洞探测:(不常用,有更专业软件)
防火墙绕过:
- -f 分片绕过
- -D使用幼儿隐蔽扫描
- NMAP -D 1.1.1.1,222.222.222.222 www.cracer.com
- source -port 源端口欺骗
TARGET SPECIFICATION目标说明:
-iL <inputfilename>:指定包含多个主机IP地址的文件
-iR <num hosts>:随机选择IP地址,需要输入相应的主机数
--exclude <host1[,host2][,host3],...>:将IP段中某些IP排除、不进行扫描
--excludefile <exclude_file>:排除扫描文件中的主机IP
HOST DISCOVERY主机发现:
-sL:简单列出扫描的目标
-sn:不做端口扫描,只进行主机发现
-Pn:将所有主机都默认为在线,跳过主机发现
-PS/PA/PU/PY[portlist]:使用TCP、SYN/ACK、UDP或SCTP去发现端口
-PE/PP/PM:使用ICMP响应(echo)、时间戳或子网掩码请求来发现探测
-PO[protocol list]:使用IP协议的ping
-n:不做DNS解析
-R:总是做DNS反向解析
--dns-servers <serv1[,serv2],...>:指定自定义的DNS服务器
--system-dns:使用操作系统的DNS
--traceroute:追踪每台主机的跳转路径
SCAN TECHNIQUES扫描技术:
-sS/sT/sA/sW/sM:使用TCP SYN、全连接Connect()、ACK、Window、Maimon来进行扫描
-sU:UDP扫描
-sN/sF/sX:使用TCP Null、FIN、Xmas(包含FIN、Push、Urgent)扫描
--scanflags <flags>:自定义TCP扫描的flags
-sI <zombie host[:probeport]>:僵尸机扫描
-sY/sZ:使用SCTP协议的INIT/COOKIE-ECHO扫描
-sO:进行IP协议扫描
-b <FTP relay host>:指定FTP中继主机进行FTP反弹扫描
PORT SPECIFICATION AND SCAN ORDER端口说明和扫描规则:
-p <port ranges>:只扫描指定的端口
--exclude-ports <port ranges>:排除指定的端口、不对其进行扫描
-F:快速模式,扫描比默认端口数量更少的端口
-r:有序地扫描端口而不是随机地扫描
--top-ports <number>:扫描排名指定的数字前几位的最常用的端口
--port-ratio <ratio>:扫描比输入的比例更常用的端口
SERVICE/VERSION DETECTION服务、版本探测:
-sV:探测开启的端口来获取服务、版本信息
--version-intensity <level>:设置探测服务、版本信息的强度
--version-light:强度为2的探测强度
--version-all:强度为9的探测强度
--version-trace:将扫描的具体过程显示出来
SCRIPT SCAN脚本扫描:
-sC:等同于--script=default
--script=<Lua scripts>:指定使用Lua脚本进行扫描
--script-args=<n1=v1,[n2=v2,...]>:指定脚本的参数
--script-args-file=filename:指定提供脚本参数的文件
--script-trace:显示全部发送和收到的数据
--script-updatedb:更新脚本的数据库
--script-help=<Lua scripts>:显示脚本的相关信息
OS DETECTION系统探测:
-O:进行系统探测
--osscan-limit:限制系统探测的目标,如只探测Linux系统
--osscan-guess:更侵略性地猜测系统
TIMING AND PERFORMANCE定时和性能:
-T<0-5>:设置时序模块,越高越快
--min-hostgroup/max-hostgroup <size>:指定最小、最大的并行主机扫描组大小
--min-parallelism/max-parallelism <numprobes>:指定最小、最大并行探测数量
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>:指定最小、最大的扫描往返时间
--max-retries <tries>:指定最大的重发扫描包的次数
--host-timeout <time>:指定超时时间
--scan-delay/--max-scan-delay <time>:指定每次探测延迟多长时间,即两次探测之间间隔多少时间
--min-rate <number>:最小的发包速率
--max-rate <number>:最大的发包速率
FIREWALL/IDS EVASION AND SPOOFING防火墙、IDS绕过和欺骗:
-f; --mtu <val>:设置MTU最大传输单元
-D <decoy1,decoy2[,ME],...>:伪造多个IP地址和源地址一同发送包,从而隐藏在众多的IP地址中而不易被发现
-S <IP_Address>:伪造源地址
-e <iface>:使用指定的接口
-g/--source-port <portnum>:使用指定的源端口
--proxies <url1,[url2],...>:指定代理服务器进行扫描
--data <hex string>:在发送包的数据字段中追加自定义的十六进制字符串
--data-string <string>:在发送包的数据字段中追加自定义的ASCII字符串
--data-length <num>:在发送包的数据字段中追加随机的数据
--ip-options <options>:使用指定的IP选项发送包
--ttl <val>:设置TTL值
--spoof-mac <mac address/prefix/vendor name>:伪造源Mac地址
--badsum:发送伪造TCP/UDP/SCTP校验和Checksum的数据包
OUTPUT输出:
-oN/-oX/-oS/-oG <file>:分别输出正常、XML、s|<rIpt kIddi3、grepable格式的扫描结果到指定的文件
-oA <basename>:一次性以三种格式输出
-v:增加的详细程度(使用VV更详细)
-d:提高调试水平(使用DD更高)
--reason:显示端口处于特定状态的原因
--open:仅显示打开(或可能打开)端口
--packet-trace:显示发送和接收的所有数据包
--iflist:输出主机接口和路由(为了调试)
--append-output:附加到指定的输出文件,而不是乱码
--resume <filename>:从指定的文件中恢复终止的扫描
--stylesheet <path/URL>:将指定路径的URL的XSL样式表转换为XML输出为HTML格式
--webxml:获取更多便捷的XML参考样式
--no-stylesheet:防止将XSL样式表的W /XML输出
MISC杂项:
-6:扫描IPv6的地址
-A:一次扫描包含系统探测、版本探测、脚本扫描和跟踪扫描
--datadir <dirname>:指定自定义的nmap数据文件位置
--send-eth/--send-ip:使用原始以太网帧或IP数据包发送
--privileged:假设用户有全部权限
--unprivileged:假设用户缺少原始套接字权限
-V:输出版本号
-h:输出帮助信息
2:AWVS
Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,监测流行安全漏洞。
Acunetix推出了一个具有漏洞的测试网站http://text.vulnweb.com/
安装流程:
AWVS常见功能
- 网站爬行
- 漏洞扫描
- 目标发现
- 子域名扫描
- http编辑
- http嗅探
- http模糊测试
- 认证测试
- 网络服务扫描器
爬虫功能
以下为最右边勾选的功能翻译:
在扫描结束的时候开启http sniffer (开启一个监听),目的是让用户手动的去浏览,一面crawler没有爬行到。
仅爬行网站首页的所有链接
不抓取上级目录www.
抓取子目录
尝试抓取其他链接(不全是从首页爬行到的)。
处理的文件robots.txt和sltemap.xml
是否忽略文件中的大小写
从每个文件夹中先爬取类似index.php,default.asp的文件
防止无线递归目录
如果探测到URL重写的话,警告用户。
忽略文件格式(例如.js,.css等)。
防止自定义404界面探测。
将www.domain.com与domain.com视为同一个站
启用这项目,如果在一个文件夹种存在超过20中写入模式的话,爬虫只会爬虫前20个。
优化输入已知的应用