温馨提示,建议先看一下安装openvas那一步再开始做实验^^
根据刘老师的话说只要kali是最新版就能使用openvas,到底是不是我也不清楚了= =
一、实践原理
信息搜集:渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息
网络踩点(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.漏洞扫描-找到破解通道
二、实践步骤
主要实践内容:
- 各种搜索技巧的应用
- DNS IP注册信息的查询
- 基本扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
- 漏洞扫描:会扫,会看报告,会漏洞说明,会修补漏洞
1、各种搜索技巧的应用
(1)搜索网址目录结构
暴力破解即穷举、枚举,原理就是使用攻击者自己的用户名和密码字典一个一个去尝试能否登录,理论上只要字典足够大,暴破是一定能成功的。
可以通过metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块来实现,主要是暴力猜解,这里以dir_scanner为例。
操作流程:
- 在kali虚拟机上输入msfconsole
- 输入use auxiliary/scanner/http/dir_scanner指定使用dir_scanner模块
- set THREADS 20 设置攻击线程数为20
- set RHOSTS www.baidu.com指定对百度进行搜索
- exploit
(2)检测特定类型的文件
有些网站会链接特定通讯录、订单等敏感的文件,可以进行针对性的查找,如Google,site:XXX.com filetype:xls
原理:
- filetype对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”
- 能在检索结果中获取检索词的补集,格式为“检索词 -词语”
- site能限制检索结果的来源,格式为“检索词-词语”
- inurl能在网址中进行搜索,格式为“检索词 inurl:检索词”
- |表示布尔逻辑中的或者(or)关系,使用格式为“关键词1|关键词2”
- 空格表示布尔逻辑中的交集(and)关系,使用格式为“关键词1 关键词2”
操作: - 在浏览器中输入site:edu.cn filetype:xls 身份证号
- 点开任意一条搜索结果(使用百度搜索的结果可能会很少,可以使用必应搜索或搜狗搜索等),会自动下载一个excel文件
- 打开这个文件,你会发现如下内容(出于隐私考虑,对学号等信息应做打码处理):
(3)搜索E-Mail
metasploit中有search_email_collector,进行针对性的搜集
- 输入msfconsole打开msf
- 输入use auxiliary/gather/search_email_collector
- 输入show options 查看可进行的设置
- 如果你无法使用google搜索,那么输入set SEARCH_GOOGLE false,其他列出的搜索方式同理。
- 输入run开始收集
- 由于使用搜索引擎,所以并不保证100%可靠
(4)搜索存在sql注入的页面以及后台登录的页面
命令如:site:www.baidu.com inurl:login
,site:www.cnblogs.com inurl:.php?id=1
但是并不知道接下来怎么用。。。
(5)IP路由侦查
原理:traceroute命令利用ICMP协议定位用户计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量(每经过一个路由器,TTL值减1)通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器
使用tracert命令进行路由侦查
cmd中输入tracert www.baidu.com
2、DNS IP注册信息的查询
(1)whois查询
原理:whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
- 直接在kali中输入whois cnblogs.com即可查询,也可以在网上找到域名服务商网页进行查询
- 这里网址不加“www”,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。
(2)nslookup,dig域名查询
1、nslookup
原理:nslookup可以得到DNS解析服务器保存的Cache的结果,但并不一定是准确的
其中:Non-authoritative answer意为“未证实回答”,表示该域名的解析是从local DNS的cache中直接读出来的,而不是向真正负责这个域名的name server问来的
2、dig
原理:dig可以从官方DNS服务器上查询精确的结果。
直接在终端输入dig cnblogs.com
即可查询
dig命令还有许多的查询选项
- +[no]search:使用[不使用]搜索列表或resolv.conf中的域伪指令(如果有的话)定义的搜索列表。
- +[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
- +[no]identify:当启用+short选项时,显示[不显示]提供应答的IP地址和端口号
- +[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等。确定显示查询统计信息。
(3)IP2Location 地理位置查询
通过 www.maxmind.com 网站可以根据IP查询地理位置
方法如下:
- 对你要查询的网站进行ping操作来获取其ip地址,如ping www.cnblogs.com
- 打开www.maxmind.com ,在下方输入ip并查看结果
我这里IP地址为118.31.180.41
(4)IP2反域名查询
通过Shodan搜索引擎可以进行反域名查询,获得该IP的地理位置、服务占用端口号,以及提供的服务类型
打开该网页直接输入IP地址即可。
3、基本的扫描技术
(1)主机发现
1、ping命令
输入命令ping www.cnblogs.com
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:
红框中即扫出的另一台虚拟机
(2) 端口扫描
nmap相关参数如下:
namp -PU
nmap -PU是对UDP端口进行探测,与udp_sweep模块功能相同
(3)版本探测
1、nmap -O
nmap -O:对目标机的操作系统进行识别,获取目标机的操作系统和服务版本等信息
如图,输入nmap -O 172.20.10.6
进行探测(别忘了关防火墙qwq)
2、nmap -sV
nmap -sV:查看目标主机的详细服务信息
输入命令nmap -sV -Pn 172.20.10.6
(4)具体服务的查点
metasploit中有许多相关工具,大部分都在Scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名
1、telenet服务扫描
输入指令:use auxiliary/scanner/telnet/telnet_version
2、SSH服务扫描
指令就是把上面的telnet都改成ssh,后面的就不多赘述了,看图就行
3、开放代理检测
4、漏洞扫描————安装OpenVAS
(1)安装
安装步骤如下:
1、环境准备:
kali linux升级老三步,确保软件库更新到最新。
sudo apt-get update
//更新软件库
sudo apt-get upgrade
//升级软件
sudo apt-get dist-upgrade
//升级系统
sudo apt-get clean
最后clean一下,升级就OK了(你的界面估计会变,kali有可能会重启,不要惊慌,里面的东西不会丢失)
2、安装gvm
老版本的三步下载方式已经不行了,就是下图的东西已经不可以成功了:
需要新的方式进行下载:
第一步:sudo apt-get install gvm
第二步:sudo gvm-setup
//初始化gvm(这一步,呵呵,老子下了一宿才下完,希望大伙能早日看到这一步早点开始)
初始化完成,gvm自动创建账号admin、密码
安装完成后注意看自动生成的用户名和密码:User created with password 'xxxxx'.
3、安装完整性检测
sudo gvm-start
//打开
sudo gvm-check-setup
//检查安装
出现了is ok你就放心吧,已经下载完毕了。
(2)登录
输入生成的账户、密码即可登录
(3)新建扫描任务
- 选择菜单栏的Scans,然后点击Tasks
- 点击紫色图案新建一个任务向导,输入要扫描的主机地址,点击Start Scans开始扫描
- 扫描结果如下:
(4)分析扫描结果
-
点击扫描结果可以查看更详细的信息,并点击Full and fast
-
点击windows查看结果,显示的结果标注了漏洞的危险等级。
如图是详细信息,包括介绍、受到影响的软件或操作系统以及解决方案等
三、实验问题回答
1.哪些组织负责DNS,IP的管理。
全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
五个地区性注册机构:
- ARIN(北美地区)
- RIPE(欧洲地区)
- APNIC(亚太地区)
- LACNIC(拉丁美洲美洲)
- AfriNIC(非洲地区)
2.什么是3R信息
- Registrant注册人
- Registrar注册商
- Registry官方注册局
3.评价下扫描结果的准确性
- 前文有的地方提到过因为搜索引擎的运用所以结果可能不太准确。在实地对结果的分析中发现我能发现的结果还是比较准确的