课程来自《Kali Linux Web Penetration Testing Cookbook - Second Edition》,Chapter 4: Testing Authentication and Session Management,第五小结:Attacking Tomcat's passwords with Metasploit
本文不是对《Kali Linux Web Penetration Testing Cookbook - Second Edition》的翻译,而是根据该书内容进行的验证及解释。
5.1 Apache Tomcat简介
Apache英[əˈpætʃi] n.美洲印第安人的一种族
apache英[əˈpɑ:ʃ] n. (巴黎,布鲁塞尔等地的)流氓或暴徒
tomcat英[ˈtɒmkæt],male cat,雄性猫、公猫
Apache tomcat是世界上使用最广泛的java web应用服务器之一,绝大多数人都会使用tomcat的默认配置。默认配置中会有一个向外网开放的web应用管理器,管理员可以利用它在服务器中启动、停止、添加和删除应用。
在本节中,将使用metasploit某个模块对tomcat管理界面实施密码暴力破解攻击以获得一个管理器的访问权限。
5.2 实验环境配置
1. 启动数据库服务并初始化
Msf使用的是postgreSQL数据库来存储日志和结果
启动postgreSQL的命令: service postgresql start
创建并初始化数据库的命令: msfdb init
2. 启动msf
命令:msfconsole
3. 靶场
老师这里的靶场IP是192.168.22.130,同学们实验时要看清楚自己靶场的IP。
5.3 攻击过程
1. 打开靶场中的Tomcat Server
在kali linux的firefox浏览器中输入http://192.168.22.130:8080/manager/html
靶机中有一个Tomcat Server服务在运行,端口是8080,通过浏览器进行访问。
2. 在Kali linux中启动msf并加载爆破模块
命令:use auxiliary/scanner/http/tomcat_mgr_login
3. show options
如何理解命令show options:加载了攻击模块后,通过show options命令了解,要使用这个攻击模块进行攻击,后续还需要配置的参数有哪些,这些参数又是怎么配置?
4. set rhosts 192.168.22.130
现在可以设置目标主机ip了
5. set threads 5
为了使运行速度快一点(不能太快!),可以用这个命令设置线程
6. set bruteforce_speed 3
为了不使服务器因为太大量请求而奔溃,破解速度降低一点:
7. run
2-7的运行截图:
8. 在一些失败结果后,发现了一个有效的密码!(绿色的结果)
9. 使用该用户名和密码登录后的结果:
上一个步骤通过爆破获得了用户名root和密码owaspbwa,尝试用该用户名和密码登录,登录结果如下图示:
10. 总结
默认情况下,tomcat服务会开启在8080端口,管理界面目录在/manager/html
该应用使用基础http认证。刚刚使用的tomcat_mgr_login模块有一些参数需要讲解一下:
BLANK_PASSWORDS: 为每一个账号提供一个空密码测试
PASSWORD: 设置这个可以一密码多用户的方式进行测试
PASS_FILE: 输入你想使用的密码字典路径 Proxies: 为了避免被检测到源地址,可以使用这个代理功能
RHOSTS:填写要测试的主机(可以是多个,以空格分隔。也可以是一个清单文件)
RPORT:设置目标tomcat运行端口 STOP_ON_SUCCESS:当破解成功后停止攻击
TARGERURI:管理界面的目录路径
USERNAME:定义要测试的用户名(可以使单个,也可以是一个字典文件)
USER_PASS_FILE:使用 用户名/密码 格式的字典文件
USER_AS_PASS:尝试使用测试中的用户名作为密码 一旦成功进入tomcat管理界面,就能看到并操作安装在上面的应用。 此外可以上传自己的应用(包括能在服务器执行命令的应用)。
留下一个难题~向服务器上传并部署一个webshell,并在其中执行系统命令。 (提示:Kali Linux的usr/share/webshell目录下有很多webshell的源代码!)