案例A
一.事情的经过
我的一个网友突然传给我一个网址http://x.x.x.x.(马赛克),他请我帮他检测检测他网站的安全性。这是一家国内很大的个人主页空间服务网站(支持asp+php),我满口答应了他。
我首先进行了一些扫描port的活动,扫描结果看到共开了10个端口,重要的有80,110,135,139,3389等等几个,可利用的服务不算多。从扫描的80信息显示是iis5.0,还开了一个win2k专有的远程桌面管理(port:3389),再加上端口的开放情况,现在能确定对方的系统一定是一台win2k+iis5.0,这是我比较熟悉的系统之一。
先看看有没有应用程序的漏洞,登录上3389服务,看看有没有什么非系统自带的输入法,因为有些类型的输入法还是有帮助文件和URL的,比如有个旧版本的紫光输入法。结果没有任何帮助文件。
再看看能不能顺利与服务器建立空连接┱
E:\net use \\x.x.x.x\ipc$ "" /user:""
系统发生 53 错误。
找不到网络路径。
空链接漏洞被补上了,这是符合安全标准配置的。但是如果利用wmi服务仍然是可以进行密码破解的,可是我猜测了一会仍然没有获得密码口令,暂时放弃这个方法。
下面一个合理的选择是检测cgi漏洞,使用了几个安全扫描软件如ISS,SSS,x-scanner等等,发现默认的/scripts/,/_vti_bin/等目录以及大量的ida,idq,htw等映像,但是用了许多溢出程序都没有溢出成功。我估计他很有可能给iis5.0打上了sp3补丁,现在的分析推测是win2k+iis5.0+sp3。
下面再看看他的mail软件支持不支持expn,vrfy指令,返回OK,接下来很快就枚举出了一个600多个用户的详细列表,接着用pop3密码破解软件破密码。半个小时过去,发现十几个用户的密码很简单。然后我尝试用这些账号登录ftp服务,试了8,9个账号,终于发现其中有一个用户名xhacker,密码abcd1234可以登录ftp空间。这也就是说,这个用户买了服务器的收费邮箱和收费主页空间,并且邮箱和主页空间的密码设置的是相同的。
我总共计划向主页空间上传两个文件,一个是win.exe,一个是temp.asp。win.exe是我精心配置的一个大小仅有4kb的木马,功能相当强大,最大的好处是目前还不被含最新病毒软件查杀。还有一个就是大家熟知的asp木马temp.asp,temp.asp内容如下:
" method="POST"
两个文件很快就上传完毕了。我们现在可以用刚上传上去的asp木马查看一下服务器的详细情况了,因为ftp账号名为xhacker,所以有可能就是xhacker作为虚拟目录(当然还有其它方法查)见图3┱ 顺便查查我的xhacker空间目录在什么位置,用这条命令dir/s d:\xhacker 很快得出结果┱ 驱动器 D 中的卷没有标签。 卷的序列号是 F00B-626E d:\web2\xhacker 的目录 2002-06-02 19:57 6,976 win.exe 1 个文件 6,976 字节 列出所有文件: 1 个文件 6,976 字节 0 个目录 24,849,289,216 可用字节 现在知道我主页空间在服务器的绝对路径了,看到win.exe了没?这就是我刚刚传上去的木马。现在把win.exe的路径记下来,下面要用到。 使用temp.asp进行入侵,这是非常危险的,因为这会被系统日志记录下来,也就是说我刚才web入侵的动作全部记录下来了。我决定另外开个没有日志记录的shell,接下来我准备运行另一个win.exe木马。怎么运行它呢,用过unicode漏洞的人都知道,有了木马在服务器的绝对路径,并且木马所在的目录有脚本可执行权限,我们就能运行它了(abc.exe是我临时copy的一个cmd.exe)。见图4 看到IE状态区的进度条了吗?表示我们在服务器端运行了程序,速度会显的很慢,其实没必要等到进度条走完。了解web服务器程序设计原理的话,就知道我们即使按停止也没关系,因为这已经在服务器上执行了运行程序的命令。现在就可以用刚开的后门进去了。回到cmd窗口,执行命令┱ telnet x.x.x.x 木马所开端口 现在我不需要再通过temp.asp执行命令了就直接把它删除了,我直接用这个刚开的shell能非常方便地执行命令,当然最大的好处是没有日志记录。见图5┱ 的确安装了php,perl等。 再在看看服务器一些情况┱ D:\net user secretboy 用户名 secretboy 全名 注释 管理计算器(域)的内置帐户 用户的注释 国家(地区)代码 000 (系统默认值) 帐户启用 Yes 帐户到期 永不 上次设置密码 2002/6/2 上午 11:49 密码到期 永不 密码可更改 2002/6/2 上午 11:49 需要密码 Yes 用户可以更改密码 Yes 允许的工作站 All 登录脚本 用户配置文件 主目录 上次登录 2002/6/2 下午 08:16 可允许的登录小时数 All 本地组会员 *Administrators 全局组成员 *None 命令成功完成。 看来administrator账号改为secretboy了。接下来要取得admin权限,因为这样我们才可以清除刚才留下来的日志记录。因为对方打了sp3补丁包,所以就没有什么可以利用的命令行下的提升权限漏洞。下面我就要做个心理诡计: C:\set CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=CNNS-XHACKER ComSpec=C:\WINNT\system32\cmd.exe HOMEDRIVE=C: HOMEPATH=\ LOGONSERVER=\\CNNS-XHACKER NUMBER_OF_PROCESSORS=1 ………………… 接下来我把一个特殊的cmd.exe(利用exe合并软件把cmd.exe和木马合成一个程序)上传到服务器c:\下并且给它加上隐藏属性,等待管理员在“开始”―“运行”菜单运行cmd.exe。运气真不错,没等多久我就发现系统多了一个admin权限的账号(这就是我的cmd.exe木马创建的),接下来就是runas来指定这个admin账号来停w3svc服务并修改%systemroot%/system32/logfile下的日志了,我把刚才的日志都清干净了。 以上的这位黑客其实是一位受到委托的网络安全专家,他灵活运用自己的经验和专业技术找到了可能被黑客利用的重大安全隐患。在他的这次工作记录上,有以下几点值得注意(部分): 1. mail程序没有禁止Expn,vrfy等指令,这是个普遍存在而又比较严重的安全隐患。黑客可能利用这个安全隐患最终得到合法的账号。 2. 用户的密码理论上符合安全要求:8位的字母和数字混合,但是规则太简单,这种abcd1234口令早已列入所有黑客字典。建议网站提高密码设置要求。 3. 135,139端口如无必要,建议屏蔽。虽然网管取消了ipc管道,但是尖端的黑客技术仍然可以快速猜解系统账号的密码。 4. 存在严重的asp组件安全问题,建议对Scripting.FileSystemObject改名或者进行合理权限配置,防止这类asp的攻击。 5. 系统权限分配不合理,用cacls查看目录,发现许多目录没有对Everyone组进行限制。这将很容易被黑客设计心理诡计扩大权限。例如文中向C盘写入cmd.exe文件 6. 没有进行严格的防火墙过滤,导致黑客一开始就可以从容地使用多种入侵方式刺探漏洞。