1测试目的
对人口与人力资源系统实施渗透测试,需要达到以下目的:
1)对关键设备实施可用性测试,包括:
✧防火墙
✧服务器
✧数据库主机
2)验证风险程度高的脆弱性存在与否;
3)确定利用已有脆弱性所需付出的代价,代价是如下因素的综合体:
✧所需时间
✧所需工具
✧被发现的可能性
✧所需知识经验
2测试前提条件
本次测试的前提条件如下:
1)了解受测系统现状,包括边界、计算环境及其安全状况等;
2)已完成脆弱性检测,了解系统当前存在的脆弱性,包括:
✧CVE漏洞;
✧安全策略不当之处等。
3)已完成风险分析,确定了测试对象的优先级,风险级别高的优先进行渗透测试。
3测试任务
本次测试的主要任务如下:
1)选定测试的目标对象;
2)确定测试路线,分析、确定所有可能的威胁路线,确定威胁路线优先级;
3)确定测试工具以及“脆弱性-工具”对;
4)描述测试可能的现象和预期目标;5)测试前的检查,包括:
✧测试工具检查;
✧受测系统运行记录检查,确认:
⏹没有其他攻击现象;
⏹没有做大的安全加固工作,主要是确定测试所利用的脆弱性还存在;
6)测试实施:
✧按照预定的路线和准备好的工具实施渗透测试;
✧做好测试记录;
7)善后工作,包括:
✧撤离、消除渗透测试工具;
✧尽可能恢复系统到测试前的状态;
✧确认撤离和消除的结果——测试效果或影响已经消除,对系统后续的正
常运行没有造成影响;
8)测试结果分析,包括:
✧脆弱性存在与否的结论;
✧利用脆弱性的成本分析。
4可利用的脆弱性
人口与人力资源系统对外的主要应用方式是Web访问,因此应该重点以Web 系统所存在的脆弱性为利用对象。
WEB应用的十大漏洞包括:未被验证的输入、错误的访问控制、错误的认证和会话管理、跨站脚本、缓冲溢出、注入式漏洞、不正确的错误处理、不安全的存储、拒绝服务、不安全的配置管理,通过对这十个方面的检查可以确定WEB 应用的安全性,再辅助以外围环境的检查,就可以确定WEB应用系统的安全性,因此,安全检查内容如下:
4.1未被验证的输入
未被验证的输入主要是检查网站代码的输入验证机制是否健全。对于网站中的输入项(如:用户注册),进行输入验证的测试,使用字符、数字、乱码之间的差异来完成,每一个输入内容都应该具体的形式,其定义内容包括:✧数据类型(串、整型、实数等)
✧允许的字符集
✧最小和最大的长度
✧是否允许空输入
✧参数是否是必须的
✧重复是否允许
✧数值范围
✧特定的值(枚举法)
✧特定的模式(正规表达式)
4.2错误的访问控制
这里的访问控制主要指授权,查看网站系统是否使用授权功能,其授权过程的安全性,其检查内容包括:
1)查看web网站用户的权限实现方式,网页有无;
2)对于包含访问控制信息的资源进行测试,如Cooki、网站代码等内容,其关注点包括:不安全ID、强迫访问不得绕过访问控制检查、路径、文件属性、客户端缓存等。
4.3错误的认证和会话管理
认证和会话的安全性检查,主要是确定网站的密码安全性、账号管理的合理性、认证信息的保密性等方面。其主要方法是使用代码检查和渗透测试(详见外部渗透性检查)检查Web网站的认证和会话管理的问题,具体内容如下:
✧通过下载的代码文件检查认证机制,查看用户认证信息在存储和传输时
是否被保护;
✧检查你的会话管理机制,查看哪些会话标识符未被保护的。
其关注点包括:密码强度、秘密使用、秘密修改控制、秘密存储、保证传输中的认证信息、会话ID保护、账号列表、浏览器缓存、信任关系。
4.4跨站脚本
此检测内容是跨过防火墙和网络设备对应用的漏洞进行攻击测试,查看跨站脚本攻击的可能性,其检查内容如下:
✧使用工具进行扫描网站,如Nessus、Nikto等;
✧使用网站注入式攻击工具,对网站,如Nessus、Nikto进行攻击尝试。
其关注点为是否存在跨站脚本攻击的漏洞、漏洞是否能够被利用。
4.5缓冲溢出
此检测内容是跨过防火墙和网络设备对应用的漏洞进行攻击测试,查看缓冲溢出攻击的可能性,主要通过扫描工具完成,其检查内容如下:
✧使用工具进行扫描网站,如sss、retina等;
其关注点为是否存在缓冲溢出的漏洞。
4.6注入式漏洞
此检测内容是跨过防火墙和网络设备对应用的漏洞进行攻击测试,查看注入式攻击的可能性,其方法是通过手动攻击或工具的方式(详见渗透测试)对网站发布资源的调用情况等(即:system、exec、fork、runtime、sql查询等对外部请求的语法)方面进行攻击测试。
其关注点包括:
✧外部程序允许访问的情况;
✧外部调用的验证数据输入情况;
✧web应用运行权限;
✧输出、返回代码、错误代码检查情况。
4.7不正确的错误处理
通过手动的方式检查网站系统的错误返回值是否隐藏了重要信息,其检查内容如下:
1)通过简单的测试(如错误访问页面等)确定网站怎样响应各种不同的输入错误;
2)检查网站的客户端能够看到的代码的异常处理逻辑。
关注点如下:
✧特别的处理错误的策略情况,包括错误处理的类型、信息回报给用户情况、记入日志情况。
✧出现错误时,提供的信息内容;
4.8拒绝服务
此检测内容是跨过防火墙和网络设备对应用的漏洞进行攻击测试,查看拒绝服务攻击的可能性,其检查内容如下:
1)可以使用JMeter测试网站重负载下的性能;
2)通过拒绝服务类攻击工具对网站进行攻击,查看其实际的抗压能力。
关注点如下:
✧抗压能力;
✧资源分配情况。
4.9不安全的配置管理
此检测内容是跨过防火墙和网络设备对应用的漏洞进行扫描,查看服务器的安全配置情况,检查其自身安全性,其主要方法是通过扫描工具(如x-scan)检测网站的配置情况;
其关注点包括:
✧服务器软件未安装安全补丁
✧服务器软件漏洞和错误配置允许列出目录和目录遍历攻击
✧不必要的缺省、备份或例子文件,包括脚本、应用程序、配置文件和网
页
✧不正确的文件和目录权限
✧不必要的服务被运行,包括内容管理和远程系统管理
✧有缺省秘密的缺省账号
✧被激活的、能够被访问的管理和调试功能
✧提供太多信息的错误信息(在错误处理中会有更多细节)
✧不正确的ssl证书和加密设定
✧使用自己签名的证书达到验证和中间人保护
✧使用缺省证书
✧不正确的通过外部系统的验证4.10外围环境
此检测内容是跨过防火墙和网络设备对应用的漏洞进行扫描和攻击,查看环境的安全配置情况,检查其自身安全性。其检查方法是查看网站外围的设备情况,检查对象包括:网络结构、网络设备、安全设备(如防火墙等)、内部访问用户。主要通过漏洞扫描、攻击测试实现,如使用sss、synkiller等工具。
其关注点如下:
✧网络结构检查内容包括网络区域情况、区域之间互访控制情况、Web服
务器位置。
✧网络设备和安全设备检查内容包括日志、安全功能配置、隐患、抗攻击
情况。
✧内部访问用户检查内容包括内部用户数量、内部用户权限和访问控制情
况、内部用户分布情况、内部用户的病毒感染情况、内部用户制造安全
事件情况。
5可用性测试
5.1防火墙的可用性测试
对防火墙的可用性测试操作如下:
5.2Web服务器的可用性测试
对Web服务器的可用性测试操作如下:
5.3数据库主机的可用性测试
对数据库主机的可用性测试操作如下:
6脆弱性验证和利用测试
6.1未被验证的输入
1)在www.gov.cn中中,查看验证的具体情况,如下表:
6.2错误的访问控制
这里的访问控制主要指授权,通过两种方法进行测试:正常用户的访问权限测试和WEB影响授权的其他测试。
1)使用用户lhl781120,密码781120,登录http://www..com/网站,进入http://www..com/页面,在此页面下查看是否可以访问以下内容:
2)针对Cookie、站点内容、CIM的默认口令问题进行攻击测试。
CIM攻击:
1)在浏览器地址栏中输入http://www..gov.cn;
2)点击“anonymous”链接到下一个“Login Account”,出现一个允许用户输入用户名和口令的页面;
3)默认情况下,可以使用administrator: administrator、administrator:〔NULL〕、operator: operator登录CIM。
4)如果能够登录,就可以访问整个系统配置。
6.3错误的认证和会话管理
Unicode目录遍历攻击:
1)在浏览器中输入:
Http://www..gov.cn/scripts/..%255c../winnt/system32/cmd.exe?/c+dir+c:\\ 2)查看是否能够显示c盘目录。跨站脚本
跨站脚本攻击测试1:
1)在网站相应的输入框中键入如下代码:
2)然后使用用户访问此输入框。
跨站脚本攻击测试2:
1)在网站中提交如下程序:
2)然后建立一个欺诈服务器截获用户输入密码。
3)当用户访问时候会弹出窗口要求用户输入秘密。
6.4不正确的错误处理
错误返回值测试:
1)错误操作:
以一般用户(如:lhl781120)登陆,访问不能访问的页面查看返回结果
在未登陆的情况下,访问页面查看结果。
2)般用户(如:lhl781120)登陆后访问如下页面:
http://www..com/CustomsStat/OperateForm/StatNewsView.aspx?guid=db2a2836-e54 a-446c-9505-912de2e8b848
将此url进行修改,并进行访问,如访问如下url查看情况:
http://www..com/CustomsStat/OperateForm/StatNewsView.aspx?guid=db2a2836-e54 a-446c-9505-912de2e8b888
6.5缓冲溢出
由于缓冲溢出一般对系统影响较大,在此次测试中建议不进行攻击测试,只使用扫描工具对网站进行扫描,查看是否有缓冲区溢出漏洞的方法进行测试。
6.6注入式漏洞
注入式攻击测试:
1)在浏览器地址栏中输入:
Http://www..gov.cn/SiteAdmin.asp?SiteID=12‟
2)查看是否出现类似下面文字的结果:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string …,@UserID=182‟.
/SiteAdmin.asp, line 7
3)如果没有显示,继续在浏览器地址栏中输入:
Http://www..gov.cn/SiteAdmin.asp?SiteID=12--
4)查看是否是否出现类似于2)的结果
6.7其他不安全的配置