2013-05-07 66 views
4

我刚刚掌握了Raspberry Pi,并且已将其设置为充当我家庭网络上的DNS和DHCP服务器。这意味着所有的网络请求在它们被释放到野外之前都会经过它......这为我提供了一个很好的机会来使用tcpdump并查看我的网络上发生了什么!使用tcpdump来查看我的网络上访问哪些网站

我正在玩弄tcpdump参数来创建完美的网络间谍。这个想法是捕获HTTP GET请求。

这是我有这么远,这是相当不错:

tcpdump -i eth0 'tcp[((tcp[12:1] & 0xf0)>> 2):4] = 0x47455420' -A 
  • -i eth0告诉它来听
  • 其接口引号中位十六进制匹配的漂亮位判断GET请求
  • -A意思是 “打印该分组的内容的ASCII”

每当我网络上的任何事情发送GET请求时都会触发,这非常棒。最后,我的问题是如何过滤无聊的请求,如图片,JavaScript,网站图标等?

这是甚至可能与tcpdump或我需要移动到像tshark更全面的东西?

感谢您的帮助!

免责声明:目前我的网络上唯一的人是我......这不是恶意的,这是一个技术挑战!

+0

你是否还将其设置为代理/ NAT /路由器?仅DNS/DHCP服务器将不会看到HTTP通信。 – jman 2013-05-07 19:33:53

+0

是的,在任何交换(即远程现代)本地网络上,这不会看到来自/来自其他机器的流量的内容。它只会看到实际触及它的DNS查询 - 而不是那些从客户端的DNS缓存中解析出来的查询,或者来自明确配置为使用外部DNS服务器的客户端。为了获得一切,通常必须在网关或(如果使用的话)NAT盒子上捕获 - 通常是一样的。 – 2013-05-07 20:14:16

回答

1

grep的是你的朋友:-) tcpdump ... | grep -vE "^GET +(/.*\.js)|(/favicon.ico)|(.*\.png)|(.*\.jpg)|(.*\.gif)|... +HTTP会隐藏像GET /blah/blah/blah.js HTTP 1/.0GET /favicon.ico HTTP 1/.0GET /blah/blah/blah.png HTTP 1/.0事情。