Tag Archives: security

ハッキングシミュレーションゲーム「Hacknet」をプレイしてみた。

いつだったかITプロで「Steam」で遊べるハッキング(クラッキング)シミュレーションという珍しいジャンルの「Hacknet」というゲームが紹介されていたので軽くですがプレイしてみました。 チュートリアルからちょこっと進んだ程度なので、全体像は把握していませんが、ゲームとはいえ少しはコマンドの知識なりがある方が楽しめそうな気がします。なくても大丈夫です。 あくまでゲームなので(重要?というかそこが楽しさというか)ツールの類いはどこかからコピーしてきたりですね。ハッキングシミュレーションであって、ハッカーシミュレーションではないようです。 ハッカーシミュレーションってなんだよって気もしますが、ニュアンスが伝わればいいなあってな感じで。 というかプレイすればわかります。 まずはユーザ作成ですな。インターフェースはこんな感じです。 まずはチュートリアルをしながら、基本的なハッキングの流れとコマンドの叩き方なんかを教えてくれます。 nmapして空いてるポートを見つけてますね。 ls なんかもこんな感じで使えます。ゲーム内のコマンドもあるので使えるコマンドをメモってた方がいいなあと少しメモってましたが、進行途中に出てくるサーバの中にコマンド表みたいなテキストがあるのでとくにメモらなくても大丈夫ですww 最初の方のミッションは色々調べたりしたあとはログが残るからちゃんと消そうぜーという感じだったと思います。 リアル感もありますね。 載せている写真はコマンドベースですが、ちゃんとマウスでポチポチできるようにもなっているので安心してください。 あくまでゲームなのだから。 コマンドの説明をしてくれます。 rm * ですね。 チュートリアルが終わったらこのプログラムをKILLします。 なんかユニークです。 これがたしか最初のミッションです。メールが来てこれ頼む!みたいな感じで、やり取りはメールで進んでいきます。 あんた誰やねんって感じですけど。 んで進んでいくと難度も上がり、時間制限のあるミッションとかもあるみたいですね。 そんな感じです。 Hacknet、900円です。どうですか。 Steamのサイト

ログから学べるエトセトラ

今回はログから学ぼうということで、一見管理者向けに聞こえるかもしれませんが、基本的にざっくりとゆったりとした方針なので、ともかく関心を高めて欲しいという意味も込めているので、セキュリティ意識の向上のきっかけになれればいいなぁと思う今日このごろです。 ではでは、じつはここしばらくの間だけグローバル環境にハニーポット:Dionaeaを植えて観測をしていましたが、自分が求めていたのは研究用の「HTTPに対するログ」でしたが、その類のデータはスキャンかな?と思われるものしか取得できなくて期待した結果は得られませんでした。 世の中そんなに上手くいくこともないのですなぁ。 ただ、確実に分かった事はWindowsのSMBへのアタックがほんとに多い、多いと言いますか、ほとんどSMBでした。 バイナリデータも多数とれていたので、踏み台探しでしょうか?深く追いかけてはいないので詳細はわかりませんがとにかくSMBばっかりでした。 次いでSSH22番ポートへのアタックが多かったですね。 こういったものはおそらく色々なところ植えて調査をするべき事柄なんでしょうが、1つのハニーポットで観測したことなので、あくまで参考程度にしたいところですが、それにしてもSMB・Windowsの管理者は気をつけてください。 とくにWindows2003を放置していると踏み台に利用される可能性が非常に高いと思われます。 ポイント Windows2003の管理者さんは気をつけよう! ・・・ちょっと教習所のスライドをイメージしてみました。 本題のログから学べる事ですが、HTTPのログに関してはハニーポットを植えるよりも普通にウェブサーバーを運用した方がログは学べると思います。もうぼちぼちで4年目に入りますが、Httpサーバーを建てて、Logwatchで管理していればおのずと情報が入ってくることでしょう。 せっかくなので少しだけLogwatchの内容を載せます。 何年前からやね〜んというログですが、まだまだ来ているようでした。 ではせっかくなのでガチンコでシェルを奪取されたWordpressのHttpdのログを載せます。 こういうログには気をつけようということで。 似たようなログは山ほどあると思うので、これでどうにかしろというのは無理難題ですが、おや?というところには気づけるようにしたいですねぃ。 ってことで、自分でハッキングしてセキュリティに関する知識を深めるというのも多いに良いのではないかと思います。 これが言いたかったのかもしれなぃにゃ。 ポイント 彼を知り己を知れば百戦殆うからず

DionaeaFR を使ってDionaeaをグラフィカルにCheck it out

ログから学べるエトセトラという内容を考えていたら、渚にまつわるエトセトラを思い出したよ。 Puffyいいね。Dionaeaとぜんぜん関係ないけどね!(゚∀゚); ログの分析は置いておいて(なんだよw)、まずはグラフィカルに大雑把にいきましょうと。細かい部分は分かりませんが、どこからが多い?とか、どのポートが多い?とかはやっぱりグラフィカルに見るのが分かりやすいからね。 ログの痕跡から内容を調べるだとか、細かい分析とはまた全く別の話になっちまいますが、気分転換にはいいですよ。 ってことでDionaeaFR インストールメモ。 公式サイト http://rubenespadas.github.io/DionaeaFR/ 参考にしたサイト BruteForce Lab’s Blog Visualizing Dionaea’s results with DionaeaFR Tahoo! VPSにDionaeaログ解析ツール、DionaeaFRを入れてみた 公式サイトを見るとPython2.7.3の記載が。CentOSのPython2系の標準Yumでインストールできるバージョンは2.6なので、2.7系最終の2.7.9をDLしてインストールしました。 このままだと実行にエラーが出るので解消します。 これにてPythonのインストールが完了です。 のちのDjango関連のインストールをするためにPipを用意しませう。 参考サイト https://pip.pypa.io/en/stable/installing.html#python-os-support https://www.digitalocean.com/community/tutorials/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4 この表示の仕方いいね。 なんとなくアップデート。 ではDjango関連のインストールに進みます。 プロンプトを見れば分かりますが、ここからRootにしました。 simplefilterはこれ1発でOKらしい。PIPはこんなこともできるのね。 subnettreeも。 NodoJSをインストール。時間がかかるんだな。これが。 NetAddrはPIPでいけました。 じわじわと終わりが見えてきました。DionaeaFRを落として、Maxmind’s GeoIP and GeoLite databasesを用意していっきにいきましょう。 では実行!といきたいとこですが、エラーが幾つかでるので処理をします。 起動だどーん(゚∀゚)b 勢い良く8000番にアクセスしたものの大切なものが見つからないとエラーが (゚∀゚激汗) Error: Cannot find module ‘promise’ インストール。 もっかい起動だどーん(゚∀゚)b うまくいきました。(゚∀゚)v ローカルオンリーでしか動かしていないので問題なく掲載します。 チェックが終わればCc+Cでサーバーを落とします。常に立ち上げておく必要はないからね。 おっしまい(゚∀゚完)   かに食べいこ〜。

HoneyPOT(dionaea)をCentOS6にインストールとか。

セキュリティの意識を高めようぜぃの流れで、前回と前々回に続いて、今回はハニーポットを用意しようと思います。ローカル環境にですね。ハニーポットなんて単語は普段は聞かないので、なにそれ?と思う方が大半だと思います。自分もその一人です。 タイトルにDionaeaという単語がありますが、これはHoneyPOTのアプリケーションの一つで、Weblioで訳すと「モウセンゴケ科の1属」。モウセンゴケ属ってのは、「ウツボカズラ目モウセンゴケ科に属する食虫植物の一属であり、湿原に多く生育する草本である。」byWikipedia。です。食虫植物というと草のように見せかけて虫を食べている植物ですね。 インターネットスラング風に言いかえると、「び・・美人局」でしょうか。 概念はそんな感じです。 Dionaeaを実行しているサーバーでnetstatをすると このように開けまくりんぐな風になりますが、さきほど説明したようにサービスを提供している訳ではなく、そう見せかけている。 実際アクセスしてみると、Apacheの画面が出ます・・って、んなわけないw Httpdを落とすのを忘れていました。Netstatの結果をよく見るとhttpdはありません。 競合するサービスを開けていると上手く動作しませんので気をつけなはれや。 気を取り直して、Httpdは”落としてから”Dioanaeaが起動されたサーバーにブラウザでアクセスしてみましょうか。 ログの出力はinfo以上に高いレベルを表示するように立ち上げています。 という具合にログが残ります。htmlファイルを設置してそれでレスポンスを返すことも可能なようです。 上のようにログを何でも残すようにしていると、なんでもないようなものでもログに残してしまいますので、グローバルな場所に植えるとログのでかさが尋常でないことになってしまいますので、ログの設定には気をつけよう。 悪用されちったwでは済まないですからconfの設定はじっくり吟味する必要があります。なんだか分からない状態で外に置くのは止めておきましょう。 ちなみに他のサーバーからnmapをしてみるとinfoレベルで記録されました。reject connectionとありますが、nmapした方のサーバーに対しては開いているレスポンスが返ります。 ハニーポットの役割の概念は分かりましたが、Dionaeaが具体的にどういう動きをするのかがまだイマイチ分からないので、このままではグローバルな環境に出すわけにはいきません。動作の分からないものをインターネットに置くというのは危険なのです。 WarningとCriticalなログだけ記録するように設定して、OpenVASでディープスキャンをかけてみました。 もっとドバーっと表示されるのかなと思っていましたが、レポートをインポートしてみてヒットしたものはこれくらいでした。 ほかにも確認する方法はありますが、それはここでは割愛します。 グローバルな環境に植える場合には、もっと色々と試行錯誤してみて、どんな設定でどうなるのかというのをそれなりに熟知できるくらいには試す必要あります。何故ならばインターネット上には、こういったツールを悪用して実行する人から、ものすごいスキルの人まで多種多様に存在する訳ですが、ツールを上手く扱うことすらできないとなると、まったく基準にも満たない訳です。 このシリーズもこれでひとまず完結になると思いますが、ローカルでひたすら検証することをやっぱり最後にもオススメです。 インストールメモで終わります。 参考にさせていただいたサイトです。ありがとうございますた。 VPSにハニーポット(Dionaea)を入れてみた さくらのクラウドにハエトリグサ(Dionaea)を植えてみた dionaea catches bugs だいたい同じですが、Configureで不要なところがあったのでカットと、OpensslがGitのものでエラーになるので、Tarballにしました。

OpenVAS v7をDebian 8にインストールしました。

こないだMetasploitをインストールしたDebianに脆弱性スキャナーであるOpenVASを追加でインストールしました。ハニーポットを入れる予定のDebianはまだ全然手が進んでいません(・_・;)。 OpenVASはカレントバージョンはv8なのですが、どうにもインストールが上手くいかないのでv7で。 v8のインストールの検証でずいぶんと時間を使ってしまいましたが、v7は一回で完了できたので、このための種もみになったんだと強引に思っておきます。 ところで!前回、Metasploitで脆弱性のチェックをしていましたが、あのツールはそもそもExploitのツールなので、使い道としてはちょっと間違えていましたね。(゚∀゚汗)はわわ〜。 脆弱性のチェックツールなんて何に使うのだと思うかもしれませんが、人だって人間ドッグや定期検診を受けるように、コンピュータの脆弱性ツールもそんな感じに思っていれば問題ないと思います。 HIVウィルスのように防御を無効化してしまうような仕組みができてしまうかもしれませんから、OSやミドルウェアの脆弱性をチェックすることは大切だと言えます。 余談になりますが、Metasploitの実験もやってみたので結果報告。 Windows2000を所有しているので、対象をWindows2000にしてSCANとExploitを試してみました。アンチウィルスソフトの入ってない状態だと悲惨な状態で、数秒でSYSTEMユーザーが奪取できてしまいました。 Windowsの方は覚えのないEXEファイルの実行は絶対に避けるのと、アンチウィルスソフトは必ず入れておきましょう! なんてことはもう10年以上も前から当たり前のことなので、その通りだ!と思った方は要注意で、赤ちゃんの予防接種のことを考えるくらい当たり前にOSのアンチウィルス・アンチスパムはやるべきなのです。 では本題のインストールに。 パッケージはちょっと古いらしいので、ソースからインストールしたメモになります。 まずはopenvas.orgにソースを取りに行き解凍しませう。 解凍はいろいろ方法がありましたが、今回はforループにしてみた。なんでもいいけど。 必要なパッケージやインストール手順は、各ディレクトリ内にあるINSTALLにも記述されています。 ただし最初にビルドするのはライブラリのソース。で、あとの順番は何でもいいです。 これも前もってやっててもいい事ですが、openvas.orgにインストールのサポートスクリプトがあるので準備をします。 以下のコマンドを実行して、表示されるErrorとFixと追いかけて仙台。 カレントバージョンがv8なのでそのまま実行するとエラーになっちまいます。実行する時はv7を指定する必要があります。 追いかけて雪国な感じでFIXを追いかけて行ったらインストール完了なのですが、自分はこのサイトを参考にしたので、ここの進め方でいきます。 参考サイト https://hackertarget.com/install-openvas-7-ubuntu/ Scanner証明書の作成です。いろいろありますがデフォルトで良いらしいです。 FIX: Run ‘openvas-mkcert’. NVTの同期。 FIX: Run a synchronization script like openvas-nvt-sync or greenbone-nvt-sync. SCAPの同期。 FIX: Run a SCAP synchronization script like openvas-scapdata-sync or greenbone-scapdata-sync SCAPの同期の途中でエラーが発生したらリブートしてもう1回らしい。なんじゃそら〜と思いましたが いろいろなウェブサイトを回って調べてみましたが同じ方法で解決したってのばかりでしたので従いまうす。 回ってみたサイト http://lists.wald.intevation.org/pipermail/openvas-discuss/2015-February/007463.html CERTデータの同期。 FIX: Run a CERT synchronization script like openvas-certdata-sync or greenbone-certdata-sync ぼちぼちで終わります。 ADMINユーザーの作成。 FIX: create a user by running ‘openvasmd –create-user= –role=Admin && openvasmd –user= –new-password=‘ 証明書を作成。 FIX: Run ‘openvas-mkcert-client -n -i’ データベースを作成。 FIX: Run ‘openvasmd –rebuild’ while OpenVAS Scanner is running. –progress をつけて進捗を見れるようにしておくと心にやさしいです。 これで完了です。 マネージャーとGSADを起動します。 openvasmd gsad 以下のようにgsadがv6で開いている表示しかない場合だとroot@deb:~# ./openvas-check-setup –v7では確認がとれなくて エラーになるけどアクセスは可能です。 ローカルホストにたいしてチェックしてみたレポートです。 詳細は割愛しますが、Metasploitからも同じようなテストができるようになっています。 コマンドなのでこちらの方がなんとなく使いやすい。 Metasploit経由で確認した結果。 てなわけで、今回はこれで終了します。 Tremaとか、メタプログラミングとかもっとやりたいのですが、時間の使い方がなかなか上手くいかない日々が続いていて 進み具合はあまり良くないです。積んでる本もたくさんあるし(゚∀゚汗)はわわ。 […]

MetasploitをDebian8にインストールして、いくつかのテストをしてみました。

Hack系のツールというとイメージ的にもPythonと思っていましたが、このツールはどうやらRubyのようです。 わお〜。 最近使いたいツール類がたまたまRubyだったということがとても多いので少々驚いていますが、このビッグウェーブに乗るしかない!と、ビッグウェーブと言ってもマイブームの中のビッグウェーブですけどね。 Hackというと昨今のメディアの影響で良くないイメージをお持ちの方も多いと思いますが、本来はお医者さんのようなもので、探求した技術を良い方向に動かす人のことを指します。LifeHackというウェブで色々なことを少し掘り下げてる記事がありますが、ああいう感じだと思います。 では、Metasploitで何ができるかというと、ペネトレーションテストといって、簡単にいうとサーバーやネットワークに弱点がないか確認したり、どれだけのDoSに耐えられるかどうか、のようなテストをすることができます。 しかし、大いなる力には、大いなる責任が伴います! 自分の管理下にないコンピュータやネットワークに使ったりすると、攻撃とみなされたり、法的措置をとられたりということも十分にあり得ることですので、しっかりとした知識を持って利用する必要があります。 以前とりあげていたスクレイピングも場合により攻撃とみなされることもあるので注意です。 注意する所は、そのツールを使うと何が起こるのか、そのコマンドを叩くことでどういう結果が返るのか、また、実行して予想外のことが起こった時に自身のスキルでちゃんと解決ができるのか。 などなど、そういうことが分かった上で利用する必要があるということです。 な〜んて偉そうに語っていますが、自分もまだまだ半人前だし、楽しくなけりゃ意味がないと思ってますから、準備が整ったらWAN側のLANケーブルは抜いてしまって、スタンドアロンな環境で実験すれば安全なのですよ。 環境 最近はオープンソースの精神にハマっていて、みんなで良くしていこうぜ!っていいですよね。 Debianはユーザーオンリーのディストリということを最近知りました。 今回はDebianにしたいと思います。 Debianも8からはSystemDになったしね〜。 最新のJesieです。 sudoや必要最低限なものは既に準備済みの状態です。 インストールメモ パッケージ類を推奨パッケージと共にいろいろインストール。PATHを通したりが面倒なので、rbenvでやった方がいいと思いました。rbenvなしでインストールしたので、折角なのでそのまま載せまする。 パッケージは途中からまた最初に1回戻っているのですが、多分これらで大丈夫だと思います。 環境変数の追加 Metasploit-frameworkのインストール bundle installで結構な量がインストールされました。 お馴染みのライブラリや、初めて見るものもたくさんありますね。 いったん起動させてみました。もちろんまだ使えませんので、DBを用意します。 Postgresを使います。 設定ファイルの変更や、DBの作成をおこないます。 では、起動します。    ビルドが始まりました。 しばらくしてから検索をかけてみると、じわじわとデータが溜まってきたようです。 では準備が整いましたので、実験してみます。 スタンドアローンにしようと思って、LANケーブルを引っこ抜いたんですが、LANケーブルが古くなっていたのか、抜いた拍子に割れてしまいました〜\(^o^)/ 気を取り直して実験であります。だいじょぶ、まだ使えますぞ。 ペネトレーションテスト 対象のサーバーですが、以前にrsyncを使ってVPSの環境と同じファイル構成の仮想サーバーをローカルのVirtualBoxで作ってあったので、そいつを使いたいと思います。 まずはゆるめのDoSで使ったMetasploiteを使った感触を試してみようと思います! 細かい設定等は飛ばして実行前の確認から。 ログ このような感じでログに残っていますが、ゆるいので、ログもゆるいです。 操作になれるための作業なので、こんな感じで良いかと思います。 あと数個試してみて、Hello World程度の使い方はわかってきました。 それでは! Wordpressに対しての攻撃をいくつか試してみようと思います。 ちゃんと防げるかドキドキしますね・・。 1個目! セーフでした。 ログ 2個目! セーフでした! ログ ペネトレーションテストを試してみた感想 このテストの良いところは、サーバーのセキュリティを高めるだけでなくて、攻撃側の行動がログから読めるようになる力がつくことです。テストにびくびくしているのはちょっとマヌケでしたが、ログのリーディングスキルの向上をすることができるというのは今回の収穫でした。 あとは時間がある時に色々とためしてみたいと思います。 昨年は脆弱性の1年と言ってもいいくらいに、色々な種類の攻撃がありましたが、アタック側のことも勉強して、ログを読む力をつけて、ディフェンス力を上げようと思います。 ザーッと見てこのログ怪しいな、と読めるようになれば良いと思います。 でもって、ソースコードはRubyで書かれているので、Rubyのコードリーディングもできるという一石三鳥になりそうです。 いつかは脆弱性やバグの修正までできるように馴れるといいですね。 ではまた〜。

SQLインジェクションを体験してみよう

  座学ばかりもつまらないし、たけけんのサーバー勉強日記といえば体験学習だ! そうだったの? そうなんです。 2回も続けて同じネタをやってもいいんですか? いいんです! ということで、SQLインジェクションをやります。SQLインジェクションをやってみましょう。 ネタはどうしようかしらとブックマークに眠っているネタフォルダを探してみた。もういい加減に溜まりすぎてジャンルがめちゃくちゃだ。 参考サイト SQLインジェクションでWebサイトをハッキングする方法(超意訳版) – おかねがない(゚∀゚)ッ!!: まず、インジェクションとはなんでしょうか。 原付きのエンジンしか知らなかったわたしはインジェクションの存在を知らずにキャブレターが車にも付いていると思っていた。 最近の車にキャブなんかついてないっすよ! なんて突っ込まれた事も記憶に新しいですが、まったく関係ありません!! 何をしているかというと、コンピューター制御でエンジンにガソリンを送っている。らしいです。 あ、車のインジェクションのことですよ。 インジェクションを直訳すると注入です。注入するわけです。 では何を注入するのか!それを今から調べていきます。 参考サイトをお手本に進めていくとしますと、STEP1は Step 1: セキュリティホールを持ったWebサイトを見つける ですが、んなことやってられっかー!エンドユーザーのITリテラシーの向上が目的というキャラ設定もあるし、そんなアングラなことはできないのだ。 Step 1: セキュリティホールを持ったWebサイトを作るのだ 情報を集めましょう。 参考サイト 【速報】Joomla3.2.2以前にSQLインジェクション脆弱性 | 徳丸浩の日記: だいたい1年前のネタです。 脆弱性を持つという条件を揃えたウェブサイトを作ってみましょう。 ・Joomla 3.2.1 ・テスト英語(GB) ・データベース MySQL 以上の3点です。 では、構築手順も今北産業で。 ・LAMP環境を構築。 ・Joomla3.2.1をインストール。 ・言語を英語USにしてテスト英語(GB)とやらを選択。 以上の3ステップです。 どうせテストなので、/tmp/joomlaとか作っておいてシンボリックリンクでOKです。 ではステップ2にいきますぞ。 Step 2: セキュリティホールをチェックする 参考サイトでは http://www.○○○.com/index.php?id=2′ こんな感じにアクセスしてみて、何も変わらなければ何もなし。SQLのエラーが吐かれたら脆弱性があるということらしい。Logwatchとかを使っている人は404で毎朝毎朝こんな感じのログが山ほど来ていることでしょう。 ログを整形してみて統計をとったりして、どんなアタックが来ているのか、流行っているのかをチェックしてみるのもおもしろいかもしれないね。 セキュリティホールを探す方法は分かりましたが、こんなことをちまちまと試している時間もないですし、スキャンするスクリプトを作るのは今回の趣旨に合わないし、そんなアングラなことはできません。 せっかく脆弱性のあるウェブサイトを構築したのですからいきなり注入に進みます。そのために構築したのですからね。 http://examle.jp/joomla/index.php/weblinks-categories?id=\ 正直よく分かりませんがこのリクエストを送るとエラーが返ります。 実際に試したものをキャプチャしたものを載せます。 画面の下の方の枠にエラーが吐かれています。参考サイトにあるようなそのまんまのエラーですね。ちなみにテスト英語(GB)を入れていないJoomlaの場合だと、今と同じことをしてもこのエラーは吐かれないので試してみてください。 試してみると、あ〜エラー吐かないんだなぁって事が分かります。 ただそれだけです。 それでは注入してみますね。 注入したあとのエラーの中に「admin$P$DlMHW1N1mVlGc2CCwkBOm21uSdD.9z/」とあり、管理ユーザーとパスワードのハッシュ値にあたります。パスワードのハッシュがもろに出ちゃっている訳です。 ただハッシュ値から元のパスワードに戻すことはできません。暗号化はこういうところからも大事なことが分かります。インジェクションをうけてデータベースの情報を取られたからといって、すぐにどうにかなるということもない。という事もあるわけです。 今回例に出したのはパスワードでした。パスワードはほとんどのアプリケーションで暗号化されているでしょう。データの内容によっては暗号化されていないのもちろんあるでしょう。 脆弱性があるアプリケーションを使っていたらアップデートをすることはとっても大事ですし、常日頃から脆弱性の情報をキャッチできるようにしておくことももっと大事なのです。 などと7行ほどまじめに語ってみましたが、SQLインジェクションの話なのか脆弱性の話なのか。なんだかモヤッとするなぁ。もぅ!。 今回の件からわたしが得るべき教訓は、ほぼほぼ冗談まじりの文章の時にはそれほど目立たないかもしれないが、まじめな事を書くときにあたっては、知識が微妙なままで、騙し騙し書いていると、結局は微妙な文章になってしまうということだ。 扱っている内容的には数日かけて、じっくり作った方がいいだろうなぁ。だいたい2時間くらいで一気に書いてしまったし、おまけに眠いときにこういう話をやるもんじゃないな。また時間指定更新に戻そうかしら。 またの機会にリベンジしようではないか。