Metasploit 渗透测试01-背景和功能介绍

发布于:2021-10-16 13:34:39

0x00?背景

? ? ? ?渗透测试的定义:通过实际攻击进行安全测试与评估,Metasploit是一个免费的、可下载的渗透框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。Metasploit注重植入后门控制服务器。


? ? ? ?黑盒测试(外部测试):设计模拟一个对客户组织一无所知的攻击者所进行的渗透攻击。优点:能更逼真地模拟一次真正的攻击过程;缺点:费时费力,渗透测试者需要具备较高的技术能力。


? ? ? ?白盒测试(内部测试):渗透测试者拥有客户组织所有知识的情况下所进行的渗透攻击。优点:无须进行目标定位与情报搜集,能更早的消除掉一些可能存在的安全问题,比黑盒花费的代价小;缺点:无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对特定攻击的检测效率。


? ? ? ? 灰盒测试:白+黑的组合测试,可以提供对目标系统更加深入和全面的安全审查。


0x01 渗透测试方法体系

MITRE??ATTCK?网络攻击行为的精选知识库和模型(目前主流)
洛克希德-马丁公司提出的Kill Chain模型
PTES渗透测试执行标准
NIST SP 800-42网络安全测试指南
OWASP十大Web应用安全威胁项目(OWASP Top Ten)
Web安全威胁分类标准(WASC-TC)
安全测试方法学开源手册(OSSTMM)


0x02?渗透测试流程

前期交互阶段:该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。


情报搜集阶段:在该阶段渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织的网络*恕⑾低撑渲糜氚踩烙胧┑男畔ⅰ


威胁建模阶段:理清从情报搜集阶段获得的信息情报,确定出最可行(不一定成功)的攻击通道。


漏洞分析阶段:考虑如何取得目标系统的访问控制权。渗透测试者根据获得的漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻击的攻击点,并在实验环境中验证。


渗透攻击阶段:利用找到的系统安全漏洞真正入侵到系统当中,获得访问控制权。


后渗透攻击阶段:最能体现渗透测试团队创造力与技术能力的环节。需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。


报告阶段:向客户组织提供渗透测试报告,报告中包括所有阶段中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助客户分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。


0x03?Metasploit?功能?介绍

辅助模块:
主要用于支持信息搜集环节,帮助渗透测试者进行渗透攻击之前得到目标系统丰富的情报信息。包括针对各种网络服务的扫描与查点、构建虚假服务收集登录密码、口令猜测*狻⒚舾行畔⑿崽健⑻讲槊舾行畔⑿孤丁uzz测试漏洞挖掘、实施网络协议欺骗等模块。


渗透攻击模块:
是Metasploit框架中最核心的功能组件,是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。可以按照所利用的安全漏洞所在的位置分为主动渗透攻击与被动渗透攻击两大类。


主动渗透攻击:通过连接目标系统网络服务,注入一些特殊构造的包含“邪恶”攻击数据的网络请求内容,触发安全漏洞,并使得远程服务进程执行在“邪恶”数据中包含的攻击载荷,从而获取目标系统的控制会话。


被动渗透攻击:利用客户端软件中的安全漏洞,构造出“邪恶”的网页、电子邮件或文档文件,并通过架设包含此类恶意内容的服务端、发送邮件附件、结合社会工程学攻击分发并诱骗目标用户打开、结合网络欺骗和劫持技术等方式,等目标系统上的用户访问到这些邪恶内容,从而触发客户端软件中的安全漏洞,给出控制目标系统的shell回话。


攻击载荷模块
渗透攻击成功后促使目标系统运行的一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。攻击载荷模块分为独立(Singles)攻击载荷、传输器(Stager)载荷、传输体(Stage)载荷三种类型。


独立攻击载荷:可以直接独立地植入目标系统进行执行。 Ex:window/shellbindtcp 将shell控制会话绑定在指定TCP端口上的攻击载荷。


传输器载荷&传输体载荷:目标系统对攻击载荷的大小、运行条件有限制,需要先植入代码精悍短小的传输器载荷,然后再运行传输器载荷进一步下载传输体载荷并执行。由传输器载荷进一步下载并执行的传输体载荷不受大小和安全防御机制的限制。(PS:《变3》中御天敌传送赛博坦的情形) Ex:window/shell/bindtcp bindtcp是传输器载荷,shell是传输体载荷


空指令模块
空指令(NOP):对程序运行状态不会造成任何实质影响的空操作或无关操作。 在渗透攻击构造邪恶数据缓冲区时,可能会遇到内存地址随机化、返回地址计算偏差等问题导致Shellcode执行失败。解决办法是在真正要执行的shellcode之前添加一段空指令区,当触发渗透攻击后跳转执行shellcode时,有一个较大的安全着陆区 空指令模块可以在攻击载荷中添加空指令区,提高攻击的可靠性。


编码器模块
确保攻击载荷中不会出现渗透攻击过程中不会出现“坏字符”,“坏字符”会导致特殊构造的邪恶数据缓冲区无法按照预期目标完全输入到存有漏洞的软件例程中,从而使得渗透攻击触发漏洞之后无法正确执行攻击载荷。


对攻击载荷进行“免杀”处理,通过不同形式的编码,避免载荷中有安全检测与防御机制能够识别的特征码。


后渗透攻击模块
在渗透攻击取得目标系统远程控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步拓展、实时跳板攻击。


0x04?Metasploit framework?介绍


Metasploit Framework?使用?基本的命令行界面和手动开发方法进行渗透测试,Metasploit Framework?的功能


收集功能:事实标准,可进行1,500多个漏洞的渗透测试全面的exp覆盖、导入网络数据扫描。


渗透功能:基本命令行界面、手动开发、手动凭证暴力*狻


0x05?Metasploit pro?介绍


Metasploit pro?是 Metasploit Framework?的web版本,即是图形化界面版本。提供友好的web界面,大大提高效率,减少对技术培训的依赖,Metasploit pro?功能:


收集功能:事实标准,可进行1,500多个漏洞的渗透测试全面的exp覆盖、导入网络数据扫描、网络发现、基本攻击、用于离散任务(例如网络分段测试)的MetaModules、通过远程API集成。


自动化功能:简单的界面、智能的利用、自动凭证暴力*狻⒒忌覆馐员ǜ妗⒈曜蓟忌蠛讼虻肌⒆远远ㄒ骞ぷ髁鞒痰娜挝窳础⒒诳捎畔瓤悸遣咕却胧┑谋栈仿┒囱橹ぁ


渗透功能:可逃避主流的防病毒检测的动态有效载荷、网络钓鱼意识管理和鱼叉网络钓鱼、针对OWASP十大漏洞的Web应用程序测试、可选的高级命令行(Pro Console)和Web界。


项目官网:https://www.rapid7.com/products/metasploit/


帮助文档:https://docs.rapid7.com/metasploit/


Metasploit?Pro?和Metasploit framework? 的对比??https://www.rapid7.com/products/metasploit/download/editions/


0x06? Cobalt Strike?介绍


Cobalt Strike(Armitage升级收费版)是一款美国Red Team开发的渗透测试神器,常被业界人称为CS。这个工具大火,成为了渗透测试中不可缺少的利器。其拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等功能。同时,Cobalt Strike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱。


项目官网:https://www.cobaltstrike.com


帮助文档:https://www.cobaltstrike.com/support


0x07 Armitage?介绍


Armitage是一款Java写的Metasploit图形界面化的攻击软件,可以用它结合 Metasploit中已知的exploit来针对主机存在的漏洞自动化攻击。通过命令行的方式使用Metasploit难度较高,需要记忆的命令过多,而Armitage完美的解决了这一问题,用户只需要简单的点击菜单,就可以实现对目标主机的安全测试和攻击。


项目官网:http://www.fastandeasyhacking.com/


帮助文档:http://www.fastandeasyhacking.com/manual


但很遗憾,该项目已在2015年停止更新,目前行业内基本使用Cobalt Strike(*獍妫比豢梢源孀藕竺牛ê诔院冢


?

相关推荐

最新更新

猜你喜欢