2018-2019-2 20165330《网络对抗技术》Exp6 信息搜集与漏洞扫描
目录
实验目的
----------
- 掌握信息搜集的最基础技能与常用工具的使用方法。
实验内容
----------
- [各种搜索技巧的应用](#1)
- [使用搜索引擎](#5)
- [搜索网址目录结构](#6)
- [检测特定类型的文件](#7)
- [路由侦查](#8)
- [DNS IP注册信息的查询](#2)
- [whois查询域名注册信息](#9)
- [nslookup,dig域名查询](#10)
- [IP2Location 地理位置查询](#11)
- [基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点](#3)
- [活跃主机扫描](#12)
- [端口扫描](#13)
- [OS扫描及服务版本探测](#14)
- [具体服务的查点](#15)
- [漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞](#4)
- [配置OpenVAS](#16)
- [扫描操作](#17)
基础问题
----------
- 哪些组织负责DNS,IP的管理。
>- 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理.
>- 全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务。
- 什么是3R信息。
- 3R指
注册人(Registrant)
、注册商(Registrar)
、官方注册局(Registry)
- 3R注册信息:分散在官方注册局或注册商各自维护数据库中
- 评价下扫描结果的准确性。
见实验步骤的分析。
相关知识
----------
- 信息搜集
- 尽可能多的查找关于目标的信息
- 是渗透测试中首先要做的重要事项之一
- 方法:间接信息搜集 直接信息搜集 社会工程学
- 间接信息搜集
- 不接触目标,使用第三方信息源
- 使用辅助模块中信息搜集类:`auxiliary/gather/..`
- DNS记录扫描和枚举:`use auxiliary/gather/enum_dns`
- CorpWatch:`auxiliary/gather/corpwatch_lookup_name`
- 搜索引擎子域名搜集器:`auxiliary/gather/searchengine_subdomains_collector`
- 直接信息搜集
- 建立逻辑连接并获取信息
- 主机扫描:`auxiliary/scanner/discovery`
- 端口扫描:`auxiliary/scanner/portscan`
- 版本探测:探测端口上的运行服务
- 漏洞探测:探测服务是否有相应漏洞
- OpenVAS漏洞扫描器:开放式漏洞评估系统,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题
- 社会工程学
- 类似于被动信息收集,主要是针对人为错误,信息以打印输出、电话交谈、电子邮件等形式泄露
- NMAP
- Linux下的网络扫描和嗅探工具包
- 基本信息扫描:`nmap targethosts`
- 对主机全面扫描:`nmap –T4 –A –v targethost`
实验步骤
----------
#### 各种搜索技巧的应用
##### (一)使用搜索引擎
>[Google Hacking](https://www.exploit-db.com/google-hacking-database)
>- GHDB (又名谷歌黑客数据库)使用的先进的JavaScript技术搜索黑客所需的信息,它包含了大量使用Google从事渗透的搜索字符串,拥有很多常用的模块,还有我们之前使用过的各个平台下的shellcode,也可以从这里获取。
>- 在侧边栏选中`SHELLCODES`即可看到一些发布的shellcode
![image](https://img2018.cnblogs.com/blog/1291750/201904/1291750-20190424211454075-1234935812.png)
(二)搜索网址目录结构
- 利用
metasploit
的dir_scanner
辅助模块,暴力猜解,获取网站目录结构 - 进入
msfconsole
输入以下命令use auxiliary/scanner/http/dir_scanner //进入该辅助模块 info //查看需配置的信息 set THREADS 50 set RHOSTS www.baidu.com exploit
- 可以查询到网站的目录结构
- 可以看到百度的这几个隐藏目录
- 其中返回代码
302
表示服务器找不到请求的网页 - 返回代码
200
表示成功处理了请求 - 其他状态码意义可参考这里
(三)检测特定类型的文件
- 有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找, 如
Google
,site:XXX.com filetype:xls
- 我们使用百度,在搜索框输入
site:edu.cn filetype:xls
出现如上一堆文件格式为XLS/Microsoft Excel的网址 - 也可以加入关键字搜索,如
site:edu.cn filetype:xls 大学
搜索与大学有关的XLS文件
- 下载上面看到的
鞍山师范学院
xls文件可看到其中信息
(四)路由侦查
tracert命令进行路由侦查
- tracert可用于对经过的路由进行探测
- windows下打开cmd,输入命令:
tracert www.baidu.com
- 说明:
- 第一列代表了“生存时间”(每途经一个路由器结点自增1)
- 第二至第四列表示“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)
- 第五列表示“途经路由器的IP地址”(如果有主机名,还会包含主机名)
- 带有星号(*)的信息表示该次ICMP包返回时间超时。
- 另外发现侦察过程中显示了
www.a.shifen.com
这个地址,查了下原因:这是百度为其域名加的外壳,以免被攻击 ,属于网络安全范畴。
traceroute命令进行路由侦查
- kali下输入
traceroute www.baidu.com
对经过的路由进行探测
- 说明:我的kali为桥接模式
- 记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,
- 每行有三个时间,单位是ms,是探测数据包向每个网关发送三个数据包后,网关响应后返回的时间
- 有一些行是以
*
表示,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据
DNS IP注册信息的查询
(一)
whois查询域名注册信息
- 通过whois查询可以获得它的ip地址,域名信息,子域信息,服务器位置信息等
- 打开终端输入:
whois baidu.com
(注意:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到)- 可以查询到3R信息
(二)
nslookup,dig域名查询
- nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。dig可以从官方DNS服务器上查询精确的结果
- kali终端输入:
nslookup gitee.com
- kali终端输入:
dig gitee.com
- 1~7:显示了dig的基本设置信息,e.g. java -version
- 8~9:显示了查询内容,这里查询的是域名gitee.com的A记录
- 10~12:显示了查询结果,域名gitee的A记录是218.11.0.86(A(Address)记录是用来指定主机名(或域名)对应的IP地址)
- 13~15:授权信息,域名gitee.cpm的NS(nameserver)是yundunddos的域名服务器
- 21~24:统计信息
- 更多用法可参考dig常用命令
(三)
IP2Location 地理位置查询
- www.maxmind.com网站可以根据IP查询地理位置
- 先通过cmd进行
ping www.baidu.com
查看百度IP地址- 进入网站www.maxmind.com下拉查询IP,得到结果
- IP2反域名查询
- 通过IP-ADDRESS网站,查询更详细的关于某共有IP的信息
- 在shodan进行反域名查询
- 通过shodan可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型
- 如查询百度
基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
(一)活跃主机扫描
- ICMP ping命令
- 利用
metasploit
中的模块- 位于
modules/auxiliary/scanner/discovery
主要有arp_sweep
、ipv6_multicast_ping
、ipv6_neighbor
、ipv6_neighbor_router_advertisement
、udp_probe,udp_sweep
- 我们使用
arp_sweep
,即用ARP请求枚举本地局域网的活跃主机 - 进入
msfconsole
输入以以下命令use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块 info //查看设置参数信息 set RHOSTS 10.0.0.0/24 //设置主机段 set THREADS 50 //加快扫描速度 run //扫描
- 扫描结果如下
- 位于
nmap -sn
探测某网段的活跃主机- kali终端中输入:
nmap -sn 10.0.0.0/24
- 结果如下
- kali终端中输入:
(二)端口扫描
- 利用msf中的
udp_sweep
模块对UDP端口进行探测- 进入
msfconsole
,输入以下命令use auxiliary/scanner/discovery/udp_sweep //进入udp_sweep 模块 info //查看设置参数信息 set RHOSTS 10.0.0.0/24 //设置主机段 set THREADS 50 //加快扫描速度 run //扫描
- 结果如下
这与nmap -PU
的作用一样,
- 进入
- 使用
nmap -sT
对指定主机TCP端口进行探测- kali终端输入:
nmap -sT -p 1-1024 10.0.0.216
(-p参数设置端口范围)
- kali终端输入:
- 利用msf中的
portscan
模块对TCP端口进行探测- 进入
msfconsole
,输入以下命令use auxiliary/scanner/discovery/tcp //进入udp_sweep 模块 info //查看设置参数信息 set RHOSTS 10.0.0.216 //设置主机段 set THREADS 50 //加快扫描速度 set PORTS 1-1024 //设置端口范围 run //扫描
- 结果如下
- 进入
- 也可使用
nmap -sU
对UDP端口进行探测
(三)OS扫描及服务版本探测
- kali下使用
nmap -O 10.0.0.216
获取目标机的操作系统等信息
- 使用
-sS
选项进行TCP SYN扫描- kali下使用
nmap -sS -Pn 10.0.0.216
命令(-sS
表示TCP SYN扫描,-Pn
表示在扫描之前,不发送ICMP echo请求测试目标 )
- kali下使用
- 使用
-sV
查看目标机子的详细服务信息- kali下使用
nmap -sV -Pn 10.0.0.216
命令(-sV
用来查看目标机子的详细服务信息)
- kali下使用
(四)具体服务的查点
- Telnet服务扫描
- telnet命令用于登录远程主机,对远程主机进行管理
- 进入
msfconsole
输入以下命令use auxiliary/scanner/telnet/telnet_version //进入telnet模块 info //查看设置信息 set RHOSTS 10.0.0.0/24 //扫描主机网段 set THREADS 100 //提高查询速度 run //扫描
- 结果如下
可见大多数主机都没有开启这个服务,需要自己去设置手动开启。
- SMB网络服务扫描
- SMB (Server Message Block,服务器消息块) 提供了 Windows 网络中最常用的远程文件与打印机共享网络服务。
- 进入
msfconsole
输入以下命令use auxiliary/scanner/smb/smb_version //进入模块 info //查看设置信息 set RHOSTS 10.0.0.0/24 //扫描主机网段 set THREADS 100 //提高查询速度 run //扫描
- 结果如下
- NetBios网络服务扫描
- NetBIOS (Network Basic Input/Output System,网络基本输入输出) 为局域网内 Windows 系统上的应用程序实现会话层之间的通信提供基本支持。
- 进入
msfconsole
输入以下命令use auxiliary/scanner/netbios/nbname //进入模块 info //查看设置信息 set RHOSTS 10.0.0.0/24 //扫描主机网段 set THREADS 100 //提高查询速度 run //扫描
- 结果如下
- 口令猜测与嗅探
- 进入
msfconsole
输入以下命令use auxiliary/scanner/ssh/ssh_login //进入ssh_login模块 info //查看设置信息 set RHOSTS 10.0.0.0/24 //扫描主机网段 set USERNAME root //设置目标系统的管理员账号 set PASS_FILE /root/password.txt //设置破解的字典 set THREADS 200 //提高查询速度 run //扫描
- 进入
漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
(一)配置OpenVAS
- 因为Kali 2.0系统中已经不默认安装OpenVAS,使用
openvas-check-setup
检查状态会提示没有此命令
- 先更新软件包列表:
apt-get update
- 获取到最新的软件包:
apt-get dist-upgrade
(不建议时间很长!) - 安装OpenVAS工具:
apt-get install openvas
- 重复多次运行
openvas-check-setup
检查状态,一般会有不同的报错,一一进行修复- 错误1:
The NVT collection is very small.
解决:按提示运行
sudo greenbone-nvt-sync
同步漏洞库 - 错误2:
No users found.
解决:按提示运行
openvasmd --create-user=admin --role=Admin && openvasmd --user=admin --new-password=158138
创建用户和密码 - 错误3:
The number of NVTs in the OpenVAS Manager database is too low
解决:运行
openvassd
启动扫描器,在openvasmd --rebuild
生成数据库 - 错误4:
No OpenVAS SCAP database found.
解决:运行
greenbone-scapdata-sync
同步SCAP数据
- 错误1:
- 当看到
It semms like your OpenVAS-9 installation is OK
即安装成功。
(二)扫描操作
- 开启服务:
openvas-start
,自动打开浏览器主页https://127.0.0.1:9392
,点击Login
进入
- 新建任务扫描
- 点击
Scans
-Tasks
。 - 进入后点击左上角处
紫色的烟花
,选择Task Wizard
新建一个任务向导。 - 在弹框中输入待扫描主机的IP地址
10.1.1.109
,点击Start Scans
开始扫描。
- 点击
- 扫描完成
- 点击
Name
下名称,查看扫描的详细信息
- 点击红框中
Full and fast
- 我们选择其中的
Buffer overflow
分析
- 进入后会发现每个漏洞都标有危险等级,我们选择一个危险等级较高的漏洞
- 在
Summary
处为该漏洞的描述
- 在
Solution
处可看到解决方案
- 进入后会发现每个漏洞都标有危险等级,我们选择一个危险等级较高的漏洞
- 更详细的漏洞可在微软技术中心中查看
实验总结与体会
----------
- 通过本次实验,初步掌握了如何进行信息的搜集,在利用各种技术来实践收集并分析信息的过程中,让我不断掌握了漏洞的扫描和分析的基本方法,也在这些不同的尝试中感受到现在信息的搜查强度,自己的信息真的很容易就可以被别人搜到呀~
参考资料