某系统Tomcat7弱口令拿shell漏洞复现
简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。Tomcat处理静态HTML的能力不如Apache服务器。
一、漏洞复现前提条件
(1)首先tomcat web管理界面开启。
(2)tomcat-users.xml里面的配置文件需要修改成如图所示。
(3)Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。Tomcat7+权限分为:
manager(后台管理)
manager-gui 拥有html页面权限
manager-status 拥有查看status的权限
manager-script 拥有text接口的权限,和status权限
manager-jmx 拥有jmx权限,和status权限
host-manager(虚拟主机管理)
admin-gui 拥有html页面权限
admin-script 拥有text接口权限
(4)注:为什么需要上传war包,为什么不是tar.zip一类的?因为war包是用来进行Web开发时一个网站项目下的所有代码,包括前台HTML/CSS/JS代码,以及后台JavaWeb的代码。当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布则也会打包成War包进行发布。War包可以放在Tomcat下的webapps或word目录,当Tomcat服务器启动时,War包即会随之解压源代码来进行自动部署。
二、漏洞测试过程
(1)打开系统,发现有Tomcat后台,点击Manager App。
(2)弱口令爆破 一般情况开启了Tomcat的WEB管理,管理人员的习惯都喜欢将账号设为tomcat或者admin,此时由于管理人员的安全意识不足,有可能将密码设置为弱口令,渗透测试人员可通过爆破工具,进行密码的暴力破解,本次使用的是burp的Intruder模块。爆破过程如下所示。
1)首先输入账号“tomcat”,密码输入“tomcat”,通过burp进行抓包,如下图所示。
2)此时通过Intruder进行账号与密码的暴力破解,本次为了演示方便,仅将账号设为tomcat,爆破登录密码,爆破过程如下所示。
①首先选择需要爆破的base64编码的账号及密码,通过base64解密发现,账号和密码的组合方式是tomcat:tomcat
,即是账号:密码,总共分为三段,如下图所示。
②选择Payload type模块为:Custom iterator
,下面第一段是账号,此处填写为tomcat
,如下图所示。
③下面第二段是填入”:
”,如下图所示。
④第三段填入常用的弱密码,如下图所示。
⑤然后选择Base64编码
模块,并且取消URL-encode these characters
,如下图所示。
⑥最后开始进行暴力破解,破解出密码,如下图所示。通过base64解密,账号和密码均为admin
。
(3)登录后台后,进行war包部署。
(4)方法1:先将jsp大马压缩为zip,再将zip后缀改名为war,然后上传war包;方法2:安装Java环境,用jar cvf
命令生成war包。
(5)点击上传,最后访问http://127.0.0.1:8080/文件名/文件名.jsp
。服务器不给访问,估计有waf拦截,但是没关系,可以用菜刀连接上。
(6)最后GetShell
思路一:菜刀/蚁剑/C刀/冰蝎连接成功后,就可以上传大马进行提权getshell,最终拿下整个服务器。
思路二:可以用msfconsole的exploit/multi/http/tomcat_mgr_upload模块进行getshell。
三、修复方案
1、在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。
2、增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml
文件设置锁定机制和时间超时限制。
3、以及针对manager-gui/manager-status/manager-script
等目录页面设置最小权限访问限制。
四、Tomcat常见漏洞
Tomcat manager 弱口令或爆破 && 后台getshell漏洞
Tomcat PUT任意文件写入(CVE-2017-12615)
Tomcat win版默认空口令漏洞(CVE-2009-3548)
Tomcat 远程代码执行(CVE-2019-0232)
Tomcat 反序列化漏洞(CVE-2016-8735)
最后来听首歌放松一下