10進数表記のIPアドレスでwebサイトにアクセスする

はじめに

なんとなくGitHubを漁っていたら面白そうなリポジトリを見つけた。

github.com 内容はIPアドレスを10進数や16進数、8進数に変換してwebサイトにアクセスするというもの。 バラバラの基数でも最終的にIPアドレスっぽくなればアクセスできるみたい。 そういえば10進数のIPアドレス表記を利用する攻撃活動もありましたね。 悪用ダメ絶対。

実装を見てみる

https://github.com/OsandaMalith/IPObfuscator/blob/master/ip.c なるほど。 1バイトずつ読んで基数変換しているみたい。

実装してみた

なんとなくGo言語で実装してみた

github.com

f:id:famasoon:20180804191155p:plain

すごく可読性の低いコードになってしまったので後々、修正する。 正直あまり実用性はない。

追記

画像だけ出されてもよくわからなそうな気がするので出力方法も書いておく。

$ git clone https://github.com/famasoon/go-IPObfuscator
$ cd go-IPObfuscator
$ go run main.go
Enter IP Address: 222.165.163.91
http://3735397211
http://0xde.0xa5.0xa3.0x5b
http://0336.0245.0243.0133
http://0x00000000de.0x00000000a5.0x00000000a3.0x000000005b
http://00000000336.00000000245.00000000243.00000000133

http://0xde.0xa5.0xa3.91
http://0xde.0xa5.163.91
http://0xde.165.163.91

http://0336.0245.0243.91
http://0336.0245.163.91
http://0336.165.163.91

http://0xde.0xa5.41819
http://0336.0245.41819
http://0xde.0245.41819
http://0xde.10855259
http://0336.10855259
http://0xde.0xa5.0243.0133
http://0xde.0245.0243.0133

出力されたリンクを踏むとGoogle に飛ぶ。 結構、見た目を変えてもアクセスできるので奥が深い。 おわり

脆弱性ブローカーについて

概要

脆弱性報告について調べていたら脆弱性ブローカーという存在について知りました。 その後、いろいろ調べたまとめです。

脆弱性ブローカーとは

脆弱性ブローカーとは、脆弱性情報を買い取りそれを政府機関や研究機関や金融機関といった組織に転売する業者のこと。 バグバウンティプログラムやZDIといった研究コミュニティと違い、情報は公になること無く転売される。 転売された情報は法執行機関が操作に使う他、諜報機関が活動するために使われると考えられている。 転売された情報がサイバー戦争で活用されることから『現代の死の商人』と呼ばれる。 売買される情報の価値について、以前まで非公開であることが多かったが、2015年11月18日『Zerodium』と呼ばれる企業が価格表を公開し、それまで脆弱性ブローカーの存在を知らなかった人も含めて話題になった。

Zerodium

Zerodiumはアメリカの脆弱性ブローカー。 創業者であるChaouki Bekrar氏は、フランスのセキュリティ企業である『Vupen Security』のCEOとしても有名。 Vupen Securityは脆弱性情報の転売を行う傍ら、独自に脆弱性を発見しそれらを各国政府機関へ提供していた企業。 しかしHacking Teamの情報流失事件の際、似たようなことをやっているVupen Securityも批判の対象になり活動しにくくなったことからZerodiumを起ち上げたとされている。 さて、前述の通り脆弱性情報の価格表を公開し話題になったZerodiumだが、ここで2016年12月3日現在の価格表を見てみる。 f:id:famasoon:20161202225616p:plain 欲しがっている情報は任意コード実行やサンドボックスのエスケープやバイパス、権限昇格を狙うものが多い。 いかにも法執行機関や諜報機関が欲しがりそうな情報だ。 脆弱性を報告する時はZerodiumと独占契約を結ばなければならないようだ。 FAQでは受け付ける脆弱性の種類についても書かれていて、これを見る限り部分的な脆弱性情報でも悪用可能であれば買い取ってくれるそう。 最高額が$1,500,000で本当に驚き。

Expocod

Expocodはロシアの脆弱性ブローカー。 リンク先で見てもらえば分かる通り、ここも価格表を公開している。 Zerodiumの価格と比較すると見劣りしますが、それでもすごい額。

EXODUS

EXODUSはアメリカのブローカー。 脆弱性情報の提供はここで受け付けている。 EXODUSは上記2つのブローカーと同じく0dayの脆弱性情報を買い取っているが、その他にもN-dayの情報も買い取っている。 N-dayの情報とは、既に情報が公開されパッチが当てられた脆弱性のこと。 既知の脆弱性を突く攻撃も需要があるみたい。 報酬の支払いは通常の電信送金やウェスタン・ユニオン、ビットコインでの支払いに対応しているようだ。

Mitnick Security Consulting

伝説のハッカーであるケビン・ミトニック氏がブローカーサービスをやっている。 Mitnick Security Consulting 価格表は公開されていないが興味深い。

さいごに

いくつか脆弱性ブローカーについて挙げてみた。 これを読んで『現代の死の商人』とも呼ばれる彼らの動向に注目する人が増えればいいな~と思う。 ここまで挙げたもの以外にもブローカーはいると思うので、知っている方はよければ教えてください。

GitHub Dorks

エンジニアの方にとって無くてはならない存在と言っても過言ではないGitHub。 今回はそのGitHubについて書いていきます。
本稿は読者のセキュリティを高める目的で書いています。本稿の内容で得た情報を用い自身の管理下にないネットワークやコンピュータへアクセスした場合、不正アクセス行為と判断され、法的措置を取られる可能性があります。同内容の調査を行い被ったいかなる被害についても、 投稿者は一切の責任を負いかねます。

Google Dorks

さて、タイトルのGitHub Dorksについて書く前に1つ説明しなくてはならないことがあります。
Google Dorks』です。
これはGoogleで検索する際、検索オプションを用いることで本来見つけにくい情報を見つける方法の総称です。
一時期、Twitterで話題になった「filetype:pdf 社外秘」で検索するというのもその1つです。
オプションをまとめたサイトや実際に検索するツールなんかも出ています。
webサイト側の公開設定がおかしいせいでこのような事が起きているようです。 Google側もこの手法について把握しているらしく、検索オプションを多用するとキャプチャを求めてきたりバンしてきます(Torを使っているとまず間違いなくやられる)

GitHubでの応用

Google Dorksは

ならGoogle以外のサイトでも使うことができます。
この手法をGitHubで使ったものが『GitHub Dorks』です。
GitHubはエンジニアがコード類を置く場所という性質上、非常にセンシティブな情報が置かれやすいです。
例として

  • SSH秘密鍵
  • ネットワークの構成情報
  • 社内で使っているツール
  • 何かのサービスで認証するための情報
  • etc...

GitHubにそんな情報上げるわけないだろ」と思う方もいるかもしれないですが、これが現実です。
.gitignoreを利用していない・不必要なファイルがリポジトリに含まれているといった設定不備があったり、リポジトリが全世界に公開されていることを理解していなかったりでこのような事が起きているようです。
これもGoogle Dorksと同様にツールが出ています。

最後に

どれだけ注意していても人間ミスする時はミスするので「自分はGitHubに変な情報を上げていないぞ」と思っている人も今一度確認してみてください。

XMPPことはじめ

XMPP(jabber)で連絡をする必要が出てきたので、その時にとった対応を書きます。

環境

$ uname -a
Linux mint-vm 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Pidginのインストール

PidginはXMPPを扱えるソフトです。 インストールには下記コマンドを入力します。

$ sudo apt install pidgin

アカウント作成

Pidginを入れたら今度はXMPPのアカウントを作成します。 今回はXMPP.JPを使ってみます。 トップページの「アカウントを作成」から作ります。 (画像は例) f:id:famasoon:20161004161155p:plain f:id:famasoon:20161004161208p:plain

アカウントをPidginに登録する

アカウントの管理から「追加」を押し下の画像のように入力してください。 f:id:famasoon:20161004161248p:plain 入力を済ませたら「追加」を押します。 画像のようになったらアカウントの登録ができました。 f:id:famasoon:20161004161315p:plain あとは仲間リストというウィンドウが出てくるので、そこで連絡先を追加したり実際に連絡をとってみたりしてください。

(おまけ)

OTRというものがあります。 これは暗号化によって通信内容を秘匿する仕組みです。 詳しくはこちら。 Pidginはプラグインを導入することでOTRに対応させることができます。 まずは下のコマンドを入力

$ sudo apt install pidgin-otr

次にPidginの仲間リストウィンドウの「ツール」->「プラグイン」を選択。 出てきたリストの中に「Off-the-Record Messaging」という項目があるのでチェックを入れる。 そのまま下の方の「プラグインの設定」を選択。 出てきたウィンドウの「My private keys」という項目の「Generate」を押す。 OTR用の鍵が生成されるので少し待ちます。 鍵が生成されたら終わりです。 これで「OTR有効じゃないと連絡しないよ!!」と言っている人とも連絡できますね :)

(おまけ2)

XMPPで連絡を取りたいけど何処から通信しているか秘匿したいと思う人は多いはず。 そんな需要があってかPidginではプロキシを設定することができます。 今回はTorをプロキシとして設定してみます。 とは言っても簡単で、まずはTorをインストール。

$ sudo apt install tor

次にPidginのアカウント管理画面からTorを通したいアカウントを選択して設定画面を出します。 そこの「プロキシ」タブを選択。 プロキシの種類を「Tor/Privacy(SOCKS5)」に選択。 そしてTorがリッスンしているIPアドレスとポート番号を入力します(下の画像は私の例) f:id:famasoon:20161004161515p:plain これで終わりです。