エラーは典型的なものであり、それほどではありません

この物語は、一連の単純な間違いが一列にまとめられて、ある会社にとって具体的なトラブルになった方法について語っています。 しかし、同社は詐欺やスパムを取引していたため、これは悪くないかもしれません。



すべての顔と出来事はもちろん架空のものですが、著者はTorから匿名のままにすることを選択しました:)メインキャラクターは「著者」と呼ばれます。



スパムを送信しないでください。 特にSMSスパム



普通の日でした。 もう一度、著者はある種のお金発行サービスからSMSメッセージを受け取りました。 彼をRosCapitalと呼びます。 突然、作者は自分が気になることに気付き、同じコインでスパマーに返済することにしました。



著者はサービスWebサイトにアクセスし、そこでフィードバックフォームを見つけ、そこにフィードバック要求のストリームを提供することにしました。 定期的にリクエストを送信し、ランダムな名前、姓、電話番号に置き換えて、大きなプロキシプールを介して永続的な作業を開始するスクリプトが作成されました(作成者がそのようなプロキシプールを手元に持っていたため)。

このサイトを調べたときに、著者はRosCapitalが典型的な金融ピラミッドであることに気付いたことは注目に値します。



サービスのパブリック(プロダクション)バージョンでエラー出力を無効にします



しばらくして、著者はスクリプトのログで変更を調べることにしました。 送信されたフィードバック要求に対するサーバーの応答はログに含まれていました。 ログでは、著者はしばらくの間サーバーがエラーを返したことに気づきました。 エラーの本質は、Googleドキュメントにアクセスできないことです。 コールスタックがエラーに親切に添付され、Googleアカウントのログインとパスワードが表示されました。 明らかに、RosCapitalはフィードバック要求をGoogleドキュメントに書き留めただけで、それはアカウントなどから削除されました。



可能であれば、アカウントに2要素認証を使用します。 さまざまなリソースへの自動アクセスに重要なアカウントを使用しないでください。



このユーザー名とパスワード(そしてもちろんTor)を使用して、著者はこのアカウントにログインしました。 郵便局では、主にサービスの運用に関連するメッセージがありました-広告の注文、サーバーの支払い、支払いシステムからのメッセージ。 支払いシステムからのメッセージは、とりわけ著者に興味がありました。



支払いシステムは、完全な二要素支払い保護を提供する必要があります



支払いシステムのサイトで、作成者はパスワードのリセットを要求しました。 新しいパスワードと新しい支払いパスワードの両方がメールに正常に送信されました。 つまり、攻撃者がメールにアクセスすると、両方のパスワードが取得され、2要素は残りません。

その後、著者はアカウントのほとんどの資金をビットコインに正常に交換しました。

すぐに、アカウント所有者がパスワードを変更しました。



時間内にサービスパックとパッチをインストールします。 すべての取引相手は同じことをしなければなりません。



このケースは、OpenSSLの「ハートブリード」脆弱性の発見中に発生しました。 作成者は、担当するサーバーでこの脆弱性を既に閉じており、まだ閉じていない人を探すことにしました。 もちろん、著者はまったく同じサービスを利用しました。

脆弱性はそこで閉じられていません。

RosCapitalのサーバーを定期的にプルし、メモリから64 KBを取り出したスクリプトが作成され、その後(再びプロキシを介して)一定の動作を開始しました。



サイト上のセッションをIPに結び付ける価値があります(ただし、これには他の落とし穴もあるかもしれません)



しばらくして、管理者セッションがログに表示されました。

このセッションを使用して、ブラウザーで適切なユーザーエージェントを設定すると、作成者は自由に管理パネルに入りました。 そこで彼は大量の「預金」を作成し、すぐにビットコインに引き出しました。

すぐに、管理パネルはエラーコード403を返し始めました。明らかにIPへのアクセスが拒否されました。



VPNがセキュリティを低下させることが起こります(!)



そのサイトのHeartbleed脆弱性はまだ閉じられておらず、スクリプトはサーバーメモリからデータを収集し続けました。 特に、nginx設定の一部が受信されました。

構成では、管理領域へのアクセスがIPアドレスのサブネットによって制限されていることが明らかでした。 ネットワーク上で徹底的に検索した後、著者はこのサブネットの複数のIPを使用するVPNサービスがあることを発見しました。

作成者はこのVPNにアクセスし、再び管理パネルにアクセスして、ビットコインで一定の金額を再び引き出しました。

その後、管理パネルへのアクセスは特定の1つのIPに制限され、すぐにHeartbleed脆弱性自体が閉じられました。



当たり前:安全なコードを書く



作者はもうやめられず、サービスの脆弱性を探すことにしました。

その結果、リソースへのリクエストで渡された名前のファイルの内容を単に読み取って返すURLリソースが見つかりました。

脆弱性は本質的に盲目でした。 入力するだけで面白いファイルを見つけることができます。



FreeBSDには、Linuxと比較してセキュリティを潜在的に低下させる機能があります(!)



しかし、FreeBSDが助けになりました。 FreeBSDでは、ディレクトリをファイルとして読み取ることができます。 同時に、ファイルシステムからディレクトリに関するエントリが作成されます。すべてのファイルとサブディレクトリがそこに表示されます。

そのため、ファイル構造の研究は非常に興味深いものになりました。 しかし、著者はおいしいものを見つけることができませんでした。 ファイルをアップロードできませんでした。 データベースアクセスの詳細は見つかりましたが、データベースに接続できませんでした。 PHPMyAdminは、パスワードで保護された別のサブドメインにのみ存在していました。



クリアテキストパスワードは常に悪意がある



ただし、その結果、制御スクリプト(シェル)がサーバー上で見つかりました。そのパスワードは、コード内でクリアテキストで直接指定されました。

このシェルを使用して、作成者はすぐにブックマークをサービスコードのさまざまな場所に残しました。 タッチユーティリティは、変更されたファイルのタイムスタンプを変更して、可能であればブックマークの検出を困難にするのに役立ちました。

次は技術の問題でした。 支払システムAPIへのアクセスキーがデータベースから抽出され、そこからすべての資金が安全にマージされ、ビットコインに転送されました。



その後、著者はAPIを介して、支払いシステムで受け取ったすべての資金が数分ごとに他のウォレットに引き出される様子を観察しました。 明らかに、サービスの所有者は、できるだけ多くの資金を節約しようとしました。 一般的に、それはかなり人気のある金融ピラミッドであり、着信転送が進行中でした。 すぐに、RosCapitalは作業を停止しました。 原則として、これはどんな場合でも彼らの目標でしたが、著者は明らかに真剣に彼らの資金の額を減らしました。 範囲を理解するために-盗まれた資金の額は約140-150 BTCに達しました。 当時のBTCのコースを知ることは、読者にとって難しいことではないでしょう。



それ以来、この架空の物語の架空の著者は質問によって苦しめられています。特に詐欺師はおとぎ話を信じるだけで有罪である人々から最終的にお金を受け取ったので、詐欺師から盗むのは良いですか?



All Articles