挖掘SYN攻击者的真实IP地址,我的主要思路是统计每个IP发送的SYN报文的个数,然后反向分析TTL值。发送报文数量越多的,越有可能是真实的IP地址。将TOP 1000的源IP摘出来,在被攻击的目标上去ping他们,看TTL值和发过来的SYN报文TTL指相差有多少。需要注意的是,这里对比的是TTL减少的跳数,而不是绝对的TTL值,因此需要你猜测原始TTL是多少。这样过滤出一些IP地址之后,再做一些扫描探测,看看有没有能被攻击者入侵的漏洞。这种方式有一些效果,但是如果随机了原始TTL就不靠谱了,精细的SYN攻击在不求助政府、cncert之类的力量比较难追踪。

我曾经遇到一次攻击,这种方式最终找出了部分真实IP地址,可惜某些部门不给力,就不多说了。

原理我也大致描述一下。IP地址可以伪造,但是路由路径是不能伪造的。本身IP是1.2.3.4,到攻击目标经过4跳,但是伪装成的那个IP 2.3.4.5可能需要经过8跳。这样攻击报文TTL降低了4,而反查的TTL则会降低8。如果没有伪造源IP或者伪造的是同一个子网的IP,TTL的跳数则会非常匹配。

关于攻击者为什么有时候不伪造源IP,有2个原因。1个原因是某些ISP在路由器上做了限制,干掉了伪造报文。第2个原因?呵呵,佛曰不可说不可说。