2019-2020-2 网络对抗技术 20175213吕正宏 Exp5 信息搜集与漏洞扫描
一、实验内容
1.实验目标
掌握信息搜集的最基础技能与常用工具的使用方法。
2.实验原理
信息的直接收集:
-
主机扫描:发现网络上的活动主机,
modules/auxiliary/scanner/discovery
-
端口扫描:发现主机上的开放端口,通过
search portscan
命令查看MSF中的端口扫描模块。 -
版本探测:探测端口上的运行服务
-
SMB(
auxiliary/scanner/smb/smb_
)一种在 Microsoft Windows系统中使用网络文件共享的协议,已被证明是最容易被攻击的协议之一,它允许攻击者枚举目标文件和用户,甚至远程代码执行。 -
SSH(
auxiliary/scanner/ssh
)一个广泛使用的远程登录程序。 -
FTP(
auxiliary/scanner/ftp
)。 -
SMTP(
auxiliary/scanner/smtp/smtp_
)。 -
SNMP(
auxiliary/scanner/snmp/snmp_enum
)用于管理网络设备的协议,比如监控设备的状态信息,接口信息,网络接口的数据吞吐量等,通过SNMP扫描器可以找到特定系统的大量信息。如果目标系统为Windows且配置了SNMP(通常是RO/RW团体字符串),我们可以提取系统重启时间,系统上的用户名,系统网络信息,运行的服务等各种有价值的信息。 -
HTTP(
auxiliary/scanner/http/
)漏洞探测:探测服务是否有相应漏洞NMAP:也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
-
信息的间接收集:
-
DNS记录扫描和枚举。
-
CorpWatch:
auxiliary/gather/corpwatch_lookup_name
。 -
搜索引擎子域名搜集器:
auxiliary/gather/searchengine_subdomains_collector
。 -
在线搜索工具
-
GHDB
-
设备搜索:shodan,censys,zoomeye
-
viewdns
-
社会工程学
漏洞扫描与Openvas
3.实验内容
-
各种搜索技巧的应用。
-
DNS IP注册信息的查询。
-
基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)。
-
漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)。
二、基础问题回答
-
1.哪些组织负责DNS,IP的管理
-
全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
-
地址支持组织(ASO)负责IP地址系统的管理。
-
域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理。
-
协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配。
-
-
2.什么是3R信息
-
注册人(Registrant)。
-
注册商(Registrar)。
-
官方注册局(Registry)。
-
-
3.评价下扫描结果的准确性
- 在此实验中,我在使用nmap扫描的时候,发现只有个别端口开放ssh服务,但其他大部分的扫描结果都比较准确。
三、实验步骤
1.各种搜索技巧的应用
搜索网址目录结构:暴力破解(一般就是指穷举法)
以dir_scanner
模块为例,获取网站目录结构,命令如下:
- msfconsole
- use auxiliary/scanner/http/dir_scanner
- set THREADS 20
- set RHOSTS www.baidu.com
- exploit
搜索结果如图:
利用搜索引擎搜索特定类型的文件
-
原理:
-
filetype
能对搜索结果的文件类型进行限定,格式为检索词 filetype:文件类型
-
-
能在检索结果中获取检索词的补集,格式为检索词 -词语
-
site
能限制检索结果的来源,格式为检索词 site:限制域名
(不要在“:”后的域名中输入“http:”和“www.”) -
inurl
能在网址中进行搜索,格式为检索词inurl:检索词
-
|
表示布尔逻辑中的或者(or)关系,使用格式为关键词1 | 关键词2
-
空格表示布尔逻辑中的交集(and)关系,使用格式为
关键词1 关键词2
-
高级搜索界面,高级搜索界面的入口在搜索引擎首页右上角
“设置”->“高级搜索”
。
-
-
打开谷歌浏览器,在百度(推荐搜狗,因为百度严格的管制下,搜狗引擎显得强大)中输入
site:edu.cn filetype:xls
,能够搜索到xls格式的Excel表格
- 下载并打开文档可以查看到检索到的文件的具体信息,存在很多容易被利用的信息。
使用traceroute命令进行路由侦查
-
原理:
traceroute
命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。- TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
-
windows终端中输入命令
tracert www.baidu.com
。如图所示。
-
这里显示的
www.a.shifen.com
是这是dns解析过程中,www.baidu.com作为cname记录(相当于别名),在dns服务器中回配置了www.baidu.com到www.a.shifen.com的映射记录。而www.a.shifen.com是作为A(address)记录,映射到了真答实的IP信息。 -
在kali终端中输入命令
traceroute www.baidu.com
。如图所示。
2.DNS IP注册信息的查询
whois查询
-
原理:
-
whois
用来进行域名注册信息查询。 -
在终端输入
whois gitee.com
可查询到3R注册信息,包括注册人的姓名、组织和城市等信息。注:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
-
-
在终端中输入
whois baidu.com
可以查看到百度域名的注册信息,可以查看到域名注册信息以及3R注册信息。
nslookup查询
-
nslookup
可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。 -
在终端输入命令
nslookup baidu.com
dig查询
-
dig
可以从官方DNS服务器上查询精确的结果。 -
在终端输入命令
dig baidu.com
。结果如下。
LP2Location地理位置查询
-
在maxmind网站可以根据IP地址查询地理位置。
-
在Windows下ping通百度,获取百度的IP地址。
-
在网站中输入IP地址可以查看到百度的IP信息。如图所示。
-
-
在IP-ADDRESS网站里可以查询到更详细的关于某共有IP的信息,我们继续输入百度的IP地址查看百度的信息:
IP2反向域名查询
- 在Shodan搜索引擎可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型。如图所示。
3.基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
主机发现
-
使用ICMP Ping命令
-
在winodws中执行命令
ping www.baidu.com
。 -
在kali中执行命令
ping www.baidu.com
。
-
-
metasploit中的arp_sweep模块
- 执行命令如下
- msfconsole
- use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块
- set RHOSTS 172.20.10.5/24 //用set进行hosts主机段设置
- set THREADS 50 //加快扫描速度
- run //执行run进行扫描
-
metasploit中的udp_sweep模块
- 执行命令如下
- msfconsole
- use auxiliary/scanner/discovery/udp_sweep //进入udp_sweep 模块
- set RHOSTS 192.168.0.107/24 //用set进行hosts主机段设置
- set THREADS 50 //加快扫描速度
- run //执行run进行扫描
nmap的使用
- 预备知识:nmap的相关参数
-sS:TCP SYN扫描,可以穿透防火墙;
-sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口;
-sP:发送ICMP echo探测;
-sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐;
-sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测;
-O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息;
-sV:获取开放服务的版本信息;
-
探索活跃主机:
-
在Linux下使用
nmap -sn 192.168.111.0/24
寻找该网段下的活跃主机:
-
-
使用
-O
选项让Nmap对目标的操作系统进行识别:-
在Linux下使用命令
nmap -O 192.168.0.107
获取目标机的操作系统等信息(此处的IP地址为Windows主机IP地址):
-
-
使用
-sS
选项进行TCP SYN扫描:-
在Linux下使用命令
nmap -sS -Pn 192.168.0.107
,其中-sS
是TCP SYN扫描,-Pn
是在扫描之前,不发送ICMP echo请求测试目标。如图所示。
-
-
使用
-sV
查看目标机的详细服务信息:-
在Linux下使用
nmap -sV -Pn 192.168.111.130
命令,其中-sV
用来查看目标机子的详细服务信息(此处为虚拟机IP地址):
-
具体服务的查点
-
这一部分主要是使用
modules/auxiliary/scanner
下的各个模块进行对应的扫描。 -
telnet服务:用于登录远程主机,对远程主机进行管理。
-
具体命令:
- msfconsole
- use auxiliary/scanner/telnet/telnet_version //进入telnet模块
- set RHOSTS 192.168.111.130/24 //set扫描地址
- set THREADS 50 //提高查询速度
- run
- 运行结果如图(其中部分结果):
-
SSH服务;主要提供两个服务:
-
提供类似telnet远程联机服务器的服务
-
提供类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务。
-
-
具体命令:
- msfconsole
- use auxiliary/scanner/ssh/ssh_version //进入ssh模块
- set RHOSTS 192.168.111.130/24 //set扫描地址
- set THREADS 50 //提高查询速度
- run
- 运行结果如下:
-
Oracle数据库服务:
- 具体命令:
- msfconsole
- use auxiliary/scanner/oracle/tnslsnr_version //进入oracle模块
- set RHOSTS 192.168.111.130/24 //set扫描地址
- set THREADS 50 //提高查询速度
- run
-
运行结果:
4.漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
安装Openvas
- 命令为:
apt-get update
apt-get dist-upgrade
apt-get install openvas
openvas-setup
配置Openvas
- 输入
openvas-check-setup
进行检测,如果报错,根据FIX进行操作安装完成。
然后它一直显示我没有安装OpenVAS Scanner
,我又重新尝试了重装还是没有成功,所以我暂时跳过了这一步。(后来才发现这一步其实并不影响后面的操作)
- 添加新的用户名和密码,命令为:
openvasmd --create-user=20175213 --role=Admin //创建用户20175213
openvasmd --user=20175213 --new-password=lv990816 //设置新密码(上一步系统会自动生成一个初始密码,为了方便进行更改,也可以不改)
登录
- 输入
openvas-start
启动服务,如果提示关联存在问题,无法打开则手动在浏览器中输入网址https://127.0.0.1:9392
。
- 输入设置好的用户名和密码。
- 登录成功进入界面。
进行扫描
- 新建任务;在菜单栏
Scan
中选择Tasks
。
- 点击界面左上角的魔法棒选择
Task Wizard
。
- 填入待扫描的IP地址
192.168.0.107
,点击Start Scans
。
- 等待Status进度条读满后,就可以得到扫描完成的结果。如图所示。
- 点击扫描完成后的结果中的IP地址,可以查看到扫描结果的详细信息。
- 点击
Full and fast
选项,可以看到很多的漏洞族,选择一个漏洞族(拿VMware举例)进行查看。
- 在漏洞族中在任意选择一个漏洞,可以查看漏洞的影响以及补救方法(拿VMware举例)。
Solution显示“Updates are available”,说明解决方案是升级到最新版本。
四、实验感悟
在刘老师说完这个实验并不难后,我竟然天真的相信了。最终,我又败在了Openvas的安装上,在进过了一晚上的龟速安装后,又出现的莫名其妙的OpenVAS Scanner的问题,花了很多功夫。在亲身进行了信息搜集和漏洞扫描后也更明白了保护个人信息安全的重要性,希望在以后的实验中能收获更多。