Mission 0x31: kira -> veronica
- 任务: 用户
veronica
经常访问http://localhost/waiting.php
。
-
使用
curl
访问该页面,会收到一条信息,提示服务器正在等待一个特定的 User-Agent。kira@venus:~$ curl http://localhost/waiting.php Im waiting for the user-agent PARADISE.
-
根据提示,在
curl
请求中通过-H
参数设置User-Agent
为PARADISE
,成功获取密码。kira@venus:~$ curl -H "User-Agent: PARADISE" http://localhost/waiting.php QTOel6BodTx2cwX
-
veronica 的密码:
QTOel6BodTx2cwX
Mission 0x32: veronica -> lana
- 任务: 用户
veronica
为lana
的密码创建了一个别名 (alias)。
-
在
veronica
的会话中,使用alias
命令可以列出所有已定义的别名。veronica@venus:~$ alias alias lanapass='UWbc0zNEVVops1v' alias ls='ls --color=auto'
-
名为
lanapass
的别名直接暴露了lana
的密码。 -
lana 的密码:
UWbc0zNEVVops1v
Mission 0x33: lana -> noa
- 任务: 用户
noa
喜欢压缩她的东西。
-
在家目录中发现一个名为
zip.gz
的文件。尽管后缀是.gz
,但使用file
命令检查发现它实际上是一个tar
归档文件。(Labs不许解压在该机器,所以需要你自己想办法拉去本地,可以使用bsae64复制拉取) -
将其解压后,会得到一个名为
zip
的文件,其中包含了密码。# 在本地机器上操作 $ file zip.gz zip.gz: POSIX tar archive (GNU) $ tar -xvf zip.gz pwned/lana/zip $ cat pwned/lana/zip 9WWOPoeJrq6ncvJ
-
noa 的密码:
9WWOPoeJrq6ncvJ
Mission 0x34: noa -> maia
- 任务:
maia
的密码被“垃圾”包围着。
-
在家目录中有一个名为
trash
的文件,里面充满了随机的“垃圾”数据。 -
使用
strings
命令可以从二进制文件中提取可打印的字符串,从而在垃圾数据中找到真正的密码。noa@venus:~$ strings trash ... \nh1hnDPHpydEjoEN ...
-
maia 的密码:
h1hnDPHpydEjoEN
Mission 0x35: maia -> gloria
- 任务:
gloria
忘记了她密码的最后两个字符,只记得是两个小写字母。
-
名为
forget
的文件给出了密码的已知部分:v7xUVE2e5bjUc??
。 -
这是一个典型的暴力破解场景。可以编写一个脚本生成所有可能的小写字母组合(从
aa
到zz
),然后使用hydra
等工具对gloria
的 SSH 服务进行密码爆破。for a in {a..z}; do for b in {a..z}; do echo "v7xUVE2e5bjUc${a}${b}"; done; done |tac > pass
-
最终找到的正确密码是
v7xUVE2e5bjUcxw
。
Mission 0x36: gloria -> alora
- 任务:
alora
喜欢画画,所以她把密码存成了一幅“画”。
- 家目录下的
image
文件内容是一大片由#
字符组成的 ASCII 艺术。 - 这幅“画”实际上是一个二维码 (QR Code)。使用手机或在线二维码扫描工具扫描即可得到密码。
- alora 的密码:
mhrTFCoxGoqUxtw
Mission 0x37: alora -> julie
- 任务: 用户
julie
创建了一个包含她密码的 ISO 文件。
-
在家目录中找到
music.iso
文件。可以直接使用strings
命令在文件中查找可疑的密码字符串。alora@venus:~$ strings music.iso ... sjDf4i2MSNgSvOv ...
-
julie 的密码:
sjDf4i2MSNgSvOv
Mission 0x38: julie -> irene
- 任务:
irene
相信“美在于不同”。
-
家目录下有两个文件:
1.txt
和2.txt
。这个提示暗示需要找出它们之间的差异。 -
使用
diff
命令比较这两个文件。julie@venus:~$ diff 1.txt 2.txt 174c174 < 8VeRLEFkBpe2DSD --- > aNHRdohjOiNizlU
-
差异之处显示了两行不同的字符串,其中一个是密码。经过尝试,
8VeRLEFkBpe2DSD
是正确的密码。 -
irene 的密码:
8VeRLEFkBpe2DSD
Mission 0x39: irene -> adela
- 任务:
adela
把她的密码借给了irene
。
-
irene
的家目录下有一个加密文件pass.enc
和一个私钥文件id_rsa.pem
。 -
这表明密码是使用 RSA 加密的。使用
openssl
和给定的私钥可以解密文件内容。irene@venus:~$ openssl rsautl -decrypt -inkey id_rsa.pem -in pass.enc nbhlQyKuaXGojHx
-
adela 的密码:
nbhlQyKuaXGojHx
Mission 0x40: adela -> sky
- 任务:
sky
把她的密码保存在可以“听到”的东西里。
-
adela
目录下有一个名为wtf
的文件,内容是一串点和划。adela@venus:~$ cat wtf .--. .- .--. .- .--. .- .-. .- -.. .. ... .
-
这明显是摩斯密码。使用在线工具进行翻译,得到
PAPAPARADISE
。 -
尝试使用该密码登录失败,但将其转换为小写
papaparadise
后成功登录。 -
sky 的密码:
papaparadise
Flag
31. veronica: 8===iSSeKzoDXsKy8WPuqNPg===D~~
32. lana: 8===um3Hno2AsjFjuLWsfmDj===D~~
33. noa: 8===HUNGevKdeKwcCvJru1CC===D~~
34. maia: 8===nu8IDScKFAXVcnFutKtG===D~~
35. gloria: 8===RZIkEtaEp18tLslTopJj===D~~
36. alora: 8===NSe78N2lM7IbvHzvrC0G===D~~
37. julie: 8===Iwe1QpxTcx0A8Uusqjfe===D~~
38. irene: 8===c9hgLkLGzsNw7mB3VEr4===D~~
39. adela: 8===86XGXQefUeV2eEdrUzxx===D~~
40. sky: 8===8T2IE4fNIvbs8sh1lnew===D~~
Hidden Flags:
40.sky: 8===nyqRAOwkVRTiMYeePdes===D~~
Pass
31: veronica/QTOel6BodTx2cwX
32: lana/UWbc0zNEVVops1v
33: noa/9WWOPoeJrq6ncvJ
34: maia/h1hnDPHpydEjoEN
35: gloria/v7xUVE2e5bjUcxw
36: alora/mhrTFCoxGoqUxtw
37: julie/sjDf4i2MSNgSvOv
38: irene/8VeRLEFkBpe2DSD
39: adela/nbhlQyKuaXGojHx
40: sky/papaparadise