软件安全性测试(连载23)

  • 2020 年 2 月 19 日
  • 筆記

2.17 ARP欺骗

ARP(Address Resolution Protocol)即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。如图4-54所示。

图4-54 ARP

可以通过下面命令显示ARP信息。

•arp -a。显示ARP缓存表。

C:WINDOWSsystem32>arp -a

接口: 192.168.0.104 — 0x4

Internet 地址 物理地址 类型

192.168.0.1 f4-83-cd-a6-de-e3 动态

192.168.0.110 dc-ee-06-18-74-a5 动态

192.168.0.255 ff-ff-ff-ff-ff-ff 静态

224.0.0.2 01-00-5e-00-00-02 静态

224.0.0.22 01-00-5e-00-00-16 静态

224.0.0.251 01-00-5e-00-00-fb 静态

224.0.0.252 01-00-5e-00-00-fc 静态

239.255.255.250 01-00-5e-7f-ff-fa 静态

255.255.255.255 ff-ff-ff-ff-ff-ff 静态

接口: 192.168.64.1 — 0x11

Internet 地址 物理地址 类型

192.168.64.254 00-50-56-e3-78-38 动态

192.168.64.255 ff-ff-ff-ff-ff-ff 静态

224.0.0.2 01-00-5e-00-00-02 静态

224.0.0.22 01-00-5e-00-00-16 静态

224.0.0.251 01-00-5e-00-00-fb 静态

224.0.0.252 01-00-5e-00-00-fc 静态

239.255.255.250 01-00-5e-7f-ff-fa 静态

255.255.255.255 ff-ff-ff-ff-ff-ff 静态

•arp -s IP地址 MAC地址。建立ARP。

C:WINDOWSsystem32> arp -s 192.168.0.110dc-ee-06-18-74-a5

C:WINDOWSsystem32>

•arp -d。清空所有ARP。

C:WINDOWSsystem32> arp –d

•arp -d IP地址。清空某个ARP。

C:WINDOWSsystem32> arp –d 192.168.0.110

ARP欺骗(ARP spoofing),是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。造成ARP欺骗有以下几个原因

•ARP协议是无状态的,主机可以任意地发送ARP响应包。

•由于机器不知道其他机器的MAC地址,所以需要发ARP包,但是ARP包是可以伪造的。

•没有检查IP与MAC是否匹配的机制。

解决ARP欺骗可以采用如下方法。

•IP-MAC静态绑定。

但是这种方式对于大型的网络是不可行的,因为需要经常更新每台计算机的ARP表。

•使用DHCP snooping。

网上设备可借由DHCP保留在网上的各个计算机的MAC地址,在伪造的ARP数据包发出时即可侦测到。此方式已在一些厂牌的设备产品所支持。

•有一些软件可监听网上的ARP回应。

如果侦测出有不正常变动时可发送邮箱通知管理者。例如UNIX平台的Arpwatch以及Windows上的XArp v2或一些网上设备的Dynamic ARP inspection功能。

2.18 安全响应头信息

使用安全响应头可以有效地保护网站的安全。安全响应头信息如表4-13所示。这里仅给一个列表,具体请参见本章其他部分或《Web漏洞防护》[16]。

表4-13 安全响应头信息

简称

英文全名

含义

HSTS

HTTP Strict Transport Security

防止协议降级、流量劫持等攻击(参照第2.14-3节)

HPKP

Public Key Pinning Extension for HTTP

用于HTTPS网站防御证书替换攻击(参照第2.14-3节)

X-Frame-Options

限制Web中Frame加载内容(参照第2.3节)

X-XSS-Protection

启动浏览器中的XSS过滤器(参照第2.1节)

X-Content-Type-Options

阻止浏览器响应内容解析与Content-Type声明不一致内容

CSP

Content-Security-Policy

Web应用程序客户端能够加载白名单,如JS、CSS(参照第2.1节)

Referrer-Policy

指定Referrer头信息的相关配置

Expect-CT

指定浏览器或客户端验证签名的时间戳

X-Permitted-Cross-Domain-Policies

指定客户端能够访问跨域策略文件(一种XML文件)的类型。

Cache-Control

浏览器或代理缓存机制(参照第2.14-3节)

检测网站是否使用安全响应头的工具有基于Python2.X的hsecscan和在线测试网站https://cyh.herokuapp.com/cyh。

2.19 其他高级技术

其他高级技术包括拖库、暴力破解、旁注攻击和提权,在这里仅进行简单地介绍。

1. 拖库

拖库是指从数据库中导出数据。在安全领域,它被用来指网站遭到入侵后,黑客窃取其数据库中的数据。利用SQL注入就可以完成“拖库”的行为之一。以下手段可以有效地防止拖库。

•对密码进行分级管理,对于一些重要的账号单独设置密码,并且采用加盐后利用安全的散列函数进行有效的存储。

•定期(每三到六个月,或更短周期)修改密码,可有效避免网站数据库泄露。

•不要使用工作邮箱注册网络账号,以免密码泄露后造成企业信息安全。

•加强网站数据库加密保护工作。

•对网站漏洞检测、网站挂马、网站篡改进行有效的实时监控。

•不让电脑自动“保存密码”,不随意在第三方网站输入账号和密码。即便是个人电脑,也要定期在所有已登录站点手动强制注销进行安全退出。

•加强程序代码安全,防止SQL注入。

2. 暴力破解

暴力破解的说白了就是穷举法,通过一组定义好的数据来对系统进行攻击。比如通过对已知的管理员用户名,进行对其登录口令的大量尝试,或者对用户名和密码都采用暴力破解。利用第11.1.1-4节 Burp Suite工具中的测试器(Intruder)功能进行暴力破解。

防止暴力破解可以采用账户锁定、封锁多次登录的IP地址和验证码等手段。

3. 旁注攻击

旁注攻击就是说在攻击目标时,对目标网站“无法下手”找不到目标网站的漏洞,那么攻击者就可以通过在与目标站点同一服务器下的站点渗透,从而获取目标站点的权限,这过程就是旁注攻击。

旁注攻击基本上出现在一些小型网站,他们在一台机器上运行多个网站,甚至数个网站共享一个数据库。通过IP逆向查询经常是旁注攻击使用的首要手段。

4. 提权

提权,就是提高自己在服务器中的权限。比如在windows用户的权限是guest,然后通过“提权”后就变成超级管理员,拥有了管理Windows的所有权限。

在第2.10节讲到的命令行漏洞往往可以提权,由于Web应用程序的权限比较高,所以可以通过命令行来提高自己的权限。