渗透测试测试报告.docx
《渗透测试测试报告.docx》由会员分享,可在线阅读,更多相关《渗透测试测试报告.docx(20页珍藏版)》请在冰豆网上搜索。
渗透测试测试报告
XX移动XXX系统渗透测试报告
■版本变更记录
时间
版本
说明
修改人
附录A威胁程度分级17
附录B相关资料17
一.摘要
经XXX的授权,XX科技渗透测试小组对XXX下属XXX系统证书版进行了渗透测试。
测试结果如下:
☑严重问题:
4个
☑中等问题:
1个
☑轻度问题:
1个
图一.1安全风险分布图
详细内容如下表:
发现问题详细内容
问题等级
种类
数量
名称
严重问题
4种
1个
登录XXX系统USBKey认证可绕过漏洞
1个
转账汇款USBKey认证可绕过漏洞
1个
转账汇款数字签名设计缺陷
1个
输入验证机制设计缺陷
中等问题
1种
1个
缺少第二信道认证
轻度问题
1种
1个
信息泄露
XX科技认为被测系统当前安全状态是:
远程不安全系统
二.服务概述
本次渗透测试工作是由XX科技的渗透测试小组独立完成的。
XX科技渗透测试小组在2010年4月xx日至2010年4月xx日对XXX的新XXX系统进行了远程渗透测试工作。
在此期间,XX科技渗透测试小组利用部分前沿的攻击技术;使用成熟的黑客攻击手段;集合软件测试技术(标准)对指定网络、系统做入侵攻击测试,希望由此发现网站、应用系统中存在的安全漏洞和风险点。
三.测试流程
XX科技渗透测试服务流程定义为如下阶段:
信息收集:
此阶段中,XX科技测试人员进行必要的信息收集,如IP地址、DNS记录、软件版本信息、IP段、Google中的公开信息等。
渗透测试:
此阶段中,XX科技测试人员根据第一阶段获得的信息对网络、系统进行渗透测试。
此阶段如果成功的话,可能获得普通权限。
缺陷利用:
此阶段中,XX科技测试人员尝试由普通权限提升为管理员权限,获得对系统的完全控制权。
在时间许可的情况下,必要时从第一阶段重新进行。
成果收集:
此阶段中,XX科技测试人员对前期收集的各类弱点、漏洞等问题进行分类整理,集中展示。
威胁分析:
此阶段中,XX科技测试人员对发现的上述问题进行威胁分类和分析其影响。
输出报告:
此阶段中,XX科技测试人员根据测试和分析的结果编写直观的渗透测试服务报告。
图三.1渗透测试流程
四.风险管理及规避
为保障客户系统在渗透测试过程中稳定、安全的运转,我们将提供以下多种方式来进行风险规避。
对象的选择
为更大程度的避免风险的产生,渗透测试还可选择对备份系统进行测试。
因为备份系统与在线系统所安装的应用和承载的数据差异较小,而其稳定性要求又比在线系统低,因此,选择对备份系统进行测试也是规避风险的一种常见方式。
时间的控制
从时间安排上,测试人员将将尽量避免在数据高峰时进行测试,以此来减小测试工作对被测试系统带来的压力。
另外,测试人员在每次测试前也将通过电话、邮件等方式告知相关人员,以防止测试过程中出现意外情况。
技术手段
XX科技的渗透测试人员都具有丰富的经验和技能,在每一步测试前都会预估可能带来的后果,对于可能产生影响的测试(如:
溢出攻击)将被记录并跳过,并在随后与客户协商决定是否进行测试及测试方法。
监控措施
针对每一系统进行测试前,测试人员都会告知被测试系统管理员,并且在测试过程中会随时关注目标系统的负荷等信息,一旦出现任何异常,将会停止测试。
工具的使用
在使用工具测试的过程中,测试人员会通过设置线程、插件数量等参数来减少其对系统的压力,同时还会去除任何可能对目标系统带来危害的插件,如:
远程溢出攻击类插件、拒绝服务攻击类插件等等。
五.测试收益
通过实施渗透测试服务,可对贵方的信息化系统起到如下推进作用:
明确安全隐患点
渗透测试是一个从空间到面再到点的过程,测试人员模拟黑客的入侵,从外部整体切入最终落至某个威胁点并加以利用,最终对整个网络产生威胁,以此明确整体系统中的安全隐患点。
提高安全意识
如上所述,任何的隐患在渗透测试服务中都可能造成“千里之堤溃于蚁穴”的效果,因此渗透测试服务可有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险。
提高安全技能
在测试人员与用户的交互过程中,可提升用户的技能。
另外,通过专业的渗透测试报告,也能为用户提供当前流行安全问题的参考。
六.测试目标说明
七.测试对象
测试对象名称
相关域名、对应的URL
新XXX系统平台
证书版登录
IP地址:
114.xx.xx.xx
八.测试账号
测试账号名称
相关详细信息
XXX系统账号
账号所有者:
XX
ID:
95xxPIN码:
xx
XXX系统登录名zhdh密码xx
账号所有者:
xx
ID:
95xxPIN码:
XX
XXX系统登录名xx密码xx
九.时间
测试工作的时间段
起始时间
2010-4-xx
结束时间
2010-4-xx
本份测试报告分析的各种安全风险,仅限定于在上述时间段内测试反馈信息的整理,不包括非上述时间段内的因系统调整、维护更新后出现的其他变化情况。
一十.参与测试人员
参测人员名单
姓名
所属部门
联系方式
姓名
所属部门
联系方式
一十一.测试环境
本次渗透测试过程中,XX科技测试小组使用过多个互联网IP地址开展的分析工作,在此通知XXX新XXX系统相关人员在对受测试的目标站点服务器、相应的网络入侵检测系统进行安全监控和日志分析时,排除以下IP地址产生的任何违规信息,以保证分析结果的准确有效。
IP地址
IP地址
IP地址
IP地址
暂无
暂无
一十二.工具及相关资源
测试工具:
NetCat
工具名称
NetCat
工具用途
端口连接,数据提交
相关信息
http:
//joncraton.org/files/nc111nt.zip
测试工具:
Nmap
工具名称
Nmap
工具用途
端口扫描,服务识别,操作系统指纹识别
相关信息
http:
//nmap.org/
测试工具:
httprint
工具名称
Httprint
工具用途
通过远程http指纹判断http服务类型
相关信息
-
测试工具:
TamperIE
工具名称
TamperIE
工具用途
HTTP数据包修改、转发工具(Firefox插件)
相关信息
测试工具:
安全检测工具集
工具名称
XX科技整理的安全检测工具集
工具用途
跨站及SQL注入测试、远程溢出测试、暴力破解测试、嗅探分析
相关信息
www.xxS.com
在具体的分析过程中,XX科技测试小组在微软的Windows平台上(涵盖2003/Vista),使用了IE(涵盖6.0/7.0/8.0)和Firefox浏览器对指定的测试对象进行的分析、校验、测试。
因此,漏洞分析检测到的部分安全问题可能与特定的操作系统、软件版本有具体关系,提醒后期实施漏洞修复工作的人员特别注意其中的差异。
一十三.测试过程详述
一十四.目标信息探测
一十五.域名信息
渗透测试人员首先通过nslookup对主机的IP地址、NS记录等信息的查询,对站点进行基本的信息探测:
DefaultServer:
xd-cache-
Address:
xx.xx.xx.xx
>
//查询ns记录
>settype=ns
>
Server:
Address:
202.106.0.20
Non-authoritativeanswer:
nameserver=
>serverhxns1.hua-
DefaultServer:
Address:
123.127.xx.xx
//测试区域传输
>settype=axfr
>ls-d
ls:
connect:
Noerror
***Can'tlistdomain:
Unspecifiederror
TheDNSserverrefusedtotransferthezonetoyourcomputer.Ifthis
isincorrect,checkthezonetransfersecuritysettingsforontheDNS
serveratIPaddress123.xx.xx.xx.
//查询站点mx记录
>settype=mx
>
Server:
Address:
123.xx.xx.xx
MXpreference=5,mailexchanger=
nameserver=
//检查版本信息
>settype=txt
>setclass=chaos
>version.bind
Server:
Address:
123.xx.xx.xx
version.bindtext=
"Idon'tknow!
!
@!
"
version.bindnameserver=version.bind
对WWW目标进行Whois的查询,下面是获取到的Whois信息如下:
=[219.xx.xxx.xx]
xxxxxx
一十六.GoogleHacking
搜索错误的文件后缀
在此过程中,测试人员会对站点进行如下内容的搜索:
搜索内容
说明
site:
inurl:
jsp.bak
site:
inurl:
jsp.bak
搜索站点中是否存在后缀为jsp.bak的文件,即,某些jsp的备份文件。
site:
filetype:
sql
site:
filetype:
sql
搜索站点中是否存在SQL脚本文件
site:
filetype:
txt
site:
filetype:
txt
查找站点中是否有包含敏感信息的txt文件
site:
filetype:
conf
site:
filetype:
conf
查找站点中是否有包含敏感信息的conf文件
通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。
查找第三方组件或程序
在此过程中,测试人员会对站点进行如下内容的搜索:
搜索内容
说明
site:
inurl:
/fckeditor/
site:
inurl:
/fckeditor/
搜索站点是否使用了fckeditor
site:
inurl:
jsp?
idinurl:
ewebeditor
site:
inurl:
jsp?
idinurl:
ewebeditor
搜索站点是否使用了eWebEditor
通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。
搜索错误的配置
在此过程中,测试人员会对站点进行如下内容的搜索:
搜索内容
说明
site:
intitle:
”indexof/”
site:
intitle:
”indexof/”
搜索站点是否使用了列目录功能
site:
intitle:
"ApacheTomcat"intitle:
"ErrorReport"
搜索站点是否存在TOMCAT错误信息,通过错误信息可判断TOMCAT版本
site:
inurl:
"examples"
site:
inurl:
"examples"
搜索站点中是否存在测试代码
通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。
一十七.对系统的测试
一十八.端口扫描
通过使用Nmap端口扫描工具对主机在Internet上的端口开放情况进行检查:
图一十八.1Nmap扫描结果
通过Nmap扫描报告,确认主机开放两个端口:
◆TCP21(用于FTP服务)
◆TCP443(用于WEB服务)
通过使用nc(NetCat)对主机的TCP21进行端口连接性测试,发现在连接成功后较长时间内端口无反应:
图一十八.2使用nc连接TCP21
再次通过使用ftp客户端对目标系统发起FTP连接请求,得到信息“Connectionclosedbyremotehost.”:
图一十八.3使用ftp客户端对目标主机进行验证
由此可确认TCP21虽开放,但应在网络层有相关的ACL限制,因此无法从Internet对其FTP服务发起连接请求。
一十九.服务信息探测
通过端口扫描判断,远程目标主机仅有TCP443端口(WEB应用服务)可用,因此,后继的渗透测试工作主要针对WEB应用本身及运行于WEB应用上的代码展开。
首先使用httprint对远程主机的WEB应用版本进行判断:
图一十九.1httprint判断远程WEB应用版本
根据httprint输出无法判断远程主机的WEB应用。
通过nc手工提交HTTPHEAD请求,依然无法获取到目标WEB应用版本信息。
图一十九.2使用nc提交HTTPHEAD请求
通过nc手工提交HTTPOPTIONS请求,依然无法获取到目标WEB应用版本信息。
图一十九.3使用nc提交HTTPOPTIONS请求
二十.对应用的测试
测试人员根据WASC威胁分类,对应用程序的渗透测试从五个类型的安全方面进行测试,这五个威胁类型包括:
认证和授权、命令执行、逻辑攻击、客户端攻击、信息泄露。
认证和授权类
命令执行类
暴力攻击
LDAP注入
认证不充分
SSI注入
会话定置
SQL注入
会话期限不充分
Xpath注入
凭证/会话预测
操作系统命令
授权不充分
格式字符串攻击
逻辑攻击类
缓冲区溢出
功能滥用
信息泄漏类
拒绝服务
可预测资源定位
客户端攻击类
路径遍历
跨站点脚本编制
目录索引
内容电子欺骗
信息泄露
图二十.1WASC威胁分类图
由于XXX系统区别于普通的WEB系统,因此,测试人员根据XXX系统的特点,从实际出发采用手工测试的方法,对五大类威胁中的部分内容进行测试。
二十一.认证和授权类
由于XXX系统的特殊性,测试人员没有对XXX系统登录账号进行暴力攻击的尝试,而是采用使用证书方式对证书的有效性进行测试。
此次测试XX新XXX系统采用硬件USBKey(即XX),首先,测试人员对正常情况使用USBKey登录XXX系统进行记录和分析。
图二十一.1使用USBKey登录信息
在没有插入USBKey的情况下,测试人员使用其他银行的“软证书”进行登录:
图二十一.2使用其他银行“软证书”进行登录
通过使用TamperIE截取登录过程提交的数据包,来对登录信息进行替换。
测试人员将使用其他银行“软证书”产生的信息替换为正常使用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”值信息在最后确认中,只要是正确途径产生均可通过签名,因此可以任意替换。
二十二.命令执行类
在命令执行类的测试中,测试人员主要测试了SQL注入攻击。
为了避免使用模糊测试给账户及XXX系统带来不可预料的影响,测试人员采用手工测试的方法。
测试人员对XX新XXX系统中的输入参数进行了部分测试,下面以测试登录用户名选项为例进行说明。
测试人员发现当前XX新新XXX系统大部分输入都只是客户端验证而非客户端服务端双向验证。
(威胁点)
测试人员通过本地浏览器截取的方式对“自定义登录名称”进行修改,成功将zhdh登录名设置为下面三种情况:
情况一:
“zh’||’dh”、“”;--”名称:
含有SQL代码的违规名称;
图二十二.1设置的“zh’||’dh”登录名称
图二十二.2设置的“”;--”登录名称
情况二:
“”名称:
空字符的名称字段长度少于要求的4字符;
图二十二.3设置的空字符登录名称
情况三:
“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz”名称:
52字符名称长度大于要求的30字符。
图二十二.4设置的52字符长登录名称
经上述测试,测试人员发现当通过违法手段绕过客户端限制成功修改登录名称后,在XXX系统登录时由于使用不符合要求的登录名称将导致登录认证无法通过,造成系统的逻辑错误只能使用证件号方式登录。
当设置登录名空字符时,登录XXX系统要求输入用户名,致使无法登录;当设置超长登录名字符时,登录XXX系统提示用户名不符合要求,致使无法登录。
二十三.客户端攻击类
测试人员在测试跨站脚本时,发现当前XX新XXX系统对跨站检测非常严格,导致在测试时测试账号被列入黑名单,无法继续测试。
测试代码如下:
">alert
(1)>
图二十三.1对跨站输入进行强制退出
图二十三.2测试跨站代码被列入黑名单
二十四.信息泄露类
测试人员在对网站其他周边信息进行检查时发现,存在明显的webserver默认页面,该处泄露了当前服务器web信息。
如下:
图二十四.1Webserver默认页面
二十五.发现问题与建议
二十六.发现的问题
在本次渗透测试的新XXX系统中,XX科技渗透测试小组发现了部分严重等级风险漏洞,这一级别的漏洞将深刻威胁到系统安全性。
已发现的XX新XXX系统主要安全问题如下:
XX新XXX系统发现的问题:
编号
发现问题
漏洞描述
威胁程度
1
登录XXX系统USBKey认证可绕过漏洞
不使用USBKey可通过截取key信息进行登录
严重
2
转账汇款USBKey认证可绕过漏洞
不使用USBKey可通过截取key信息进行登录
严重
3
转账汇款数字签名设计缺陷
任意合法数字签名信息均可完成汇款,数字签名信息可任意替换。
严重
4
输入验证机制设计缺陷
仅由客户端验证用户输入导致易绕过造成SQL注入
严重
5
缺少第二信道认证
仅依靠USBKey进行身份识别没有其他认证手段
中等
6
信息泄露
存在默认webserver泄露信息
轻度
二十七.安全建议
针对上述发现的安全问题,XX科技建议立即采取措施进行修补,以避免发生安全问题,下面的安全建议措施可供参考:
编号
发现问题
安全建议
备注
1
登录XXX系统USBKey认证可绕过漏洞
更改当前USBKey实现机制
2
转账汇款USBKey认证可绕过漏洞
更改当前USBKey实现机制
3
转账汇款数字签名设计缺陷
在签名信息中加入动态信息,例如短信验证码、随机验证码、账号、金额等信息。
4
输入验证机制设计缺陷
采用客户端服务器端双向验证
5
缺少第二信道认证
增加第二信道认证途径,例如,手机短信验证码
6
信息泄露
删除默认webserver页面,屏蔽默认webserver版本信息
二十八.其他建议
针对WEB平台的渗透测试及定期的评估扫描等方式,均以暴露问题为目标,属于被动的安全手段,而这些方式也大大的增加开发和维护的成本,因此建议XXX针对如WEB程序这类个性化产品开发前就应做好安全的相关工作,建议XXX对定制开发的产品从以下几个方面进行相关的考察和关注:
◆制定以功能和安全兼顾的产品开发需求
◆将安全作为产品开发项目中的重要参考指标
◆产品开发过程中的人员安全意识和技能培训
◆完善的安全开发手册及通用的安全的代码库
◆在开发每阶段完成后的定期代码审计和扫描
◆产品整体上线前的审计工作和远程评估工作
二十九.测试结论
经过本次远程渗透测试,我们对此远程系统的安全评价是远程不安全系统。
安全等级
资源内容描述
远程不安全系统
(符合任何一个条件)
1.存在一个或一个以上严重的安全问题,可直接导致系统受到破坏;
2.与其他非安全系统连接,同时存在相互信任关系(或帐号互通)的主机;
3.发现已经被人入侵且留下远程后门的主机;
4.存在3个以上中等安全问题的主机;
5.与其他非安全系统在一个共享网络中,同时远程维护明文传输口令;
6.完全不能抵抗小规模的拒绝服务攻击
远程一般安全系统
(符合任何一个条件)
1.存在一个或一个以上中等安全问题的主机;
2.开放过多服务,同时可能被利用来进行拒绝服务