厂商IP信息收集小工具(持续更新)

在任何渗透过程中,前期的信息收集工作是至关重要的一环。在我们对一个厂商下的网站进行测试的时候,会先收集该厂商下的的字域名和ip,但是一个厂商的ip往往是成百上千甚至是上万个,使用已知的工具收集往往会很麻烦,这时候就需要我们自己编写一些工具来帮助我们进行收集了。

我写的这个小工具就是收集厂商C段的ip。先贴上代码(代码写的比价哦简陋,就凑合着用,以后会不断地更新和完善的)

 

# -!- coding:utf-8 --

import requests
import sys
import re

def ip_find(ip_file1):
    ips = []
    ip_c_list = []
    pattern = re.compile(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])')
    for line in ip_file1:
        ip=pattern.findall(line)
        ips.append("".join(ip))
    for ip1 in ips:
        if ip1 != '':
            for ip_c in range(1,250):
                ip_split = ip1.split('.')
                new_ip = ip_split[0]+'.'+ip_split[1]+'.'+str(ip_c)+'.'+ip_split[3]
                #print(new_ip)
                ip_c_list.append(new_ip)
    return ip_c_list


def ip_scan(ip_c_list,ip_file2):
    try:
        for ip in ip_c_list:
            url = 'https://boip.net/ipv4/{}'
            res = requests.get(url = url.format(ip))
            if '北京市 - 电信互联网数据中心' in res.text:
                print(ip+'is belong to this company.')
                ip_file2.write(ip,end = '\n')
    except Exception as e:
        raise e
    finally:
        pass

def main():
    file1 = sys.argv[1]
    ip_file1 = open(file1,'r')
    ip_file2 = open('ip_info.txt','w+')
    ip_c = ip_find(ip_file1)
    #print(ip_c)
    ip_scan(ip_c,ip_file2)

    ip_file1.close()
    ip_file2.close()

if __name__ == '__main__':
    try:
        main()
    except:
        print('eg pyhton xxx.py ./ip.txt')

 

我这个工具是以一号店(www.yhd.com)为例。

首先是使用子域名爆破工具对yhd.com进行爆破,将爆破后的信息保存下来。然后该工具会从保存的信息中去筛选ip,然后重新构造ip的C段。

然后对重新构造的ip进行筛选(我这里推荐选择的是https://boip.net这个IP查询网站。这个网站信息比较全,而且免费),最后将筛选的结果保留

使用效果:

 

 

 

 

附上一个好东西:

开源扫描仪的工具箱:安全行业从业人员自研开源扫描器合集

 

posted @ 2018-04-10 17:36 c1e4r 阅读(...) 评论(...) 编辑 收藏