パケットキャプチャの結果をgrepのようにフィルタリングして表示する方法
目次
スポンサードリンク
ngrepはネットワークを流れるパケットをキャプチャし、grepコマンドの様に特定の条件で出力を絞り込むことができるコマンド。
libpcapというネットワークトラフィックをキャプチャするライブラリを使用している。
同じくlibpcapを使用しているtcpdumpでも同様のことができるが、出力結果が見にくい。ngrepの方がより人間にやさしい出力結果になる(と思う。)
インストール
# 必要なライブラリをインストール
yum install libpcap libpcap-devel
# githubからソースをダウンロード
cd /usr/local/src/
git clone https://github.com/jpr5/ngrep.git
# ビルド
cd ngrep/
./configure
make & make install
ネットワークインターフェース、ポート番号指定してキャプチャする。
ngrep -d eth0 -W byline port 80
試しにBASE64エンコードツールのPOSTデータを確認してみる。 http://uchy.me/tools/convert_base64.html
リクエストヘッダ、レスポンスヘッダの間に「before=admin%3Apasspass&after=&actionType=encode」と確認できる。 アクセス元IPアドレスはマスクしてます。
# 出力結果
############
T XXX.XXX.XX.XX:63057 -> 150.95.132.55:80 [AP] #136
POST /tools/convert_base64.html HTTP/1.1.
Host: uchy.me.
Connection: keep-alive.
Content-Length: 48.
Cache-Control: max-age=0.
Origin: http://uchy.me.
Upgrade-Insecure-Requests: 1.
Content-Type: application/x-www-form-urlencoded.
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36.
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8.
Referer: http://uchy.me/tools/convert_base64.html.
Accept-Encoding: gzip, deflate.
Accept-Language: ja,en-US;q=0.9,en;q=0.8.
Cookie: JSESSIONID=806498129CC3235D8DCBEC0DE55DD7E4; _ga=GA1.2.1796938929.1524374720; _gid=GA1.2.1163621694.1525313613.
.
before=admin%3Apasspass&after=&actionType=encode
##
T 150.95.132.55:80 -> XXX.XXX.XX.XX:63057 [AP] #138
HTTP/1.1 200 200.
Date: Thu, 03 May 2018 02:15:14 GMT.
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips mod_fcgid/2.3.9.
Content-Type: text/html;charset=UTF-8.
Vary: Accept-Encoding.
Content-Encoding: gzip.
Content-Length: 1682.
Keep-Alive: timeout=5, max=100.
Connection: Keep-Alive.
.
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法