一、实践过程
1.各种搜索技巧的应用
1.1 搜索网址目录结构
使用 metasploit 的 brute_dirs,dir_listing,dir_scanner等辅助模块,主要是暴力猜解。原理是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的。
-
dir_scanner 模块
use auxiliary/scanner/http/dir_scanner set RHOST 47.94.47.203 set RPORT 8080 set THREADS 50 // 设定扫描线程数 exploit
-
dir_listing 模块
use auxiliary/scanner/http/dir_listing set RHOST 47.94.47.203 set RPORT 8080 set THREADS 50 exploit
-
brute_dirs 模块
use auxiliary/scanner/http/brute_dirs set RHOST 47.94.47.203 set RPORT 8080 set THREADS 50 exploit
1.2 检测特定类型的文件
有些网站会链接通讯录,订单等敏感的文件,可以进行针对性的查找。
-
解释:
- site能限制检索结果的来源,格式为“检索词-词语”
- filetype对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”
-
在浏览器中输入
site:edu.cn filetype:xls 身份证号
点击搜索结果可下载 excel 文件(涉及个人信息,就不放图了)
1.3 路由侦察
-
Windows 使用 tracert 命令进行路由侦查
tracert www.baidu.com
从左到右分别代表了:
生存时间,每途经一个路由器结点自增1; 三次发送的ICMP包返回时间,共计3个,单位为毫秒ms。其中带有星号(*)的信息表示该次ICMP包返回时间超时; 途经路由器的IP地址,如果有主机名,还会包含主机名。
-
linux 下使用
traceroute
命令进行路由侦查traceroute -n -m 20 -q 4 -w 3 www.baidu.com
参数的意义如下:
-n:显示 IP 地址,不查主机名; -m:设置跳数; -q:每个网关发送的数据包个数 -w:设置对外发探测包的等待响应时间(秒)
2.DNS IP 注册信息的查询
2.1 whois 查询
whois
就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)
-
输入
whois cnblogs.com
即可查询
2.2 nslookup、dig域名查询
nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的
dig可以从官方DNS服务器上查询精确的结果
dig
命令还有查询选项
+ [no]search:使用[不使用]搜索列表或resolv.conf中的域伪指令(如果有的话)定义的搜索列表。
+[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
+[no]identify:当启用+short选项时,显示[不显示]提供应答的IP地址和端口号。
+[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等。确定显示查询统计信息。
2.3 IP2Location 地理位置查询
-
到网站 maxmind 即可通过 ping 得的 IP 地址,查询地理位置
可以看到,我这台服务器的地址在杭州,由阿里巴巴运行
-
也可以到 shodan 进行反域名查询
查出来的信息还是相当多的,系统版本,nginx 服务都查出来了
3.基本的扫描技术
3.1 主机发现
-
nmap
输入 nmap -sn 192.168.131.129/24 扫描当前局域网的活跃主机
-
metasploit的
arp_sweep
模块和udp_sweep
模块- udp_sweep使用UDP数据包探测,除了可以探测到存活主机之外,还可以获得主机名称信息
- arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机
命令:
use auxiliary/scanner/discovery/xxx_sweep show options set RHOSTS 192.168.131.129/24 set THREADS 100 run
-
udp_sweep
-
arp_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
为例,是对UDP端口进行探测,与udp_sweep模块功能相同此时我打开了另一台虚拟机,可以看到
192.168.131.130
的扫描结果 -
metasploit的端口扫描模块
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.131.129 exploit
并没有扫描到开放端口
3.3 版本探测
-
操作系统侦测
输入
sudo nmap -O 192.168.131.129
,指定 nmap 进行 OS 探测 -
服务侦测
nmap -sV 查看目标主机的详细服务信息
输入
nmap -sV -Pn 192.168.131.129
只看到 apache 服务
3.4 具体服务的查点
-
telenet 服务扫描
use auxiliary/scanner/telnet/telnet_version set RHOSTS 192.168.131.130/24 set THREADS 100 run
发现这个网段里的机器 23 端口都无法连接
-
SSH 服务扫描
use auxiliary/scanner/ssh/ssh_version set RHOSTS 47.94.47.203 run
我扫描的是我的阿里云主机,可以看到 ssh 服务的信息和系统的版本
4.漏洞扫描
4.1 docker 安装 OpenVAS
sudo docker pull mikesplain/openvas
sudo docker run -d -p 443:443 -p 9090:9090 -v $(pwd)/data:/var/lib/openvas/mgr/ -e OV_PASSWORD=xxxxxx -e PUBLIC_HOSTNAME=192.168.131.129 --name openvas mikesplain/openvas
// PUBLIC_HOSTNAME 填自己主机ip
// 数据映射到了 /var/lib/openvas/mgr/ 位置
// OV_PASSWORD 可以设置admin密码
su root // 下面操作使用 sudo 会出错
docker exec -it openvas bash // 运行容器 bash
openvasmd --user=admin --new-password=admin
4.2 新建扫描任务
-
浏览器输入
https://${你的主机ip}/
,输入上文设定的用户名及密码,登录 OpenVAS -
点击顶部菜单栏 Scans 中的 Tasks
-
点击 Task Wizard 新建任务向导,输入要扫描的IP,我扫描的是我的阿里云服务器
-
扫描结束
我的服务器高危…………
4.3 扫描结果分析
-
点击 Name 下名称,查看扫描的详细信息。点击
Full and fast
。 -
选择第二项 Amazon Linux Local Security Checks
-
选择一个严重程度为 10 的
Amazon Linux Local Check: ALAS-2011-16
可以看到
- Vulnerability Insight:在Linux内核中发现了多个缺陷 - Solution:运行yum update kernel更新系统,并重启
-
再选择一个 10 级严重的
Amazon Linux Local Check: ALAS-2012-111
大致概括一下。这是
OpenJPEG
( jpeg 编码器 )存在的输入认证缺陷,会导致堆溢出。攻击者可以发送一个经过特殊处理的图片,以导致应用程序崩溃,或获得用户权限。解决办法是升级
OpenJPEG
-
再看一个 10 级严重的
Amazon Linux Local Check: ALAS-2012-140
libproxy
处理代理配置文件pac
时存在的缓冲区溢出漏洞。中间人攻击者,托管pac
文件的恶意服务器可以利用这个漏洞导致使用libproxy
的程序崩溃解决方法是更新
libproxy
-
我发现,这些 10 级漏洞大多都挺古老,升级就可以解决问题
二、实验问答
1、哪些组织负责DNS,IP的管理
全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理
- 地址支持组织(ASO)负责IP地址系统的管理
- 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
- 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配
五个地区性注册机构:
- ARIN(北美地区)
- RIPE(欧洲地区)
- APNIC(亚太地区)
- LACNIC(拉丁美洲美洲)
- AfriNIC(非洲地区)
2、什么是3R信息
- Registrant:注册人
- Registrar:注册商
- Registry:官方注册局
3、评价下扫描结果的准确性
扫描结果大体上还是准确的。但nmap -O 并未准确探测出操作系统。
三、实验体会
我的服务器被扫出大量 9,10 级漏洞。其实 apt dist-upgrade
就可以解决绝大多数问题,最新版本大都修复了这些漏洞
这次实验貌似是最简单的一次,也算是对以前接触的各种工具的一个总结
来源:oschina
链接:https://my.oschina.net/u/4270607/blog/4260416