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:

相关推荐
wubba lubba dub dub7501 小时前
第四十六周 学习周报
学习
for_ever_love__1 小时前
UI学习:无限轮播视图
学习·ui·ios·objective-c
xieliyu.1 小时前
Java手搓二叉树:基础遍历与核心操作全解析
java·开发语言·数据结构·学习
昨夜见军贴06161 小时前
爆破冲击试验越来越严格,AI报告审核如何借助IACheck守住安全底线
人工智能·安全
kdxiaojie1 小时前
U-Boot分析【学习笔记】(6)
linux·笔记·学习
armwind1 小时前
这6年的小感悟-重新记录自己
笔记
DragonnAi1 小时前
论文解读:SFINet 空间-频率统一学习框架用于多模态图像融合
深度学习·学习·计算机视觉
晓梦林2 小时前
Commit靶场学习笔记
笔记·学习·安全·web安全
Paranoid-up2 小时前
安全启动和安全固件更新(SBSFU)6:编译流程——prebuild 与 postbuild 脚本
安全·iap·安全启动·安全升级·sbsfu