c1e4r

在任何渗透过程中,前期的信息收集工作是至关重要的一环。在我们对一个厂商下的网站进行测试的时候,会先收集该厂商下的的字域名和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查询网站。这个网站信息比较全,而且免费),最后将筛选的结果保留

使用效果:

 

 

 

 

附上一个好东西:

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

 

分类:

技术点:

相关文章:

  • 2021-09-11
  • 2022-01-09
  • 2022-12-23
  • 2021-10-10
  • 2021-07-16
  • 2021-10-02
  • 2022-12-23
  • 2022-01-26
猜你喜欢
  • 2022-12-23
  • 2021-12-12
  • 2021-10-21
  • 2022-01-18
  • 2021-11-25
  • 2022-12-23
  • 2021-11-27
相关资源
相似解决方案