【网络对抗技术】20181234 Exp5 信息搜集与漏洞扫描
目录
实验报告
一、实验目的与实验原理
1—实验目的
掌握信息搜集的最基础技能与常用工具的使用方法。
2—实验原理
2.1—为什么要做信息收集
-
发现目标
-
筹备攻击行动——先发制人
-
网络安全性评估——攻防对抗
-
追踪攻击行为——后发制人
-
优化防御策略,增强网络安全
2.2—信息收集需要做什么
-
发现目标:对象名称和主机域名、IP地址
-
关键信息
-
网络拓扑结构
-
操作系统
-
防护机制
-
网络服务
-
安全漏洞
-
-
其他:地理位置、联系方式
2.3—网络信息收集技术
-
网络踩点
-
Web搜索与挖掘
-
DNS和IP查询
-
网络拓扑侦查
-
-
网络扫描
-
主机扫描
-
端口扫描
-
系统类型探查
-
漏铜扫描
-
-
网络差点
-
旗标抓取
-
网络服务差点
-
2.4—信息搜集:渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息
-
间接收集
-
DNS记录扫描和枚举
-
CorpWatch auxiliary/gather/corpwatch_lookup_name
-
搜索引擎子域名搜集器 auxiliary/gather/searchengine_subdomains_collector
-
在线搜索工具
-
GHDB
-
设备搜索 shodan,censys,zoomeye
-
viewdns
-
-
-
直接收集
-
主机扫描:发现网络上的活动主机 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下的网络扫描和嗅探工具包。
-
-
-
社会工程学
-
漏洞扫描与Openvas
二、实验内容
1—各种搜索技巧的应用
1.1—搜索网址目录结构
- 原理:暴力破解一般就是指穷举法,它的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!(本实验以dir_scanner模块为例,获取网站目录结构)
msfconsole
use auxiliary/scanner/http/dir_scanner
set THREADS 20
set RHOSTS www.baidu.com
exploit


1.2—利用搜索引擎搜索特定类型的文件
-
原理
-
filetype 能对搜索结果的文件类型进行限定,格式为 检索词 filetype:文件类型
-
- 能在检索结果中获取检索词的补集,格式为 检索词 -词语
-
site 能限制检索结果的来源,格式为 检索词 site:限制域名 (不要在“:”后的域名中输入“http:”和“www.”)
-
inurl 能在网址中进行搜索,格式为 检索词 inurl:检索词
-
| 表示布尔逻辑中的或者(or)关系,使用格式为 关键词1 | 关键词2
-
空格表示布尔逻辑中的交集(and)关系,使用格式为 关键词1 关键词2
- 高级搜索界面,高级搜索界面的入口在搜索引擎首页右上角
-

-
在百度中输入 site:edu.cn filetype:xls ,能够搜索到xls格式的Excel表格

-
打开文档可以查看到检索到的文件的具体信息

1.3—使用traceroute命令进行路由侦查
-
原理:
-
traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。
-
TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
-
-
本实验以侦查百度为例
-
在windows中输入命令 tracert www.baidu.com
-
第一列表示生存时间,每途经一个路由器结点自增1
-
第二、三、四列表示三次发送的ICMP包返回时间,共计3个,单位为毫秒ms,其中带有星号(*)的信息表示该次ICMP包返回时间超时。
-
第五列表示途经路由器的IP地址,如果有主机名,还会包含主机名
-
-

-
-
在kali终端中输入命令 traceroute www.baidu.com
-

可以看到绝大部分ICMP包都请求超时了!
2—DNS IP注册信息的查询
2.1—whois查询
-
whois用来进行域名注册信息查询。
-
在终端输入 whois gitee.com可查询到3R注册信息,包括注册人的姓名、组织和城市等信息。
-
进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
-
在终端中输入 whois 可以查看到域名注册信息以及3R注册信息。


2.2—nslookup查询
-
原理:nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。
-
在终端输入 nslookup baidu.com

2.3—dig查询
-
dig可以从官方DNS服务器上查询精确的结果。
-
在终端输入 dig baidu.com

-
除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识。例如:
-
+[no]search :使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
-
+[no]trace :切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
-
+[no]identify :当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
-
+[no]stats :该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息
-

2.4—IP2Location地理位置查询
2.4.1—www.maxmind.com
-
原理:www.maxmind.com网站可以根据IP查询地理位置。
-
步骤:
-
利用 ping www.baidu.com 的查看网站的IP地址
-
打开网站网页www.maxmind.com
-
在网站下方输入IP
-
点击前往查看结果
-


2.4.2—www.ip-adress.com
-
原理:IP-ADDRESS这个网站可以查询到更详细的关于IP的信息
-
方法:网页初始界面会显示自己本机的IP地址,在左上角的框框里可以输入想要查询的IP,如110.242.68.3(百度的IP)
- 百度网页的结果如下:

2.5—IP2反向域名查询
-
原理:shodan搜索引擎可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型.
-
方法:打开网站,输入IP地址,可以看到地理位置,端口号和提供的服务具体信息

3—基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
3.1—主机发现
3.1.1—使用ICMP Ping命令
-
在windows中执行ping www.baidu.com

- 在kali中执行ping www.baidu.com

3.1.2—metasploit中的arp_sweep模块和udp_sweep模块
-
arp_sweep和udp_sweep都是metasploit中位于modules/auxiliary/scanner/discovery中的模块
-
arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机
-
udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息
-
执行命令如下:
msfconsole use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块 set RHOSTS 192.168.81.0/24 //用set进行hosts主机段设置 set THREADS 50 //加快扫描速度 run //执行run进行扫描 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— msfconsole use auxiliary/scanner/discovery/udp_sweep //进入udp_sweep 模块 set RHOSTS 192.168.81.0/24 //用set进行hosts主机段设置 set THREADS 50 //加快扫描速度 run //执行run进行扫描




对比发现,在设置主机地址那里,地址处在同一网段的结果似乎是一样的!
3.1.3—nmap -sn
-
nmap的相关参数如下:
-sS:TCP SYN扫描,可以穿透防火墙; -sA:TCP ACK扫描,有时候由于防火墙会导致返回过滤/未过滤端口; -sP:发送ICMP echo探测; -sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐; -sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测; -O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息; -sV:获取开放服务的版本信息;
-
使用 nmap -sn探测某网段的活跃主机
- 在Linux下使用nmap -sn 192.168.81.129/24 寻找该网段下的活跃主机

3.2—端口扫描
3.2.1—nmap -PU
-
使用 nmap -PU对UDP端口进行探测,与udp_sweep模块功能相同
-
在Linux下使用nmap -PU 192.168.43.1/24 命令
-

3.2.2—nmap -sS
-
使用 -sS 选项进行TCP SYN扫描
-
在Linux下使用 nmap -sS -Pn 192.168.43.1 命令,其中 -sS 是TCP SYN扫描, -Pn 是在扫描之前,不发送ICMP echo请求测试目标
-

3.3—版本探测
3.3.1—nmap -O
-
使用 -O 选项让Nmap对目标的操作系统进行识别
-
在Linux下使用nmap -O 192.168.43.1获取目标机的操作系统等信息
-

3.3.2—nmap -sV
-
使用 -sV 查看目标机的详细服务信息
-
在Linux下使用 nmap -sV -Pn 192.168.43.1 命令,其中 -sV 用来查看目标机子的详细服务信息
-

3.4—具体服务的查点
metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名。
3.4.1—Telnet服务扫描
-
原理:telnet命令用于登录远程主机,对远程主机进行管理。
msfconsole use auxiliary/scanner/telnet/telnet_version //进入telnet模块 set RHOSTS 192.168.81.0/24 //扫描192.168.81.0网段 set THREADS 50 //提高查询速度 run

3.4.2—SSH服务
-
原理:SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来。
msfconsole use auxiliary/scanner/ssh/ssh_version //进入ssh模块 set RHOSTS 192.168.43.1/24//扫描网段 set THREADS 50 //提高查询速度 run

3.4.3—Oracle数据库服务查点
msfconsole use auxiliary/scanner/oracle/tnslsnr_version set RHOSTS 192.168.43.1/24 set THREADS 50 run

4—漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
4.1安装OpenVAS(在root模式下做)
apt-get update apt-get dist-upgrade apt-get install openvas apt install gvm sudo gvm-setup
-
安装完成后会自动生成管理员账号和密码(初始用户名:admin,密码为47702e7a-3efa-41c8-9b7e-96936fc06532)

-
使用 gvm-check-setup 来检查是否安装完成(出现“It seems like your GVM-20.8.0 installation is OK.”表示安装完成)


-
在终端输入 gvm-start 开启这个软件
4.2登录
-
通过浏览器访问: https://127.0.0.1:9392


4.3新建Target,开始扫描
-
点击 scan→Task

-
点击 Task Wizard

-
输入主机的IP地址 192.168.43.224

-
开始扫描

4.4查看并分析扫描结果
-
打开该扫描结果的详细信息,并点击 Full and fast

-
点击 NTV Families → Buffer overflow 查看漏洞信息

- 在 Buffer overflow 的众多族中选一个查看

-
Summary是该漏洞的描述,意思是此主机安装有AbsoluteFTP,并且易于缓冲溢出漏洞。
- Impact是该漏洞的影响,意思是成功利用此漏洞可使远程攻击者执行应用程序上下文中的任意代码。失败的攻击可能导致拒绝服务情况。

-
Solution是关于该漏洞的解决方案:该漏洞至少一年内没有解决方案或修补程序。这个网站可能不会再提供解决方案了。一般解决方案是升级到一个较新的版本,禁用各自的功能,删除产品或更换产品的另一个。

三、实验后回答问题
1—哪些组织负责DNS,IP的管理?
-
全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
-
地址支持组织(ASO)负责IP地址系统的管理
-
域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
-
协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
-
-
全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)。
-
全球一共有5个地区性注册机构:
-
ARIN主要负责北美地区业务
-
RIPE主要负责欧洲地区业务
-
APNIC主要负责亚太地区业务
-
LACNIC主要负责拉丁美洲美洲业务
-
AfriNIC负责非洲地区业务
-
2—什么是3R信息?
-
-
注册人(Registrant)
-
注册商(Registrar)
-
官方注册局(Registry)
-
-
注册人(Registrant) →注册商(Registrar) →官方注册局(Registry)
3—评价下扫描结果的准确性
在使用nmap扫描的时候发现kali虚拟机的端口都是关着的,无法扫描出任何信息,关闭防火墙结果也一样。主机是在关闭防火墙后可以扫描出2到3个端口。
四、实验总结与体会
1-实验中遇到的问题
1.1—arp_sweet扫描的时候出现了Permission Denied的问题

-
原因:对端口扫描必须在root模式下进行,需要在root模式下启动msfconsole
-
解决:输入命令sudo-s,进入root模式,再次操作
1.2—使用nmap所有的扫描都失败

-
原因:没有root权限
-
解决:进入root模式


-
原因:
-
Too many fingerprints match this host to give specific OS details(与此主机匹配的指纹太多,无法提供特定的操作系统详细信息)
- All 1000 scanned ports on localhost (192.168.81.129) are closed(localhost(192.168.81.129)上所有1000个扫描端口都已关闭)
-
-
解决:更换成主机默认网关的地址,可以扫描,但是发现kali无法ping通主机的ip地址了,将虚拟机改为桥接模式也不可以,这个问题仍未解决
2-实验体会
这次实验较前面几个比较简单,学习并利用各种工具对主机、端口、版本、网络服务等进行了扫描,实现了基本的信息收集,以后可以对网站进行针对性的信息搜集。同时,我也明白,信息收集作为渗透测试中首先要做的重要事项之一,在整个过程中起到了至关重要的作用,我们掌握的信息越多,渗透成功的机会越大。但是渗透测试并不是仅仅收集到足够的信息就够了,更重要的是对信息进行整理,得到我们需要的数据,以便达成进一步的攻击效果。


浙公网安备 33010602011771号