本文目录一览:
漏洞扫描最好的工具是什么?
1、SQLmap
Sqlmap属于渗透测试工具,但具有自动检测和评估漏洞的功能。该工具不只是简单地发现安全漏洞及利用漏洞的情况,它还针对发现结果创建了详细的报告。Sqlmap利用Python进行开发,支持任何安装了Python解释器的操作系统。它能自动识别密码哈希,并使用六种不同方式来利用SQL注入漏洞。此外,Sqlmap的数据库非常全面,支持oracle、PostgreSQL、MySQL、SqlServer和Access。
2、Nmap
Nmap是一款开源网络扫描工具,应用场景包括端口扫描、服务指纹识别以及操作系统版本识别。Nmap通常被视为网络映射及端口扫描工具,但因为其带有Nmap脚本引擎,也有助于对错误配置问题和安全漏洞进行检测。另外,Nmap具备命令行界面以及图形用户界面。
3、Nexpose
Nexpose社区是一个通用的开源漏洞评估工具,其漏洞引擎由Rapid7开发,扫描漏洞近68000个,进行了超过16.3万次网络检查。针对Windows及Linux系统的社区版免费,但仅限32个IP地址,以及一个用户。虽然没有Web应用程序扫描,但Nexpose覆盖自动漏洞更新以及微软补丁星期二漏洞更新。
4、Retina CS
Retina CS也是一个通用的开源漏洞评估工具。它是基于Web的控制台,可以免费简化并集中管理漏洞,可打补丁资产达到256项。Retina
CS能对服务器、工作站、移动设备、数据库、应用程序和Web应用程序自动进行漏洞评估。这款开源应用程序为VMware环境提供了全方位支持,包括在线与离线虚拟镜像扫描、虚拟应用程序扫描,以及与Vcenter集成。
5、Burp Suite
Burp
Suite免费版是开源的Web应用程序漏洞扫描器,该版本属于软件工具包,涵盖了对Web应用程序手动安全测试所需的所有东西。它可以使用拦截代理,针对浏览器和目标应用程序之间的流量进行检查与修改;还能利用可感知应用程序的Spider抓取应用程序的内容及功能;此外,使用中继器工具能够处理并重新发送单个请求,也可访问针对分析及解码应用程序数据的一系列实用程序。
web渗透测试工具
第一个:NST
NST一套免费的开源应用程序,是一个基于Fedora的Linux发行版,可在32和64位平台上运行。这个可启动的Live
CD是用于监视、分析和维护计算机网络上的安全性;它可以很容易地将X86系统转换为肉机,这有助于入侵检测,网络流量嗅探,网络数据包生成,网络/主机扫描等。
第二个:NMAP
NMAP是发现企业网络中任何类型的弱点或漏洞的绝佳工具,它也是审计的好工具。该工具的作用是获取原始数据包并确定哪些主机在网络的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。NMAP对渗透测试过程的任何阶段都很有用并且还是免费的。
第三个:BeEF工具
BeEF工具主要利用移动端的客户,它的作用是用于检查Web浏览器,对抗Web抗击。BeEF用GitHub找漏洞,它探索了Web边界和客户端系统之外的缺陷。很重要的是,它是专门针对Web浏览器的,能够查看单个源上下文中的漏洞。
第四个:Acunetix Scanner
它是一款知名的网络漏洞扫描工具,能审计复杂的管理报告和问题,并且通过网络爬虫测试你的网站安全,检测流行安全漏洞,还能包含带外漏洞。它具有很高的检测率,覆盖超过4500个弱点;此外,这个工具包含了AcuSensor技术,手动渗透工具和内置漏洞测试,可快速抓取数千个网页,大大提升工作效率。
第五个:John the Ripper
它是一个简单可快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法,如DES、MD4、MD5等。
centos下安装nmap工具及简单用法
1、yum安装nmap
yum install nmap -y
yum install nc -y
nmap 命令参数:nmap -h
2、nmap 常用命令介绍:
udp 检测
nc -vuz 221.23.4.5 6127
快速扫描端口模式,扫描100个最有可能开放的端口 -v 获取扫描的信息
nmap -F -v 192.168.43.118
Tcp SYN Scan (sS) 隐蔽扫描 这是一个不完整的扫描方式,它被称为半开放扫描,Nmap发送SYN包到远程主机,但是它不会产生任何会话,在syn扫描中不需要通过完整3次的握手,因此不会在目标主机上产生任何日志记录,这个就是SYN扫描的优势,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)
Tcp connect() scan(sT) 最常用
如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式,不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect(),Tcp connect()扫描技术只适用于找出TCP和UDP端口,但是这种方式扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现。
UDP scan(sU)
顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口,它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的。
nmap -sU 192.168.43.118
FIN scan (sF)
有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在,目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手,收到RST回复说明该端口关闭,否则说明是open或filtered状态
nmap -sF 192.168.43.118
PING Scan (sP) 扫描在线主机
PING扫描它只用于找出主机是否是存在在网络中的,它不是用来发现是否开放端口的,PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用。
nmap -sP 192.168.43.118
版本检测(sV)
版本检测是用来扫描目标主机和端口上运行的软件的版本,它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本,使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口。
nmap -sV 192.168.43.118
Idle scan (sL)
Idle scan是一种先进的匿名扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包,例如:通过目标网络中的192.168.43.118向主机192.168.43.4发送数据,来获取192.168.1.1开放的端口。
nmap -sL 192.168.43.118 192.168.43.4
有需要其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描),IP protocol scan(IP协议扫描),以上讨论的是几种最主要的扫描方式。
Nmap的OS检测(O)
Nmap最重要的特点之一是能够远程检测操作系统,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统是非常有用的,通过获取的信息你可以知道已知的漏洞
nmap -O 192.168.43.17
ACK扫描:
利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包
nmap -sA -T4 p1521,80 192.168.43.17
使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机
nmap -pA -T4 p1521,80 192.168.43.17
nmap -pA -T4 p1521,80 192.168.43.17
扫描前不进行Ping扫描测试:
nmap -Pn p1521,80 192.168.43.17
通过tcp空扫描以绕过防火墙检测:
nmap -sN 192.168.43.17
打印主机接口和路由
nmap --iflist
按顺序扫描端口:
nmap -r 192.168.43.118
扫描主机检测是否有防火墙过滤:
nmap -PN -p 1521 192.168.43.17
扫描操作系统信息和路由跟踪
使用Nmap,你可以检测远程主机上运行的操作系统和版本。为了启用操作系统和版本检测,脚本扫描和路由跟踪功能,我们可以使用NMAP的“-A“选项。
nmap -A 192.168.43.17
扫描端口时状态介绍:
Open 端口开启,数据有到达主机,有程序在端口上监控
Closed 端口关闭,数据有到达主机,没有程序在端口上监控
Filtered 数据没有到达主机,返回的结果为空,数据被防火墙或者是IDS过滤
UnFiltered 数据有到达主机,但是不能识别端口的当前状态
Open|Filtered 端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中
Closed|Filtered 只发生在IP ID idle扫描
以上总结来源于网络。
渗透测试工具有哪些
第一、NST:网络安全工具包
NST是一套免费的开源应用程序,是一个基于Fedora的Linux发行版本,可在32和64位平台上运行。这个可启动的Live
CD是用于监视、分析和维护计算机的网络上的安全性,这个易于使用的黑客发行版本很容易将X86系统转换为肉机,有助于入侵检测,网络流量嗅探,网络数据包生成,网络/主机扫描等。
第二、NMAP:Network Mapper
NMAP是发现企业网络中任何类型的弱点或漏洞的绝佳工具,它也是审计的很好工具。该工具的作用是获取原始数据包并确定哪些主机在网络的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。NMAP对渗透测试过程的任何阶段都很有用并且还是免费的。
第三、BeEF工具
BeEF工具主要利用移动端的客户,它的作用是用于检查Web浏览器,对抗Web攻击。BeEF用GitHub找漏洞,它探索了Web边界和客户端系统之外的缺陷。重要的是,专门针对Web浏览器的,能够查看单个源上下文中的漏洞。
第四、Acunetix Scanner
知名的网络漏洞扫描工具,能审计复杂的管理报告和问题,并且通过网络爬虫测试你的网站安全性,检测流行安全漏洞,还包含带外漏洞。它有很高的检测率,涵盖超过4500个弱点。这个工具还包括AcuSensor技术,手动渗透工具和内置漏洞测试,可快速抓取数千个网页,提升工作效率。
第五、John the Ripper
是一个简单可快速的密码破解工具,用于在已知密文件的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法,比如DES、MD4、MD5等,支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix或Linux系统密码。
漏洞扫描工具有哪些
5款实用的漏洞扫描工具:
1、SQLmap
Sqlmap属于渗透测试工具,但具有自动检测和评估漏洞的功能。该工具不只是简单地发现安全漏洞及利用漏洞的情况,它还针对发现结果创建了详细的报告。Sqlmap利用Python进行开发,支持任何安装了Python解释器的操作系统。它能自动识别密码哈希,并使用六种不同方式来利用SQL注入漏洞。此外,Sqlmap的数据库非常全面,支持oracle、PostgreSQL、MySQL、SqlServer和Access。
2、Nmap
Nmap是一款开源网络扫描工具,应用场景包括端口扫描、服务指纹识别以及操作系统版本识别。Nmap通常被视为网络映射及端口扫描工具,但因为其带有Nmap脚本引擎,也有助于对错误配置问题和安全漏洞进行检测。另外,Nmap具备命令行界面以及图形用户界面。
3、Nexpose
Nexpose社区是一个通用的开源漏洞评估工具,其漏洞引擎由Rapid7开发,扫描漏洞近68000个,进行了超过16.3万次网络检查。针对Windows及Linux系统的社区版免费,但仅限32个IP地址,以及一个用户。虽然没有Web应用程序扫描,但Nexpose覆盖自动漏洞更新以及微软补丁星期二漏洞更新。
4、Retina CS
Retina CS也是一个通用的开源漏洞评估工具。它是基于Web的控制台,可以免费简化并集中管理漏洞,可打补丁资产达到256项。Retina
CS能对服务器、工作站、移动设备、数据库、应用程序和Web应用程序自动进行漏洞评估。这款开源应用程序为VMware环境提供了全方位支持,包括在线与离线虚拟镜像扫描、虚拟应用程序扫描,以及与Vcenter集成。
5、Burp Suite
Burp
Suite免费版是开源的Web应用程序漏洞扫描器,该版本属于软件工具包,涵盖了对Web应用程序手动安全测试所需的所有东西。它可以使用拦截代理,针对浏览器和目标应用程序之间的流量进行检查与修改;还能利用可感知应用程序的Spider抓取应用程序的内容及功能;此外,使用中继器工具能够处理并重新发送单个请求,也可访问针对分析及解码应用程序数据的一系列实用程序。
渗透测试之端口扫描
端口扫描:端口对应网络服务及应用端程序
服务端程序的漏洞通过端口攻入
发现开放的端口
更具体的攻击面
UDP端口扫描:
如果收到ICMP端口不可达,表示端口关闭
如果没有收到回包,则证明端口是开放的
和三层扫描IP刚好相反
Scapy端口开发扫描
命令:sr1(IP(dst="192.168.45.129")/UDP(dport=53),timeout=1,verbose=1)
nmap -sU 192.168.45.129
TCP扫描:基于连接的协议
三次握手:基于正常的三次握手发现目标是否在线
隐蔽扫描:发送不完整的数据包,不建立完整的连接,如ACK包,SYN包,不会在应用层访问,
僵尸扫描:不和目标系统产生交互,极为隐蔽
全连接扫描:建立完整的三次握手
所有的TCP扫描方式都是基于三次握手的变化来判断目标系统端口状态
隐蔽扫描:发送SYN数据包,如果收到对方发来的ACK数据包,证明其在线,不与其建立完整的三次握手连接,在应用层日志内不记录扫描行为,十分隐蔽,网络层审计会被发现迹象
僵尸扫描:是一种极其隐蔽的扫描方式,实施条件苛刻,对于扫描发起方和被扫描方之间,必须是需要实现地址伪造,必须是僵尸机(指的是闲置系统,并且系统使用递增的IPID)早期的win xp,win 2000都是递增的IPID,如今的LINUX,WINDOWS都是随机产生的IPID
1,扫描者向僵尸机发送SYN+ACY,僵尸机判断未进行三次握手,所以返回RST包,在RST数据包内有一个IPID,值记为X,那么扫描者就会知道被扫描者的IPID
2,扫描者向目标服务器发送SYN数据包,并且伪装源地址为僵尸机,如果目标服务器端口开放,那么就会向僵尸机发送SYN+ACK数据包,那么僵尸机也会发送RST数据包,那么其IPID就是X+1(因为僵尸机足够空闲,这个就为其收到的第二个数据包)
3,扫描者再向僵尸机发送SYN+ACK,那么僵尸机再次发送RST数据包,IPID为X+2,如果扫描者收到僵尸机的IPID为X+2,那么就可以判断目标服务器端口开放
使用scapy发送数据包:首先开启三台虚拟机,
kali虚拟机:192.168.45.128
Linux虚拟机:192.168.45.129
windows虚拟机:192.168.45.132
发送SYN数据包:
通过抓包可以查看kali给linux发送syn数据包
linux虚拟机返回Kali虚拟机SYN+ACK数据包
kali系统并不知道使用者发送了SYN包,而其莫名其妙收到了SYN+ACK数据包,便会发RST包断开连接
也可以使用下列该命令查看收到的数据包的信息,收到对方相应的SYN+ACK数据包,scapy默认从本机的80端口往目标系统的20号端口发送,当然也可以修改
如果向目标系统发送一个 随机端口:
通过抓包的获得:1,kali向linux发送SYN数据包,目标端口23456,
2,Linux系统由自己的23456端口向kali系统的20号端口返回RST+ACK数据包,表示系统端口未开放会话结束
使用python脚本去进行scapy扫描
nmap做隐蔽端口扫描:
nmap -sS 192.168.45.129 -p 80,21,110,443 #扫描固定的端口
nmap -sS 192.168.45.129 -p 1-65535 --open #扫描该IP地址下1-65535端口扫描,并只显示开放的端口
nmap -sS 192.168.45.129 -p --open #参数--open表示只显示开放的端口
nmap -sS -iL iplist.txt -p 80
由抓包可知,nmap默认使用-sS扫描,发送SYN数据包,即nmap=nmap -sS
hping3做隐蔽端口扫描:
hping3 192.168.45.129 --scan 80 -S #参数--scan后面接单个端口或者多个端口.-S表示进行SYN扫描
hping3 192.168.45.129 --scan 80,21,25,443 -S
hping3 192.168.45.129 --scan 1-65535 -S
由抓包可得:
hping3 -c 100 -S --spoof 192.168.45.200 -p ++1 192.168.45.129
参数-c表示发送数据包的数量
参数-S表示发送SYN数据包
--spoof:伪造源地址,后面接伪造的地址,
参数-p表示扫描的端口,++1表示每次端口号加1,那么就是发送SYN从端口1到端口100
最后面跟的是目标IP
通过抓包可以得知地址已伪造,但对于linux系统(192.168.45.129)来说,它收到了192.168.45.200的SYN数据包,那么就会给192.168.45.200回复SYN+ACK数据包,但该地址却是kali伪造的地址,那么要查看目标系统哪些端口开放,必须登陆地址为kali伪造的地址即(192.168.45.200)进行抓包
hping3和nmap扫描端口的区别:1,hping3结果清晰明了
2,nmap首先对IP进行DNS反向解析,如果没成功,那么便会对其端口发送数据包,默认发送SYN数据包
hping3直接向目标系统的端口发送SYN数据包,并不进行DNS反向解析
全连接端口扫描:如果单独发送SYN数据包被被过滤,那么就使用全连接端口扫描,与目标建立三次握手连接,结果是最准确的,但容易被入侵检测系统发现
response=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="S"))
reply=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="A",ack=(response[TCP].seq+1)))
抓包情况:首先kali向Linux发送SYN,Linux回复SYN+ACK给kali,但kali的系统内核不清楚kali曾给linux发送给SYN数据包,那么kali内核莫名其妙收到SYN+ACK包,那么便会返回RST请求断开数据包给Linux,三次握手中断,如今kali再给Linux发ACK确认数据包,Linux莫名其妙收到了ACK数据包,当然也会返回RST请求断开数据包,具体抓包如下:
那么只要kali内核在收到SYN+ACK数据包之后,不发RST数据包,那么就可以建立完整的TCP三次握手,判断目标主机端口是否开放
因为iptables存在于Linux内核中,通过iptables禁用内核发送RST数据包,那么就可以实现
使用nmap进行全连接端口扫描:(如果不指定端口,那么nmap默认会扫描1000个常用的端口,并不是1-1000号端口)
使用dmitry进行全连接端口扫描:
dmitry:功能简单,但功能简便
默认扫描150个最常用的端口
dmitry -p 192.168.45.129 #参数-p表示执行TCP端口扫描
dmitry -p 192.168.45.129 -o output #参数-o表示把结果保存到一个文本文档中去
使用nc进行全连接端口扫描:
nc -nv -w 1 -z 192.168.45.129 1-100: 1-100表示扫描1-100号端口
参数-n表示不对Ip地址进行域名解析,只把其当IP来处理
参数-v表示显示详细信息
参数-w表示超时时间
-z表示打开用于扫描的模式