渗透测试测试报告记录.docx
《渗透测试测试报告记录.docx》由会员分享,可在线阅读,更多相关《渗透测试测试报告记录.docx(23页珍藏版)》请在冰豆网上搜索。
渗透测试测试报告记录
渗透测试测试报告记录
作者:
日期:
XX移动XXX系统渗透测试报告
时间
版本
说明
修改人
附录A威胁程度分级17
附录B相关资料17
摘要
经XXX的授权,XX科技渗透测试小组对XXX下属XXX系统证书版进行了渗透测试。
测试结果如下:
严重问题:
4个
中等问题:
1个
轻度问题:
1个
E严重问驱中等问腿日轻度问题
图1.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科技渗透测试小组利用部分前沿的攻击技术;使用
成熟的黑客攻击手段;集合软件测试技术(标准)对指定网络、系统做入侵攻击测试,希望由此发现网站、应用系统中存在的安全漏洞和风险点。
2.1测试流程
XX科技渗透测试服务流程定义为如下阶段:
信息收集:
此阶段中,XX科技测试人员进行必要的信息收集,如IP地址、DNS记录、
软件版本信息、IP段、Google中的公开信息等。
渗透测试:
此阶段中,XX科技测试人员根据第一阶段获得的信息对网络、系统进行渗透
测试。
此阶段如果成功的话,可能获得普通权限。
缺陷利用:
此阶段中,XX科技测试人员尝试由普通权限提升为管理员权限,获得对系统
的完全控制权。
在时间许可的情况下,必要时从第一阶段重新进行。
成果收集:
此阶段中,XX科技测试人员对前期收集的各类弱点、漏洞等问题进行分类整
理,集中展示。
威胁分析:
此阶段中,XX科技测试人员对发现的上述问题进行威胁分类和分析其影响。
输出报告:
此阶段中,XX科技测试人员根据测试和分析的结果编写直观的渗透测试服务报告。
图2.1渗透测试流程
2.2风险管理及规避
为保障客户系统在渗透测试过程中稳定、安全的运转,我们将提供以下多种方式来进行风险规避。
对象的选择
为更大程度的避免风险的产生,渗透测试还可选择对备份系统进行测试。
因为备份系统与在线系统所安装的应用和承载的数据差异较小,而其稳定性要求又比在线系统低,因此,选择对备份系统进行测试也是规避风险的一种常见方式。
时间的控制
从时间安排上,测试人员将将尽量避免在数据高峰时进行测试,以此来减小测试工作对被测试系统带来的压力。
另外,测试人员在每次测试前也将通过电话、邮件等方式告知相关人员,以防止测试过程中出现意外情况。
技术手段
XX科技的渗透测试人员都具有丰富的经验和技能,在每一步测试前都会预估可能带来的后果,对于可能产生影响的测试(如:
溢出攻击)将被记录并跳过,并在随后与客户协商决定是否进行测试及测试方法。
监控措施
针对每一系统进行测试前,测试人员都会告知被测试系统管理员,并且在测试过程中会随时关注目标系统的负荷等信息,一旦出现任何异常,将会停止测试。
工具的使用
在使用工具测试的过程中,测试人员会通过设置线程、插件数量等参数来减少其对系统的压力,同时还会去除任何可能对目标系统带来危害的插件,如:
远程溢出攻击类插件、拒绝服务攻击类插件等等。
2.3测试收益
通过实施渗透测试服务,可对贵方的信息化系统起到如下推进作用:
明确安全隐患点
渗透测试是一个从空间到面再到点的过程,测试人员模拟黑客的入侵,从外部整体切入最终落至某个威胁点并加以利用,最终对整个网络产生威胁,以此明确整体系统中的安全隐患点。
提高安全意识
如上所述,任何的隐患在渗透测试服务中都可能造成“千里之堤溃于蚁穴”的效果,因此渗透测试服务可有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险。
提高安全技能
在测试人员与用户的交互过程中,可提升用户的技能。
另外,通过专业的渗透测试报告,也能为用户提供当前流行安全问题的参考。
3.测试目标说明
3.1测试对象
测试对象名称
相关域名、对应的URL
证书版登录
新XXX系统平台
IP地址:
114.xx.xx.xx
3.2测试账号
测试账号名称
相关详细信息
XXX系统账号
账号所有者:
XX
ID:
95xxPIN码:
xx
XXX系统登录名zhdh密码xx
账号所有者:
xx
ID:
95xxPIN码:
XX
XXX系统登录名xx密码xx
3.3时间
测试工作的时间段
起始时间
2010-4-xx
结束时间
2010-4-xx
本份测试报告分析的各种安全风险,仅限定于在上述时间段内测试反馈信息的整理,不包括非上述时间段内的因系统调整、维护更新后出现的其他变化情况。
3.4参与测试人员
参测人员名单
姓名
所属部门
联系方式
姓名
所属部门
联系方式
3.5测试环境
本次渗透测试过程中,XX科技测试小组使用过多个互联网IP地址开展的分析工作,在
此通知XXX新XXX系统相关人员在对受测试的目标站点服务器、相应的网络入侵检测系统进行安全监控和日志分析时,排除以下IP地址产生的任何违规信息,以保证分析结果的准确
有效。
IP地址
IP地址
IP地址
IP地址
暂无
暂无
3.6工具及相关资源
表3.1测试工具:
NetCat
工具名称
NetCat
工具用途
端口连接,数据提交
相关信息
http:
//joncraton.org/files/nc111nt.zip
表3.2测试工具:
Nmap
工具名称
Nmap
工具用途
端口扫描,服务识别,操作系统指纹识别
相关信息
http:
//nmap.org/
表3.3测试工具:
httprint
工具名称
Httprint
工具用途
通过远程http指纹判断http服务类型
相关信息
http:
//www.net-nt/
表3.4测试工具:
TamperIE
工具名称
TamperIE
工具用途
HTTP数据包修改、转发工具(Firefox插件)
相关信息
http:
//www.bayden.com/TamperIE/
表3.5测试工具:
安全检测工具集
工具名称
XX科技整理的安全检测工具集
工具用途
跨站及SQL注入测试、远程溢出测试、暴力破解测试、嗅探分析
相关信息
www.xxS.com
在具体的分析过程中,XX科技测试小组在微软的Windows平台上(涵盖2003/Vista),
使用了IE(涵盖6.0/7.0/8.0)和Firefox浏览器对指定的测试对象进行的分析、校验、测试。
因此,漏洞分析检测到的部分安全问题可能与特定的操作系统、软件版本有具体关系,提醒后期实施漏洞修复工作的人员特别注意其中的差异。
4.测试过程详述
4.1目标信息探测
4.1.1域名信息
渗透测试人员首先通过nslookup对主机的IP地址、NS记录等信息的查询,对站点进行基本的信息探测:
DefaultServer:
xd-cache-1.xx.net
Address:
xx.xx.xx.xx
>
〃查询ns记录
>settype=ns
>
Server:
gjjline.bta.net.cn
Address:
202.106.0.20
Non-authoritativeanswer:
nameserver=
>serverhxns1.hua-xiaba
DefaultServer:
Address:
123.127.xx.xx
//测试区域传输
>settype=axfr
>ls-d
Is:
connect:
Noerror
***Can'tlistdomain:
Unspecifiederror
TheDNSserverrefusedtotransferthezonetoyourcomputer.Ifthis
isincorrect,checkthezonetransfersecuritysettingsforontheDNSserveratIPaddress123.xx.xx.xx.
〃查询站点mx记录
>settype=mx
>
Server:
Address:
123.xx.xx.xx
MXpreferenee=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
4.1.2GoogleHacking
搜索错误的文件后缀
在此过程中,测试人员会对站点进行如下内容的搜索:
搜索内容说明
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:
"Error
搜索站点是否存在TOMCAT错误信息,
Report"
通过错误信息可判断TOMCAT版本
site:
inurl:
"examples"
搜索站点中是否存在测试代码
site:
inurl:
"examples"
通过上述方法测试,测试人没有在Google和Baidu等互联网公共搜索服务商搜索出与之相关的敏感信息。
4.2对系统的测试
4.2.1
端口扫描
通过使用Nmap端口扫描工具对主机在Internet上的端口开放情况进行检查:
图4.1Nmap扫描结果
通过Nmap扫描报告,确认主机开放两个端口:
TCP21(用于FTP服务)
TCP443(用于WEB服务)
通过使用nc(NetCat)对主机的TCP21进行端口连接性测试,发现在连接成功后较长时间内端口无反应:
图4.2使用nc连接TCP21
再次通过使用ftp客户端对目标系统发起FTP连接请求,得到信息"Connectionclosedby
remotehost.”:
图4.3使用ftp客户端对目标主机进行验证
由此可确认TCP21虽开放,但应在网络层有相关的ACL限制,因此无法从Internet对
其FTP服务发起连接请求。
4.2.2服务信息探测
通过端口扫描判断,远程目标主机仅有TCP443端口(WEB应用服务)可用,因此,后
继的渗透测试工作主要针对WEB应用本身及运行于WEB应用上的代码展开。
首先使用httprint对远程主机的WEB应用版本进行判断:
图4.4httprint判断远程WEB应用版本
根据httprint输出无法判断远程主机的WEB应用。
通过nc手工提交HTTPHEAD请求,依然无法获取到目标WEB应用版本信息。
图4.5使用nc提交HTTPHEAD请求
通过nc手工提交HTTPOPTIONS请求,依然无法获取到目标WEB应用版本信息。
图4.6使用nc提交HTTPOPTIONS请求
4.3对应用的测试
测试人员根据WASC威胁分类①,对应用程序的渗透测试从五个类型的安全方面进行测试,这五个威胁类型包括:
认证和授权、命令执行、逻辑攻击、客户端攻击、信息泄露。
认证和授权类
命令执行类
暴力攻击r
LDAP注入
认证不充分
|SSI注入
会话定置
SQL注入
会话期限不充分
Xpath注入
凭证7会话预测
操作系统命令
授权不充分
:
格式字符串攻击
||逻辑攻击类
缓冲区溢出
功能滥用
信息泄漏类
拒绝服务
可预测资源定位
|客户端攻击类
路径遍历
跨站点脚本编制
目录索引
内容电子欺骗
信息泄露
图4.7WASC威胁分类图
由于XXX系统区别于普通的WEB系统,因此,测试人员根据XXX系统的特点,从实际出发采用手工测试的方法,对五大类威胁中的部分内容进行测试。
①WASC即WebApplicationSecurityConsortium。
是一个由安全专家、行业顾问和诸多组织的代表组成的
国际团体。
他们负责为WWW制定被广为接受的应用安全标准。
WASC组织的关键项目之一是“Web安全
威胁分类”,也就是将Web应用所受到的威胁、攻击进行说明并归纳成具有共同特征的分类。
432认证和授权类
由于XXX系统的特殊性①,测试人员没有对XXX系统登录账号进行暴力攻击的尝试,而
是采用使用证书方式对证书的有效性进行测试。
此次测试XX新XXX系统采用硬件USBKey(即XX),首先,测试人员对正常情况使用USBKey登录XXX系统进行记录和分析。
图4.8使用USBKey登录信息
在没有插入USBKey的情况下,测试人员使用其他银行的“软证书”②进行登录:
图4.9使用其他银行“软证书”进行登录
通过使用TamperIE截取登录过程提交的数据包,来对登录信息进行替换。
测试人员将使用其他银行“软证书”产生的信息替换为正常使用USBKey登录产生的dn和sn信息进行
欺骗。
Dn和sn信息如下:
Dn信息:
xx
Sn信息:
xx
(威胁点)
图4.10替换登录过程的数据信息
经上述测试发现,XXX证书版USBKey登录过程中,由XXX系统盾证书认证的相关信息SN为固定信息,任何提交者均可通过登录认证,存在“绕过登录XX新XXX系统的漏洞”
(威胁点,附录像)。
同时,测试人员通过枚举表单的方式,同样可以获取登录过程中的相关认证信息,例如:
dn、sn信息。
图4.11采用表单枚举的方式获取登录信息
在转账汇款测试时,测试人员通过上述方法同样可以绕过USBKey的使用,对行内转账、
跨行汇款进行成功操作。
同时,在转账汇款的测试中,测试人员发现:
转账汇款的最后步骤
即:
“确认”操作时,由客户端向服务器端提交“签名加密代码”,该步骤存在设计缺陷,导致“签名加密代码”只要是正确途径产生的“代码”都可以进行成功交易,而与每次交易的信息无关。
(威胁点,附录像)
1账号及密码信息错误将导致账号锁定。
2通常所说的浏览器证书,非硬件USBKey的电子证书
测试人员第一次转账时使用xx的账号**7588卡号向XX账号的**9600卡号进行汇款,
在最后确认过程中记录"sigEncryptCode”值和“randomTokenVerifyTag”值。
图4.12记录向xx账号汇款“确认”过程中相关信息
然后,测试人员第二次转账时使用xx的账号**7588卡号向xx的账号的**2758卡号进行
汇款,在最后确认过程中记录替换“sigEncryptCode”值为向xx账号汇款“确认”过程中记
录的“sigEncryptCode”值。
测试人员发现交易能够成功完成。
由以上事实,测试人员分析认为存在两种可能:
第一种可能“sigEncryptCode”信息应
为每次交易相关收款账号、金额等加密信息,若为此情况,在替换后并成功交易,测试用款应该转到第一次操作的xx账号中,而目前事实是依然转移到xx的账号中。
第二种可能是
“sigEncryptCode”信息不包含每次交易的收款账号、金额等加密信息,完全用于数字签名。
因此“sigEncryptCode”值信息在最后确认中,只要是正确途径产生均可通过签名,因此可以任意替换。
4.3.3命令执行类
在命令执行类的测试中,测试人员主要测试了SQL注入攻击。
为了避免使用模糊测试给
账户及XXX系统带来不可预料的影响,测试人员采用手工测试的方法。
测试人员对XX新XXX系统中的输入参数进行了部分测试,下面以测试登录用户名选项
为例进行说明。
测试人员发现当前XX新新XXX系统大部分输入都只是客户端验证而非客户端服务端双向验证。
(威胁点)
测试人员通过本地浏览器截取的方式对“自定义登录名称”进行修改,成功将zhdh登录
名设置为下面三种情况:
情况一:
“zh'|'dh”、“”;--”名称:
含有SQL代码的违规名称;
图4.13设置的“zh'dh”登录名称
图4.14设置的“”;--”登录名称
情况二:
“”①名称:
空字符的名称字段长度少于要求的4字符;
图4.15设置的空字符登录名称
情况三:
“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz”名称:
52字符
名称长度大于要求的30字符。
①该处设置名称为空字符。
图4.16设置的52字符长登录名称
经上述测试,测试人员发现当通过违法手段绕过客户端限制成功修改登录名称后,在XXX
系统登录时由于使用不符合要求的登录名称将导致登录认证无法通过,造成系统的逻辑错误只能使用证件号方式登录①。
当设置登录名空字符时,登录XXX系统要求输入用户名,致使无法登录;当设置超长登
录名字符时,登录XXX系统提示用户名不符合要求,致使无法登录。
4.3.4客户端攻击类
测试人员在测试跨站脚本时,发现当前XX新XXX系统对跨站检测非常严格,导致在测
试时测试账号被列入黑名单,无法继续测试。
测试代码如下:
">alert
(1)>
图4.17对跨站输入进行强制退出
图4.18测试跨站代码被列入黑名单
4.3.5信息泄露类
测试人员在对网站其他周边信息进行检查时发现,存在明显的webserver
默认页面,该处泄露了当前服务器web信息。
如下:
图4.19Webserver默认页面
5.发现问题与建议
5.1发现的问题
在本次渗透测试的新XXX系统中,XX科技渗透测试小组发现了部分严重等级风险漏洞,这一级别的漏洞将深刻威胁到系统安全性。
已发现的XX新XXX系统主要安全问题如下:
①由于登录认证采用双向检测因此服务端不接受不符合条件的登录名称。
XX新XXX系统发现的问题:
编号
发现问题
漏洞描述
威胁程度
1
登录XXX系统USBKey认
证可绕过漏洞
不使用USBKey可通过截取key信息进行登录
严重
2
转账汇款USBKey认证可绕过漏洞
不使用USBKey可通过截取key信息进行登录
严重
3
转账汇款数字签名设计缺陷
任意合法数字签名信息均可完成汇款,数
字签名信息可任意替换。
严重
4
输入验证机制设计缺陷
仅由客户端验证用户输入导致易绕过造
成SQL注入
严重
5
缺少第二信道认证
仅依靠USBKey进行身份识别没有其他认证手段
中等
6
信息泄露
存在默认webserver泄露信息
轻度
5.2安全建议
针对上述发现的安全问题,XX科技建议立即采取措施进行修补,以避免发生安全问题,
F面的安全建议措施可供参考:
编号
发现问题
安全建议
备注
1
登录XXX系统USBKey认
证可绕过漏洞
更改当前USBKey实现机制
2
转账汇款USBKey认证可绕过漏洞
更改当前USBKey实现机制
3
转账汇款数字签名设计缺陷
在签名信息中加入动态信息,例如短信验证码、随机验证码、账号、金额等信息。
4
输入验证机制设计缺陷
采用客户端服务器端双向验证
5
缺少第二信道认证
增加第二信道认证途径,例如,手机短信验证码
6
信息泄露
删除默认webserver页面,屏敝默认webserver版本信息
5.3其他建议
针对WEB平台的渗透测试及定期的评估扫描等方式,均以暴露问题为目标,属于被动的
安全手段,而这些方式也大大的增加开发和维护的成本,因此建议XXX针对如WEB程序这
XXX对定制开发的产品从以下几个方面
类个性