この記事では、渡す情報を変更せずに、http接続への受動的な攻撃の方法を検討します。 そのため、何らかの方法で、物理的または遠隔的にデータチャネルに侵入したり、ブリッジを設定したり、単にゲートウェイのルートコントロールを取得したりすることができました。 彼らはルートキットをインストールし、ベースとソースをマージし、Webシェルをアップロードし、cronに時限爆弾を入れました。
この記事では、SSLなどの安全な接続のためのハッキング方法については説明しません。 また、このルートアクセスがどのように行われたかはわかりません。陰謀の余地を残します。 以下で説明するユーティリティには高い特権が必要なため、ルート権限なしのアクセスは意味がありません。
どこから始めますか?
そして、すぐにtcpflowユーティリティが助けになります 。 それを利用して、Webセッション認証ハッシュ、Cookie、および通過データを記録し、写真、アーカイブ、マルチメディアなどのほとんどのファイルを奪うことができます。ifconfigコマンドを発行することで、システム内にどのインターフェイスが存在するかを確認し、 ルートを使用してトラフィックがどのように進むかを確認します。 ゲートウェイの場合、少なくとも2つのインターフェイスがあり、そのうちの1つは原則として内部ネットワークを調べ、もう1つは「外部」を調べます。 ローカルネットワークからの着信接続は「外部」インターフェイスで発信されることを知っておく必要があります。
それで、例えば「内部」インターフェースから、いくつかのhttp接続を取得しましょう:
#tcpflow port 80 -i eth1
多くのセッションファイルが現在のディレクトリに作成され始めます。 キープアライブテクノロジーのおかげで、1つの接続で複数の要求を行うことができます。つまり、それらのいくつかを1つのファイルに書き込むことができます。 ファイルには、httpヘッダーとしてのヘッダーと送信データが含まれます。 次のようになります。
HTTP / 1.1 200 OK
日付:2011年11月1日火曜日12:25:18 GMT
サーバー:Apache
最終変更日:2011年9月14日水曜日03:48:00 GMT
ETag: "1111111-22222-333333333"
Accept-Ranges:バイト
コンテンツの長さ:4451
キープアライブ:タイムアウト= 15、最大= 100
接続:キープアライブ
コンテンツタイプ:image / png
.PNG ... IHDR ....... d .....、T + 3 .... gAMA .... 7 ....... tEXtSoftware.Adobe ImageReadyq.e <... .PLTE ........ 2..j ..... * .. N .. \ ...........> ............ ..&.. V ........ $ ........ R..l ..:.................... .mm .................. r .....、........ B ...... uu。{{.... ................. a .. \ .................!........ z .... } ........ l..7..H..u..M ..... d ..... A .. = ............. .......&ff .......... ~~ ...... | ........... U ..-........ ..................... | ........ c..E ...
フィルタリング
認証データを含む行でデータをフィルターしてみましょう。#egrep -ir "Authorization | Cookie" ./
出力は次のようになります。
動作中のサーバーの画面の品質については申し訳ありません。
Cookieを使用すると、すべてが簡単になります。Cookieエディターを介してブラウザーに挿入するだけで、セッションを盗むことができます。 CookieはクライアントのIPアドレスやユーザーエージェントにさえ結び付けられることがあるため、単にCookieを削除しても機能しないことに注意してください。 HTTP AUTHをデコードするのは簡単で、そのうちのほんの一部です:
- 基本的なカップルログイン:パスワードはエンコードされたbase64で送信されます。 この場合、Authorizationから1行を取得してbase64デコーダーでデコードし、username:passwordという形式の行を取得します
- ダイジェスト、MD5関数からのハッシュ(ユーザー名:レルム:パスワード)が渡されます。 ここではもっと複雑です。 レインボーテーブルを介して、「A:B:C」という形式の行のすべての一致を見つけることができます。ここで、Aはログイン、Bはレルム、Cはパスワードです。 このような偶然の一致はそれほど多くないはずなので、後ですべてを整理することは不可能でした。
- その他:公開鍵、Kerberos、TLS / SSL-検討していません。
#egrep -rnH "POST" ./
POST /auth.php HTTP / 1.1
ホスト:blabla.ru
ユーザーエージェント:Mozilla / 5.0(Windows NT 5.1; rv:7.0.1)Gecko / 20100101 Firefox / 7.0.1
許可:text / html、application / xhtml + xml、application / xml; q = 0.9、* / *; q = 0.8
Accept-Language:ru-ru、ru; q = 0.8、en-us; q = 0.5、en; q = 0.3
Accept-Encoding:gzip、deflate
Accept-Charset:windows-1251、utf-8; q = 0.7、*; q = 0.7
DNT:1
接続:キープアライブ
リファラー:http://bla.ru/auth.php
Cookie:__utma = 25445499.32598290.132041700.132014354.132015499.3; __utmc = 25445439; __utmz = 25445499.132014100.1.1.utmcsr =(直接)| utmccn =(直接)| utmcmd =(なし);
Content-Type:application / x-www-form-urlencoded
コンテンツの長さ:72
テキスト= blabla&ログイン=ユーザー名&パスワード= ololo&wefo = onPOST /bla.php HTTP / 1.1
ファイルキャプチャ
また、tcpflowは、 最も重要なユーティリティと組み合わせて、ファイルを傍受したり、キャプチャされた生データの配列から抽出したりするのに役立ちます。 これを行うには、tcpflowによって盗まれた接続ファイルで最も重要な設定を行います。
#何よりも./*
#ls -la ./output/
合計48
drwxr-xr-- 5 root root 4096 Nov 1 18:01。
drwxr-xr-x 3 root root 32768 Nov 1 18:01 ...
-rw-r-r-- 1 root root 0 Nov 1 18:01 audit.txt
drwxr-xr-- 2 root root 4096 Nov 1 18:01 flv
drwxr-xr-- 2ルートルート4096 Nov 1 18:01 html
drwxr-xr-- 2ルートルート4096 Nov 1 18:01 php
また、このユーティリティを使用すると 、破損したメディアからファイルを回復できることがわかりました。これは、署名によるファイルの検出に優れているためです。 たとえば、 foremost.confでは、カスタムファイルタイプの署名を作成することもできます。
その他の作業例
snupゲートウェイでのFTP接続の傍受:
#tcpflow 'gateway snup and(port ftp or ftp-data)'
暗号化されていないメールトラフィックの傍受:
#tcpflow tcp port 110
#tcpflow tcp port 25
関数tcpxtractは、 tcpflowと同様の機能を実行します。 二次ユーティリティhttpflowもありますが、主にhttp接続のデバッグに使用されます。
結論
したがって、教育や複雑な知識がなくても、チャネルへの物理的またはリモートのルートアクセスを持ち、簡単なユーティリティを使用して、ユーザーデータを傍受できることを示しました。 別のソウルレスな「ダウンロード-コンパイル」を書きたくなかったので、この記事はもっとレビューです。 好奇心people盛な人はそれを必要とせず、彼らはすでに自分が望むものを理解しており、初心者は単に記事に記載されているすべての資料を研究し、検索を使用する義務があります。
私が失敗したこと
- tcpflow パイプを介して多数のユーティリティを配置する | 何よりも。 彼らはどうやらお互いの友人ではないようです。
- Accept-Encoding: gzipで圧縮されたhtmlファイルを抽出するには、何よりもまずdeflateを使用しますが、この種のデコードがforemostでサポートされていないことは明らかです。 クイック検索でこのためのユーティリティは見つかりませんでした。 ただし、これは手動で行うことができます。ファイルごとにhttpヘッダーをトリミングし、sdtinを介してgzip / tar / deflateにフィードする必要があります。
有用な文献:
#最前線
#man tcpflow
#man tcpxtract
www.voidspace.org.uk/python/articles/authentication.shtml
secure.wikimedia.org/wikipedia/en/wiki/%D0%A7%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA_%D0%BF%D0%BE%D1 %81%D0%B5%D1%80%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5
secure.wikimedia.org/wikipedia/en/wiki/%D0%A1%D0%BD%D0%B8%D1%84%D1%84%D0%B5%D1%80
www.circlemud.org/jelson/software/tcpflow
secure.wikimedia.org/wikipedia/en/wiki/Digest_access_authentication
encrypted.google.com/search?q=foremost+linux
www.debian-administration.org/articles/558
stackoverflow.com/questions/2866864/extract-payload-from-tcpflow-output
tcpxtract.sourceforge.net
分析およびハッキングツールのセットwww2.opensourceforensics.org/tools/unix
serversniff.blogspot.com/2009/08/extracting-files-from-tcpdump.html