软件安全性测试(连载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应用程序的权限比较高,所以可以通过命令行来提高自己的权限。