缓冲区溢出基础与实践

1、登录到实验机上。

2、查看可引起缓冲区溢出的代码。

阅读一段C语言代码,思考下这些代码是否存在问题,代码如下:

/*

*buffer.c

 */

#include <stdio.h>

int main()

{

char name[8];

printf(“Please input your name: ”);

gets(name);

printf(“your name is : %s!”, name);

return 0;

}

3、切换到命令行。

点击开始->运行,输入cmd后进入命令行

4、测试缓冲区溢出。

在系统命令行下,切换到C盘的根目录下,使用dir命令查看,其中buffer.exe为本任务的实验程序:

 

 在提示符下输入buffer运行程序,输入bjhit,发现程序正常运行

 

 继续进行测试,输入my name is bjhit,这时候程序出现异常

任务二:利用溢出工具溢出目标系统,获取目标系统shell

在cmd下切换到C:\目录下,查看该目录下的文件,可以看到有个文件dns.exe,这个文件即是我们本次实验的溢出工具。

 

 运行dns.exe工具,仔细查看使用说明:

 

 按照使用说明扫描目标主机。

仔细观察返回结果与说明。

按照说明对目标主机进行溢出

仔细观察返回结果说明。

使用telnet与远程主机建立连接。

 

 

 输入ipconfig /all 命令查看目标主机信息,看是否拿到目标主机shell。

任务三:利用MS12-020漏洞溢出目标系统,使目标系统瘫痪

1、运行Metasploit console。

2、对目标主机进行信息收集。

在msf>提示符下输入命令:db_nmap -sT -p3389  10.1.1.2, 收集目标主机信息,并对返回的信息进行分析。

可以看到目标主机的相关信息,如操作系统为windows2003,开放了3389远程桌面等等。

搜索一下这个漏洞的利用模块:search ms12_020 

 

 

3、利用ms12_020漏洞,对目标机进行攻击。

在msf命令提示符下,

输入use auxiliary/dos/windows/rdp/ms12_020_maxchannelids命令,并设置相关的参数

 

 使用exploit命令进行利用,查看攻击结果

ping 目标主机,查看主机是否瘫痪。

ping 10.1.1.2

 

 

 

 

 

 

posted @ 2021-10-20 08:44  Fourtroun  阅读(93)  评论(0)    收藏  举报