通过邮件发送图片获取某人IP地址的简单方法

有一个十分常见的渗透测试场景:  那就是我们需要获取某人的IP地址。 比如系统管理员所在的白名单IP。

比较繁琐的实现方法,可以通过入侵对方常访问的网站,然后下载web server日志和数据库log表分析。
这里介绍一种非常简单的方法:通过Email发送图片获取对方IP。具体的做法是:

在Email正文中嵌入特定的网络图片(该图片放在自己的http服务器上)发送给特定用户,对方浏览该图片后,

apache记录日志,我们通过查看日志,就可以获取对方的IP地址,甚至包括Referer、User-Agent标识。

作为示例,我注册了一个新的sina邮箱:[email protected],发件人姓名填写为张蓉。
在网上随便搜了个[email protected]百度员工的邮箱,关键词 intext:”@baidu.com”
这里之所以用女性的名字,是为了降低对方的防范心理。
随后,在网上找了一张漂亮女生的合照,给对方发Email。这封测试邮件,我同时也发给了阿里巴巴的一个哥们儿。邮件内容是:

标题: 上次聚餐可慧的照片

正文: 这是上次聚餐时给可慧和阿姨拍的照片,今天才传给你。
原图我也没有了。 一切顺利哈  🙂
{{插入图片 http://23.228.xxx.xxx/c4ca4238a0b923820dcc509a6f75849b.jpg?cache=4}}

23.228.xxx.xxx是我自己的服务器IP。

图片命名我直接用md5(1),是为了让对方产生第一感,仿佛这是社交网站自动生成的文件名。当然,对方直接看到的是一张图,而不是地址。
参数cache=4,则完全是为了区分不同的收件人,也可以很方便地在日志搜索记录。当然,还可以改成其他参数伪装成时间戳。
邮件发出去大约二十分钟,百度和阿里巴巴的哥们儿就都中招了。

apache-log

cache=c,IP为222.129.43.x的是百度的这位哥们儿,而后一个IP 42.120.74.x则来自阿里巴巴。
可以看到百度的同学使用了iPhone手机客户端,对应的IP地址,可能会是百度VPN的出口IP。
而阿里的同学则是64位系统, Chrome浏览器。

这里主要利用了邮件客户端会自动请求Email正文中嵌入的网络图片,而不会提示用户。