靶机下载:https://download.vulnhub.com/empire/02-Breakout.zip
这个主机不算很难,对于新手难度适中,可以尝试练手,如果没有思路本篇文档可供参考。
知识点:smb协议,Enum4linux,文件任意读取,brainfuck编码
一、信息收集
主机发现
接下来进行端口,系统,漏洞,的扫描。
这时候发现目标主机开启了smb服务,还有webmin。本人尝试用smb突破。
我们尝试登陆网页,进行网页信息收集
80端口:
一个没有配置的apache的页面
../../../etc/passwd
发现没用这条路走不通,我们尝试打开审查元素查看前端代码,
代码没什么问题,但是代码写完了后面还有一东西 ,我们拉到最底
得到了一串加密代码,看不懂。百度一下
得知这是一种叫brainfuck的编码
参考:https://blog.csdn.net/qq_43624293/article/details/97944650
Brainfuck/Text/Ook! obfuscator - deobfuscator. Decode and encode online.
解码:
得到字符串:.2uqPEfj3D<P'a-3
接下来问访问10000,和20000端口
可以进行弱口令测试但是这是渗透靶场不是爆破靶场所以用渗透的思路来解
二、利用smb获得入口权限
- SMB是一个协议名,全称是Server Message Block(服务器消息快协议),用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现。
- 参考文献:SMB服务详解_hhhhhorz的博客-CSDN博客
我们利用枚举工具Enum4linux对目标主机SMB服务的机器列表,共享列表,策略信息,组和成员列表进行枚举。
- Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以轻松的从与SMB服务有关的目标中快速提取信息。
- 参考文献:【网安神器篇】——enum4linux枚举工具_白昼安全的博客-CSDN博客
enum4linux -a 192.168.10.43
获得登陆用户,我们在10000端口上结合解码出来的字符串进行尝试登陆
成功进入
三、读取任意文件提权
我们查看目录下的user.txt和tar文件(user.txt文件是第一个flag)
- getcap命令用于获取用于授予二进制文件或脚本系统特权的能力列表。在Linux系统中,能力是一种系统安全机制,用于分离用户特权,并允许用户在没有完全root权限的情况下运行一些需要特权的程序。
- getcap 命令通常在安全设置方面使用,在需要运行一些必须具有root权限才能运行的命令时,可以使用getcap获取二进制文件或脚本所需的特权,并将其授予用户或组,而无需提升用户或组的权限。
getcap tar
- cap_dac_read_search:允许该文件在执行时尝试从磁盘读取数据,并允许该文件搜索其他文件系统。
- ep:表示该文件的有效用户ID (EUID) 或者 有效组ID (EGID) 可以在运行时提升到与文件所有者相同的权限,这通常用于启动系统服务或执行需要特权的操作。
- 因此它可以读取任意文件
遍历目录文件发现在var/buckups/. old_pass.abk没有读取的权限
我们回到~目录 调用tar 压缩var/buckups/. old_pass.abk文件到~目录,用tar创建一个归档文件(c),将文件打包(v)并将输出写入文件(f)。
./tar passwd.tar /var/backups/.old_pass.bak
解压
密钥
得到 密钥
Ts&4&YurgtRX(=~h
切换root
成功提权
获得第二个flag值