🕊️
[Level 30 ~ ] OverTheWire Bandit Writeup
はじめに
←←(Level20~29)
サイト
環境
- macOS
- Intelチップ
Tips
macOS 使いは,パスワードをコピーした度に,下記のコマンドをローカルで実行すると,良い感じにパスワードが保存できてタイヘンヨーイ
pbpaste >> password && echo "" >> password && cat -n password
ルール
git
系問題の前提
clone
ここから先,特別な断りがなければ,以下の git clone
コマンドをローカルで実行するところから開始する.そして,repo
が他と被らないように,<現在のレベル>
を末尾につけたものをディレクトリ名にする.そして,そのディレクトリに移動したものとする.(i.e. これら以下のコマンドは断りなく実行しているものとする.)
$ git clone ssh://bandit<現在のレベル>-git@bandit.labs.overthewire.org:2220/home/bandit<現在のレベル>-git/repo repo_<現在のレベル>
$ cd repo_<現在のレベル>
alias
ここに書いてある良さそうな git plog
にエイリアスを貼ってます.
~/.gitconfig
[alias]
plog = log --pretty='format:%C(yellow)%h %C(green)%cd %C(reset)%s %C(red)%d %C(cyan)[%an]' --date=iso
git
系問題の前提
非 前回レベルのユーザー名
を指定し,(ssh -p 2220 bandit.labs.overthewire.org -l <前回レベルのユーザー名>
) 前回レベルのパスワード
を入力し,ログインしたものとします.(i.e. シェルはローカルではなく,ログイン後の bandit.labs.overthewire.org
上を想定しています.)
→Level30
- どうやら,productionにはリークしてないらしい.
-
git branch -a
で色々みる. - 怪しい
branch
でdiff
をみる.
$ ls
README.md
$ cat README.md
# Bandit Notes
Some notes for bandit30 of bandit.
## credentials
- username: bandit30
- password: <no passwords in production!>
$ git branch -a
dev
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
remotes/origin/sploits-dev
$ git switch dev
Switched to branch 'dev'
Your branch is up to date with 'origin/dev'.
$ git plog
081ac38 2024-09-19 07:08:41 +0000 add data needed for development (HEAD -> dev, origin/dev) [Morla Porla]
03aa12c 2024-09-19 07:08:41 +0000 add gif2ascii [Ben Dover]
6ac7796 2024-09-19 07:08:41 +0000 fix username (origin/master, origin/HEAD, master) [Ben Dover]
e65a928 2024-09-19 07:08:41 +0000 initial commit of README.md [Ben Dover]
$ git diff @ @^
diff --git a/README.md b/README.md
index bc6ad3d..1af21d3 100644
--- a/README.md
+++ b/README.md
@@ -4,5 +4,5 @@ Some notes for bandit30 of bandit.
## credentials
- username: bandit30
-- password: qp30ex3VLz5MDG1n91YowTv4Q8l7CDZL
+- password: <no passwords in production!>
→Level31
-
git tag
をする. -
git show
で詳細を表示する.
$ git tag
secret
$ git show secret
→Level32
- どうやら,
May I come in?
という中身を持ったkey.txt
を作成して,remote
にpush
すれば良いっぽい. -
.gitignore
に*.txt
が入っているので,中身を空にする. -
key.txt
を作成する. -
git add
する. -
git commit
する. -
git push
する(push
自体は失敗するが,パスワードは得られる).
$ cat /dev/null > .gitignore
$ echo 'May I come in?' > key.txt
$ git add -A
$ git commit -m "a"
[master c2ce047] a
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 key.txt
$ git push origin master
<省略>
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
remote: ### Attempting to validate files... ####
remote:
remote: .oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.
remote:
remote: Well done! Here is the password for the next level:
remote: <答え>
remote:
remote: .oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.
remote:
To ssh://bandit.labs.overthewire.org:2220/home/bandit31-git/repo
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://bandit.labs.overthewire.org:2220/home/bandit31-git/repo'
→Level33
-
$0
は現在実行しているシェルのパスがあるらしい.
WELCOME TO THE UPPERCASE SHELL
>> $0
$ cat /etc/bandit_pass/bandit33
→Level34
bandit33@bandit:~$ ls
README.txt
bandit33@bandit:~$ cat README.txt
Congratulations on solving the last level of this game!
At this moment, there are no more levels to play in this game. However, we are constantly working
on new levels and will most likely expand this game with more levels soon.
Keep an eye out for an announcement on our usual communication channels!
In the meantime, you could play some of our other wargames.
If you have an idea for an awesome new level, please let us know!
bandit33@bandit:~$ date
Tue Nov 19 02:01:09 PM UTC 2024
bandit33@bandit:~$ exit
logout
Connection to bandit.labs.overthewire.org closed.
おわりに
←←(Level20~29)
参考文献
筆者について
Discussion