Exp6 信息收集与漏洞扫描
目录
- 一、实验目标与内容
- 二、实验后问题回答
- 三、实验过程记录
- 3.1 各种搜索技巧的应用
- 3.2 DNS IP注册信息的查询
- 3.3 基本的扫描技术
- [主机发现]
- [端口扫描]
- [OS及服务版本探测]
- [具体服务的查点]
- 3.4 漏洞扫描
- [扫描]
- [阅读报告]
- [查阅漏洞说明]
- [修补漏洞]
- 四、实践总结和体会
- 五、实验中遇到的问题与解决方案
一、实验目标与内容
- 目标:掌握信息搜集的最基础技能与常用工具的使用方法。
- 内容
(1)各种搜索技巧的应用
(2)DNS IP注册信息的查询
(3)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
(4)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
二、实验后回答问题
(1)哪些组织负责DNS,IP的管理。
顶级的管理者是Internet Corporation for Assigned Names and Numbers (ICANN)。
目前全球有5个地区性注册机构:
ARIN主要负责北美地区业务
RIPE主要负责欧洲地区业务
APNIC主要负责亚太地区业务
LACNIC主要负责拉丁美洲美洲业务
AfriNIC主要负责非洲地区业务。ICANN理事会是ICANN的核心权利机构,它设立三个支持组织,分别是:
1、地址支持组织(ASO)负责IP地址系统的管理。
2、域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理。
3、协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配。
(2)什么是3R信息。
Registrant:注册人
Registrar:注册商
Registry:官方注册局
(3)评价下扫描结果的准确性。
在进行扫描实验过程中,我觉得nmap端口扫描的结果还是比较准确的,但是操作系统的扫描结果基本都是猜测性的,也给过了好多个可能的选项,相对来说准确性比较低。而msf的扫描结果基本都比较准确。nslookup相比dig准确性较低,dig是一个十分强大的工具。我使用whois时还经常出现未知的名称错误(下文有提及),但是有些网站的准确性还是比较高的,可能是它的数据库比较准确吧。
三、实验过程记录
3.1各种搜索技巧的应用
通过搜索引擎进行信息收集
Google Hacking
Google提供了高级搜索功能。GHDB数据库包含了大量使用Google从事渗透的搜索字符串,
http://www.exploit-db.com/google-dorks
可以在上述网址看GHDB的内容。一些自动化的工具,SiteDigger ,Search Diggity,Gooscan。
搜索网址目录结构
自动化的工具:metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要是用暴力猜解网页目录。
(1)use auxiliary/scanner/http/dir_scanner
(2)info
,查看参数与信息。
(3)set rhost www.baidu.com
(4)set threads 25
线程数设置为25
(5)run
运行。
IP路由侦查工具traceroute
traceroute
(Windows 系统下是tracert) 命令利用ICMP 协议定位您的计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP 呼叫报文的TTL 值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。- 程序利用增加存活时间(TTL)值来实现其功能。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。
- 程序发出的首3个数据包TTL值是1,之后3个是2,如此类推,它便得到一连串数据包路径。注意IP不保证每个数据包走的路径都一样。
- Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。
(1)在Windows命令行提示符输入:tracert www.baidu.com
(2)在kali终端输入:traceroute www.baidu.com
,由于虚拟机使用的是nat连接,traceroute返回的TTL exceeded消息无法映射到源IP地址、源端口、目的IP地址、目的端口和协议,因此无法反向NAT将消息路由传递回来。显示都是*号
搜索特定类型的文件
- 有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找。
在百度中输入:
site:XXX.com filetype:xls北京
,可以查找到很多关于北京的各种信息表格,随便下载一个看看。准考证号,姓名,职位,部门等等十分敏感的信息都能看到。
使用姓名关键词,同样可以下载到很多拥有真实信息的表格。
3.2 DNS IP注册信息的查询
(1)whois域名注册信息查询
- 进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
- 输入
whois baidu.com
,可以查看到此域名的服务器、注册时间、注册人的姓名组织、城市,还有电话和Email等等。
(2)nslookup
域名查询
- nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。
(3)dig
命令主要用来从 DNS 域名服务器查询主机地址信息。
dig 命令默认的输出信息比较丰富,大概可以分为 5 个部分。
- 第一部分显示 dig 命令的版本和输入的参数。
- 第二部分显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
- 第三部分中的
QUESTION SECTION
显示我们要查询的域名。 - 第四部分的
ANSWER SECTION
是查询到的结果。 - 第五部分则是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。
默认情况下 dig 命令查询 A 记录,上图中显示的 A 即说明查询的记录类型为 A 记录。在尝试查询其它类型的记录前让我们先来了解一下常见的 DNS 记录类型。
- dig的参数及应用
可以先dig -h
查看一下dig的信息和参数等。
dig 命令默认返回的结果展示详细的信息,如果要获得精简的结果可以使用 +short 选项。
dig + stats
,该查询选项设定显示统计信息:查询进行时,应答的大小等等
如果你好奇dig命令执行查询时都经历了哪些过程,你可以尝试使用 +trace 选项。它会跟踪整个查询过程,输出从根域到最终结果的所有信息。
(4)网址http://www.maxmind.com/,可以根据IP地址查询地理位置和信息。
(5)可以用IP-ADDRESS.COM查看自己的IP地址。
查看某IP的详细信息,城市和经纬度都能显示,组织公司等也能看见。
甚至能测试两个IP地址间的距离,还计算出来走路需要多久,跑步,自行车……
拥有的各个功能
3.3 基本的扫描技术
nmap
是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取哪台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。- nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口映射),碎片扫描,以及灵活的目标和端口设定。
- nmap运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。
- open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。
- filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。
- unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。
- 根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、以及其它一些东西。
类型 说明
-sT TCP connect()扫描:这是最基本的TCP扫描方式
-sS TCP同步扫描(TCP SYN)
-sF -sN 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式
-sP ping扫描
-sU UDP扫描
-sA ACK扫描
-sW 对滑动窗口的扫描
-sR RPC扫描
-b FTP反弹攻击(bounce attack)
通用选项 说明
-P0 在扫描之前,不必ping主机
-PT 扫描之前,使用TCP ping确定哪些主机正在运行
-PS 对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描
-PI 设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行
-PB 这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描
-O 这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志
-sO 这个选项可以对远程主机所支持的IP协议进行扫描。
-I 这个选项打开nmap的反向标志扫描功能
-f 这个选项使nmap使用碎片IP数据包发送SYN、FIN、XMAS、NULL
-oN 把扫描结果重定向到一个可读的文件logfilename中
-oM 把扫描结果重定向到logfilename文件中,这个文件使用主机可以解析的语法
-oS 把扫描结果重定向到一个文件logfilename中
-iL 从inputfilename文件中读取扫描的目标
-iR 让nmap自己随机挑选主机进行扫描
-p <端口范围> 这个选项让你选择要进行扫描的端口号的范围
-F 快速扫描模式,只扫描在nmap-services文件中列出的端口
-D 使用诱饵扫描方法对目标网络/主机进行扫描
-e 告诉nmap使用哪个接口发送和接受数据包
-g 设置扫描的源端口
-r 告诉nmap不要打乱被扫描端口的顺序
-T <0-5> [0-5]设置调速模板,级别越高扫描速度越快
主机发现
当知道某个主机的IP或者知道域名时,可以直接用ping ,测试域名服务器是否在线。
ICMP Ping命令ping www.baidu.com
metasploit中的模块,位于
modules/auxiliary/scanner/discovery
主要有 arp_sweep, ipv6_multicast_ping, ipv6_neighbor,ipv6_neighbor_router_advertisement, udp_probe,udp_sweep.
1、arp_sweep
使用ARP请求枚举本地局域网的活跃主机,即ARP扫描器。use auxiliary/scanner/discovery/arp_sweep
info
set RHOSTS 192.168.126.0/24
set THREADS 50
run
2、ipv6_neighbor_router_advertisement
use auxiliary/scanner/discovery/ipv6_neighbor_router_advertisement
info
set RHOSTS 192.168.126.0/24
run
3、udp_sweep
使用UDP数据包探测。
- UDP服务扫描模块运行我们检测模板系统的UDP服务。由于UDP是一个无连接协议(不面向连接),所以探测比TCP困难。使用UDP服务探测模块可以帮助我们找到一些有用的信息。
(1)使用这个模块:use auxiliary/scanner/discovery/udp_sweep
(2)info
看一下信息、参数。
(3)设置扫描的靶机的范围:set RHOSTS 192.168.1.1/24
(4)run
,扫描结果就出来了。
4、使用nmap
扫描,查找活跃的主机。参数为 -Sn,主机的 MAC地址也可以探测到。
端口扫描
1、使用metasploit中的模块.
use auxiliary/scanner/portscan/tcp
show options
set RHOSTS 192.168.126.0/24
run
2、Nmap端口扫描
使用nmap -sS 192.168.126.0/24
探测的TCP端口与对应的服务
OS及服务版本探测
1、使用nmap -sV 192.168.126.1
检测目标主机的服务版本
2、使用nmap -O 192.168.126.1
检测目标主机的系统版本
具体服务的查点
metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名。
可输入search name:_version
查看所有服务查点模块
1、网络服务扫描
(1)telent服务扫描msf > use auxiliary/scanner/telent/telent_version
(2)SSH服务扫描
msf > use auxiliary/scanner/ssh/ssh_version
(3)Oracle数据库服务查点msf auxiliary(ssh_version) > use auxiliary/scanner/oracle/tnslsnr_version
(4)开放代理探测
open_proxy模块msf auxiliary(tnslsnr_version) > use auxiliary/scanner/http/open_proxy
密码嗅探模块auxiliary/sniffer/psnuffle
- 目前支持pop3.imap.ftp.http GET协议
- 支持从pcap抓包文件中提取密码,功能类似于dnsiff。
- 这个模块我们可以什么都不用配置,默认抓取本机的流量.
- 支持分析抓包文件嗅探. 使用set PCAPFILE 导入文件即可.
- 查看结果可以使用jobs. 删除结果可以使用kill 加上对应的jobs id值.
(1)使用这个模块:use auxiliary/sniffer/psnuffle
(2)照例查看一下info
。
(3)参数PCAPFILE就是可以设置为分析的包文件名字,可以直接对抓好的包提取密码。
(4)exploit
一下,可以看到抓到了很多流量。
(5)登陆一个叫天翼快递的网站,然后输入用户名密码,如果是GET类型的HTTP可以解析出用户名密码。
(6)抓到了这个数据包,但是是POST类型的,无法成功解析。
(7)下图是wireshark抓到的含有用户名和密码的数据包。
3.4 漏洞扫描
OpenVAS是一个功能齐全的漏洞扫描程序。其功能包括未经验证的测试,经过身份验证的测试,各种高级和低级Internet和工业协议,用于大规模扫描的性能调整以及用于实现任何类型的漏洞测试的强大内部编程语言。
扫描程序附带一个漏洞测试源,具有悠久的历史记录和每日更新。此 Greenbone社区Feed 包含50,000多个漏洞测试。
安装OpenVAS
(1)apt-get install openvas。
(2)openvas-check-setup,查看是否安装成功,出现错误后,按照提示输入greenbone-nvt-sync
。
(3)出线错误后,根据FIX的错误提示继续执行,再尝试openvas-check-setup,如此反复。
(4)直到出现了安装成功的提示,过程耗时较久,需要一步步解决问题。
扫描漏洞
1、使用openvas-start
开启服务,会自动打开浏览器主页https://127.0.0.1:9392
。
2、但是可能会出现你的连接不安全,该网站的证书不可信的问题,只需要按照提示将该网站放入可信任的站点即可。
3、登录界面如下,输入你安装过程中设置的用户名和密码。
4、新建一个tasks.
5、点击中间的紫色魔法棒,选择task wizard.
6、填入你要扫描的主机IP地址。
7、扫描完成后,会呈现如图的done。
8、该主机的漏洞的安全等级分布图。
阅读漏洞报告,查阅漏洞说明,修补漏洞
1、点击Full and fast,查看所有的漏洞。
2、有62个漏洞家族。
3、点击一个进去看看,可以看见漏洞的名字,OID和安全等级,等级越高,危害越大。
4、找了一个10等级的漏洞,查看它的详细信息。
四、实验总结与体会
- 此次实验主要是信息的收集和漏洞的扫描,信息的收集方式多种多样,百度和很多网站都可以轻易收集到很多敏感的数据,所以我们在平时的生活中也要注意对自我隐私信息的保护。
- 在此次实验中,我对很多强大的工具,像nmap、 dig都有了很深的学习和了解,都是十分实用的工具,是很多实验的基础信息收集。
- 在漏洞扫描的实践中,发现自己的主机上确实存在着很多的漏洞,openvas也是一个十分强大的工具,对于各个漏洞的详细信息都有记录,可以查阅到很多漏洞的修补方法。
- 在实践的过程中,我也发现,自己的了解广泛面太小了,很多东西没有接触过,需要去学习和了解的东西还有太多,希望自己能在未来的生活中加强学习。
五、实验中遇到的错误和解决方案
whois 错误,未知的名称或服务。这个我试了好几次,有时候能查阅到信息,有时候却会出现未知的名称和服务。我暂时还没能解决这个问题。
扫描我的win10操作系统时,出现了主机似乎关闭的提醒。其实我并没有关闭啊。那究竟是什么问题,我的kaliIP地址是192.168.126.134,用了VM8的连接,所以我后来换为
nmap -O 192.168.126.1
,是我win10的VM8的IP地址,就能成功扫到了。openvas-start
遇到的问题,后来再次openvas-start
就可以成功了。