《网络对抗技术》 Exp5 信息搜集与漏洞扫描
一、实验原理和实验内容
1. 实验原理
信息搜集:渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息
- 间接收集
- 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下的网络扫描和嗅探工具包。
- SMB(
- 主机扫描:发现网络上的活动主机,
- 社会工程学
- 漏洞扫描与Openvas
2. 实验内容概述
- 各种搜索技巧的应用
- DNS IP注册信息的查询
- 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
- 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
3. 问题回答
- 哪些组织负责DNS,IP的管理
- 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
- 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
- 什么是3R信息
- 注册人(Registrant)
- 注册商(Registrar)
- 官方注册局(Registry)
- 评价下扫描结果的准确性
- 在使用nmap扫描的时候发现始终只有22号端口ssh服务开放,而参考了同学的和学长学姐的博客,发现都开启了很多服务,这应该与实验二遇到的问题时对端口进行过配置有关,所以导致只有一个端口开放,针对操作系统的扫描也明确给出了kali的操作系统,其余的结果都比较准确。
二、 实验步骤
各种搜索技巧的应用
搜索网址目录结构
暴力破解一般就是指穷举法,它的原理就是使用攻击者自己的字典,一个一个去枚举,理论上来说,只要字典足够庞大,枚举总是能够成功的
以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
kali终端中输入命令traceroute www.baidu.com
2. DNS IP注册信息的查询
whois查询
whois
用来进行域名注册信息查询。- 在终端输入
whois baidu.com
可查询到3R注册信息,包括注册人的姓名、组织和城市等信息。注:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。 - 在终端中输入
whois
可以查看到域名的注册信息,可以查看到域名注册信息以及3R注册信息。
nslookup查询
- nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。
- 在终端输入
nslookup baidu.com
dig查询
dig
可以从官方DNS服务器上查询精确的结果。- 在终端输入
dig baidu.com
LP2Location地理位置查询
- https://www.maxmind.com可以根据IP地址查询地理位置
- 在终端中输入
ping www.baidu.com
获取百度的ip地址
- 在终端中输入
在网站中输入IP地址可以查看到百度的IP信息
IP-ADDRESS,可以查询到更详细的关于某共有IP的信息,我们继续查看百度的信息:
IP2反向域名查询
- 在shodan搜索引擎可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型:
3. 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
主机发现
- 使用ICMP Ping命令
- 在winodws中执行
ping www.baidu.com
- 在winodws中执行
在kali中执行ping www.baidu.com
metasploit中的arp_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.248.1/24
//用set进行hosts主机段设置set THREADS 50
//加快扫描速度run
//执行run进行扫描
metasploit中的udp_sweep模块
msfconsole
use auxiliary/scanner/discovery/udp_sweep
//进入udp_sweep 模块set RHOSTS 192.168.248.1/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.248.0/24
寻找该网段下的活跃主机:
- 在Linux下使用
使用-O选项让Nmap对目标的操作系统进行识别:
- 在Linux下使用
nmap -O 192.168.248.1
获取目标机的操作系统等信息:
使用-sS选项进行TCP SYN扫描:
- 在Linux下使用
nmap -sS -Pn 192.168.248.1
命令,其中-sS
是TCP SYN扫描,-Pn
是在扫描之前,不发送ICMP echo请求测试目标:
使用-sV查看目标机的详细服务信息:
- 在Linux下使用
nmap -sV -Pn 192.168.248.1
命令,其中-sV
用来查看目标机子的详细服务信息:
具体服务的查点
这一部分的内容是在漏洞扫描之后完成的,漏洞扫描的时候在下载opevas需要变更网络,IP地址从192.168.1.107
变为 192.168.0.131
- Telnet服务扫描:telnet命令用于登录远程主机,对远程主机进行管理。
msfconsole
use auxiliary/scanner/telnet/telnet_version
//进入telnet模块set RHOSTS 192.168.248.1/24
set THREADS 50
//提高查询速度run
SSH服务:SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来。
msfconsole
use auxiliary/scanner/ssh/ssh_version
//进入ssh模块set RHOSTS 192.168.248.128/24
//扫描网段 192.168.248.128 虚拟机地址set THREADS 50
//提高查询速度run
Oracle数据库服务查点:
msfconsole
use auxiliary/scanner/oracle/tnslsnr_version
//进入tnslsnr模块set RHOSTS 192.168.248.128
//扫描网段set THREADS 200
//提高查询速度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.248.1/24
寻找该网段下的活跃主机:
- 在Linux下使用
使用-O选项让Nmap对目标的操作系统进行识别:
- 在Linux下使用
nmap -O 192.168.248.1
获取目标机的操作系统等信息
使用-sS选项进行TCP SYN扫描:
- 在Linux下使用
nmap -sS -Pn 192.168.248.1
命令,其中-sS
是TCP SYN扫描,-Pn
是在扫描之前,不发送ICMP echo请求测试目标:
使用-sV查看目标机的详细服务信息:
- 在Linux下使用
nmap -sV -Pn 192.168.248.1
命令,其中-sV
用来查看目标机子的详细服务信息:
具体服务的查点
metasploit中有许多相关工具,大部分都在 Scanner 辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名。
Telnet服务扫描
-
原理:telnet命令用于登录远程主机,对远程主机进行管理。
-
方法:
-
msfconsole
-
use auxiliary/scanner/telnet/telnet_version //进入telnet模块
-
set RHOSTS 192.168.248.1/24
-
set THREADS 50 //提高查询速度
-
run
-
SSH服务:SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来。
msfconsole
use auxiliary/scanner/ssh/ssh_version
//进入ssh模块set RHOSTS 192.168.248.1/24
//扫描网段set THREADS 50
//提高查询速度run
Oracle数据库服务查点:
msfconsole
use auxiliary/scanner/oracle/tnslsnr_version
//进入tnslsnr模块set RHOSTS 192.168.248.1
//扫描网段set THREADS 200
//提高查询速度run
4.漏洞扫描————安装使用OpenVAS
安装Openvas
apt-get update
apt-get dist-upgrade
apt-get install openvas
apt install gvm
sudo gvm-setup//这步时间非常非常非常长,找个网好的地方装,网千万别断,很容易出bug
安装成功
奈斯;了 貌似安装成功啦
使用 gvm-check-setup 来检查
配置Openvas
在终端输入
sudo gvm-start
开启这个软件
通过浏览器访问: https://127.0.0.1:9392
进行扫描
- 新建任务:
- 在菜单栏
Scan
中选择Tasks
- 在菜单栏
点击界面左上角的魔法棒选择Task Wizard
填入待扫描的IP地址192.168.248.1
,点击Start Scans
- 查看信息
- 就可以查看并分析扫描结果,点击Full and fast能够查看细节
详细信息
三、实验体会
通过这次实验,对Linux操作系统的信息搜集方式有了一定的了解。实验过程中也遇到了许多问题,最主要的就是OpenVas下载速度太慢,导致等了一天时间。同时,由这次实验对个人信息的保护产生了警醒。除了不要在网络上随意发布个人信息外,一些官方网站也应该加强对网站用户信息的隐私保护。除此之外,从操作系统的漏洞检查结果也可以知道,在使用操作系统时应该及时进行更新,以防攻击者通过漏洞对自己的机器进行攻击,从而造成信息泄漏或是更严重的事故发生。