如何找出网络空间测绘引擎扫描客户端IP
年底了,水一篇文章。目前的网络空间测绘引擎有fofa、shodan、zoomeye、hunter、censys等,这篇文章主要写写如何找出它们的扫描客户端IP与UDP probe数据包。
自己公开
比如 Censys 公开了自己的扫描客户端ip:https://support.censys.io/hc/en-us/articles/360043177092-Opt-Out-of-Data-Collection
第三方平台
网上一些平台也收集了一些:
- fapro :https://faweb.fofapro.com/classification/
- GreyNoise:https://viz.greynoise.io/query?gnql=actor%3AShodan.io , 这个站点还分析了相似IP, 如 https://viz.greynoise.io/ip/159.65.111.154 这个 BinaryEdge 的ip,点击页面的View Similar IPs 可以大概看看可能是 BinaryEdge 的其他IP(该功能需登录订阅)
通过搜索引擎搜索也可以搜索到一些,如shodan扫描器的ip:
- https://gist.github.com/jfqd/4ff7fa70950626a11832a4bc39451c1c
- https://wiki.ipfire.org/configuration/firewall/blockshodan
回显ip的服务
互联网上有一些服务会输出来访者的ip,那如何找到这类服务呢。
利用公开的扫描客户端IP去它的搜索引擎里去搜索。 如:
- 使用shodan的ip去shodan搜索 “71.6.167.142” -Ethereum -NTP, 可提取出这个特征 http.html:”Outlook Logon” http.html:”Never gonna give you up” 的服务会回显IP(这些服务看着好像是蜜罐)
- 使用censys公开的网段去censys搜索,services.http.response.body: “162.142.125”,可以提取出一些特征,如:services:(http.response.body: “你的IP:” and port:80)
而Fofa会将自己的IP给替换成 *.*.*.*
,像 “is not allowed to connect to this MySQL server” 。 那是不是可以用 "*.*.*.*"
搜索出那些回显IP的服务呢。测试了下并不行,估计是分词搜索的原因。
而zoomeye会把自己的ip替换为xxx.xxx.xxx.xxx
,可以使用 “xxx.xxx.xxx.xxx”去搜索。
后面我也注意到,其实fofa跟zoomeye的替换并不全面。fofa没有替换http响应里的ip,像 “Bad Request” && “ip” ,header=”x-request-ip” 。且对于一些被截取、被编码的ip或其他格式的ip,也不会替换到。
要找到这些回显IP的服务,也可以自己全网扫一遍看哪些服务会回显自己的ip,记录下来。
UDP Probe数据包
对于UDP服务的识别需要发送一个该协议的probe包,在互联网上有一些机器起的是echo服务,就是你发什么它就回复什么。像 base_protocol=”udp” && port=”2425” && banner=”test:PC:32:grab test” ,“GET / HTTP/1.1” && “Accept: /“ && protocol=”unknown” ,protocol==”echo” 。区分出这些机器后,再用这些机器ip去搜索可以大概知道各扫描客户端对不同UDP端口发的是什么UDP包。
部署蜜罐
自己部署蜜罐成本大,没弄过。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!