疑問
コマンドインジェクションってなに?
そんな方への記事です。
結論
コマンドを用いてWebサーバーを不正操作することです。
テキスト入力部分に悪意のあるコマンドを入力することでハッキングされます。
ハッキングの手法を知ることで身を守れるようになります。
「3分ハッキング」という書籍を参考にしながら一緒に学んでいきましょう。
あらすじ
「3分ハッキング」では新入社員の「しょーじ君」がハッキング技術を一から学んでいくストーリーです。
ハッキングツールを入手したり、会社がハッキングされたり、最後には自分が、、、などいろいろな展開があります。
実際に手を動かしながら学べるようにもできています。
わたしも同じ流れで学んでいこうと思います。
本自体は2時間ほどで読みあわるボリュームでした。
ストーリー形式だったので楽しく読めましたよ
「しょーじくん」含め、登場人物みんなのIT知識はとても高かったですが(笑
コマンドインジェクションとは
コマンドを用いてWebサーバーを不正操作することです。
Webサイトから悪意を「注入」することでサーバ側を不正操作するのが、インジェクション(注入)系の攻撃です。
SQL言語を使って「データベース」を不正操作するのがSQLインジェクションです。
コマンドを使って「Webサーバー」を不正操作するのがコマンドインジェクションです。
準備
VirtualBoxを起動します。
Metasploitable2を起動します。
ユーザー名とパスワードはmsfadminです。
※Metasploitable2のインストール方法

※VirtualBoxのインストール方法

ifconfigを入力して、inet addr:と書かれた場所からIPアドレスを確認します。
テスト用のWebページ
IPアドレスをもとに、ブラウザから
http://192.168.1.18/mutillidae/index.php?page=dns-lookup.php
を開きます。
※192.168.1.18はifconfigで探したIPアドレスを入力してください。
コマンドインジェクションを仕掛けるページです。

このページについて
ドメイン名に紐づくIPアドレスを調べてくれるページです。
Hostname/IPのテキストボックスにgoogle.co.jpと入力してみましょう。

Lookup DNSボタンをクリックしてください。
グレーの枠にGoogleのIPアドレスが表示されました。

DNS Lookupという機能で入力されたドメイン名に紐づくIPアドレスを調べたのです。
逆にIPアドレスを入力すればドメインを調べることができます。
実践
では、コマンドインジェクションをやってみましょう。
テキストボックスにコマンドを入力してください
google.co.jp && cp dns-lookup.php dns-lookup.php.bak && sed -e -i “s/DNS Lookup/PAISEN/” dns-lookup.php

Lookup DNSをクリックします。
先ほどと変わらない画面です。

画面左上のBACKというアイコンをクリックしてみましょう。

DNS Lookup と表記されていた画面がPAISENに変わりました。
コマンドインジェクションによって、ページが改ざんされました。
※わたしの環境ではうまくいきませんでした。
理論
コマンドの説明をしていきましょう。
google.co.jpの部分
先ほどのIPアドレスを調べることと同じです。
&&の部分
&&以降がハッキングコマンドになります。
&&によって、google.co.jpの文字列を処理したら、その後に続くハッキングコマンドを実行するようになります。
cp dns-lookup.php dns-lookup.php.bakの部分
もともと表示されていたlookup.phpのバックアップをとっています。
ハッキング本番では不要です。
sed -e -i”s/DNS Lookup/PAISEN/” dns-lookup.phpの部分
sedでStream EDitorというテキスト編集機能を呼び出しています。
-eと-iはファイル編集や置換処理などを行うためのオプションコマンドです。
“s/DNS lookup/PAISEN/” dns-lookup.phpで、dns-lookup.phpというファイルに対して、DNS LookupをPAISENに置き換えるという命令です。
まとめ
コマンドインジェクションを説明してきました。
今回の攻撃は、文字列を置き換えるだけでした。
もし、悪用されたら
悪意あるURLへと移動させる。
マルウェアを強制的にダウンロードさせる。
など考えただけでも恐ろしくなります。
OSやブラウザのアップデートでバグ修正されるので、アップデートは放置せず行いましょう。
一緒に一歩踏み出しましょう♪
では♪
コメント