通过Tomcat获取Webshell

导语:

在本地搭建了一个Tomcat服务器,尝试了一下利用,Tomcat manager中war包部署获取目标网站的Webshell。又了用了kali下的msf生成的war包进行shell的反弹。

正文:

0x01.Tomcat环境部署

首先进行的是部署Tomcat的环境,安装Tomcat之前,必须先安装好JDK并配置好环境变量才能正常的运行Tomcat。

利用包管理工具安装了JDK 6 ,在/etc/environment中配置环境变量:

CLASSPATH=/usr/lib/jvm/java-6-openjdk-amd64/lib
JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

配置成功后,可以尝试使用java和javac命令确认是否配置好

JDK配置完成后,可以开始部署Tomcat服务器了。

$sudo wget wget http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.20/bin/apache-tomcat-5.5.20.tar.gz

执行命令获得Tomcat的压缩包,解压后,将文件移动到了/opt/目录下,进入到Tomcat/bin目录下,启动Tomcat:

出现这样的显示时,说明Tomcat启动成功。

访问Tomcat根目录,http://localhost:8080

0x02.通过war包部署拿shell

可以看到页面左上角的Tomcat Manager,点击进入的时候,会出现http基础认证。

不知道账号密码时,可以在Tomcat根目录下的/conf/tomcat-users.xml。

rolename表示用户/权限,username表示账号,password密码,roles指顶用户的权限,可以有多个权限必须逗号分隔。Http的基础认证,输入过一次账号密码就无法登出了,必须关闭浏览器或者清除浏览器缓存来退出。(ps:manager是管理员权限)

进入管理页面后,可以进行war包部署了,从网上找到一个带有大马的war包进行部署,部署成功后,可以直接进入

成功连接大马,尝试执行命令发现是root用户。

这是因为之前我在启动Tomcat服务器的时候,使用的是root用户启动的,当换成普通用户启动的时候,权限自然编程普通权限。

所以说我们在部署网站的时候,尽量使用低权限的用户进行部署,提高整个站点的安全性,否则网站被拿webshell后直接就是root权限,无需提权。

这里还可以使用自己的一句话木马覆盖war包中自带的木马,但是不能通过普通的压缩软件来制作war包,虽然能够压缩,但是上传后无法正常部署。

0x03.利用msf反弹shell

先使用相应的模块生成一个含有shell的war包,填写好监听主机的IP和端口

然后启用监听模块,配置好IP和端口,执行等待shell反弹,将刚刚生成的war包像之前一样部署到Tomcat的根目录,然后访问部署的文件。

成功反弹回shell

总结:

Tomcat利用这种方式反弹shell的关键是,war包的部署,我们可以通过关闭Tomcat manager功能,或者是降低登陆manager页面用户的权限等方法来防止漏洞的产生,还需要保管好manager的账户密码以防泄露,防止漏洞。

文章目录
  1. 1. 导语:
  2. 2. 正文:
    1. 2.1. 0x01.Tomcat环境部署
    2. 2.2. 0x02.通过war包部署拿shell
    3. 2.3. 0x03.利用msf反弹shell
  3. 3. 总结:
,