缓冲区溢出基础与实践
任务一:使用给定的程序测试缓冲区溢出
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