Author:FrancesBeatrice 2026.1 参照Mapsec大佬的视频跟做的,十分感谢大佬的指导。 第一次写这样的,刚刚开始入坑Web攻防,请大家有意见提出。
最终目的:收集信息,获得管理员账号密码进行反弹Shell,根据信息搜索提权CVE,传入靶机运行获取Flag
本次靶机的漏洞原因以及破解、修复对策:
POP3
账号密码直接在网络中明文传输,认证简单,并且抓包就能看到密码,本靶机中没有其他防护。 攻击方法:Hydra 不需要“解密”,它只是模拟合法客户端反复试密码。我们固定的账号,剩下的工作就是遍历弱密码字典反复试密码。 该方法在本靶机非常有效,在这里知道邮箱号就能得到密码,使部分流程简化了找邮箱号。 修复对策:强制使用 POP3S(端口 995) 加密传输,防止中间人窃听。同时部署 fail2ban 防爆破,使其监控 POP3 日志,自动封禁多次失败的 IP。
Moodle 2.2.3 存在已知的 CVE-2013-3630 远程代码执行漏洞
该版本 Moodle 在调用拼写检查时未对输入进行安全过滤,调用外部Shell命令,导致命令直接在服务器执行,从而实现远程代码执行。 攻击方法:直接搜索msfconsole模块,选用moodle_spelling_binary_rce 模块进行RCE攻击。 修复对策:Spell engine禁用PSpellShell。
Linux CVE-2015-1328 提权漏洞
源于OverlayFS 在创建上层副本时,未正确重置 setuid/setgid 位和文件能力,导致普通用户可继承特权文件的权限。 攻击方法:下载提权CVE-2015-1328,反弹Shell传入,编译运行攻击。 修复对策:禁用 OverlayFS或者限制挂载权限。
由该靶场可知,我们攻击者要训练的意识:
要足够敏锐, 1遇到网页要看源代码。 2看到图片要扫String。 3进入页面看指纹看到CMS、版本相关的要记下来查漏洞。 4看到看不懂的一串代码要考虑解密编码。 5记住任何名词,提示会在里面,试的时候统一小写。
靶场过程:
首先我们得让kali连到靶机,找到靶机的IP和Port让Kali能够互动。
IP
我们能看到靶机的MAC,我们知道网段内MAC和IP是绑定的,启动后通过MAC找到靶机的IP, 使用netdiscover进行搜索。
sudo su # 需要管理员权限
netdiscover -r 10.0.0.0/24
扫出网段内的IP,发现靶机的MAC对应10.0.0.139,锁定IP
PORT
使用nmap扫描刚刚获得的IP
nmap -p- 10.0.0.139
可以看到有四个端口
那怎么判断哪个端口才是我们要的呢?
可以看到80是http服务,浏览器直接访问
可以看到,有用的信息只有/sev-home/可以登录
开始常规渗透,开始搜集
但这是网页,可以看源代码。 此页和登录页都看
css文件和js文件都看,有什么看什么
在JS文件中发现了惊喜,发现两个名字Natalya和Boris还有一串看不懂的东西(这个人说是Boris的密码):InvincibleHack3r
从文字内容中可看出这两个名字都是在这个网站上有密码 问ai得知是Html编码,解码得到InvincibleHack3r,并且指向Boris
我们尝试登录,账号名:Boris,boris,Natalya,natalya 都试试,密码:InvincibleHack3r
可以知道对应账号boris
成功登入最初的网页
前面是一段很中二的情景导入,但后面提到了当Adminstrator需要搞定他们搞的pop3服务,还是高端口的。 那我们要当管理员,应该就按他们说的去搞 刚刚我们扫到了55006和55007两个大端口
那怎么搞定pop3呢?
遇到问题就直接搜索 经过查询可知Hydra暴力破解是一个好方法,所以我们可以尝试
echo -e 'natalya\nboris\nBoris\nNatalya' > key.txt 先写一个账号本
hydra -L key.txt -P /usr/share/wordlists/fasttrack.txt 10.0.0.139 -s 55007 pop3 -vV //-L文本 -l 是用户名 - p密码 -vV 会显示每一条线程前面是账号本,后面是密码本
55007和55006都试试 爆出来了账号密码 用户:boris 密码:secret1! 用户:natalya 密码:bird 看来这是个稳定的方案,以后见到邮箱名都可以爆破找密码!!!
登录看邮件
POP3是邮件协议,知道账号密码便可以登录看邮件
nc 10.0.0.139 55007 ---登录邮箱
user boris ---登录用户
pass secret1! ---登录密码
list ---查看邮件数量
retr 1 ---查看邮件内容
依然是注意名词和长串,可以看到两者邮件中都出现了 xenia 甚至还有密码 password: RCP90rulez! severnaya-station.com/gnocertdi
有域名应该怎么访问呢
vi /etc/hosts
在ipv4部分添加,把域名定向到ip
10.0.0.139 severnaya-station.com
进入网站,观测到CMS版本
从页面能够直接看到系统以及版本,后续可以搜索与之相关的漏洞库,进行攻击 登录账号,搜刮信息,搜到一封邮件
里面出现了一个邮件名,doak,应该可以pop3 hydra搜刮密码
尝试后得到密码goat
登录搜刮
得到账号密码,直接叫登网站了,登上继续搜,发现右侧有文件
分析文件和图片
下载得到图片
里面提到了admin的凭证,并且直接说这个jpg图片里有东西了
还有RCP-90,现实中是一种突击步枪,在《007》电影《杀人执照》中由邦德使用,是标志性武器。但在这里也不知道是什么,先记下来。看来搞安全还得多看电影。
复制进URL下载图片,用strings分析字符串或者直接打开图片看
可以发现这一段神秘字符,看见后面两个等号估计是base64,ai也说确实是
至此得到了账号和密码
最后的搜刮
得到网站的后台,我们自然是要拿到Webshell。 由网页内容可知其使用的是Moodle的CMS,所以可以直接搜索版本漏洞进行攻击。 --该图是搜索模块搜出来的列表,我们用序号为1的那个模块。
msfconsole 使用msf攻击
search moodle 搜索攻击模块
use 1 使用第一个
然后show options,set相关信息。 --该图为设置信息
此外还需调整网站的spell引擎为PSpellshell,CMS通过外部Shell命令来调用检查,使攻击者能控制拼写检查的词典路径或输入内容,就可能注入任意命令。便于该模块攻击。
直接run,运行开始攻击
攻入后想办法提权,怎么提权呢?
攻入后会发现命令行不太好用,不好输入命令,而且sudo等指令会检测自己是不是在正常的命令行工作,否则他们不会工作。 于是我们引入Python创建伪终端来优化流程。
输入id可以看到我们现在拿到了www-data权限,已拥有本地Shell。
使用uname -a获取系统信息,方便我们查找漏洞。 我们得知Ubuntu版本,直接搜索ubuntu 3.13,选择得到提权CVE-2015-1328,直接复制下来,传给靶机运行就告破了。
但是我们还得考虑靶机能不能编译运行
进入tmp文件夹方便提权,暂时文件也不容易被发现。
发现只有cc,那就需要去修改CVE使其能够被cc编译
传入CVE,得到提权
在 Kali 上启动 HTTP 服务(如 python3 -m http.server 8000)。
在靶机用 wget从 Kali 下载 exp 源码。
编译成exp
给exp脚本执行权限(这里写错了,但还是能用)
列出文件和隐藏文件以及详细信息
可以看到我们exp可执行,都是rwx。 直接执行
./exp
提权成功
直接看id,看看是不是root了,是就直接进root文件夹看Flag
成功得到Flag,靶场攻破!!!!