环境搭建
靶机: Ubantu 16.04
攻击机: Kali 2.0
靶场的搭建利用docker快速搭建,如果不会使用docker的小伙伴,可以直接查看docker快速入门教程
我这里用的是consol/tomcat-7.0,先拉取镜像
docker pull consol/tomcat-7.0
创建容器,将8080端口映射在宿主机上
docker run -d -p 8080:8080 consol/tomcat-7.0
docker ps
以8080端口去访问tomcat
tomcat控制台地址
控制台地址:
http://10.1.1.10:8080/manager/html
或者手动点击Manager app去访问:
tomcat控制台密码加密方式分析
利用Burp Suite进行抓包分析,设置好代理后,输入账号密码进行拦截
看到请求头中存在一个Authorization的字段名,将Basic后的字符串进行base64解密
解密后可以看到我们在控制台中输入的账号密码
tomcat控制台账号密码加密总结:
- 传输的账号密码存在于请求头中的Authorization字段中.
- 账号密码经过了base64加密
- 传输的账号密码格式为(username:password)
暴力破解工具的使用
msf
在命令行中输入msfconsole启动msf:
msfconsole
搜索tomcat,可以看到一个tomcat_mgr_login模块:
search tomcat
选择模块,查看需要配置的参数:
use auxiliary/scanner/http/tomcat_mgr_login
show options
设置需要爆破的靶机ip,然后开始运行:
set rhosts 10.1.1.10
run
爆破成功回出现[+]
实战渗透中,利用扫描器扫出来tomcat可能不在8080端口,以及想要加入自己的字典,等等其他选项,都可以自行修改
例如:
- 修改端口号:set rport 8081
- 修改tomcat控制台地址:set TARGETURI /admin/admin
- 修改爆破的密码字典位置:set pass_file /etc/password.txt
cheek_tomcat
github项目地址:
https://github.com/r00too/cheek_tomcat
kali下载:
git clone https://github.com/r00too/cheek_tomcat.git
进入工具目录,可以看到一个cheek_tomcat.py(这个为我们的爆破脚本文件),其他两个文件分别存放着用户名和密码(感觉这样挺方便的,以后可以将收集好的字典加进去即可)
工具使用方法:
#python3 cheek_comcat.py (tomcat后台)
python3 cheek_tomcat.py http://10.1.1.10:8080/manager/html
这个工具破解的速度还算不错,也可以在windows上安装个python3直接运行(有时候懒得打开kali)
加固方案
进入容器命令终端,搜索tomcat配置文件目录
#docker exec -it <容器名/容器ID> /bin/bash
docker exec -it 2cbdca2578d0 /bin/bash
#tomcat服务目录
find / -name tomcat
#查看目录下文件
cd /opt/tomcat
ls
安装vim进行文件编辑
#更新源
echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main" >/etc/apt/sources.list
apt-get update
#安装vim
apt-get install vim
增强账号密码安全性
进入conf目录,可以看到目录下有个tomcat-users.xml文件
#编辑 tomcat-users.xml
vim tomcat-users.xml
#光标快速跳到最后一行
shift+G
修改password的值:(密码自己设定,加强自己的密码复杂度即可)
重启tomcat:
#进入bin目录
cd /opt/tomcat/bin
#关闭tomcat
./shutdown.sh
#启动tomcat
./startup.sh
在docker容器中重启tomcat服务后,容器会被直接关闭,我们会被直接退出到宿主机上。
只要再次打开容器即可。
#docker start <容器名称/容器id号>
docker start d5432df684d1