利用
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技术专栏” 博客,转载请与作者联系!