资产测绘中增大发现弱资产概率的小技巧 附实现代码
作者:Sec-Labs | 发布时间:
工具介绍
工具来源:ybdt师傅的分享
分享一个小工具,资产收集时,排除CDN后,会收集到很多零散的公网IP,而目标公司往往是从运营商申请的连续IP,此时根据零散IP获取连续IP,会增大发现弱资产的概率
算法实现费了些时间,方便师傅们可集成到自己的自动化工具中
核心代码
get-serial-ip.py
ip_list = []
with open("ip.txt", "r", encoding="UTF-8") as fr:
for ip in fr.readlines():
ip_list.append(ip.strip("\n"))
d = {}
for ip in ip_list:
ip_parts = ip.split(".")
c_range = ip_parts[0] + "." + ip_parts[1] + "." + ip_parts[2]
if c_range not in d.keys():
c_range_elements = []
d[c_range] = c_range_elements
c_range_elements.append(ip)
else:
c_range_elements = d[c_range]
c_range_elements.append(ip)
print(d)
print()
new_ip_list = []
for key, value_list in d.items():
if len(value_list) == 1:
new_ip_list.append(value_list[0])
else:
ip_parts = value_list[0].split(".")
c_range = ip_parts[0] + "." + ip_parts[1] + "." + ip_parts[2]
ip_last_part_list = []
for ip in value_list:
ip_last_part_list.append(ip.split(".")[3])
ip_last_part_list.sort()
# print(ip_last_part_list)
# print(ip_last_part_list[0])
start = int(ip_last_part_list[0])
end = int(ip_last_part_list[-1])
for i in range(start, end + 1):
new_ip = c_range + "." + str(i)
new_ip_list.append(new_ip)
print(new_ip_list)
with open("new-ip.txt", "w", encoding="UTF-8") as fw:
for ip in new_ip_list:
fw.write(ip + "\r")
标签:工具分享, 资产测绘