7.6、使用Tomcat管理界面执行代码
在第四章中,测试认证及会话管理时,我们获取到了Tomcat管理员的认证,并且当时也提到了这可能会让我们在服务器上执行一些代码。在这小节中,我们将使用认证登录到管理页面,然后上传一个新的程序,以便允许我们在服务器上执行一些命令。
实战演练
在这小节中,我们将使用OWASP BWA机器的vm_1,从Tomcat的登录认证的地方开始:
1. 浏览器打开http://192.168.56.11:8080/manager/html,使用root作为登录名,密码是owaspbwa:
2. 一旦进入到管理页面,我们要去寻找WAR文件部署的部分,然后点击浏览按钮。
3. Kali在/usr/share/laudanum/下面收集了很多webshell。
浏览到/usr/share/laudanum/jsp/cmd.war文件并选择它:
4. 等待一小会加载的时间,然后点击部署(Deploy)
5. 认证过后,你将有一个新的程序并被叫做cmd,如图:
6. 让我们尝试去浏览它,http://192.168.56.11:8080/cmd/cmd.jsp
7. 如果操作一切都是正确的,你将会看到一个文本框和一个send按钮。在这个文本框上你可以尝试输入一些命令并且点击send去执行,例如输入:ipconfig
8. 现在我们可以执行命令了,但是现在我们有哪些用户,以及各自的特权级别呢?尝试输入whoami命令来了解下:
我们可以看到Tomcat在这个服务器上使用的是ROOT特权用户。这就意味着我们在这个平台上有全部的控制权,例如:增加或删除用户,安装软件,配置系统参数等等。
原理剖析
一旦我们获取到了Tomcat管理界面的认证,这个攻击流程就是非常简单的了。我们只需将一个对我们有极大用处的软件上传就好了。Kali下面默认包含了很多收集来的不同语言的WEBshell,针对不同类型的服务器,如:PHP,ASP,ASP.NET和JSP。
Tomcat可以将把一个带有JAVAweb软件包打包在WAR的文件部署在这个服务器上。我们使用Tomcat这个功能将webshell文件上传到服务器上去,就可以执行系统命令,并且可以发现在这台服务其中有root权限,而且并没有正确的配置这台服务器以及运行着root用户。