利用Tomcat的用户名和密码构建“永久”后门

利用 Tomcat 的用户名和密码构建“永久”后门
Simeon
从本案例中可以学到:
1 )关于 JSP 的一些基础知识
2 )利用 Tomcat 的用户名和密码来构建后门
本文首先要感谢《黑客手册》“非安全 . 后生”编辑为本为提供了帮助,还要感谢网友“伤心的鱼”,本文借鉴了“看小菜如何搞定 tomcat ”一文中的思路,该文中提供的 war 生成比较模糊,且操作复杂,本文提供的方法简单易行。
JSP Java Server Pages 的缩写,是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP 技术是用 JAVA 语言作为脚本语言的, JSP 网页为整个服务器端的 JAVA 库单元提供了一个接口来服务于 HTTP 的应用程序。在传统的网页 HTML 文件 (*.htm,*.html) 中加入 Java 程序片段和 JSP 标记,就构成了 JSP 网页 (*.jsp) Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序片段,然后将执行结果以 HTML 格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无 Plug-in ,无 ActiveX ,无 Java Applet ,甚至无 Frame
Tomcat 是一个免费的开源的 Serlvet 容器,它是 Apache 基金会的 Jakarta 项目中的一个核心项目,由 Apache Sun 和其它一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet Jsp 规范总能在 Tomcat 中得到体现。与传统的桌面应用程序不同, Tomcat 中的应用程序是一个 WAR Web Archive )文件。 WAR Sun 提出的一种 Web 应用程序格式,与 JAR 类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有 Html Jsp 文件或者包含这两种文件的目录,另外还会有一个 WEB-INF 目录,这个目录很重要。通常在 WEB-INF 目录下有一个 web.xml 文件和一个 classes 目录, web.xml 是这个应用的配置文件,而 classes 目录下则包含编译好的 Servlet 类和 Jsp Servlet 所依赖的其它类(如 JavaBean )。通常这些所依赖的类也可以打包成 JAR 放到 WEB-INF 下的 lib 目录下,当然也可以放到系统的 CLASSPATH 中,但那样移植和管理起来不方便。
Tomcat 中,应用程序的部署很简单,只需将你的 WAR 放到 Tomcat webapp 目录下, Tomcat 会自动检测到这个文件,并将其解压。在浏览器中访问这个应用的 Jsp 时,通常第一次会很慢,因为 Tomcat 要将 Jsp 转化为 Servlet 文件,然后编译。编译以后,访问将会很快。另外 Tomcat 也提供了一个应用: manager ,访问这个应用需要用户名和密码,用户名和密码存储在一个 xml 文件中。通过这个应用,辅助于 Ftp ,可以在远程通过 Web 部署和撤销应用,当然本地也可以,本案例就是利用这个特性来构建后门程序的。
Tomcat 不仅仅是一个 Servlet 容器,它也具有传统的 Web 服务器的功能:处理 Html 页面。但是与 Apache 相比,它的处理静态 Html 的能力就不如 Apache 。可以将 Tomcat Apache 集成到一块,让 Apache 处理静态 Html ,而 Tomcat 处理 Jsp Servlet. 这种集成只需要修改一下 Apache Tomcat 的配置文件即可。
(一)检查 Tomcat 设置。服务器安装了 Apache Tomcat 后会默认开放 8080 端口供外部连接,一般在浏览器中输入“ IP:8080 ”或者域名来访问 Apache Tomcat 页面,如图 1 所示。
1 连接到 Tomcat 的页面
(二)查看 Tomcat 用户配置文件。 Tomcat 安装完成后有一个配置文件“ tomcat-users.xml ”,它位于 Tomcat 程序安装目录下的 conf 目录下,直接打开该文件可以看到其中关于用户名和密码的明文值,如图 2 所示,找到并记住包含“ admin,manager ”那一行的用户名和密码。
2 获取用户配置的用户名和密码
说明:
1 )有很多对 tomcat 不是很了解的管理员在安装完 Tomcat 后并没有修改默认密码,用户名是 admin ,密码为空,如果是这种情况可以直接登录。
2 )如果用户修改了该密码,那么其密码一定保存在“ tomcat-users.xml ”中,因此可以通过 Webshell 来获取这个文件的内容。
(三)进入 Tomcat 管理。 Tomcat 提供了在线管理,本案例也正式利用在线管理来构建后门的。在图 1 中单击左上角下面的“ Tomcat Manager ”链接后,会弹出一个要求输入用户名和密码的窗口,该窗口跟 Windows 登录窗口有点类似,如图 3 所示。
3 登录 Tomcat 管理应用
(四)查看部署情况。在图 3 中输入从“ tomcat-users.xml ”文件中获取的具有管理员权限的用户名和密码,验证通过后进入部署管理页面,如图 4 所示。
4 部署管理页面
说明:
1 )在部署管理页面中可以“ Start ”(启动)、“ Stop ”(停止)、“ Reload ”(重载)、“ Undeploy ”(删除部署)已经部署的项目,单击“ Undeploy ”会对文件进行物理删除。
2 )部署的文件夹是以 *.war 文件的名称,例如上传的文件是 job.war ,则在 Tomcat 目录中会对应生成一个“ job ”文件夹
(五)部署 JSP WebShell 后门程序。在部署管理页面的下方有一个“ WAR file to deploy ”,单击浏览选择一个已经设置好的后门 war 文件,在本例中的后门程序为 job.war ,单击“ deploy ”将该文件部署到服务器上,如图 5 所示。
5 上传后门 war 文件到服务器
说明
1 )部署是其文件必须是 war 文件。
2 )将 winzip 软件安装在系统中,然后将单一或者多个 jsp 后门文件压缩成一个压缩文件,压缩成功后,将“ *.zip ”文件更名为“ *.war ”即可。
3 )上传文件后, tomcat 会自动进行部署并运行。
(六)测试后门程序。在地址栏中输入“部署文件名称 /jsp 文件”,例如在本例中其正确的访问是“ [url]http://127.0.0.1:8080/job/job.jsp[/url] ”,如果设置正确会显示如图 6 所示的 Webshell 登录窗口。
6 登录 webshell
(七)在 Webshell 中执行命令。在 Webshell 中输入密码后,进入到 Webshell 管理界面,默认显示服务器的一些信息,在功能菜单中选择“执行命令”,并在执行命令输入框中输入“ netstat -an ”命令可以查看网络连接等,如图 7 所示。
7 执行命令
说明
1 )通过这种方式部署的 Jsp 后门程序具有较大权限,可以执行添加用户等危险命令。
2 jsp 后门中可以通过“文件系统”模块来对文件进行操作;通过“数据库”模块来连接数据库等操作;
3 )本案例构建后门也正是这里,平时可以在系统中保留一个小的后门程序,如果后门程序被杀毒软件查杀或者被管理员发现并删除掉了,则可以通过以上步骤重新进行部署,从而循环永久保留后门。
小结
   本案例介绍的情况适合于管理员( admin )密码为空的情况,同时也适合于获取了 tomcat 中的 tomcat-users.xml 文件中的用户名和密码的情况。一般来讲内网相对防护要弱一些,因此该案例对于内网渗透时有一定的帮助。由于本人对 jsp 不是特别熟悉,尤其是部署设置,不知道在 jsp 中是否也可以进行诸如 IIS 中的严格权限限制,能否禁止 jspwebshell 的执行,本案例是对服务器攻防的一种探讨,功能强大的应用程序往往一个弱小的漏洞就可以攻破整个系统。
后记
    通过google对tomcat的一些关键字进行了搜索,没有遇到管理员为空的,我使用inurl:8080 关键字进行搜索的,不知道还有什么好的方法来进行搜索。

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

你可能感兴趣的:(tomcat,职场,休闲,后门)