tcpflow による認証状況調査

シェアする

システム構築にあたり様々なトラブルに相まみえるかと思います。その中でBasic認証をWebサーバにセットしたんだけど、先方から認証が通らない!と文句が来るとした場合、ちゃちゃっとパケットを解析して調査しましょう。
そんな時、約に立つのが tcpflow だと私は思っておりますw

tcpflowにてパケット採取とデコード

実行例として、以下となります。

# tcpflow -c port 80
tcpflow: listening on eth0

066.249.082.101.54737-153.126.190.025.00080: GET /wp-admin/ HTTP/1.1
Host: debuko.net
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip,deflate
Accept-Language: ja,en-US;q=0.9,en;q=0.8
Authorization: Basic dXNlcjE6cGFzc3cwcmQ=
Cache-Control: max-age=0
Cookie: __utmz=242333079.1515871795.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=242333079.291097029.1515871794.1515871794.1515871794.1; _ga=GA1.2.291097029.1515871794
Forwarded: for=122.210.119.97
Save-Data: on
Scheme: http
Upgrade-Insecure-Requests: 1
Via: 1.1 Chrome-Compression-Proxy
X-Forwarded-For: 122.210.119.97
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36


153.126.190.025.00080-066.249.082.101.54737: HTTP/1.1 302 Found
Date: Sun, 25 Feb 2018 12:46:05 GMT
Server: Apache
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Location: https://debuko.net/wp-admin/
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Vary: User-Agent
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

という感じで、tcpdump し、WireSharkにてTCP Streamして通信内容を見るという処理がリアルタイムにて処理ができるため、解析に時間を要しません。

この文字列ですね。問題なのは

Authorization: Basic dXNlcjE6cGFzc3cwcmQ=

Basic認証のデコード処理

さてさて、こいつは何を送ってきているのか、、正解は user1 がIDで、パスワードはpassword です。

# echo "dXNlcjE6cGFzc3cwcmQ=" | perl -MMIME::Base64 -ne 'print decode_base64($_)."\n"'
user1:passw0rd

むむむ!パスワード文字列が、間違っているやーん

まとめ

今回はBasic認証を議題に上げましたが、Basic認証以外の各種認証処理に以外とtcpflowは利用ができます。平文で送ってくるプロトコルなんて、即解決ですよ。

ただし、SSLで暗号化されていると中身が解釈できない。というところとか、暗号化されたパスワードが送られてくる場合、それを復号する技術がいるということはあります。

ではでは

トップへ戻る