一、实验目标
- 掌握信息搜集的最基础技能与常用工具的使用方法
二、实验内容
-
各种搜索技巧的应用
-
DNS IP注册信息的查询
-
基本的扫描技术
- 主机发现
- 端口扫描
- OS及服务版本探测
- 具体服务的查点(以自己主机为目标)
-
漏洞扫描
- 会扫
- 会看报告
- 会查漏洞说明
- 会修补漏洞(以自己主机为目标)
三、基础知识
信息搜集概念
意义
- 渗透测试中首先要做的重要事项之一
目的
- 尽可能多的查找关于目标的信息——我们掌握的信息越多,渗透成功的机会越大
任务
- 搜集关于目标机器的一切信息——比如IP地址,开放的服务,开放的端口
方法
- 间接信息搜集 直接信息搜集 社会工程学
- 搜索引擎 扫描技术 社工技术
间接收集
概念
- 不接触目标
- 无物理连接
- 不访问目标
方法概述
- 使用第三方信息源
- 比如查询whois信息:假设我们的目标是一个在线的Web服务,那么通过whois查询可以获得它的ip地址,域名信息,子域信息,服务器位置信息等
- 数据窃听与分析:只有在特定环境下才可以实现
具体方法
- DNS记录扫描
- CropWatch:
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漏洞扫描器
- 是开放式漏洞评估系统,其核心部分是一个服务器。该服务器包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。
- 该工具是基于C/S(客户端/服务器),B/S(浏览器/服务器)架构进行工作,用户通过浏览器或者专用客户端程序来下达扫描任务,服务器端负载授权,执行扫描操作并提供扫描结果
- OpenVAS架构 一套完整的OpenVAS系统包括服务器端和端口端的多个组件
四、实验任务
1.各种搜索技巧的应用
①Google Hacking
- 进入谷歌黑客数据库,可以查看到最新的搜索方法目录,可以根据这些提示进行针对性搜索
- 也可以使用过滤器,进行快速查询
- 还可以查看shellcode等等内容
②搜索网址目录结构
-
原理:利用metasploit的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/Microsoft Excel的网址 - 点击某个网址,直接提示下载该文件,下载后打开,就可以获得某些信息了
- 如果我们想在格式搜索的基础上加关键字,可以用
site:edu.cn filetype:xls 关键词
来搜索与关键词有关的XLS文件
- 百度
- 随意打开下载的文档,即可显示信息
④使用traceroute命令进行路由侦查
- 原理:
- traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器
- 通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器
- 方法:本实验以侦查百度为例,输入命令
tracert www.baidu.com
- 从左到右的5条信息分别代表了:
- 生存时间(每途经一个路由器结点自增1)
- 三次发送的ICMP包返回时间(共计3个,单位为毫秒ms)
- 途经路由器的IP地址(如果有主机名,还会包含主机名)
- 其中带有
*
的信息表示该次ICMP包返回时间超时
2.DNS IP注册信息的查询
①whois查询
- 功能:进行域名注册信息查询
- 方法:在终端输入
whois baidu.com
可查询到3R注册信息,包括注册人的姓名、组织和城市等信息
②nslookup,dig域名查询
nslookup
- 功能:得到DNS解析服务器保存的Cache的结果
- 方法:在终端输入
nslookup baidu.com
dig
- 功能:从官方DNS服务器上查询精确的结果。
- 方法:在kali输入
dig baidu.com
(本实验以百度为例),可跟后缀+[no]search
:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表+[no]trace
:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答+[no]identify
:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号+[no]stats
:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息
③IP2Location 地理位置查询
www.maxmind.com
- 功能:可以根据IP查询地理位置
- 方法:
- 查看网站的IP地址
- 在网站
www.maxmind.com
下方输入IP,并点击前往查看结果
- 还可查询主机的地理位置
www.ip-adress.com
-
功能:这个网站可以查询到更详细的关于IP的信息
-
方法:网页初始界面会显示自己本机的IP地址,在左上角输入想要查询的IP,如61.135.169.125或61.135.169.121为百度的IP
④IP2反域名查询
- 功能:可以进行反域名查询,可以搜索到该IP的地理位置、服务占用端口号,以及提供的服务类型
- 方法:打开网站,输入IP地址,可以看到地理位置,端口号和提供的服务具体信息
⑤netcraft提供信息查询服务
- 进入地址
http://www.netcraft.com/
可以查看更加详细的信息
3.基本的扫描技术
①主机发现
ping
- ping命令可以发送ICMP数据包探测主机是否在线,在windows下输入
ping www.baidu.com
metasploit——arp_sweep、udp_sweep
- metasploit中的
modules/auxiliary/scanner/discovery
下的模块可以用于主机探测,其中包括模块arp_sweep和udp_sweep - arp_sweep:使用ARP请求枚举本地局域网络中的所有活跃主机
- msfconsole
- use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块
- show options //查询模块参数
- set RHOSTS 192.168.228.0/24 //用set进行hosts主机段设置
- set THREADS 50 //加快扫描速度
- run //执行run进行扫描
- udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息,具体步骤同arp
nmap -sn
- nmap -sn参数可以用来探测某网段的活跃主机
- 输入命令
nmap -sn 192.168.228.0/24
,查找到以下在线主机
②端口扫描
nmap -PU
- 输入命令
nmap -PU 192.168.228.0/24
,对UDP端口进行探测
metasploit——tcp
modules/auxiliary/scanner/portscan
下的tcp模块可以用于端口探测- 设置模块
use auxiliary/scanner/portscan/tcp
- 设置扫描地址
set RHOSTS 192.168.228.128
- 设置扫描端口范围
set PORTS 0-1024
- 进行扫描
exploit
- 设置模块
③操作系统版本探测
nmap -O
- 使用
nmap -O 192.168.43.98
进行操作系统版本探测
nmap -sV
- 使用
nmap -sV 192.168.43.98
查看目标主机的详细服务信息
④具体服务的查点
- 每个具体服务的探测都对应一个msf模块,在modules/auxiliary/scanner中进行搜索
telnet服务扫描
- 选用
auxiliary/scanner/telnet/telnet_version
模块 - 设置扫描网段
set RHOSTS 192.168.228.0/24
SSH服务
- 选用
auxiliary/scanner/ssh/ssh_version
模块 - 设置扫描网段
set RHOSTS 192.168.228.0/24
Oracle数据库服务查点
- 选用
auxiliary/scanner/oracle/tnslsnr_version
- 设置扫描网段
set RHOSTS 192.168.228.0/24
4.漏洞扫描——OpenVAS
①安装
- 使用
sudo apt-get install openvas
进行安装 - 输入
openvas-check-setup
检查状态 - 根据他的提示
FIX
一步一步安装
②主机扫描
- 输入
openvas-start
启动OpenVAS
- 输入用户名和密码成功登录
- 新建任务
scan->Tasks->Task Wizard
- 输入扫描主机IP
192.168.43.98
开始扫描
- 扫描完成后,点击下方IP地址查看扫描结果,发现风险等级达到了7.5...
- 进入扫描结果界面后,点击
Full and fast
进行详细查看漏洞族
- 进入漏洞族界面后,点击进入
Buffer overflow
查看详细结果
- 该界面标注了漏洞的危险等级,详细查看其中一个危险等级为10的
Python
漏洞
- 可以查看
summary
、affected Software/OS
、solution
我们可以知道远程攻击者可以通过在TCP flags字段中设置ECE位来绕过防火墙Summary
:是该漏洞的概述,这个python漏洞显示的是存在Integer缓冲区溢出的危险affected Software/OS
:受影响的软件或操作系统,这个python漏洞是Windows上的python 2.52Solution
:是关于该漏洞的解决方案,这个python漏洞显示的是将python升级至最新版
五、实验后回答问题
1.哪些组织负责DNS,IP的管理
- 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理
- ICANN负责协调管理DNS各技术要素以确保普遍可解析性,使所有的互联网用户都能够找到有效的地址
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
2.什么是3R信息
- 注册人(Registrant)
- 注册商(Registrar)
- 官方注册局(Registry)
3.评价下扫描结果的准确性
- 实验表明,总体来说,扫描结果比较准确
- 但使用msf和nmap扫描出的结果会有些差异,可能是不同的扫描方式都存在或多或少的缺陷
六、实验中遇到的问题
问题一:在进行网址目录结构搜索的过程中,出现Auxiliary failed
错误
解决一:发现是kali太久没用,网络出了问题,调整了网络后即可进行搜索
七、实验心得体会
这次实验做的是信息搜集与漏洞扫描,通过参考学姐的博客完成。通过本次实验,我掌握了各种对主机、端口、操作系统、网络服务进行扫描、信息搜集的方法,也使我对信息的分析方法有了一定的了解,收获很大,但自己仍存在很多不足,今后会更加努力地进行学习、实践。