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