缓冲区溢出基础与实践

任务一:使用给定的程序测试缓冲区溢出

1、登录到实验机上。

3、切换到命令行。

点击开始->运行,输入cmd后进入命令行,如下图所示:


 

 

4、测试缓冲区溢出。

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

 

 

 

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

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

 

 

 

5、反复测试与思考。

再次运行buffer.exe,更换输入内容(每次大于10个),查看每次返回结果。

并思考:为什么会出现异常?为什么每次返回内容不同?如何修改程序防止缓冲区溢出。

注:在测试过程中,如果实验机不再响应键盘鼠标操作,可能是在测试缓冲区溢出时破坏了实验的系统环境,此时需重启实验机。

实验步骤二

任务二:利用溢出工具溢出目标系统,获取目标系统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

 

 必须在攻击期间ping命令,才能request timed out

 

 

 

posted @ 2021-10-20 08:58  木一叶  阅读(189)  评论(0)    收藏  举报