一、 nmap工具
Nmap 是一种常用工具,可用于判定网络的布局。我们可以在网络上使用 Nmap 来查找主机系统以及打开这些系统的端口。
nmap作用
- 检测存活在网络上的主机(主机发现)
- 检测主机上开放的端口(端口发现)
- 检测相应的服务(服务发现)
- 检测操作系统,硬件地址以及软件版本
- 检测脆弱性的漏洞(Nmap的脚本)
常用的端口扫描指令
-sS:TCP SYN扫描 -p:指定端口号进行扫描 -v: 显示扫描过程 -F:快速扫描 -Pn:禁止Ping扫描后,跳过主机发现的过程进行端口扫描 -A:全面的系统扫描,包括打开操作系统探测,版本探测,脚本扫描,路径跟踪 -sU:UDP扫描 -sT:TCP扫描 -sV:扫描系统版本和程序版本号检测 --script=vuln:全面的漏洞扫描 -n:禁止反向域名解析 -R:反向域名解析 -6:启用IPV6扫描nmap更多命令可使用man nmap进行查看
端口扫描状态
Opend:端口开启
Closed:端口关闭
Filtered:端口被过滤,数据没有到达主机,返回的结果为空,数据被防火墙过滤
Unfiltered:未被过滤,数据有到达主机,但是不能识别端口的当前状态
Open|filtered:开放或者被过滤,端口没有返回值,主要发生在UDP,IP,FIN,NULL和Xmas扫描中
Closed|filtered:关闭或者被过滤,只发生在IP,ID,dile扫描
漏洞脚本扫描
脚本保存位置:/usr/share/nmap/scripts,“script=”后的参数为脚本的名字
官方脚本网址:- Revision 38406: /nmap/scripts
wohis信息扫描
nmap --script=whois-domain 站点根域名
使用whois脚本对站点进行whois信息查询,即域名注册信息
DNS解析爆破扫描
nmap --script=dns-brute 站点根域名
使用DNS爆破脚本进行dns解析扫描,查找相关域名(子域名)
扫描结果保存
将输出结果保存到指定文件
- 保存为txt文件nmap --script=dns-brute 站点 -oN test.txt
- 保存为xml格式nmap --script=dns-brute 站点 -oX test.xmlxml格式需要用浏览器打开,查看结果
二、Nessus
Nessus是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。Nessus是一个可提供全方位服务的安全扫描程序。Nessus的插件式结构允许用户自定义其系统和网络。与其他的扫描软件一样,Nessus只能在其依赖的签名数据库中发挥作用。Nessus会时常更新,且具有全面报告、主机扫描以及实时漏洞搜索的功能。但是,Nessus也可能会出现误报和漏报。 这是一款收费软件,对于一般用户有7天的使用时间。
官方网站为:Nessus Product Family
Nessus安装
(1)下载软件包
进入官网下载 Download Nessus | Tenable®
(2)选择I agree
(3)将下载的软件包拖到Kali中
(4)kali上输入下面这条命令 /opt/nessus/sbin/nessuscli update 下载插件
(5)安装Nessus
(6)启动Nessus
(7)查看Kali的IP
(8)在物理机上进行连接
(9)获取激活码(邮箱一定写正确,否则收不到激活码)
(10)输入激活码
(11)注册一个账号
(12)开始读条 第一次读条特别特别慢,请耐心等待。
(13)然后进入用户名密码进入Nessus,查看是否有插件
Nessus配置及使用
更新插件
添加规则
basic中设置好policy的名称,建议写好描述
主机发现中一般要开启Ping功能其他的需要按照需求进行配置,比较全面的扫描建议勾选Ping Methods中UDP选项,但是会降低效率和准确性,由于日常资产收集只对服务器进行资产统计,不对网络设备和打印机等进行统计,所以Fragile Devices中的内容不进行设置。
在Port Scanning中进行资产信息收集时,将Port scan range:设置为1-65535进行全端口的扫描
NESSUS支持进行登录扫描,登录扫描可以使用netstat获取端口信息所以需要将Local Port Enumerators中的SSH(netstat),WMI(netstat),SNMP以及Only run network port scanners if local port enumeration failed进行勾选。
Network Port Scanners中可以配置扫描的方式,默认是SYN半开扫描,勾选Override automatic firewall detection会自动进行防火墙探测,选择Use soft detection(松散的探测方式),提高扫描效率的同时也进行防火墙探测。
可以设置端口服务探测,SSL/TLS服务探测,勾选Probe all ports to find services,对所有端口上运行的服务进行探测,
开启Search for SSL/TLS services对SSL/TLS服务进行探测,并且Search for SSL/TLS on应选择All port,此项主要是为了避免使用了端口映射,导致常规端口与服务对应信息发生改变,所以建议对全端口进行SSL/TLS的探测,其他选项可以根据实际情况进行配置。
在Settings / assessment / General中有如下的配置项,通常在日常使用中均不需要配置
其中Only use credentials provided by the user是需要勾选的,勾选此项可以避免账号锁定的风险。
可以对Web应用进行测试,需要对扫描选项进行配置,可以参考如下的配置项,当然也可以根据实际需求进行配置,这个Web 应用扫描还是非常灵活的。
配置恶意软件的扫描。
Credentials(认证)设置登录扫描,登录扫描肯定会比不登录扫描的结果更为准确,下面以Windows(已开启防火墙,效果和未开启不一样)为例,在windows 虚拟机上开启3389远程连接服务,在Credentials中选择host-Windows,然后输入用户名,密码以及主机名(或IP),其他选项使用默认即可,然后点击save保存。
通常情况下是不建议对已上线系统进行登录扫描的,因为登录扫描可能会影响正常业务,所以应该要在系统部署上线前,使用NESSUS进行一次全面的登录扫描,发现主机和应用服务的漏洞,并及时修复。
添加扫描
选择后有两个选项,一个是scanner,一个是user defined
scanner就是新添加policy,因为我们前面已经定义过policy了,所以这里选择user defined
选择好要扫描的内容及插件后,点击save,然后点击开始扫描
三、OpenVAS
OpenVAS (Open Vulnerability Assessment System,开放式漏洞评估系统)是一套可用于扫描漏洞和全面漏洞管理的工具和服务系统。 OpenVAS 框架可提供许多基于网络、桌面和命令行的工具,用于控制解决方案的不同组件。 OpenVAS 的核心功能是其所提供的安全扫描器,可使用超过 33,000 每日更新的网络漏洞测试(NVT, Network Vulnerability Test )。使用OpenVAS并不需要订阅。稍后的文章我会详细介绍一下这个软件的安装与使用。
安装OpenVas
由于OpenVas基于python,有很多依赖包跟Kali有关系,安装之前先建议吧Kali升级到最新版本
apt update && apt upgrade && apt dist-upgrade #升级kali apt-get install openvas #安装OpenVas openvas-setup #下载依赖包 openvas-check-setup #检查安装 openvasmd -h #查看帮助 openvas-feed-update #升级OpenVas
OpenVas启动
OpenVas启动之前建议先修改OpenVas默认密码: openvasmd --user=admin --new-password=123456 启动OpenVas: openvas-start
启动之后在Kali的浏览器中输入https://本地回环地址:端口号打开OpenVas
由于链接是https,我们可以点击底部的AddException
输入用户名和我们刚刚修改的密码即可登录OpenVas控制台
OpenVas使用
登录之后进入OpenVas首页的Dashboard仪表盘显示页面,该页面会展示之前扫描得到些信息结果,包括之前新建的任务,以及扫描出来的漏洞统计。
扫描测试网站
根据《网络安全法》的规定,未获得网站授权不能对其发起攻击,漏洞扫描实际上也是属于一种攻击行为,所以我们只能在一些测试网站上进行漏洞扫描,可以用以下的测试网站进行漏洞扫描测试。
http://testhtml5.vulnweb.com http://testphp.vulnweb.com http://testasp.vulnweb.com http://testfire.net
新建扫描任务
方法一
点击Scans下的targets以后进入如下页面,然后再点击左上角的紫色按钮
点击紫色按钮以后 有两种新建任务模式即Task Winzard快速模式和Advanced Task Winzard 高级模式
Task Winzard快速模式中我们只需添加ip地址或域名即可新建扫描任务
Advanced Task Winzard 高级模式 我们按要求填入想要的信息即可
方法二
点击configuration下的targets以后可以创建扫描任务
新建任务之后默认会开启任务扫描,我们可以点击任务边上的按钮暂停或启动任务,也可以对新建的任务进一步修改。
查看扫描完成的任务
点击已经扫描完任务即可进入该任务详细
点击详情里的result 可进一步查看扫描后的任务详细信息。包括漏洞的类型 每个漏洞的详情
导出扫描报告
首先点击Scans下的Reports按钮
页面会显示扫描的大概结果
点击某个扫描任务,在左上角可以选择扫描报告提交的格式
点击边上的下载按钮即可下载扫描报告
四、Niktou
Nikto 是一款杰出的“ 通用网关接口 ”(CGI,common gateway interface) 脚本扫描器。 Nikto 不仅可用于检查 CGI 漏洞,还可以躲避的方式运行,以便躲避入侵探测系统。Nikto 所提供完整的文档资料,在运行程序前,应当仔细查核。如果您有提供 CGI 脚本的网络服务器,那么Nikto 就是用于检查此类服务器安全的最佳资源。
nikto安装
kali安装
推荐使用Kali进行安装,Kali默认已经安装Nikto
apt-get update #更新nikto apt-get install nikto #安装nikto
Docker容器安装
git clone https://github.com/sullo/nikto.git cd nikto docker build -t sullo/nikto . Call it without arguments to display the full help docker run --rm sullo/nikto Basic usage docker run --rm sullo/nikto -h http://www.example.com To save the report in a specific format, mount /tmp as a volume: docker run --rm -v $(pwd):/tmp sullo/nikto -h http://www.example.com -o /tmp/out.json
源码安装
Nikto使用Perl语言编写运行,若需要源码安装,请提前安装Perl语言环境
wget https://github.com/sullo/nikto/archive/master.zip
zip安装
使用unzip进行解压缩,并开始安装即可
unzip master.zip cd nikto-master / program perl nikto.pl
相关命令
-upodate 升级,更新插件 -host 扫描目标URl -id username:password http认证接口 -list-plugins 列出所有可用的插件 -evasion IDS/IPS逃避技术(实例演示里有详细信息) -port 指定端口(默认80)-ssl 使用SSL -useproxy 使用http代理 -vhost 域名 当一个IP拥有多个网站时 使用
空格 报告当前扫描状态 v 显示详细信息 d 显示调试信息 e 显示http错误信息 p 显示扫描进度 r 显示重定向信息 c 显示cookie a 显示身份认证过程 q 退出程序 N 扫描下一个目标 P 暂停扫描
若需要查看更详细的帮助信息,可输入以下语句
man nikto
nikto的简单使用
指定端口进行扫描
nikto默认扫描会目标80端口,http协议,我们可以控制参数使得nikto对目标https协议,443端口进行扫描,并检查 ssl 一些常见的问题
nikto -host http://ip地址 -ssl -port 443
指定目录进行扫描
有时候我们只需要扫描网站下的某个子目录,使用-c 参数指定扫描的目录,使用-c all 可进行目录爆破,并扫描
nikto -host http://ip地址 -c /dvwa
多目标扫描
nikto支持多个目标进行扫描,将多个地址写入到文本中,通过- host参数+文本的方式即可统一进行扫描
nikto -host list.txt
使用代理扫描
扫描目标时,部分目标部署了防护设备,为避免暴露 ip可以使用代理进行扫描,nikto 支持设置代理,参数是 - useproxy。在使用时需要配合其他代理工具(比如proxychains)使用
nikto -h https://www.baidu.com -useproxy http://127.0.0.1:1080
扫描结果输出
nikto可以输出四种结果
nikto -host http://www.example.com -o result.html -F html
这些工具是我近期学习过的较为好用的扫描工具,然后写的较为简略,详细的可以再看看其他人的博客,希望我的文章可以帮助到你们。