基础入门-系统及数据库
前言
除去前面写到过的搭建平台中间件,网站源码外,容易受到攻击的还有操作系统,数据库,第三方软件平台等,其中此类攻击也能直接影响到WEB或服务器的安全,导致网站或服务器权限的获取
知识点
操作系统层面
背景
windows、linux
三个点:系统层面的漏洞/识别/漏洞的类型
(像ddos漏洞,就不需要太注意,我们需要注意能获取权限的哪些漏洞。)
基于操作系统扫描测试------Nessus OPenvas Goby
识别操作系统常见方法
对方有网站通过网站识别,没网站通过扫描工具进行扫描
(1)改变大小写看操作系统的类型
windows操作系统不区分大小写
linux区分大小写
(2)通过TTL来判断(TTL判断不准确,不建议使用)\
windows NT/2000 TTL:128
WINDOWS 95/98 TTL:32
UNIX TTL:255
LINUX TTL:64
WIN7 TTL:64
通过修改本机上的TTL值可以混淆攻击者的判断(当然,很少有用户会这么做)。
TTL值在注册表的位置是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters (通过在cmd命令里面输入:regedit,然后回车的方式可以打开注册表)。其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改DefaultTTL里面的TTL默认值,但不能大于十进制的255。
(3)通过扫描工具识别—nmap(最准确)
Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。它会扫描远程在线主机,该主机的操作系统,包过滤器和开放的端口。
Nmap操作系统的探测
使用nmap 验证多种漏洞
Kali-linux:nmap命令
通过添加-sV参数,能够得到服务版本信息
简要两者区别及识别意义
网站路径、大小写、文件在两个系统之间的适用性,兼容性,如果判断出是哪种操作系统,就会从操作系统所支持的漏洞类型下手
操作系统层面漏洞类型对应意义
漏洞类型的不同会造成利用这个漏洞的条件也不同
SQL注入漏洞
SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。
跨站脚本漏洞
跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。
XSS攻击使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScript等。XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。
弱口令漏洞
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则: (1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。
(2)口令长度不小于8个字符。
(3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
(4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
(6)口令不应该为用数字或符号代替某些字母的单词。
(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
(8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
HTTP报头追踪漏洞
HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息。当Web服务器启用TRACE时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用。
Struts2远程命令执行漏洞
Apache Struts是一款建立Java web应用程序的开放源代码架构。Apache Struts存在一个输入过滤错误,如果遇到转换错误可被利用注入和执行任意Java代码。
网站存在远程代码执行漏洞的大部分原因是由于网站采用了Apache Struts Xwork作为网站应用框架,由于该软件存在远程代码执高危漏洞,导致网站面临安全风险。CNVD处置过诸多此类漏洞,例如:“GPS车载卫星定位系统”网站存在远程命令执行漏洞(CNVD-2012-13934);Aspcms留言本远程代码执行漏洞(CNVD-2012-11590)等。
框架钓鱼漏洞(框架注入漏洞)
框架注入攻击是针对Internet Explorer 5、Internet Explorer 6、与 Internet Explorer 7攻击的一种。这种攻击导致Internet Explorer不检查结果框架的目的网站,因而允许任意代码像Javascript或者VBScript跨框架存取。这种攻击也发生在代码透过多框架注入,肇因于脚本并不确认来自多框架的输入。这种其他形式的框架注入会影响所有的不确认不受信任输入的各厂商浏览器和脚本。
文件上传漏洞
文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。
因此,在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。
应用程序测试脚本泄露
由于测试脚本对提交的参数数据缺少充分过滤,远程攻击者可以利用洞以WEB进程权限在系统上查看任意文件内容。防御此类漏洞通常需严格过滤提交的数据,有效检测攻击。
私有IP地址泄露漏洞
IP地址是网络用户的重要标示,是攻击者进行攻击前需要了解的。获取的方法较多,攻击者也会因不同的网络情况采取不同的方法,如:在局域网内使用Ping指令,Ping对方在网络中的名称而获得IP;在Internet上使用IP版的QQ直接显示。最有效的办法是截获并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP包头信息,再根据这些信息了解具体的IP。
简要操作系统层面漏洞影响范围
通过漏洞去获取权限,对操作系统形成干扰,使得某些服务崩溃
举例:MS17010
漏洞:需要前提条件、不需要前提条件,然后去获取权限,然后do something。
通过漏洞去获取权限,对操作系统形成干扰,使得某些服务崩溃
数据库层面
2.2.1 识别数据库类型常见方法
(1)数据库分类
小型数据库 Access
中型数据库 MySQL
大型数据库 Oracle、sqlServer
(2)通过网站及操作系统识别
一般情况下
ASP+Access,sql server (windows)
PHP+Mysql(linux、windows) 端口:3306
ASPX+Mssql(windows) 端口:
Jsp+Mssql(windows),oracle (linux、windows)端口:1521
Python+Mongodb (linux、windows)
......
access和mssql不支持linux操作系统
通过nmap工具扫描,查看端口开放情况
常见数据库端口号
sql server--------端口:1433
Mysql-------------端口:3306
oracle-------------端口:1521
Mongodb---------端口:27017
filtered:过滤。nmap不确定是端口否开放,过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙
open:端口开放。所以上述主机确定是mysql数据库
意义
数据库的结构功能都不一样,不同的数据库攻击以及漏洞都不一样。
数据库常见漏洞类型及攻击
弱口令攻击:通过弱口令登录到数据库中,得到网站管理员数据信息,登录网站后台,进行修改
简要数据库层面漏洞影响范围
通过漏洞,进行攻击,也可以获取数据库的相关权限,进行一系列的操作
第三方层面
如何判断有哪些第三方平台或软件
常见的第三方软件
jboss、phpmyadmin,vsftpd,teamview等
比如phpmyadmin的判定
• 通过网站扫描其目录来判定,如果网站探测不到,那就通过端口扫描。要多层次判断,不能仅限于端口扫描,根据不同的应用采取不同的方法。
• 如果nmap扫描不出来,可能是有第三方防护软件(安全狗)等拦截。还有可能是对方服务部署在内网。
根据不同的应用,用不同的方法去扫描探针,大部分使用的端口。
端口扫描也有缺陷
简要为什么要识别第三方平台或软件
通过识别第三方软件,来找出漏洞,从而进行渗透测试
常见第三方平台或软件漏洞类型及攻击
攻击多种多样
漏洞危害可以直接影响到权限。
简要第三方平台或软件安全测试的范围
其他
除去常规web安全及app安全测试外,类似服务器单一或复杂的其他服务(邮件,游戏,负载均衡等),也可以作为安全测试目标,此类目标测试原则只是少了web应用或其他安全问题,所以明确安全测试思路是很重要的
演示一某操作系统层面漏洞演示
演示二某操作系统层面漏洞演示
现在这个ubuntu的ip地址是
继续操作
演示三第三方应用安全漏洞
我们可以从vulhub上看到一些操作
修改之后