metasploit framework から Nessus を使う

metasploit framework から Nessus を使う
Metasploit Framework には
Nessus にアクセスするためのブリッジ機能があり
この機能を使うことで
Metasploit Framework 通称 MSF から
スキャン実行、検査結果の参照などが可能になる
まずは nessusd を起動しておく
service nessusd start
次に
msfconsole
を実行して MSF起動
ターミナルが
root@bt
から
msf >
にかわれるので、わかりやすい
ここまでできたら、
load nessus
これで
Nessus に接続するための機能がロードされる
nessus_help
で、使用可能なコマンドの確認ができる
nessus_connect hjuser:password@127.0.0.1
というように
nessus connect Nessusユーザ名:パスワード@NessusホストIPアドレス
で接続
これで、接続できたら、スキャンを実行していく
まず
nessus_policy_list
でポリシーリストを表示
ここで表示されるポリシーIDは
スキャン実行時のパラメータに使う
-1 Internal Network Scan
-2 Prepare for PCI-DSS audits (section 11.2.2)
-3 Web App Tests
-4 External Network Scan
1 metasploit
が私の場合の環境
スキャンの実行は
nessus_scan_new 1 metasploit-test 192.168.10.21
というように
nessus_scan_new ポリシーID 任意のスキャンの名称 対象IPアドレス
となる
スキャンの名称は、あとで実行結果をみるときに使う
ファイル名のようなもの
ターゲットIPアドレスの指定は
複数指定も可能で , で区切って書くけど
スペースをいれるとエラーになるので注意
○ 192.168.10.214,192.168.10.244
X 192.168.10.214 , 192.168.10.244
というかんじ
スキャン中のステータスに関しては
nessus_scan_status
で確認することができる
MSFから実行したスキャン結果についても
Nessus へログインして見ることができる
今回も参考書籍は

metasploit とペネトレーションテストに関しても
書籍がでているので、こちらも参考にするとよいかも

PHP 掲示板に投稿データ書き込み

PHP 掲示板に投稿データ書き込み
#06 データを書き込む
http://dotinstall.com/lessons/bbs_php/1006
を参考に
投稿されたデータをファイルに書き込み、動作確認
ファイルポインタになる変数を作成し
fopen() でファイルを開き
モードは w 書き込みモードで行う
開くファイルは $datafile
ということで
$fp = fopen($datafile. “w”);
とする
そして、 fwrite() でデータ書き込み
fwrite($fp, implode(“\n”, $posts));
で書き込みになる
implode() は文字列の連結
\n つまり改行コードを投稿内容の先頭に連結して
前の投稿から改行するようにしている
implode-文字列関数
http://php.quus.net/strings/implode.php
をみるとわかりやすい

掲示板に投稿データの追加

掲示板に投稿データの追加
#05 投稿データを追加する
http://dotinstall.com/lessons/bbs_php/1005

を参考に
投稿されたデータを書き込み用の配列に追加
まず、投稿があったか判定するために
if で判定する
まず、POSTで投稿されているか判定するため
if($_SERVER[‘REQUEST_METHOD’] == ‘POST’){
で判定する
これでPOSTでないのなら
この if 処理は飛ばされる
投稿があったら
という処理は
!empty($_POST[‘message’])
となるので
これを && をつかって条件式にする
くっつけて表示すると
if($_SERVER[‘REQUEST_METHOD’] == ‘POST’ && !empty($_POST[‘message’])){
という条件式になる
POSTで投稿されたら、というのは決まり文句で
サーバーのリクエストメソッドがPOSTだった場合
というのが
$_SERVER[‘REQUEST_METHOD’] == ‘POST’
とかく
$posts で入力された一番最初の値を追加する
これは最新の投稿を一番最初にするようにするため
これを実装するには
array_unshift()
一つ以上の要素を配列の最初に加える
というのを使う
array_unshift($posts, $_POST[‘message’]);
これで、先頭に投稿した内容が
配列として格納されるようになる
書式にすると
array_unshift(追加する対象の配列 , 追加する内容)
このほか便利なものとして
array_shift()
配列の先頭から要素を一つ取り出す
array_push()
一つ以上の要素を配列の最後に追加する
array_pop()
配列の末尾から要素を取り除く

metasploitable2 で実験につかえそうな脆弱性

metasploitable2 で実験につかえそうな脆弱性
Nessus の診断結果から侵入できそうな脆弱性があるのは
high になっている項目で、さらにリモートに侵入できそうな脆弱性になる
vsftpd 21番ポート
これはバックドアが組み込まれているバージョンの
vsfptd
FTPログインユーザに特定の文字列を
入力することで、バックドア用の6200ポートがオープンされる
ssh デフォルトの22番ポート
OpenSSL の鍵を鍵を作成する乱数のシードとして
プロセスIDのみが使用されているため
鍵の種類が32765しかない
このため、パスワード認証なら
ブルートフォースアタックで簡単に破れてしまう
samba 139/445 番ポート
ヒープオーバーフローの脆弱性がある
このため、任意のコマンドの実行が可能
ingreslock 1524番ポート
シンプルなバックドア
telnet するだけで root シェルが取得可能
これらの脆弱性のうち
MSFで提供されている exploit は
vsftpd と samba
ちなみに
MSFは ver3 以降 ruby で書かれている
Hakcer Japan 2013 年3月号の
71Pに
Metasplotable2 の脆弱性のうち
exploit 可能なモジュールの一覧の一部が掲載されているので
こちらを参考にセキュリティの勉強をしてみると面白いかもしれない

Nessus でスキャン

Nessus でスキャン
まず、Nesssus へログインする
https://localhost:8834/flash.html
へアクセスし
ユーザ名、パスワードをいれてログイン
flash 有効化しないとできないので注意
ログイン画面で表示されているのは
Reports の画面なので
Policies をクリックして
Add を押すとポリシー新規作成画面になる
ここで
Name にポリシー名を入力するけど
この指定した名前は診断実行時に必要なので
忘れないように注意
今回は metasploit としてみた
あとは、設定は変えずにnext をクリック
Credentials画面も、設定を変えず next をクリック
Plugins では Enable All をクリックして
next をクリック
Preferences画面では、設定はそのままで
submit をクリック
これで、今回作成したポリシーができているのが
確認できる
次に、診断の実行
Scans をクリックし、Add をクリックすると
診断実行の情報の登録画面になるので
Name にはレポート名
Type には Run Now を指定して即時実行にする
Scheduled はライセンス料を払う Professional Feed でしか使えないので、今回は行わない
Templateを選択することで
診断情報を追加して手動実行することもできる
policyには先ほど作成したポリシー名
今回なら metasploit を選択し
Scan Targets には診断対象のIPアドレスを
1行に1つずつ指定する
今回は
192.16.10.214
だけにしたけど
もし、2つ以上あるのなら
192.168.10.214
192.168.10.151
というようにわけて記述する
設定ができたら、
Launch Scan をクリックして診断開始
スキャンの結果は nmap のフルスキャン同様に
かなり時間がかかるので気長に待つ

PHPで簡易掲示板の作成

PHPで簡易掲示板の作成
#01 一行掲示板の画面をつくる
http://dotinstall.com/lessons/bbs_php/1001

を参考にPHPの応用を学習
使用する環境は、ドットインストールで構築した
ローカル開発環境
まずは,
それで使うためのディレクトリを作成
掲示板なので
boardとした
mkdir /var/www/html/boad/
次に、index.php の作成
フォームと
ul 要素でリストの作成
フォームは
<form action=”” method=”post”>
<input type=”text” name=”message”>
<input type=”submit” value=”投稿”>
</form>
というように
form タグ内部に作成
リストはul 要素内部に
li 要素でリストを作っていく
action=””
となっているのは
同じファイルだから
もし、send.php というように別のファイルへおくるのなら
そのファイルを指定することになる
method=”post”
でPOST形式を指定
次に
#03 ファイルを読み込む
http://dotinstall.com/lessons/bbs_php/1003
を参考にPHP処理を追記
ファイルの先頭にPHP 処理を追記していく
読み込む外部ファイルは
ソースをそのまま使うことにする
用意できたら、index.php へ処理を記述していく
$dataFile=”bbs.dat”;
というように
ファイル名を変数に格納する
そして、ファイル全体を読み込んで配列へ格納するため
file() を使う
このときに、最後の配列に改行文字をいれないように
FILE_IGNORE_NEW_LINES
を指定しておく
このfile の結果も変数に格納しておく
これで、ファイルの読み込みは完了
次に、投稿データの表示
#04 投稿データを表示する
http://dotinstall.com/lessons/bbs_php/1004
を参考に実装
if でデータの中身があるか判定するtame
<ul>
<li>まだ投稿はありません</li>
</ul>
の部分を書き換える
<ul>
<?php if(count($posts)):?>
<?php foreach($posts as $post): ?>
<li><?php echo htmlspecialchars($post); ?></li>
<?php endforeach; ?>
<?php else:?>
<li>まだ投稿はありません</li>
<?php endif;?>
</ul>
というようにして
php で if で count の中身があるか判定して
もし、配列があるのなら
htmlspecialchars() で無害化して表示
もし、何も配列にないのなら
まだ投稿はありません
と表示する
データの読み込み成功しているのなら
ファイルに書かれた内容が
リスト表示される

侵入テスト概要

侵入テスト概要
侵入テストには
対象システムを管理するシステム部門に通知して行われる
OvertTest 公開テスト
そして、一部の関係者以外には秘密にした
Covert Test 秘密テスト
の2種類がある
システム管理部門が社内システムに対して侵入テストを実施する場合にも
セキュリティサービスベンダーが実行する場合と同様に検査の目的を明確にする必要がある
診断時には対象システム管理者にも立ち会ってもらい
不測の事態にも対処できるようにしておくこと
診断を実施するときには
どこから診断を実施するかという診断ポイントの
検討も必要
もしFWの外からDMZのサーバーに対して診断を実施するにはFWによるフィルタリング込みの評価となる
が同一セグメントのDMZからmならサーバー単体への評価となる
会社にネットワークが複数存在し
各ネットワークで
セキュリティレベルが異なる場合
社内の別ネットワークから対象サーバーへの診断を実施することもある
FWの内側、外側両方からの検証することもある
Nessus による診断は侵入テスト実施のプロセスの1つにすぎない
侵入テストの実施には
ネットワーク脆弱性検査より多くの情報収集を必要とする
あと Nessus のプラグインは2種類あり
サーバーをダウンさせる可能性のあるものと
そうでないものになる
サーバーをダウンさせる可能性のあるものは
サービス不能攻撃 Denial of Service
と言われる
これは、他のプラグインとはわけて実行する
理由は
検査結果を保証するため
こうしないと検証中にサーバーがダウンしていることがあるため
ポリシー作成画面に
safe check というチェックボックスがあり
これをOn にしておけば回避できる

Nessus の設定

Nessus の設定
Nessus 4 だと設定ファイルを直接編集することになるので
cp /opt/nessus/etc/nessus/nessus.conf nessus.conf.org
というようにバックアップをとってから編集する
auto_update
プラグインを自動更新するかどうかの設定
デフォルトでは yes
自分でプラグインアップデートを制御したいのなら
no
にする
プラグインのアップデートは
端末を開いて
nessusupdate-plugins
を実行するとできる
port_range
ポリシーを新規作成したときに
デフォルトで作成されるポートレンジ指定
default は nessus が精査するデフォルトポート番号で
全てのポートレンジではないので注意
全てのポートレンジを指定するなら
0-65535
とする
xmlrpc_idle_session_timeout
Web UI のセッションタイムアウトの時間設定
デフォルトでは30分
これを変更することで長くすることができる
listen_address
デフォルトでは0.0.0.0
このためBT5R3 が起動している全てのホストの
全IPアドレスで Listen してしまう
他のPCから BT5R3 へアクセスする予定がないのなら
127.0.0.1
としておく
これらの設定が完了したら
service nessusd restart
で再起動して
Nessus にログインして
Metasploitable2 へスキャン実行
ちなみに、Nessus と Nmap では
ポートスキャンの結果が異なる
nmap -A -PO -p0-65535 -oN 192.168.10.151_tcp_full_txt 192.168.10.151
と実行して
フルポートレンジに対して
TCP SYNスキャンを実施

bluetooth イヤホンの購入

ドットインストールの動画を電車で移動中にみたり
音声ファイルを再生させるのに
以前は付属のイヤホンを使っていましたが
本体とコードが引っかかっていて
ポケットの中にいれたり、バッグからだし入れするときに
コードが邪魔になるので
bluetooth イヤホンを購入してみました
今回購入したのは

初めての bluetooth イヤホンでしたが
使いごこちはよいものでした
なにより、ipod touch を購入した時に最初についていたイヤホンだと
1時間程度使っていると私の場合形があわないのか
耳がいたくなるので、こちらの方が問題なく使えるので
この bluethooth イヤホンを使っています
スピーカーも bluetooth だと配線がいらなくて便利なので

も購入してみました
以前、初めて無線LAN設定したときに便利だと思いましたが
やはり今回もいろいろと試してみた甲斐がありました
もうひとつ検討中なのが kindle fire HD です
もともと nexus7 があるので使わないと思っていたのですが
最近は電子書籍が普及してきたので
購入して読む時に使えそうということ
そして、音楽関連として iTunes で購入したものは ipod では再生できても
nexus 7 などでは再生できません
なので、音楽関連も Amazon で購入すれば
ほかのデバイスなどでも聞けるのでは?
ということで、今後検討してみます

Nessus による脆弱性の検査(

Nessus による脆弱性の検査
以前、VirtualBox へBT5R3を入れて
Nessus を使えるようにしたので
今回は
VirtualBox と Metasploit Linux2 を使ってみた
CTF の問題は今の自分のスキルでは足りない為
その前にできそうなものから取り組むことにした
ということで、同時掲載されていた Nessus 超入門をみながら
ローカル環境で実践
Nessus は脆弱性検査ツール
Nessus には2つのライセンスがあり
商用ライセンスは
Professional Feed
個人使用に該当するのが
Home Feed
Home Feed のほうは診断可能なIPアドレスは15という制限がある
Professional Feed のライセンス料は
年間1500ドルで
3年単位にするとディスカウントされるようだ
また、Nessus はインストールしただけでは使えず
アクティベーションコードが必要
すでにここまで完了している状態にしてあるので
今回は Nessus の起動からスタート
Application > backtrack > Vulnerability Assessment > Network Assessment >
Vulnerability Assessment >
Vulnerability Scanners > Nessus > nessus start
で起動する
端末から起動するともっと楽で
service nessusd star
とすればOK
起動しているか確認するには
ps -ef | grep nessusd
で確認できる
起動したら、ブラウザで
https://127.0.0.1:8834/
へアクセス
自己証明書なので警告がでるけどそのまま続行
すると
ログイン画面がでるので
Username には hjuser
Password には 設定した任意のものを入力してログイン
中のメニューで
Reports
レポートの表示
Scans で診断実行
Policies で診断ポリシー管理
Users でユーザ管理
Browse でレポート表示
Compare で診断結果の比較
Upload でレポートのアップロード
Download でレポートのエクスポート
Delete でレポート削除
とりあえず Nessus の起動とログインの確認ができたので
次にターゲットサーバーの準備
これは
Metasploitable2 を使う
Metasploitable2 は
Metasploit チームにより作られた
Ubuntu 8.04 ベースのVMイメージで
脆弱性が存在するサービスが多数動いている
名前の通り、
Metasploit Framework を使って
Exploit を実行することが可能な実験用のサーバー
今回は、付録DVDに収録されているのを使っているけど
SourceForge からもダウンロードできる

http://sourceforge.net/projects/metasploitable/

からダウンロード可能
XSS
SQLインジェクションなどの脆弱性のあるWebアプリも
インストールされているので検証には最適
付録DVDからの場合だと
3/tools/metasploitable
の中に
metasploitable-linux-2.0.0.zip
があるので、これを解凍して使う
unzip metasploitable-linux-2.0.0.zip
で解凍すると
Metasploitable2-Linux
というディレクトリができるので
VirtualBox でこの中にある
Metasploitable.vmdk
から起動する仮想マシンを作成する
ただし、作成直後はネットワークがNATなので
bridge などに変更しないと
マシンにアクセスできないので注意
ネットワークを変更したら、仮想マシンを起動
metasploitable login :
と表示されたら
ユーザ名 msfadmin
パスワード msfadmin
でログイン
IPがわからないと実験できないので
ログイン後に ifconfig で調べるか
もしくは BT5R3 側で
nmap -n -sP 192.168.10.0/24
というように nmap でLAN内部の
IP一覧を表示させることで表示する
今回確認できたのは
nmap -n -sP 192.168.10.0/24
の結果から
192.168.10.214
であることが判明
仮想マシンの metasploitable2 を終了したいときには
sudo init 0
としてmetasploit のパスワード
デフォルトのままなら
msfadmin
を実行すればOK
ちなみに、今回の参考にしたのは