
HMV-Connection靶场复盘
Connection
无法获取ip 在开始之前要先进入拯救者模式中修改 网卡信息
端口扫描
端口有4个 有http ssh 还有smb服务 这个服务刚学到 是一个文件共享的服务
信息收集
这里主要先考虑http和22端口
用dirsearch发现没有其他有用的界面 80端口是一个默认的index界面没有有用的信息
ssh 也不能直接登录上去 需要密码
所以考虑这个smb服务
用enum4linux -S 列举出smb共享资源
登录到share – 利用smbclient -N 匿名登录 smbclient -N \\\\192.168.240.237\\share
这里要用反斜杠转义
登录进来之后也只看到只有一个html文件 然后我们从本地上传一个反弹shell的文件put php-reverse-shell.php
因为share这个文件夹只有只读权限所以进到html中上传
上传成功后 在本地监听 web端进入这个php文件 然后就可以获得shell
1 | ┌──(root㉿kakeru)-[~/connections] |
提权
用suid提权
这里使用gdb提权
在gtfobins 中找到提权方案
1 | /usr/bin/gdb -nx -ex 'python import os; os.execl("/bin/bash", "bash", "-p")' -ex quit |
拿到root权限
分别在/root 和/home/connection 中找到flag
解释 gdb
命令
1. /usr/bin/gdb
- 作用:这是
gdb
命令的完整路径,表示调用的是系统中的 GNU 调试器(GDB)。gdb
是一个强大的调试工具,通常用于调试程序,也能执行低级操作,如调用系统命令或执行特定代码。
2. -nx
-n
:启动时不执行任何初始化文件(如.gdbinit
),避免加载默认设置或用户配置文件。-x
:指定gdb
执行的脚本文件,但在此命令中使用-ex
代替,执行内联命令。
3. -ex 'python import os; os.execl("/bin/bash", "bash", "-p")'
-ex
:用于执行gdb
启动时要运行的命令,支持多次使用。- Python 脚本:
import os
:导入os
模块,用于与操作系统交互。os.execl("/bin/bash", "bash", "-p")
:用execl
替换当前进程(gdb
)为新的进程,即启动bash
shell。/bin/bash
:指定执行的程序,即bash
shell。"bash"
:传递给bash
的参数,第一个参数通常是执行命令本身。"-p"
:让bash
保持root
权限,如果gdb
以root
权限运行,新启动的bash
shell 也会保持root
权限。
4. -ex quit
- 作用:在执行完上述 Python 脚本后,立即退出
gdb
。gdb
执行完命令后会退出,但新启动的bash
shell 会继续运行。