一、实践目标
掌握信息搜集的最基础技能与常用工具的使用方法。
二、实践原理
1. 信息搜集
信息收集是指通过各种方式获取所需要的信息。信息收集是信息得以利用的第一步,也是关键的一步。信息收集工作的好坏,直接关系到整个信息管理工作的质量。信息可以分为原始信息和加工信息两大类。原始信息是指在经济活动中直接产生或获取的数据、概念、知识、经验及其总结,是未经加工的信息。加工信息则是对原始信息经过加工、分析、改编和重组而形成的具有新形式、新内容的信息。
2. 收集方式
- 社会调查、社会工程学
- 主机扫描
- 端口扫描
- 版本探测
3. 收集范围
- 内容范围
- 时间范围
- 地域范围
4. 关键目标
- 对象名称
- 主机域名
- IP地址
- 网络拓扑结构
- 操作系统
- 防护机制
- 网络服务
- 安全漏洞
三、实践内容
(一)各种搜索技巧的应用
1. 搜索网址目录结构
-
原理
暴力破解一般就是指穷举法,它的原理就是使用攻击者自己的字典,一个一个去枚举,理论上来说,只要字典足够庞大,枚举总是能够成功的。以dir_scanner
模块为例,获取网站目录结构。 -
实践步骤
msfconsole use auxiliary/scanner/http/dir_scanner set THREADS 20 set RHOSTS www.baidu.com exploit
可以找到如下目录
2. 使用traceroute命令进行路由侦查
- traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。
- TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
在cmd中输入命令tracert www.baidu.com
- 第一列表示生存时间,每途经一个路由器结点自增1。
- 第二、三、四列表示三次发送的ICMP包返回时间,共计3个,单位为毫秒ms,其中带有星号(*)的信息表示该次ICMP包返回时间超时。
- 第五列表示途经路由器的IP地址,如果有主机名,还会包含主机名。
在kali中输入命令sudo apt-get install traceroute
安装tracertoute
再输入traceroute www.baidu.com
- Traceroute/tracert路由追踪程序是用来追踪数据包到达网络主机所经过的路由信息的重要工具,虽然路由追踪效果一致,但实现原理略有不同:前者借助UDP协议,后者借助ICMP协议。
3. 利用搜索引擎搜索特定类型的文件
- 原理
filetype
能对搜索结果的文件类型进行限定,格式为检索词 filetype:文件类型
-
能在检索结果中获取检索词的补集,格式为检索词 - 词语
site
能限制检索结果的来源,格式为检索词 site:限制域名
(不要在“:”后的域名中输入“http:”和“www.”)inurl
能在网址中进行搜索,格式为检索词inurl:检索词
|
表示布尔逻辑中的或者(or)关系,使用格式为关键词1 | 关键词2
- 空格表示布尔逻辑中的交集(and)关系,使用格式为
关键词1 关键词2
- 高级搜索界面:高级搜索界面的入口在搜索引擎首页右上角
设置 -> 高级搜索
- 搜索到xls格式的Excel表格
在搜索框内输入site:edu.cn filetype:xls
单击即可下载查询文件内容
- 使用高级搜索
打开谷歌高级搜索设置,修改搜索条件
点击搜索,即可查询到相关信息
(二)DNS IP注册信息的查询
1. whois查询
- 原理
whois
用来进行域名注册信息查询。- 进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
- 在终端中输入指令
whois bilibili.com
查看域名的注册信息和3R注册信息
2. nslookup查询
- 原理
nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上面均可以使用这个命令。主要用来诊断域名系统 (DNS) 基础结构的信息。Nslookup(name server lookup)( 域名查询):是一个用于查询 Internet域名信息或诊断DNS 服务器问题的工具。
nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。
在终端中输入命令nslookup google.com
3. dig查询
- 原理
Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。Dig可以让你有效地查询DNS,最常用的查询是A记录,TXT(文本注释),MX记录,NS记录,或者任意综合查询。
在终端中输入命令dig google.com
除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识。例如:
- +[no]search:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
- +[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
- +[no]identify:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
- +[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
- ......
4. IP2Location地理位置查询
MAXMIND可以根据IP查询地理位置
利用ping www.google.com
可以获得其IP地址,为162.125.7.1
打开MAXMIND,输入IP地址并点击查询
而IP-ADDRESS可以查询到更详细的关于IP的信息
试一试
那我只能祝这个网站的全体员工户口本清空了,港独4000+
5. IP2反域名查询
SHODAN搜索引擎可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型
(三)基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)
1. 主机发现
(1)Ping命令
ping命令用发送ICMP报文的方法检测活跃主机。
在cmd中执行命令ping www.baidu.com
(2)metasploit中的arp_sweep模块
arp_sweep和udp_sweep都是metasploit中位于modules/auxiliary/scanner/discovery中的模块。arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机;udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息,执行命令如下:
sudo msfconsole
use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块
set RHOSTS 192.168.3.182/23 //用set进行hosts主机段设置
set THREADS 50 //加快扫描速度
run //执行run进行扫描
(3)nmap探索活跃主机
nmap相关参数如下:
-sS:TCP SYN扫描,可以穿透防火墙;
-sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口;
-sP:发送ICMP echo探测;
-sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐;
-sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测;
-O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息;
-sV:获取开放服务的版本信息;
-sn:用来探测某网段的活跃主机
输入命令nmap -sn 192.168.3.182/23
2. 端口扫描
(1)使用-sS选项进行TCP SYN扫描
nmap -sS -Pn 192.168.3.182
。其中-sS 是TCP SYN扫描,-Pn 是在扫描之前,不发送ICMP echo请求测试目标
(2)使用-sV查看目标机的详细服务信息
nmap -sV -Pn 192.168.3.182
。其中-sV 用来查看目标机的详细服务信息
3. OS及服务版本探测
Nmap对目标的操作系统进行识别:sudo nmap -O 192.168.3.182
4. 具体服务的查点
metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名。
(1)Telnet服务扫描:telnet命令用于登录远程主机,对远程主机进行管理。
sudo msfconsole
use auxiliary/scanner/telnet/telnet_version //进入telnet模块
set RHOSTS 192.168.3.182/23 //扫描网段
set THREADS 50 //提高查询速度
run
(2)SSH服务
SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来。
sudo msfconsole
use auxiliary/scanner/ssh/ssh_version //进入ssh模块
set RHOSTS 192.168.3.182/24 //扫描网段
set THREADS 50 //提高查询速度
run
(3)Oracle数据库服务查点
sudo msfconsole
use auxiliary/scanner/oracle/tnslsnr_version
show options
set RHOSTS 192.168.3.182/24
set THREADS 200
run
(四)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)
1. 安装Openvas
sudo apt-get update //更新软件库
sudo apt-get upgrade //升级软件
sudo apt-get dist-upgrade //升级系统
sudo apt-get clean
sudo apt-get install gvm //安装gvm
sudo gvm-setup //初始化gvm
gvm-check-setup //安装完整性检测
而我在安装完成后启动过程报错
ERROR: The default postgresql version is not 13 required by libgvmd
Error: Use pg_upgradecluster to update your postgres cluster
大概意思是说版本不兼容,应该是kali默认的postgresql版本是12版本,而gvm与12版本是不兼容的,所以需要更换为13版本的postgresql。以下是更换过程:
sudo apt install --yes postgresql-13
sudo systemctl stop postgresql@13-main
sudo systemctl daemon-reload
sudo pg_dropcluster 13 main --stop
//这一步完成后,系统将执行更换操作
sudo pg_upgradecluster 12 main
//最后可以升级一下
sudo apt-get upgrade gvm
//最后启动一下
sudo gvm-setup
//接下来是漫长的等待过程,保持网络畅通。。
这是用户名和密码
2. 运行gvm
输入sudo gvm-start
运行
3. 登陆账户
在火狐浏览器中打开GreenboneSecurityAssistant。输入之前保存的账号和密码
4. 新建Target,开始扫描
- 在菜单栏选择
Scans->Tasks
- 进入后点击黑色烟花
Task Wizard
新建一个任务向导,在栏里输入待扫描主机的IP地址192.168.43.213
,并单击Start Scans
确认,开始扫描
5. 查看信息,分析结果
选择Full and fast
,可以看到很多的漏洞族,选择一个漏洞族进行查看
点击进入NVT Families
查看详细结果,其中标注了漏洞的危险等级
点击任意查看详细
选择一个高风险的漏洞查看相关信息
-
Summary:远程主机缺少通过CESA-2020:0194公告发布的“apache commons beanutils”包的更新。
-
Insight:apachecommons BeanUtils库提供了访问以及修改任意javabean的属性。
-
Solution:安装官方提供的补丁。
四、问题回答
1. 哪些组织负责DNS,IP的管理。
-
互联网名称与数字地址分配机构(ICANN)负责IP地址的空间分配
-
地址支持组织(ASO)负责IP地址系统的管理
-
域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
-
协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
全球一共有5个地区性注册机构:
-
ARIN主要负责北美地区业务
-
RIPE主要负责欧洲地区业务
-
APNIC主要负责亚太地区业务
-
LACNIC主要负责拉丁美洲美洲业务
-
AfriNIC负责非洲地区业务
2. 什么是3R信息。
- 注册人(Registrant)
- 注册商(Registrar)
- 官方注册局(Registry)
3. 评价下扫描结果的准确性。
扫描结果比较准确,不过各种方式侧重点不同,需要根据自己的需求正确选择不同的扫描方式
五、实验总结与体会
通过这次实践,我认识到了信息搜集的容易性和对个人隐私的巨大威胁,对信息安全有了更深入的理解。我们平时应该提高防范意识,注意自己的信息安全,及时修复电脑漏洞。我们应该重视自身信息泄露问题的严重性,加强对电子产品安全的警惕性。
同时,我学会了使用工具搜索信息、扫描漏洞后对得到信息的分析。
安装Openvas安得也太久了。。。这软件真大。中间还一度报错,上网搜索了解决方案才搞定的。