2.3 从Aspx的WebShell到肉鸡
我一直都在强调一个东西,即在网络攻防中最重要的就是思维,在安全界中最近一直流行后门中的后门,即通过给出一个包含后门的WebShell程序,众多小黑们在外面吭哧吭哧的干活,而给出后门的老板,却在后面偷着数WebShell。这种后门中的后门一般来说有两种类型:一种就是直接挂马,带来直接的收益;另外一种就是将小黑攻克下的WebShell地址、用户名和密码全部给发回,换句话说就是,小黑控制的服务器,也就是我的服务器。通过研究发现,利用该方法还可以获得不少的后门,有的还可以直接控制服务器。
2.3.1 AspxSpy简介
AspxSpy 是网友Bin写的一款后门工具软件,可以到http://www.xfocus.net/tools/200802/ 1247.html或者http://www.rootkit.net.cn/article.asp?id=57下载其源代码,对于工具软件,我一般都喜欢到原作者哪里去下载,这样要相对安全一些,避免经过二道贩子之手,增加不安全因素。其主要特色和功能如下:
(1)开发环境VS2005 + C#,兼容FrameWork1.1/2.0,基本实现代码分离。
(2)密码为32位MD5加密(小写)默认为admin。
(3)采用POST方式提交数据,增强了隐蔽性。
(4)添加了IIS探测功能,遍历IIS站点信息。
(5)增强了对文件属性的修改。
(6)在SQLTools中增加了SA权限执行系统命令功能,SQL_DIR功能,可以直接备份log/database到指定目录文件名为bin.asp,Shell为<%execute request("B")%>。
(7)增加了Serv-U提权功能。
(8)可以对端口实现单线程扫描。
(9)可以对注册表进行简单的读取。
2.3.2 源代码简要分析
从笔者网站将该源代码文件aspxspy.rar下载到本地后,首先使用杀毒软件avast!查杀一下压缩包,一切正常,看来该代码还没有广泛流传,至少杀毒软件还未将其列入黑名单。源代码文件aspxspy.rar中就一个文件aspxspy.aspx,非常简单,直接使用UltraEdit打开该源代码文件,如图2-10所示,代码是用asp.net写的,在第12行中是该后门程序的管理密码的32位MD5加密值“21232f297a57a5a743894a0e4a801fc3”。
图2-10 查看aspxspy.aspx程序源代码
有关源代码简要分析的说明如下。
(1)一般通过UltraEdit等文本编辑器来查看WebShell等程序的源代码。
(2)WebShell的密码加密方式相对简单,一般是MD5加密。将password的MD5值“21232f297a57a5a743894a0e4a801fc3”放入www.cmd5.com进行查询,其结果为“admin”,如图2-11所示,如果小黑们没有修改该值,那么用默认密码“admin”,我们通过搜索引擎搜索就可以获得一些未经修改的WebShell。
图2-11 解密Aspxspy中的管理员密码
说明:
虽然笔者在其发布程序的页面上说明了其管理员密码,但为了更好地使用该程序,因此有必要对程序中的一些关键之处进行分析。知晓笔者是采用哪种方式进行加密的,以便打造属于自己的WebShell。
2.3.3 动手打造自己的WebShell
1.修改原始密码
在cmd5页面直接输入原始的密码来获取一个MD5值,其原始的密码一定要设置复杂一点,例如本例中的“7a49107b5ce9067e35ff8de161ebb12d”,将其复制到cmd5网站进行查询,查询无结果,如图2-12所示,这样即使WebShell被别人搜索到,由于无密码,因此也无可奈何!将“7a49107b5ce9067e35ff8de161ebb12d”替换password的MD5值“21232f297a57a5a743894a0e4a801fc3”,这样该WebShell基本算是属于我们自己的了,后面还有一些需要修改的地方,可以根据自己的爱好进行修改,基本不影响该程序的使用。
图2-12 使用cmd5网站反查设置密码的安全性
说明:
在Aspxspy中还可以修改SessionName、cookiePass等值,以防止通过SessionName和cookiePass值来达到绕过验证的目的。
2.获取WebShell的特征标识
继续在源代码中进行查看,在1479行发现一个明显的标识,“Copyright(C)2008 Bin->WwW.RoOTkIt.NeT.Cn”,如图2-13所示,该标识会直接显示在WebShell中,直接将这些标识删除或者修改为自己独有的标识。
说明:
寻找WebShell的特征标识,它是程序作者在写程序时用于说明版权所有等信息,表明该程序是某某完成的等,这些信息可以直接通过Google获取。
图2-13 获取WebShell的特征标识
2.3.4 寻找他人的WebShell
1.通过特征在Google查询WebShell
先在Google中输入“Copyright(C)2008 Bin ->WwW.RoOTkIt.NeT.Cn”进行查询,如图2-14所示,出来两个结果。需要注意输入查询的应该是:"Copyright(C)2008 Bin->WwW.RoOTkIt.NeT.Cn",使用了双引号,是对指定的关键词进行搜索,否则出来将是包含这些关键字的合集的记录。
图2-14 通过Google搜索WebShell的特征关键字
2.通过特征在百度中查询WebShell
在百度搜索引擎中输入"Copyright(C)2008 Bin ->WwW.RoOTkIt.NeT.Cn"进行查询,效果不太理想,如图2-15所示,无关于该精确特征的搜索结果。
图2-15 通过百度搜索WebShell的特征关键字
2.3.5 处理获取的WebShell
1.直接打开第一个WebShell
打开第一个WebShell的地址“http://www.xi********.com/ads/20081224160466.aspx”,结果出来为aspxspy的WebShell,如图2-16所示,猜解了一些普通密码,都不是,看来笔者修改了默认密码,只好暂时放弃。
图2-16 获取台湾地区某小学校的WebShell
说明:
既然有小黑入侵了该网站,除非入侵者对系统漏洞进行了修补,否则通过检测一样可以获取该系统的Webshell。就本WebShell而言有三种方式进行突破,一种是写一个猜解机,通过反复输入密码值来进行判断,第二种是直接检测网站,实施渗透;第三种是尝试通过伪造public string SessionName="ASPXSpy";public string cookiePass="ASPXSpyCookiePass";来突破。
2.查看剩下的WebShell
直接打开第二个搜索记录,如图2-17所示,嘿嘿,是政府网站,WebShell还隐藏得蛮深的。
图2-17 获取政府网站的WebShell
3.通知网站管理员
台湾地区的网站就不管了,去掉WebShell地址,直接打开网站地址“http://www. bsfgw.gov.cn/SISYSTEM/Web/OACMS_WWW/default.aspx”,打开后一看是“上海宝山发展改革物价信息网”,还是一个大家伙,呵呵,赶快通知相关管理人员,找了半天终于找到一个局长信箱,如图2-18所示,对存在的问题进行友情提醒,建议进行全面的安全检测。
4.继续寻找WebShell
在Google中输入“Copyright (C) 2008 Bin -> WwW.RoOTkIt.NeT.Cn”进行搜索,出来41项结果,如图2-19所示,对每一个结果进行查看,重点查看网站地址中包含aspx的地址,例如“www.ipo.gansu.gov.cn/Ashkan.aspx”,即本案例中Google中的第二个搜索结果。
图2-18 友情提醒
图2-19 再次搜索WebShell的特征值
(1)获取不能执行的WebShell
直接打开“http://www.ipo.gansu.gov.cn/Ashkan.aspx”,如图2-20所示,在网站中http:// www.ipo.gansu.gov.cn显示为文本格式,表明该网站可能不支持aspx。
图2-20 获取不支持aspx的WebShell
(2)获取某阿拉伯网站残缺Webshell
继续查看结果,通过查看分别发现了其他的WebShell:www.ktvc.ac.ir/LoadDynamic Form.aspx?FormCode=0,如图2-21所示,该文字表明为阿拉伯国家的一个WebShell,由于插入不完整的原因,将WebShell的内容显示出来了,却不能执行。
图2-21 获取某阿拉伯网站残缺WebShell
(3)继续获取其他的WebShell
通过搜索分别找到两个可以用的WebShell地址:
http://www.northforkrancheria. com/files/admin.aspx
http://www.icfi.ir/Files/Galleries/SecurityRole.aspx
如图2-22所示,直接打开这两个WebShell,通过输入一些简单的密码进行测试,测试结果表明,入侵者修改了该默认的管理员密码。
图2-22 再次搜索出两个WebShell
2.3.6 总结与探讨
(1)本案例是Google Hacking的利用方式之一,利用该方法如果运气好的话,可以直接得到WebShell。通过本方法即使没有获得真正的WebShell,但从侧面可以知道得到WebShell的网站应该存在安全问题,那么下一步就是自己去挖掘网站漏洞,提升自己的技术水平。
(2)通过修改原创或者获取的WebShell中的标识来防范Google Hacking,使自己的WebShell更加安全和隐蔽。