Qingmei靶场学习笔记

前言

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

正文

1、端口扫描

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

发现开放22和80端口:

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:尝试用户名倒序作为密码(如 moir → riom)

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

方法(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:

相关推荐
kyrie_sakura19 分钟前
大模型学习18 大模型学习 - LangChain2_Model I/O
学习·自然语言处理
安教安全员通关宝23 分钟前
2026年浙江安全员A证考试题库+答案+解析
安全
dire_77728 分钟前
TH26027A开尔文夹子线缆问题导致同惠TH2822电桥测量不准
笔记
2601_9672127236 分钟前
轨道式插座安全结构、认证要求与场景参数技术说明
大数据·经验分享·安全
宝绿特塑业再生科技1 小时前
板材收缩率不稳,户外家具装配尺寸为何对不上:从切割尺寸变化到接缝不一的系统性排查与对策
笔记·科技·学习·生活·户外家具·hdpe再生颗粒·hdpe
admin and root1 小时前
《神农安全.AI漏洞挖掘src赏金》单独开放!
安全·web安全·网络安全·数据挖掘·渗透测试·ai安全·白帽子黑客
LMT_Lanmantech1 小时前
Altium Designer许可安全合规:30天合规认证窗口,不是“准备时间”,是“举证窗口”
安全·软件许可证
Smoothcloud润云2 小时前
远程纳管GPU怎么安全升级?驱动、组件灰度与回滚实战
人工智能·深度学习·安全·gpu算力·gpu·数据库管理员
~城南花已开~2 小时前
Intel E810 SR-IOV VF Spoofcheck 防伪造测试-KVM3
服务器·网络·笔记·学习·ubuntu·etl工程师
Oiiouui2 小时前
关于 Logto 登录系统的体验以及建议
javascript·安全·react