セキュリティ
⏱️ 読了時間: 約4

Try Hack Me 勉強記録 #3 - SQLインジェクション攻撃とハッシュ解析、権限昇格のテクニック

Try Hack Me 勉強記録 #3 - SQLインジェクション攻撃とハッシュ解析、権限昇格のテクニック

Try Hack Me 勉強記録 #3 - SQLインジェクション攻撃とハッシュ解析、権限昇格のテクニック


こんにちは!今回も Try Hack Me で学んだサイバーセキュリティの実践的な内容をまとめていきます。

今回は、Webエンジニアなら一度は耳にしたことがある「SQLインジェクション」の自動化手法と、OSレベルの権限昇格について深掘りしました。


---


1. SQLインジェクションと攻撃の自動化(sqlmap)


Webサイトのログインフォームなどで、データベースを不正に操作する「SQLインジェクション」。

手動で試すのも良いですが、実戦では sqlmap というツールを使って自動化するのが効率的です。


# 攻撃のステップ

1. まずログインを試みる: 'or 1=1 # などの有名なフレーズを入れてみて、反応を確めます。

2. リクエストをキャプチャ: ログインボタンを押した時のPOSTリクエストを、プロキシツールなどでキャプチャします。

3. Rawリクエストとして保存: キャプチャした内容をテキストファイル(例: request.txt)として保存します。


# sqlmapを実行する

保存したリクエストファイルを使って、一気にデータベースの中身を暴きます。


# 1. 接続先のデータベース一覧を取得
sqlmap -r request.txt -p username --dbs

# 2. 特定のデータベース(例: test)のテーブルを列挙
sqlmap -r request.txt -p username -D test --tables

# 3. 現在のユーザー情報を取得
sqlmap -r request.txt -p username --current-user

> [!IMPORTANT]
> -r オプションでリクエストファイルを指定することで、ブラウザから送られる複雑なCookieやヘッダーをそのまま再現できるため、成功率が格段に上がります。

---


2. ハッシュ値の解読(hashcat)


データベースからユーザー情報を盗み出すことに成功しても、パスワードは「ハッシュ化」されていることが多いです。これを解読(クラック)するために hashcat を使います。


hashcatのコマンド解説

hashcatのコマンド解説


ハッシュ値を解読する際の定石コマンド:

hashcat '$apr1$BpZ.Q.1m$F0qqPwHSOG50URuOVQTTn.' /root/Tools/wordlists/rockyou.txt -m 1600

  • **ハッシュ値をシングルクォートで囲む**: 特殊文字が含まれることが多いため必須です。
  • **ロックユー(rockyou.txt)**: 世界で最も有名な辞書ファイルです。これを使って辞書攻撃を仕掛けます。
  • **-m 1600**: ハッシュのアルゴリズム(この場合はApacheのMD5)を指定するモード番号です。これを間違うと絶対に解読できません。

---


3. Linux権限昇格への足がかり


システムに一般ユーザーとして侵入した後、管理者(root)権限を奪う「権限昇格」が次の目標になります。


# コマンド置換の罠

シェルスクリプトや実行環境で、以下のような記述があったら要注意です。


コマンド実行の結果を渡す記述

コマンド実行の結果を渡す記述


command=$(ls -l)

ドルマークとかっこ $(...) で囲まれた部分は、その中身がコマンドとして実行され、その結果が変数に代入されます。

もし攻撃者がこの中に自分の好きなコマンドを忍び込ませることができれば、任意のコードが実行されてしまいます。


# 覚えておきたい基本コマンド

  • **.sh**: シェルスクリプトファイル。
  • **chmod**: 指定したファイルに実行権限(`+x`)などを与えます。
  • **sudo**: 管理者権限でコマンドを実行します。
  • **tar**: 複数のファイルを一つにまとめるアーカイブ形式。解凍時にシンボリックリンクを利用した攻撃手法(Wildcard Injectionなど)も存在します。

---


まとめ


断片的な知識も、つなぎ合わせることで強力な武器になります。

SQLインジェクションでDBを抜き、ハッシュを解読してログインし、スクリプトの不備を突いてrootを奪う。この一連の流れがハッキングの醍醐味(?)ですね。


次はもっと高度な権限昇格テクニックについても勉強していきたいと思います!


この記事が参考になったら、ぜひいいねやコメントをお願いします!


この記事をシェア

💬 コメント (0)

読み込み中...

💬 コメントを投稿

0 / 1000 文字

※ コメントは承認後に表示されます。スパム対策のため、URLを含むコメントは自動的に承認待ちになります。

著者情報

トシぼう

トシぼう

東京でのサラリーマン生活を経て、2024年に北海道へ移住したアラフォー見習いエンジニア。 「技術×節約×資産形成」をテーマに、自由で豊かなライフスタイルを模索中。 テスターとして1年経験を積んだ後、開発現場(SES)に参画。Linux, Docker, Gitなどのモダンな開発フローをOJTで習得中です。 記事内容に誤りや古い情報があれば、随時修正していきますので、気になる点があればお気軽にコメントやお問い合わせから教えていただけると嬉しいです。

Try Hack Me 勉強記録 #3 - SQLインジェクション攻撃とハッシュ解析、権限昇格のテクニック | トシぼうのブログ