大网扫描扩大扫描目标范围
目标搜集
某些场景需要扩大范围进行资产收集和扫描,需要自己生成大量的目标IP主机。既然网上已经有很多成型工具只要套用就可以组成这样源源不断的目标了。通过某些特定列表得到固定的目标网址,然后查询网址对应的AS号,AS号下的IP段,IP段对应的域名信息。再进一步查子域名、旁站域名。筛出要测试的应用和端口信息。就有很多很多的测试目标了。。
IP对应的AS号-cymruwhois库
https://pythonhosted.org/cymruwhois/api.html
>>> import socket
>>> ip = socket.gethostbyname("www.google.com")
>>> from cymruwhois import Client
>>> c=Client()
>>> r=c.lookup(ip)
>>> print r.asn
15169
AS号对应的IP段
用的是https://www.radb.net/query/?keywords=as714
命令行使用:
# whois -h whois.radb.net -- '-i origin AS36459' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
185.199.108.0/22
192.30.252.0/22
140.82.112.0/20
140.82.112.0/24
140.82.113.0/24
140.82.114.0/24
140.82.115.0/24
140.82.116.0/24
140.82.118.0/24
140.82.117.0/24
140.82.119.0/24
140.82.120.0/24
140.82.121.0/24
140.82.122.0/24
140.82.123.0/24
140.82.124.0/24
140.82.125.0/24
140.82.126.0/24
140.82.127.0/24
192.30.252.0/23
192.30.254.0/23
185.199.108.0/22
185.199.108.0/23
185.199.110.0/23
185.199.108.0/24
185.199.109.0/24
185.199.110.0/24
185.199.111.0/24
192.30.252.0/22
192.30.252.0/23
192.30.252.0/24
192.30.253.0/24
192.30.254.0/24
192.30.255.0/24
改造一下成shell脚本。
#!/bin/bash
# whois -h whois.radb.net -- '-i origin AS36459' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
selctAS='-i origin '$1
whois -h whois.radb.net -- $selctAS | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
IP段对应的域名
这个功能网上有很多旁站查询、PDNS接口可以做到,比如Virustotal接口。github可以搜索到很多API KEY
扫描存活-masscan
masscan批量扫描,命令说明。
-iL:调用文件
-p:指定端口
--rate:扫描速率
--exclude 简单确定范围,没有这条masscan跑不起来。
-oX 导出路径
--bannner 标识
批量扫描
masscan -iL ips_result1.txt -p80,443 --rate=10000 --exclude 255.255.255.255 -oX asn_server --banner
ipaddress库-从CIDR表示法转换ip范围、单个IP表
漏洞扫描、接口查询的时候,有的工具不支持使用CDIR。转换成需要的IP范围做查询用
CDIR转换为IP范围
import ipaddress
net = ipaddress.ip_network('1.119.0.0/17')
print('%s-%s' % (net[0], net[-1]))
输出:
1.1.8.0-1.1.8.255
1.119.0.0-1.119.127.255
CDIR转换为可用IP
import ipaddress
for ip in ipaddress.IPv4Network('1.119.0.0/17'):
print(ip)
输出:
1.1.8.0
1.1.8.1
1.1.8.2
1.1.8.3
1.1.8.4
1.1.8.5
...