2
2

HackAll v3 簡易Writeup

Last updated at Posted at 2024-09-20

fogot Password?に書いてある問題文から解いていくゲーム。Usernameは入力しなくても進める。問題のスクショは省略。初心者に向けていつもより易しく書いてみた。

Level1

image.png
F12からElementsのコメントにパスワードがある。
password:mypass

Level2

ソースコードを見ると、base64らしい文字列がある。
image.png
image.png
password:hirake-goma!

Level3

パスワードは、ASCIIで「4D 61 74 65 72 69 61 6C 69 7A 65」です。
cyberchefに入れる。
image.png
password:Materialize

Level4

パスワードは、お使いの端末の「ユーザーエージェント」です。
image.png
書き換えておく。F12→右上の3点→More Tools→Network conditionsから変更できる。
password:任意のUseragent

Level5

ユーザーエージェントを「HackAll」に変更して、ログインしてください。パスワードは「現在接続に使用しているIPアドレス」で、https://hackall.tech/cdn-cgi/trace から確認できます。
(なぜか認証されなかったから、TorでIPを偽装して通した。IPv6で行ったが、通った。(別のブラウザで行いたいときは、F12→Applicationもしくはstrage→cookie→hackall_sessionを共有して、リロードすると通るようになる。))
password:your Ipaddress.

Level6

Cookieの[UserID]の値を「hackar_1285」にしてください。パスワードはCookieの[password]の値です。
image.png
スクショのように、UserIDという項目を付け足して、hackar_1285とするパスワードはtoor。
password: toor

Level7

パスワードはヘッダー情報に隠されています。
BurpSuiteを使ってリロード、Proxyでinterceptをonにしてキャッチ、ctrl+rでRepeaterに送って、ヘッダーを見る。image.png
password:border-gateway
interceptをoffにしたら通常通り通信が流れるので、おかしいな?と思ったらoffになっているか確認してみましょう。

Level8

パスワードはhackall.techのDNSレコードにTXTとして保存されています。
wslを使って、dig hackall.tech TXTと入力する。

└─$ dig hackall.tech TXT

; <<>> DiG 9.19.21-1-Debian <<>> hackall.tech TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31393
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;hackall.tech.                  IN      TXT

;; ANSWER SECTION:
hackall.tech.           300     IN      TXT     "google-site-verification=esFA0QSkBJXiyF1mM3C0OsAGo4hw95Arq6pVIZamQXs"
hackall.tech.           300     IN      TXT     "hackall-level8-key is 82589933"

;; Query time: 840 msec
;; SERVER: 10.255.255.254#53(10.255.255.254) (UDP)
;; WHEN: Fri Sep 20 16:42:15 JST 2024
;; MSG SIZE  rcvd: 165

password:82589933

Level9

パスワードは2の10000乗の最後の8桁です。「調べること」もハッキングの一つ。Google検索によって機密情報を詮索することを「Google Hacking」と呼びます。
ChatGPTに聞いたら帰ってきた。
image.png
password:96709376

Level10

image.png
右クリックでの一部機能が制限されているのが不審。URLの最初にview-source:を付けることで、ソースコードを見ることができる。
view-source:https://hackall.tech/level10

    * 僕は「レベル9までを全て突破した皆さんは」としか書いていません。
    * HackAllが全て終了したような演出を意図的にしているだけです。
    * その証拠にタイトルは「Level 10 - HackAll v3」になっています。
    *
    * 情報セキュリティの分野においても、気を抜いた瞬間こそが一番危ないというのは、言うまでもありません。
    * ランサムウェア攻撃は、金曜日の夜に多いのだとかなんとか。
    *
    * ここまでは、ちょっとした遊びみたいなものです。あなたがHackAllの"本体"に挑戦する資格を有しているか、確認させていただきました。
    * 情報セキュリティの現場で、ソースコードにパスワードが書いてあるなんてことはまずないでしょう。
    *
    * どんどん先へ進もう! 
    *
    * レベル11 : https://hackall.tech/level10?msg=keep_it_up

Level11

GETパラメータの文字列に基づいて特定のファイルの中身を表示しています。
'https://hackall.tech/level11?page=login.php#!'
現在はlogin.phpが表示されているようだ。URLに直接ファイルを指定することで、別のファイルを表示させることができそう。
../../../../etc/passwdや空文字列、http://localhost/などを試したが、正解はindex.phpだった。
image.png
isset($_POST["password"])) { if ($_POST["password"] == "traversal") { SetLevelAndUserName(StageLevel, GetName()); define("MoveToNextLevel", true); } else { header("Location: https://hackall.tech/level" . StageLevel .とあるので、パスワードはtraversal
password:traversal

Level12

パスワードは「なし」です!!
普通にLOGINを押すと、パスワードが入力されていません。とのエラーが出るので、Burpsuiteを使用する。
適当な文字列を入力した後、proxyのinterceptをoffにして、requestを見る。username=&password=test&btn_login=username=&password=&btn_login=に書き換え、Forwardを押す。
成功した後はinterceptをoffにしよう。
password:

Level13

以下のZIPファイルの暗号化を解除してください。
https://hackall.tech/files/very-secret-file.zip

ただし、パスワードは5桁の数字です。
john the ripperというツールを使う。zipファイルからハッシュを取り出して、総当たりで解読を試みる。
まずは以下のコマンドでhashを抽出する。
zip2john yourfile.zip > hashes.txt
次に、パスワードファイルを作る。
seq -w 00000 99999 > numbers.txt
それらを組み合わせて総当たりをする。
john --wordlist=numbers.txt hashes.txt
パスワードが見つかったら、解凍する。
unzip -P 00000 yourfile.zip
だとバージョンが不足していたので、
7z x -p00000 very-secret-file.zip

(HackAll v3, Level 13)

UserName:PassWord(MD5)
 = isaac:0f359740bd1cda994f8b55330c86d845

hashcatなどで解読してもいいが、Crackstationを利用する。
https://crackstation.net/
image.png
username:isaac
passsword:p@ssw0rd

Level14

Torネットワークで発信元を匿名化しながら、ユーザーエージェントを「HackAll」に偽装してログインしてください。
Torブラウザーをインストールし、firefox用のuseragentswicherを入れる。
挙動が不安定か、僕が見つけていない条件があるので、なぜか条件をそろえても先に進めないことがある。
祈りながらLoginを連打する。image.png
ここから、Torがつながっているか確認できる。
https://check.torproject.org/?lang=ja

Level15

NULLバイト攻撃の脆弱性があります。
ただし、ブラウザの開発者ツールでは、リダイレクト直前のレスポンスボディが見られないことに注意してください。
NULLバイト攻撃とは、入力に%00や\0(NULLバイト)を含めることで、文字列がその位置で終端と見なされるようにし、プログラムの意図しない動作を引き起こす攻撃のことです。
リダイレクト直前のレスポンスト言っているので、burpでキャッチした後にctrl+rでリピータータブに送ります。
passwordに%00を入れて送ると、画像のようにパスワードが出てきます。
image.png
password:identity-mapping

Level16

パスワードは4桁の数字です。総当たりしてください。
hydraやwfuzzで行ったほうが速いのですが、通った後の挙動を調べるのがめんどくさかったのでBurpのIntruderを使いました。また、それらを使用する場合はcroudflareの上限に引っかからないように十分遅くする必要があります。image.png
このように記号で囲った後、payloadsタブに移動し、1000から総当たりを行いました。
0000から試さなかったのはめんどくさかったから
数時間後に確認すると、1729で200レスポンスが返ってきていたので、1729が答えでした。hydraで十分でした。
password:1729

Level17

パスワードリストファイル
https://hackall.tech/files/HackAll_password_dictionary.txt
に基づいて、辞書攻撃をしてください。
同じく、Intruderを使用しました。すべてコピーして、payloadsのpasteを押すだけです。丸一日かかりました。
password:MaTRiX2w

Level18

80桁の合成数
41131230896906266568421250948005105396640805366178123028001617187226097369970881
の素因数のうち、最も小さいものがパスワードです。

約256ビットのRSA暗号なんて、簡単に分解できますよね!
一般数体篩法がお勧めです。手元の環境では1分58秒かかりました。
以下のサイトで素因数分解を行いました。5分くらいでできました。
https://www.alpertron.com.ar/ECM.HTM
だれかfacterDBに登録しておいてください。(他力本願)

password:4958316916428320106286111082957922130667

あとがき

現在公開しているのはLevel18までのようです。最終問題以外のネタバレはOKとのことで、このwriteupを書きました。

まだ最終問題は公開していないとの判断ですべての問題の解説を書きましたが、まずかったらTwitterは@kumama_nuiまでDMください。さくさく進めて楽しかったです。
2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2