2019-2020-2 20175335 丹增罗布 《网络对抗技术》Exp5 信息搜集与漏洞扫描
2019-2020-2 20175335 丹增罗布 《网络对抗技术》Exp5 信息搜集与漏洞扫描
一、实践原理
信息搜集:渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息!
网络踩点(Footprinting)
1.Web搜索与挖掘
- 公开渠道信息收集
- Google基本搜索
- Google高级搜索
- Google Hacking:通过网络搜索引擎查找特定安全漏洞或私密信息的方法
2.DNS和IP查询
-
DNS服务器和查询机制
- 权威DNS服务器:提供原始DNS映射信息
- 递归缓存DNS服务器:ISP提供接入用户使用
- 分布式缓存与递归查询的机制
-
DNS查询工具:nslookup/dig
3.网络拓扑侦查
- Traceroute——路由跟踪
- 探测网络路由路径,可用于确定网络拓扑
- 主机发送TTL从1开始逐步增1的IP包,网络路径上路由器返回ICMP TIME_EXECEEDED
- UNIX/Linux:traceroute
- windows:tracert
- 穿透防火墙:traceroute -S -p53 TSRGET_IP
- 图形化界面工具:VisualRoute,NeoTrace,Trout
- 网络侦察防范措施
- 路由器配置:只允许特定系统响应ICMP/UDP数据包
- 网络入侵检测系统/网络入侵防御系统:Snort
- 虚假响应信息:RotoRouter
网络扫描(Scanning)
1.主机扫描-找出IP段内活动主机
- ping扫描:
- 传统ICMP ping扫描
- ACK ping扫描
- SYN ping扫描
- UDP ping扫描
- ping扫射:同时扫描大量的IP地址段,以发现某个IP地址是否绑定活跃主机的扫描
2.端口扫描-找出某台主机开放的网络服务
- 连接目标主机的TCP和UDP端口,确定哪些服务正在运行即处于监听状态的过程
3.系统类型探查-决定攻击手段
- 通过各种不同操作系统类型和版本实现机制上的差异
- 明确操作系统类型和版本是进一步进行安全漏洞发现和渗透攻击的必要前提
4.漏洞扫描-找到破解通道
网络查点(Enumeration)
1.旗标抓取
2.网络服务查点
二、实践步骤
主要实践内容:
- 各种搜索技巧的应用
- DNS IP注册信息的查询
- 基本扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
- 漏洞扫描:会扫,会看报告,会漏洞说明,会修补漏洞
1.各种搜索技巧的应用
1.1 搜索网址目录结构
暴力破解即穷举、枚举,原理就是使用攻击者自己的用户名和密码字典一个一个去尝试能否登录,理论上只要字典足够大,暴破是一定能成功的。
可以通过metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块来实现,主要是暴力猜解,这里以dir_scanner为例。
操作流程:
- 在kali虚拟机上输入
msfconsole
- 输入
use auxiliary/scanner/http/dir_scanner
指定使用dir_scanner模块 set THREADS 20
设置攻击线程数为20set RHOSTS www.baidu.com
指定对百度进行搜索exploit
1.2 检测特定类型的文件
有些网站会链接特定通讯录、订单等敏感的文件,可以进行针对性的查找,如Google,site:XXX.com filetype:xls
- 原理:
filetype
对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”-
能在检索结果中获取检索词的补集,格式为“检索词 -词语”site
能限制检索结果的来源,格式为“检索词-词语”inurl
能在网址中进行搜索,格式为“检索词 inurl:检索词”|
表示布尔逻辑中的或者(or)关系,使用格式为“关键词1|关键词2”- 空格表示布尔逻辑中的交集(and)关系,使用格式为“关键词1 关键词2”
- 操作:
- 在浏览器中输入
site:edu.cn filetype:xls 英语
- 点开任意一条搜索结果(使用百度搜索的结果可能会很少,可以使用必应搜索或搜狗搜索等),会自动下载一个excel文件
- 打开这个文件,你会发现如下内容(出于隐私考虑,对学号、姓名等信息应做打码处理):
- 在浏览器中输入
1.3 搜索E—Mail
metasploit中有search_email_collector,进行针对性的搜集。
操作:
- 输入
msfconsole
打开msf - 输入
use auxiliary/gather/search_email_collector
- 输入
show options
查看可进行的设置 - 如果你无法使用google搜索,那么输入
set SEARCH_GOOGLE false
,其他列出的搜索方式同理。 - 输入
run
开始收集 - 由于使用搜索引擎,所以并不保证100%可靠。
1.4 搜索存在sql注入的页面以及后台登录的页面
命令如:site:www.baidu.com inurl:login /
site:www.cnblogs.com inurl:.php?id=1
1.5 IP路由侦查
原理:traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量(每经过一个路由器,TTL值减1)通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
在windows中命令是tracert。 Mac中命令是traceroute。
2.DNS IP注册信息的查询
2.1 whois查询
原理:whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
- 直接在kali中输入
whois cnblogs.com
即可查询,也可以在网上找到域名服务商网页进行查询 - 这里网址不加“www”,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
2.2 nslookup,dig域名查询
2.2.1 nslookup
原理:nslookup
可以得到DNS解析服务器保存的Cache的结果,但并不一定是准确的!
其中:Non-authoritative answer
意为“未证实回答”,表示该域名的解析是从local DNS
的cache中直接读出来的,而不是向真正负责这个域名的name server
问来的!
2.2.2 dig
原理:dig
可以从官方DNS服务器上查询精确的结果。
直接在终端输入dig cnblogs.com
即可查询!
dig命令还有许多的查询选项,
+ [no]search
:使用[不使用]搜索列表或resolv.conf中的域伪指令(如果有的话)定义的搜索列表。+[no]trace
:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。+[no]identify
:当启用+short选项时,显示[不显示]提供应答的IP地址和端口号+[no]stats
:该查询选项设定显示统计信息:查询进行时,应答的大小等。确定显示查询统计信息。
2.3 IP2Location地理位置查询
通过www.maxmind.com网站可以根据IP查询地理位置.
方法如下:
- 对你要查询的网站进行ping操作来获取其ip地址,
ping www.cnblogs.com ping www.baidu.com
- 打开www.maxmind.com,在下方输入ip并查看结果.
2.4 IP2反域名查询
通过Shodan搜索引擎可以进行反域名查询,获得该IP的地理位置、服务占用端口号,以及提供的服务类型。
打开该网页直接输入IP地址即可。
3.基本的扫描技术
3.1 主机发现
3.1.1 ping命令
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/XXX_sweep
启用相映模块 -
set RHOSTS xxxxxx
设定主机段 -
set THREADS 50
设置线程数为50,加快扫描速度 -
run
启动扫描 -
arp_sweep:
- udp_sweep:
3.2 端口扫描
nmap相关参数如下:
-sS:TCP SYN扫描,可以穿透防火墙; -sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口; -sP:发送ICMP echo探测; -sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐; -sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测; -O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息; -sV:获取开放服务的版本信息;
namp -PU
nmap -PU
是对UDP端口进行探测,与udp_sweep模块功能相同。
3.3 版本探测
3.3.1 nmap -O
nmap -O:对目标机的操作系统进行识别,获取目标机的操作系统和服务版本等信息。
输入namp -O 192.168.1.5
目标机的操作系统: Linux
3.3.2 nmap -sV
nmap -sV:查看目标主机的详细服务信息.
3.4 具体服务的查点
metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名
3.4.1 telenet服务扫描
3.4.2 SSH服务扫描
3.4.3 开放代理检测
4. 漏洞扫描———安装OpenVAS
4.1 安装
安装步骤如下:(时间较久)https://blog.csdn.net/ericzhangyuncsdn/article/details/79261356
apt-get update apt-get dist-upgrade apt-get install openvas openvas-setup
安装完成后注意看自动生成的用户名和密码:User created with password '******'.
这里可以使用openvas-check-setup
检查安装。
输入用户名和密码成功登录:
- 新建任务
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地址管理。
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
五个地区性注册机构:
- ARIN(北美地区)
- RIPE(欧洲地区)
- APNIC(亚太地区)
- LACNIC(拉丁美洲美洲)
- AfriNIC(非洲地区)
2.什么是3R信息
- Registrant注册人
- Registrar注册商
- Registry官方注册局
3.评价下扫描结果的准确性
前文有的地方提到过因为搜索引擎的运用所以结果可能不太准确。在实地对结果的分析中发现我能发现的结果还是比较准确的。
实验中遇到的问题:
在进行网址目录结构搜索的过程中,出现Auxiliary failed
错误。
解决一:发现是kali太久没用,网络出了问题,调整了网络后即可进行搜索。
实验体会:
这次实验做的是信息搜集与漏洞扫描,通过参考学姐的博客完成。通过本次实验,我掌握了各种对主机、端口、操作系统、网络服务进行扫描、信息搜集的方法,也使我对信息的分析方法有了一定的了解,收获很大。