渗透报告

 

 

 

 

 

 

 

 

 

 

 

山西移动XXX系统渗透测试报告

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

■ 版本变更记录

时间

版本

说明

修改人

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

目  录

一. 摘要 2

二. 服务概述 3

2.1 测试流程 3

2.2 风险管理及规避 3

2.3 测试收益 4

三. 测试目标说明 5

3.1 测试对象 5

3.2 测试账号 5

3.3 时间 5

3.4 参与测试人员 5

3.5 测试环境 6

3.6 工具及相关资源 6

四. 测试过程详述 7

4.1 目标信息探测 7

4.1.1 域名信息 7

4.1.2 Google Hacking 8

4.2 对系统的测试 10

4.2.1 端口扫描 10

4.2.2 服务信息探测 10

4.3 对应用的测试 11

4.3.2 认证和授权类 11

4.3.3 命令执行类 13

4.3.4 客户端攻击类 14

4.3.5 信息泄露类 14

五. 发现问题与建议 14

5.1 发现的问题 14

5.2 安全建议 15

5.3 其他建议 15

六. 测试结论 16

七. 感谢 17

附录A 威胁程度分级 17

附录B 相关资料 17

 

 

一.  摘要

经XXX的授权,启明星辰渗透测试小组对XXX下属XXX系统证书版进行了渗透测试。测试结果如下:

þ 严重问题:4个

þ 中等问题:1个

þ 轻度问题:1个

 

图 一.1  安全风险分布图

详细内容如下表:

表 一.1  发现问题详细内容

问题等级

种类

数量

名称

严重问题

4种

1个

登录XXX系统USBKey认证可绕过漏洞

1个

转账汇款USBKey认证可绕过漏洞

1个

转账汇款数字签名设计缺陷

1个

输入验证机制设计缺陷

中等问题

1种

1个

缺少第二信道认证

轻度问题

1种

1个

信息泄露

 

启明星辰认为被测系统当前安全状态是:远程安全系统

二.  服务概述

本次渗透测试工作是由启明星辰的渗透测试小组独立完成的。

启明星辰渗透测试小组在2010年4月xx日至2010年4月xx日对XXX的新XXX系统进行了远程渗透测试工作。在此期间,启明星辰渗透测试小组利用部分前沿的攻击技术;使用成熟的黑客攻击手段;集合软件测试技术(标准)对指定网络、系统做入侵攻击测试,希望由此发现网站、应用系统中存在的安全漏洞和风险点。

二.1  测试流程

启明星辰渗透测试服务流程定义为如下阶段:

信息收集此阶段中,启明星辰测试人员进行必要的信息收集,如 IP 地址、DNS 记录、软件版本信息、IP 段Google中的公开信息等。

渗透测试:此阶段中,启明星辰测试人员根据第一阶段获得的信息对网络、系统进行渗透测试。此阶段如果成功的话,可能获得普通权限。

缺陷利用:此阶段中,启明星辰测试人员尝试由普通权限提升为管理员权限,获得对系统的完全控制权。在时间许可的情况下,必要时从第一阶段重新进行。

成果收集:此阶段中,启明星辰测试人员对前期收集的各类弱点、漏洞等问题进行分类整理,集中展示。

威胁分析:此阶段中,启明星辰测试人员对发现的上述问题进行威胁分类和分析其影响。

输出报告:此阶段中,启明星辰测试人员根据测试和分析的结果编写直观的渗透测试服务报告。

 

图 二.1  渗透测试流程

二.2  风险管理及规避

为保障客户系统在渗透测试过程中稳定、安全的运转,我们将提供以下多种方式来进行风险规避。

对象的选择

为更大程度的避免风险的产生,渗透测试还可选择对备份系统进行测试。因为备份系统与在线系统所安装的应用和承载的数据差异较小,而其稳定性要求又比在线系统低,因此,选择对备份系统进行测试也是规避风险的一种常见方式。

时间的控制

从时间安排上,测试人员将将尽量避免在数据高峰时进行测试,以此来减小测试工作对被测试系统带来的压力。

另外,测试人员在每次测试前也将通过电话、邮件等方式告知相关人员,以防止测试过程中出现意外情况。

技术手段

启明星辰的渗透测试人员都具有丰富的经验和技能,在每一步测试前都会预估可能带来的后果,对于可能产生影响的测试(如:溢出攻击)将被记录并跳过,并在随后与客户协商决定是否进行测试及测试方法。

监控措施

针对每一系统进行测试前,测试人员都会告知被测试系统管理员,并且在测试过程中会随时关注目标系统的负荷等信息,一旦出现任何异常,将会停止测试。

工具的使用

在使用工具测试的过程中,测试人员会通过设置线程、插件数量等参数来减少其对系统的压力,同时还会去除任何可能对目标系统带来危害的插件,如:远程溢出攻击类插件、拒绝服务攻击类插件等等。

二.3  测试收益

通过实施渗透测试服务,可对贵方的信息化系统起到如下推进作用:

明确安全隐患点

渗透测试是一个从空间到面再到点的过程,测试人员模拟黑客的入侵,从外部整体切入最终落至某个威胁点并加以利用,最终对整个网络产生威胁,以此明确整体系统中的安全隐患点。

提高安全意识

如上所述,任何的隐患在渗透测试服务中都可能造成“千里之堤溃于蚁穴”的效果,因此渗透测试服务可有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险。

提高安全技能

在测试人员与用户的交互过程中,可提升用户的技能。另外,通过专业的渗透测试报告,也能为用户提供当前流行安全问题的参考。

三.  测试目标说明

三.1  测试对象

测试对象名称

相关域名、对应的URL

新XXX系统平台

证书版登录

https://xx.com/

IP地址:114.xx.xx.xx

三.2  测试账号

测试账号名称

相关详细信息

XXX系统账号

账号所有者:XX

ID:95xxPIN码:xx

XXX系统登录名zhdh 密码xx

 

账号所有者:xx

ID:95xx PIN码:XX

XXX系统登录名xx 密码xx

 

三.3  时间

测试工作的时间段

起始时间

2010-4-xx

结束时间

2010-4-xx

本份测试报告分析的各种安全风险,仅限定于在上述时间段内测试反馈信息的整理,不包括非上述时间段内的因系统调整、维护更新后出现的其他变化情况。

三.4  参与测试人员

参测人员名单

姓名

 

所属部门

 

联系方式

 

姓名

 

所属部门

 

联系方式

 

三.5  测试环境

本次渗透测试过程中,启明星辰测试小组使用过多个互联网IP地址开展的分析工作,在此通知XXX新XXX系统相关人员在对受测试的目标站点服务器、相应的网络入侵检测系统进行安全监控和日志分析时,排除以下IP地址产生的任何违规信息,以保证分析结果的准确有效。

IP地址

IP地址

IP地址

IP地址

211.103.182.2~32

58.31.79.19

暂无

暂无

三.6  工具及相关资源

表 三.1  测试工具:NetCat

工具名称

NetCat

工具用途

端口连接,数据提交

相关信息

http://joncraton.org/files/nc111nt.zip

表 三.2  测试工具:Nmap

工具名称

Nmap

工具用途

端口扫描,服务识别,操作系统指纹识别

相关信息

http://nmap.org/

表 三.3  测试工具:httprint

工具名称

Httprint

工具用途

通过远程http指纹判断http服务类型

相关信息

http://www.net-square.com/httprint/

表 三.4  测试工具:Tamper IE

工具名称

Tamper IE

工具用途

HTTP数据包修改、转发工具(Firefox插件)

相关信息

http://www.bayden.com/TamperIE/

表 三.5  测试工具:安全检测工具集

工具名称

启明星辰整理的安全检测工具集

工具用途

跨站及SQL注入测试、远程溢出测试、暴力破解测试、嗅探分析

相关信息

www.VENUS.com

 

在具体的分析过程中,启明星辰测试小组在微软的Windows平台上(涵盖2003/Vista),使用了IE(涵盖6.0/7.0/8.0)和Firefox浏览器对指定的测试对象进行的分析、校验、测试。因此,漏洞分析检测到的部分安全问题可能与特定的操作系统、软件版本有具体关系,提醒后期实施漏洞修复工作的人员特别注意其中的差异。

四.  测试过程详述

四.1  目标信息探测

四.1.1  域名信息

渗透测试人员首先通过nslookup对主机的IP地址、NS记录等信息的查询,对站点进行基本的信息探测:

Default Server:  xd-cache-1.xx.net

Address:  xx.xx.xx.xx

 

> xx.xx.com

 

//查询ns记录

> set type=ns

> xx.com

Server:  gjjline.bta.net.cn

Address:  202.106.0.20

 

Non-authoritative answer:

xx.com      nameserver = xx.com

> server hxns1.hua-xiabank.com

Default Server:  xx.com

Address:  123.127.xx.xx

 

//测试区域传输

> set type=axfr

> ls -d xx.com

ls: connect: No error

*** Can't list domain xx.com: Unspecified error

The DNS server refused to transfer the zone xx.com to your computer. If this

is incorrect, check the zone transfer security settings for xx.com on the DNS

server at IP address 123.xx.xx.xx.

 

//查询站点mx记录

> set type=mx

> xx.com

Server:  xx.com

Address:  123.xx.xx.xx

 

xx.com      MX preference = 5, mail exchanger = smtp.xx.com

xx.com      nameserver = xx.com

 

//检查版本信息

> set type=txt

> set class="chaos"

> version.bind

Server:  xx.com

Address:  123.xx.xx.xx

 

version.bind    text =

 

        "I don't know!!@!"

version.bind    nameserver = version.bind

 

 

WWW目标进行Whois的查询,下面是获取到的Whois信息如下:

xx.xx.com = [ 219.xx.xxx.xx ]

 

xxxxxx

 

四.1.2  Google Hacking

搜索错误的文件后缀

在此过程中,测试人员会对站点进行如下内容的搜索:

搜索内容

说明

site:xx.com inurl:jsp.bak

site:xx.xx.com inurl:jsp.bak

搜索站点中是否存在后缀为jsp.bak的文件,即,某些jsp的备份文件。

site:xx.com filetype:sql

site:xx.xx.com filetype:sql

搜索站点中是否存在SQL脚本文件

site: xx.com filetype:txt

site: xx.xx.com filetype:txt

查找站点中是否有包含敏感信息的txt文件

site: xx.com filetype:conf

site: xx.xx.com filetype:conf

查找站点中是否有包含敏感信息的conf文件

 

通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。

查找第三方组件或程序

在此过程中,测试人员会对站点进行如下内容的搜索:

搜索内容

说明

site:xx.com  inurl:/fckeditor/

site:xx.xx.com  inurl:/fckeditor/

搜索站点是否使用了fckeditor

site:xx.com inurl:jsp?id inurl:ewebeditor

site:xx.xx.com inurl:jsp?id inurl:ewebeditor

搜索站点是否使用了 eWebEditor

 

通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。

搜索错误的配置

在此过程中,测试人员会对站点进行如下内容的搜索:

搜索内容

说明

site:xx.com intitle:”index of /”

site:xx.xx.com intitle:”index of /”

搜索站点是否使用了列目录功能

site:xx.com intitle:"Apache Tomcat" intitle:"Error Report"

搜索站点是否存在TOMCAT错误信息,通过错误信息可判断TOMCAT版本

site:xx.com  inurl:"examples"

site:xx.com  inurl:"examples"

搜索站点中是否存在测试代码

 

通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。

四.2  对系统的测试

四.2.1  端口扫描

通过使用Nmap端口扫描工具对主机在Internet上的端口开放情况进行检查:

 

图 四.1  Nmap扫描结果

通过Nmap扫描报告,确认主机开放两个端口:

u TCP 21(用于FTP服务)

u TCP 443(用于WEB服务)

通过使用nc(NetCat)对主机的TCP 21进行端口连接性测试,发现在连接成功后较长时间内端口无反应:

 

图 四.2  使用nc连接TCP 21

再次通过使用ftp客户端对目标系统发起FTP连接请求,得到信息“Connection closed by remote host.”:

 

图 四.3  使用ftp客户端对目标主机进行验证

由此可确认TCP 21虽开放,但应在网络层有相关的ACL限制,因此无法从Internet对其FTP服务发起连接请求。

四.2.2  服务信息探测

通过端口扫描判断,远程目标主机仅有TCP 443端口(WEB应用服务)可用,因此,后继的渗透测试工作主要针对WEB应用本身及运行于WEB应用上的代码展开。

首先使用httprint对远程主机的WEB应用版本进行判断:

 

图 四.1  httprint判断远程WEB应用版本

根据httprint输出无法判断远程主机的WEB应用。

通过nc手工提交HTTP HEAD请求,依然无法获取到目标WEB应用版本信息。

 

图 四.2  使用nc提交HTTP HEAD请求

通过nc手工提交HTTP OPTIONS请求,依然无法获取到目标WEB应用版本信息。

 

图 四.3  使用nc提交HTTP OPTIONS请求

四.3  对应用的测试

测试人员根据WASC威胁分类,对应用程序的渗透测试从五个类型的安全方面进行测试,这五个威胁类型包括:认证和授权、命令执行、逻辑攻击、客户端攻击、信息泄露。

 

认证和授权类

命令执行类

暴力攻击

LDAP注入

认证不充分

SSI注入

会话定置

SQL注入

会话期限不充分

Xpath注入

凭证/会话预测

操作系统命令

授权不充分

格式字符串攻击

逻辑攻击类

缓冲区溢出

功能滥用

信息泄漏类

拒绝服务

可预测资源定位

客户端攻击类

路径遍历

跨站点脚本编制

目录索引

内容电子欺骗

信息泄露

图 四.1  WASC威胁分类图

由于XXX系统区别于普通的WEB系统,因此,测试人员根据XXX系统的特点,从实际出发采用手工测试的方法,对五大类威胁中的部分内容进行测试。

四.3.1  认证和授权类

由于XXX系统的特殊性,测试人员没有对XXX系统登录账号进行暴力攻击的尝试,而是采用使用证书方式对证书的有效性进行测试。

此次测试XX新XXX系统采用硬件USBKey(即XX),首先,测试人员对正常情况使用USBKey登录XXX系统进行记录和分析。

 

图 四.1  使用USBKey登录信息

没有插入USBKey的情况下,测试人员使用其他银行的“软证书”进行登录:

 

图 四.2  使用其他银行“软证书”进行登录

通过使用Tamper IE截取登录过程提交的数据包,来对登录信息进行替换。测试人员将使用其他银行“软证书”产生的信息替换为正常使用USBKey登录产生的dn和sn信息进行欺骗。Dn和sn信息如下:

Dn信息 :xx

Sn信息 :xx

(威胁点)

 

图 四.3  替换登录过程的数据信息

经上述测试发现,XXX证书版USBKey登录过程中,由XXX系统盾证书认证的相关信息SN为固定信息,任何提交者均可通过登录认证,存在“绕过登录XX新XXX系统的漏洞” (威胁点,附录像)。

同时,测试人员通过枚举表单的方式,同样可以获取登录过程中的相关认证信息,例如:dn、sn信息。

 

图 四.4  采用表单枚举的方式获取登录信息

在转账汇款测试时,测试人员通过上述方法同样可以绕过USBKey的使用,对行内转账、跨行汇款进行成功操作。同时,在转账汇款的测试中,测试人员发现:转账汇款的最后步骤即:“确认”操作时,由客户端向服务器端提交“签名加密代码”,该步骤存在设计缺陷,导致“签名加密代码”只要是正确途径产生的“代码”都可以进行成功交易,而与每次交易的信息无关。(威胁点,附录像)

测试人员第一次转账时使用xx的账号**7588卡号向xx账号的** 9600卡号进行汇款,在最后确认过程中记录“sigEncryptCode”值和“randomTokenVerifyTag”值。

 

图 四.5  记录向xx账号汇款“确认”过程中相关信息

然后,测试人员第二次转账时使用xx的账号**7588卡号向xx的账号的**2758卡号进行汇款,在最后确认过程中记录替换“sigEncryptCode”值为向xx账号汇款“确认”过程中记录的“sigEncryptCode”值。测试人员发现交易能够成功完成。

由以上事实,测试人员分析认为存在两种可能:第一种可能“sigEncryptCode”信息应为每次交易相关收款账号、金额等加密信息,若为此情况,在替换后并成功交易,测试用款应该转到第一次操作的xx账号中,而目前事实是依然转移到xx的账号中。第二种可能是“sigEncryptCode”信息不包含每次交易的收款账号、金额等加密信息,完全用于数字签名。因此“sigEncryptCode”值信息在最后确认中,只要是正确途径产生均可通过签名,因此可以任意替换。

四.3.2  命令执行类

在命令执行类的测试中,测试人员主要测试了SQL注入攻击。为了避免使用模糊测试给账户及XXX系统带来不可预料的影响,测试人员采用手工测试的方法。

测试人员对XX新XXX系统中的输入参数进行了部分测试,下面以测试登录用户名选项为例进行说明。

测试人员发现当前XX新新XXX系统大部分输入都只是客户端验证而非客户端服务端双向验证。(威胁点)

测试人员通过本地浏览器截取的方式对“自定义登录名称”进行修改,成功将zhdh登录名设置为下面三种情况:

情况一:“zh’||’dh”、“”;--”名称:含有SQL代码的违规名称;

 

图 四.1  设置的“zh’||’dh”登录名称

 

图 四.2  设置的“”;--”登录名称

情况二:“”名称:空字符的名称字段长度少于要求的4字符;

 

图 四.3  设置的空字符登录名称

情况三:“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz”名称:52字符名称长度大于要求的30字符。

 

图 四.4  设置的52字符长登录名称

 

经上述测试,测试人员发现当通过违法手段绕过客户端限制成功修改登录名称后,在XXX系统登录时由于使用不符合要求的登录名称将导致登录认证无法通过,造成系统的逻辑错误只能使用证件号方式登录。

当设置登录名空字符时,登录XXX系统要求输入用户名,致使无法登录;当设置超长登录名字符时,登录XXX系统提示用户名不符合要求,致使无法登录。

四.3.3  客户端攻击类

测试人员在测试跨站脚本时,发现当前XX新XXX系统对跨站检测非常严格,导致在测试时测试账号被列入黑名单,无法继续测试。

测试代码如下:"><IMG SRC=javascript:alert(1)>

 

图 四.1  对跨站输入进行强制退出

 

图 四.2  测试跨站代码被列入黑名单

四.3.4  信息泄露类

测试人员在对网站其他周边信息进行检查时发现,nbank.xx.com存在明显的web server默认页面,该处泄露了当前服务器web信息。如下:

 

图 四.1  Web server默认页面

五.  发现问题与建议

五.1  发现的问题

在本次渗透测试的XXX系统中,启明星辰渗透测试小组发现了部分严重等级风险漏洞,这一级别的漏洞将深刻威胁到系统安全性。已发现的XX新XXX系统主要安全问题如下:

XX新XXX系统发现的问题:

编号

发现问题

漏洞描述

威胁程度

1

登录XXX系统USBKey认证可绕过漏洞

不使用USBKey可通过截取key信息进行登录

严重

2

转账汇款USBKey认证可绕过漏洞

不使用USBKey可通过截取key信息进行登录

严重

3

转账汇款数字签名设计缺陷

任意合法数字签名信息均可完成汇款,数字签名信息可任意替换。

严重

4

输入验证机制设计缺陷

仅由客户端验证用户输入导致易绕过造成SQL注入

严重

5

缺少第二信道认证

仅依靠USBKey进行身份识别没有其他认证手段

中等

6

信息泄露

xx.xx.com存在默认web server泄露信息

轻度

五.2  安全建议

针对上述发现的安全问题,启明星辰建议立即采取措施进行修补,以避免发生安全问题,下面的安全建议措施可供参考:

编号

发现问题

安全建议

备注

1

登录XXX系统USBKey认证可绕过漏洞

更改当前USBKey实现机制

 

2

转账汇款USBKey认证可绕过漏洞

更改当前USBKey实现机制

 

3

转账汇款数字签名设计缺陷

在签名信息中加入动态信息,例如短信验证码、随机验证码、账号、金额等信息。

 

4

输入验证机制设计缺陷

采用客户端服务器端双向验证

 

5

缺少第二信道认证

增加第二信道认证途径,例如,手机短信验证码

 

6

信息泄露

删除默认web server页面,屏蔽默认web server版本信息

 

 

五.3  其他建议

针对WEB平台的渗透测试及定期的评估扫描等方式,均以暴露问题为目标,属于被动的安全手段,而这些方式也大大的增加开发和维护的成本,因此建议XXX针对如WEB程序这类个性化产品开发前就应做好安全的相关工作,建议XXX对定制开发的产品从以下几个方面进行相关的考察和关注:

u 制定以功能和安全兼顾的产品开发需求

u 将安全作为产品开发项目中的重要参考指标

u 产品开发过程中的人员安全意识和技能培训

u 完善的安全开发手册及通用的安全的代码库

u 在开发每阶段完成后的定期代码审计和扫描

u 产品整体上线前的审计工作和远程评估工作

六.  测试结论

 

经过本次远程渗透测试,我们对此远程系统的安全评价是 远程安全系统。

 

安全等级

资源内容描述

远程不安全系统

符合任何一个条件

存在一个或一个以上严重的安全问题,可直接导致系统受到破坏;

与其他非安全系统连接,同时存在相互信任关系(或帐号互通)的主机;

发现已经被人入侵且留下远程后门的主机;

存在3个以上中等安全问题的主机;

与其他非安全系统在一个共享网络中,同时远程维护明文传输口令;

完全不能抵抗小规模的拒绝服务攻击

远程一般安全系统

符合任何一个条件

存在一个或一个以上中等安全问题的主机;

开放过多服务,同时可能被利用来进行拒绝服务的主机;

与其他非安全系统直接连接,但暂时不存在直接信任(或帐号互通)关系;

远程维护通过明文的方式传递信息;

存在三个以上轻度安全问题的主机;

只能抵御最低级的拒绝服务攻击;

远程安全系统

符合全部条件

最多存在1-2个轻度安全问题;

远程维护方式安全;

与不安全或一般安全系统相对独立;

能抵挡一定规模的拒绝服务攻击。

表 六.1  安全等级评定

七.  感谢

在本次远程渗透测试过程中,启明星辰感谢XXXXXX系统部门的相关人员和在渗透测试过程中进行沟通、协调的相关部门和人员的大力配合,感谢相关人员对我们的测试提供XXX系统注册账号、等测试环境,以使得我们的工作能够顺利完成。对于您的大力支持我们深表感谢。

附录A 威胁程度分级

威胁程度的分级方式说明如下

严重:直接导致系统被入侵或数据被破坏,一旦发生,就是严重的安全事件。

中等:可能导致重要信息的泄漏或有较高可能导致系统被入侵控制。

轻度:敏感信息泄漏或存在轻微安全问题,一般不会产生严重的安全事件。

附录B 相关资料

《绕过登录XX新XXX系统的漏洞》录像

《绕过转账及数字签名设计缺陷》录像

 

posted @ 2019-03-02 21:17  fanyiaaa  阅读(841)  评论(0编辑  收藏  举报