本文共 3565 字,大约阅读时间需要 11 分钟。
利用Tomcat的用户名和密码构建“永久”后门
(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
所示。 (二)查看Tomcat
用户配置文件。Tomcat
安装完成后有一个配置文件“tomcat-users.xml
”,它位于Tomcat
程序安装目录下的conf
目录下,直接打开该文件可以看到其中关于用户名和密码的明文值,如图2
所示,找到并记住包含“admin,manager
”那一行的用户名和密码。 (1
)有很多对tomcat
不是很了解的管理员在安装完Tomcat
后并没有修改默认密码,用户名是admin
,密码为空,如果是这种情况可以直接登录。 (2
)如果用户修改了该密码,那么其密码一定保存在“tomcat-users.xml
”中,因此可以通过Webshell
来获取这个文件的内容。 (三)进入Tomcat
管理。Tomcat
提供了在线管理,本案例也正式利用在线管理来构建后门的。在图1
中单击左上角下面的“Tomcat Manager
”链接后,会弹出一个要求输入用户名和密码的窗口,该窗口跟Windows
登录窗口有点类似,如图3
所示。 (四)查看部署情况。在图3
中输入从“tomcat-users.xml
”文件中获取的具有管理员权限的用户名和密码,验证通过后进入部署管理页面,如图4
所示。 (1
)在部署管理页面中可以“Start
”(启动)、“Stop
”(停止)、“Reload
”(重载)、“Undeploy
”(删除部署)已经部署的项目,单击“Undeploy
”会对文件进行物理删除。 (2
)部署的文件夹是以*.war
文件的名称,例如上传的文件是job.war
,则在Tomcat
目录中会对应生成一个“job
”文件夹 。 (五)部署JSP WebShell
后门程序。在部署管理页面的下方有一个“WAR file to deploy
”,单击浏览选择一个已经设置好的后门war
文件,在本例中的后门程序为job.war
,单击“deploy
”将该文件部署到服务器上,如图5
所示。 (2
)将winzip
软件安装在系统中,然后将单一或者多个jsp
后门文件压缩成一个压缩文件,压缩成功后,将“*.zip
”文件更名为“*.war
”即可。 (3
)上传文件后,tomcat
会自动进行部署并运行。 (六)测试后门程序。在地址栏中输入“部署文件名称/jsp
文件”,例如在本例中其正确的访问是“[url]http://127.0.0.1:8080/job/job.jsp[/url]
”,如果设置正确会显示如图6
所示的Webshell
登录窗口。 (七)在Webshell
中执行命令。在Webshell
中输入密码后,进入到Webshell
管理界面,默认显示服务器的一些信息,在功能菜单中选择“执行命令”,并在执行命令输入框中输入“netstat -an
”命令可以查看网络连接等,如图7
所示。 (1
)通过这种方式部署的Jsp
后门程序具有较大权限,可以执行添加用户等危险命令。 (2
)jsp
后门中可以通过“文件系统”模块来对文件进行操作;通过“数据库”模块来连接数据库等操作; (3
)本案例构建后门也正是这里,平时可以在系统中保留一个小的后门程序,如果后门程序被杀毒软件查杀或者被管理员发现并删除掉了,则可以通过以上步骤重新进行部署,从而循环永久保留后门。 本案例介绍的情况适合于管理员(admin
)密码为空的情况,同时也适合于获取了tomcat
中的tomcat-users.xml
文件中的用户名和密码的情况。一般来讲内网相对防护要弱一些,因此该案例对于内网渗透时有一定的帮助。由于本人对jsp
不是特别熟悉,尤其是部署设置,不知道在jsp
中是否也可以进行诸如IIS
中的严格权限限制,能否禁止jspwebshell
的执行,本案例是对服务器攻防的一种探讨,功能强大的应用程序往往一个弱小的漏洞就可以攻破整个系统。 通过google对tomcat的一些关键字进行了搜索,没有遇到管理员为空的,我使用inurl:8080 关键字进行搜索的,不知道还有什么好的方法来进行搜索。 本文转自 simeon2005 51CTO博客,原文链接:http://blog.51cto.com/simeon/58877 转载地址:http://wcmpa.baihongyu.com/