Exp5 信息搜集与漏洞扫描
1.实践目标
掌握信息搜集的最基础技能与常用工具的使用方法。
2.实践内容
(一)各种搜索技巧的应用
(二)DNS IP注册信息的查询
(三)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
(四)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
(一)各种搜索技巧的应用
(1)搜索网址目录结构
-
原理:暴力破解一般就是指穷举法,它的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!(本实验以dir_scanner模块为例,获取网站目录结构)
-
方法:使用kali,依次输入如下指令:可以找到如下目录!
msfconsole
use auxiliary/scanner/http/dir_scanner
set THREADS 20
set RHOSTS www.baidu.com
exploit
(2)检测特定类型的文件
-
原理:
filetype 能对搜索结果的文件类型进行限定,格式为“ 检索词 filetype:文件类型 ”
“-”能在检索结果中获取检索词的补集,格式为“ 检索词 -词语 ”
site 能限制检索结果的来源,格式为“ 检索词 site:限制域名 ”(不要在“:”后的域名中输入“http:”和“www.”)
inurl 能在网址中进行搜索,格式为“ 检索词inurl:检索词 ”
“|”表示布尔逻辑中的或者(or)关系,使用格式为“ 关键词1 | 关键词2 ”
空格表示布尔逻辑中的交集(and)关系,使用格式为“ 关键词1 关键词2 ”
-
方法:
打开百度,设置高级搜索界面,高级搜索界面的入口在搜索引擎首页右上角“设置”->“高级搜索”输入
(3)使用traceroute命令进行路由侦查
-
原理:traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。本实验以侦查百度为例。
-
方法:打开cmd输入命令tracert www.baidu.com
从左到右的5条信息分别代表了“生存时间”(每途经一个路由器结点自增1)、“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)和“途经路由器的IP地址”(如果有主机名,还会包含主机名)。其中带有星号(*)的信息表示该次ICMP包返回时间超时。
(二)DNS IP注册信息的查询
(1)whois查询
-
原理:whois用来进行域名注册信息查询。
-
方法:在kali中进入root模式,在终端输入 whois gitee.com 可查询到3R注册信息,包括注册人的姓名、组织和城市等信息。
-
注:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
(2)nslookup,dig域名查询
(a)nslookup
-
原理:nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。
-
方法:在终端输入 nslookup gitee.com
(b)dig
-
原理:dig可以从官方DNS服务器上查询精确的结果。
-
方法:在终端输入 dig gitee.com
-
除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识。例如:
-
+search :使用搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
-
+trace :切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
-
+identify :当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
-
+stats :该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
(3)IP2Location 地理位置查询
(a)www.maxmind.com
-
原理:www.maxmind.com网站可以根据IP查询地理位置。
-
步骤:
-
在主机上利用ping www.baidu.com的查看百度的IP地址
-
打开网站网页www.maxmind.com在网站下方输入IP
(b)www.ip-adress.com(查看更加详细地址信息)
-
查看自己的ip地址,熟悉一下界面,输入自己想查询的ip地址
(c)www.whatismyipaddress.com
-
这个网站可以查询到更详细的关于IP的信息。点击图中内容即可查看自身ip地址
(三)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
(a)主机发现
-
1.ping
-
原理:ping命令用发送ICMP报文的方法检测活跃主机
-
方法:输入命令 ping www.baidu.com
-
2.metasploit中的arp_sweep模块和 udp_sweep 模块
-
原理arp_sweep和udp_sweep都是metasploit中位于modules/auxiliary/scanner/discovery中的模块。arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机;udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息
-
方法一:arp_sweep
msfconsole
use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块
set RHOSTS 主机地址 //用set进行hosts主机段设置
set THREADS 50 //加快扫描速度
show options //查询模块参数
run //执行run进行扫描
-
方法二:udp_sweep
(b)端口扫描
-
1.nmap
扫描类型:
-sT:TCP connect扫描
-sS:TCP syn扫描
-sF/-sX/-sN:通过发送一些标志位以避开设备或软件的检测
-sP:ICMP扫描
-sU:探测目标主机开放了哪些UDP端口
-sA:TCP ACk扫描
扫描选项:
-Pn:在扫描之前,不发送ICMP echo请求测试目标是否活跃
-O:辨识操作系统等信息
-F:快速扫描模式
-p<端口范围>:指定端口扫描范围
-
原理:nmap -xx参数可以用来探测某网段的活跃主机
-
方法:进入root模式->输入命令 nmap
-
分析:如下图所示,对制定网段的主机端口都检测了
-
PU,扫描UDP端口
-
使用nmap -sT -p 1-1024 +主机地址,使用TCP connect扫描1-1024端口
-
2.msf 中的 portscan 模块
-
主要可以扫描以下几种端口:
ack:通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测
ftpbounce:通过FTP BOUNCE攻击的原理对TCP服务进行枚举
syn:使用发送TCP SYN标志的方式探测开放的端口
tcp:通过一次完整的TCP链接来判断端口是否开放
xmas:一种更为隐蔽的扫描方式,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤
-
对TCP端口进行探测
msfconsole
use auxiliary/scanner/portscan/tcp
set RHOSTS 主机地址
set THREADS 100
set PORTS 1-1024
run
(c)OS及服务版本探测
-
1.nmap -O
- 可以通过nmap -O ip对操作系统进行识别,获取目标机的操作系统和服务版本等信息
-
2.nmap -sV
- 可以通过nmap -sV ip查看操作系统详细信息
(d)具体服务的查点
-
1.Telnet服务扫描
- telnet命令用于登录远程主机,对远程主机进行管理
use auxiliary/scanner/telnet/telnet_version
set RHOSTS 主机地址
set THREADS 100
run
-
2.SSH服务
- SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 主机地址
set THREADS 100
run
-
3.Oracle数据库服务查点
use auxiliary/scanner/oracle/tnslsnr_version
set RHOSTS 192.168.247.137/24
set THREADS 100
run
(四)漏洞扫描(OpenVAS)
-
安装
apt-get update
apt-get dist-upgrade
apt-get install openvas
apt install gvm
sudo gvm-setup//这步时间非常非常非常长,找个网好的地方装,网千万别断,很容易出bug
gvm-feed-update
-
初始密码是随机的,可以修改
sudo runuser -u _gvm -- gvmd --user=admin --new-password=password #admin填入你想要更改的用户名,最后的password填你要设置的密码
-
使用 gvm-check-setup 来检查是否安装完成
-
在终端输入sudo gvm-start 开启这个软件,等待几秒即可自动打开浏览器并访问网站
-
登陆之后,点击 scan->Tasks,然后点击Task Wizard
-
输入所需要扫描的IP地址
-
选择“Full and fast”查看
-
点击 NTV Families->任意漏洞(以Buffer overflow为例) 来查看具体漏洞信息
3.实验后回答问题:
(1)哪些组织负责DNS,IP的管理。
全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)。
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
全球一共有5个地区性注册机构:
- ARIN主要负责北美地区业务
- RIPE主要负责欧洲地区业务
- APNIC主要负责亚太地区业务
- LACNIC主要负责拉丁美洲美洲业务
- AfriNIC负责非洲地区业务
(2)什么是3R信息。
注册人(Registrant) →注册商(Registrar) →官方注册局(Registry)
(3)评价下扫描结果的准确性。
扫描结果多数还是准确的,但是还是有部分端口无法扫出
4.实验总结与体会
本次实验难度不高,但是我们学到了很多搜集信息的方法,以后可以对网站进行针对性的信息搜集,还有就是我对信息搜集与漏洞分析有了更深的理解。。在OpenVas的安装过程中,遇到不少困难,好在有课题负责人的实验报告的指导,并且我在网上查询资料,一一解决了困难。还有一点就是OpenVas下载时间太久,下载时中途断电还导致下载失败出现bug。