やりたいことリスト(2019年1月)

唐突に、やりたいことを整理するべきではないかと思ったのでまとめる。

テクニカルなこと

  • CCIE取得
  • CTFに参加
  • OSSなプロジェクトに参加
  • Topcoderでのランク上げ

日常なこと

各項目で今年中に1個ずつ出来ればいいなと思っている。

書いてみて改めて思ったけど、何をしたいのか自分でもよくわかんないです。

そのあたり含めてきちんと考えていくためにも、きちんと何をしたいのかと出来ているのかの記録を残すことに意味がありそうな気がしている。

時期を見てレビューする。(3月にする予定)

asciinemaでGNU screenの操作を記録する

作業ログ残すのにasciinemaが便利そうと思った際に、screenとの連携がどうなるか気になったので動作確認をした。

そのままasciinemaを実行すると、screen内でasciinemaを実行したwindowの記録しか取ってくれない。

そのため、asciinemを”-c screen“オプションをつけて、

asciinema rec <filename> -c screen

と実行する(新たにscreenが起動される)。

これにより、screen内の動作全てを記録することができる。

正常終了はもちろんデタッチした際にも記録が止まる。

また、リタッチもうまく動作し、

asciinema rec <filename> -c “screen -r [<pid>]”

のようにすることで、リタッチしての記録ができる。

実際の動作はこんな感じ。

CPU換装とベンチマーク

CPUを換装したのでベンチマークをとってみる。

ベンチマーク: UnixBench
OS: Ubuntu 14.04 LTS (GNU/Linux -- 4.4.0-134-generic)

結果は以下の通り。温度はベンチマーク終了後の各CPUの平均温度。

CPU CPUクーラー スコア(1process) スコア(マルチプロセス) 温度
Intel(R) Core(TM)2 Duo CPU E7200 リテール品 492.4 352.1 60度
Intel(R) Core(TM)2 Quad CPU Q6600 リテール品 547.8 785.4 83度
Intel(R) Core(TM)2 Quad CPU Q6600 IZUNA SCIZN-1000I 504.7 799.1 57度

やっぱりCPUやファンを変えると随分温度が違う。

レビューに書いてあったが、IZUNAは取り付けづらい。。。

プッシュピン式なのにマザーボード取り出して取り付けたが、それでもきちんとハマった気がしない感じで運用している。

sambaでクライアント側でnetwork unreachableエラーが発生した

ただの設定ミスだったが、案外確認に手間取ったのでメモ。

状況

sambaでファイル共有しようとしたところ、tcp 139への接続が3wayハンドシェイク後にicmpのnetwork unreachableで切られていた。

エラーとしては

Error code: Not listening for calling name (0x81)

となっていた。

原因

sambaで接続元のIPアドレスを制限しており、接続元のIPアドレスが含まれていなかった。

対応

sambaのIPアドレスの制限を設定変更して解消。

クライアント証明書での認証エラー

クライアント証明書でWebサーバへのアクセスに認証をかけていたが、ある日接続エラーが発生し、接続出来なくなった。

以下、エラー対応についてメモ。

エラー内容

 SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT 
ERR_BAD_SSL_CLIENT_AUTH_CERT

原因

以下の期限をチェックした

  1. クライアント証明書

  2. クライアント証明書のCA証明書

  3. CRL

結果としてはCRLの期限が切れていた。

証明書の期限は10年にしていたが、CRLは30日担っていたため、今回のように突然エラーとなった。

対応

CRLを更新する。

openssl ca -config /path/to/openssl.cnf -gencrl -out /path/to/crl.pem

を実行してcrlを再生成する。(openssl.cnf内のCRLのdefault_crl_daysは書き換えておく)

更新したらapacheを再起動する。

CRLの期限のチェックは盲点だった。。。

CRLの期限切らたらアクセス出来なくなるっていうのも、なかなか強気な設定な気がしますが。。。。

サイバーセキュリティテスト完全ガイド用環境構築

「サイバーセキュリティテスト完全ガイド Kali Linuxによるペネトレーションテスト」を読むにあたって、Kali LinuxとMetasploitableのセットアップを行ったのでメモ。 (Metasploitableは本書ではほとんど触れられていないが、ペネトレーションテスト対象として準備した)

構築する環境はConoHaのVPSにした。

VPS上で作っておけばどの端末からでも使えるから便利そう。まぁ、勉強用にしか使う予定はないが。

ちなみに、イメージとして保存しておけば課金されない(ただし、3ヶ月で消えるので残したい場合は適度に使う必要がある)

Kali Linux

  • ConoHaへのKali Linuxのインストール

標準ではKali Linuxは準備されていないので、isoからインストールする必要がある。 (AWS?なにそれおいしいの?)

CLIツールで簡単にISOイメージをマウントする|VPSならConoHa を参考にisoの部分をKali Linuxに読み替えてVPSへインストールする。

インストールが終わったら、

apt-get update
apt-get dist-upgrade

を実行する。ネットワークの問題かもしれないが、完了まで1時間位かかった。

ここまで実行したら、とりあえずイメージとして保存しておく。

ちなみに、Metasploitableのインストールまで含めると、25.7GBのサイズになった。

イメージの保存枠は50GBまでしかないので、1世代しか保存できないのがちょっっと惜しい。

  • Metasploitable(KVM)のインストール

MetasploitableはKali Linux上のVMとして構築する。

今回は、Kali LinuxVPS上に構築しているので、MetasploitableもVPSにするかKali Linux上に構築するかが構成としては簡単だが、 MetasploitableはVMファイルとしてしか提供されていないため、単独でインストール出来るかが不明のため、後者の方法を取る。

なお、ConoHaのハイパーバイザの兼ね合いと思うが、KVM出ないとKali Linux上でハイパーバイザがうまく動作しなかった。 (VMwareやVirtual boxが動かないのも当然といえば当然?)

また、MetasploitableはVMDKファイルとして提供されているので、KVM用に変換する必要がある。

どちらも大した手間ではないが、以下のサイトを参考にした。

VMware のディスクイメージ (VMDK) を KVM (qemu) で使えるように変換する - Kenichi Maehashi's Blog

KaliLinux 2017.1: 仮想化のKVMをインストールする - Narrow Escape

windows

windowsでもペンテスト出来るようにしたほうがいいと記載してあったので、windows serverでも環境構築する。

サーバのインストール自体は標準で出来るので、Metasploitをインストールしたら終わり。

VMwareが動かなかったので、Hyper-Vで構築する。

作業としては、

  1. Hyper-Vのインストール

  2. VMDKをHyper-V用にコンバート

の2つである。

以下のサイトを参考にすれば、大した作業ではない。

Windows Server 2016 にHyper-Vをインストールする VMware の vmdk を Hyper-V の vhd(vhdx) に変換 - pudding - diary(2016-07-17)

なお、windowsのイメージサイズは26GBとなり、Kali Linuxと合わせると50GBを超えてしまうので、 Kali Linuxシンガポールリージョンに移動させた。

windows server 構築メモ(Remote App, Active Directory)

複数のデバイス使っているとブラウザで開いている内容を共有したくなるので、 windows serverのRemote Appを使えばいいんじゃないかと思った。

こんな感じ f:id:smitch:20180708151301p:plain

Remote Appだとブラウザのウィンドウだけ表示できるのでちょうどいい。

とゆうわけで、RemoteAppサーバを構築したのでメモ。

windows update

クリーンインストールwindowsから構築する場合はまずupdateする。

updateせずにactive directoryサーバをインストールすると再起動した時にブルースクリーンになった (自分の環境はVPSなので、環境によると思いますが)

どういうことかわからないけど、updateで解決したので間違いないと思う。

3回くらいupdate->再起動を繰り返す必要がある。

これにはまって、3回windows serverを再インストールした。。。

Active Directory構築

Remote Desktopサーバだけなら必要ないのにRemoteAppサーバの構築にはActive Directoryが必要になる。

役割と機能の追加からActive Directory機能を追加する。

今回はインターネットからアクセスするのでドメイン名を安易にexample.localとかに設定すると後々面倒になるので注意。

ad.example.comとか、自分の持っているドメインサブドメイン)に設定すること。

ドメインを取得していなくても使う方法もあるみたいだけど、今回は正当なやり方で設定する。

RemoteAppサーバ構築

こちらも役割と機能の追加からインストールする。

ウィザードにしたがってボタン押していけばOK

あとはRemoteAppで利用するアプリをコレクションに設定する。

この時点でサーバ上のブラウザからhttps://localhost/rdwebにアクセスしてRemoteAppが使えることを確認するといい。

dns record

ad.example.comでADのドメイン名を設定した場合は<host名>.ad.example.comのレコードを登録する。

これで外部からアクセス出来るようになる。

感想

Active Directoryが必要っていうのがちょっと手間ですね。。。

あとipadでアクセスするときはドメイン名¥ユーザ名よりもユーザ名@ドメイン名にするほうがいいです。 (¥って機種依存文字だからApple系で扱うと思いがけずハマったりする。。。)

RemoteAppって実質的にRemoteDesktopと変わらないというかスタートメニュー抜きのRemoteDesktopみたいな感じですね。

動作が軽いといいなと期待してたんだけど、正直あまり変わらないというか、むしろ余計な機能追加したせいでサーバが重くなってる感すらある。。。

VPSの最低プランを使っているから贅沢は言いませんが。

そして、ユーザの登録もADからじゃないと出来なくなるので、運用の手間も増えます。

あと、RemoteDesktopは出来ないが、RemoteAppは接続できるユーザ設定が出来るみたいなんですが、どうもうまく出来ませんでした。 (ログイン時のスクリプトとして、ログアウトコマンドを指定するってやつです。どちらもログアウトしてRemoteAppも出来なくなりました)

クライアントがwindowsだと違ったりするんですかね。

構築は出来たので使い道を探っていきたいなと思います。