Qingmei靶场学习笔记

前言

本文围绕 Qingmei 靶场的实操过程展开,详细记录从初始的端口扫描定位攻击面,到突破匿名登录限制、获取 Bash 交互环境,再到完成 Shell 环境逃逸与多维度用户提权的全流程。

正文

1、端口扫描

bash 复制代码
nmap -sV -v -T4 -A 192.168.31.159

发现开放2280端口:

80端口访问后,没啥有用信息:

2、匿名用户登录

目光转到22端口上,随机一个用户SSH远程登录上去试试:

bash 复制代码
ssh a@192.168.31.159

有提示正确的用户名和密码,通过用户名guest和密码guest进入web交互界面:

3、Bash 交互环境获取

!bash发现没有回显,且终端像卡了一样,说明有些比赛题对用户的bash行为是限制的。

  • 💡 为什么是 ! 开头?
    程序会过滤普通输入,但对 !开头的内容放行,把后面的内容当成系统命令执行。当你输入 !sh,它就会执行 os.system("sh"),直接启动一个 shell 进程,所以你能看到命令回显、可以执行系统命令了。
方法(1):修改bashrc

通过命令!sh进入shell交互界面:

tail 命令默认查看文件的最后 10 行,查看当前用户主目录下的 .bashrc 文件:

方法(2):强制TTY登录

强制 SSH 给你分配一个伪终端:

bash 复制代码
ssh guest@192.168.31.159 -t ssh

4、Shell 环境逃逸

原来的流程:SSH 登录 → 自动执行 .bashrc → less banner → exit → 会话直接关闭,拿不到 Shell。
修改后的流程:SSH 登录 → 自动执行 .bashrc(只剩系统默认配置,没有自动退出代码) → 正常进入 Bash 交互环境,拿到用户权限的 Shell。

所以我们要删掉less banner,两种删除法:

bash 复制代码
# 从倒数第2行到最后一行全部删除
sed -i '$d;$d' .bashrc
# 或者直接匹配删除这两行
sed -i '/less banner/d;/exit/d' .bashrc

重新ssh登录,拿到guest用户权限:

5、用户提权

进去之后发现有个morri用户:

方法(1)用户密码爆破

hydra工具尝试爆破一下:

bash 复制代码
hydra -l moir -P pass.txt ssh://192.168.31.159 -v -t 1 -e nsr
参数 / 部分 作用说明
hydra Kali Linux 中常用的暴力破解工具,支持 SSH、FTP、HTTP 等多种协议
-l moir 指定要破解的用户名:moir(小写 L)
-P pass.txt 指定密码字典文件:pass.txt(大写 P),Hydra 会按文件里的每一行密码尝试登录
ssh://192.168.31.159 目标服务和地址:SSH 协议,IP 为 192.168.31.159,默认端口 22
-v 显示详细输出(Verbose),能看到每一次尝试的结果
-t 1 线程数设为 1,每次只进行 1 次登录尝试,避免触发目标的防暴力策略(如 IP 锁定)
-e nsr 附加测试模式,包含 3 种特殊规则: - n:尝试空密码 - s:尝试用户名本身作为密码 - r:尝试用户名倒序作为密码(如 moirriom

爆破完发现密码就是用户名本身:

方法(2)命令执行

进到/opt目录下,发现有个morri_password

执行程序/morri_password,查看帮助-h,拿到用户名权限:

当然也可以按照程序要求生成随机的字母A:

bash 复制代码
perl -le 'print "A"x41'
部分 作用说明
perl Perl 编程语言的解释器,很多 Linux 系统默认自带,常用来快速执行一行脚本
-le 两个常用参数的组合: - -l:自动在输出末尾加上换行符 - -e:直接执行后面引号里的 Perl 代码
'print "A"x41' Perl 代码本体: - print:输出内容 - "A"x41:Perl 里的字符串重复语法,意思是把 "A" 这个字符重复 41 次

进去后,查看并执行可执行的权限:

进入后发现Nano编辑器,里面有root.txt,成功获取flag:

nano 常用操作:

快捷键 作用
Ctrl + O 保存文件(Write Out)
Ctrl + X 退出编辑器(Exit)
Ctrl + K 剪切当前行
Ctrl + U 粘贴剪切的内容
Ctrl + W 搜索文本
Ctrl + C 显示当前光标位置
方法(3)nano漏洞利用

进入Nano编辑器后,先依次输入Ctrl+R 、CTRL+X,然后输入命令:

bash 复制代码
reset; sh 1>&0 2>&0

拿到root用户权限:

成功拿到flag。

方法(4)nano文件管理器内置快捷键登录

通过终端文件管理器nano内置快捷键S功能,进入shell:

相关推荐
会编程的土豆22 分钟前
Go 方法接收者超清晰笔记(类型名 vs 变量名)
开发语言·笔记·golang
峥嵘life32 分钟前
Android 蓝牙设备连接广播详解-2026
android·python·学习
楼田莉子43 分钟前
Docker学习:Docker介绍及其架构介绍
运维·后端·学习·docker·容器·架构
fanged1 小时前
C++的汇编实现(TODO)
笔记
星夜夏空991 小时前
FreeRTOS学习(7)——任务列表
java·前端·学习
不羁的木木1 小时前
Form Kit(卡片开发服务)学习笔记01-核心概念与架构设计
笔记·学习·harmonyos
Mikowoo0071 小时前
神经网络 替代 线性模型_进行模型学习
人工智能·神经网络·学习
不羁的木木1 小时前
ArkWeb实战学习笔记01-核心概念与架构设计
笔记·学习·harmonyos
大明者省2 小时前
IIS 端口绑定正常访问的原理说明与常见误区澄清
运维·服务器·笔记
Geometry Fu2 小时前
《物联网安全》第3.2章 无线传感器网络安全
物联网·安全·物联网安全·无线传感器网络·wsn