【HR】资产测绘中增大发现弱资产概率的小技巧 附实现代码

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-9-13

工具来源:ybdt师傅的分享

分享一个小工具,资产收集时,排除CDN后,会收集到很多零散的公网IP,而目标公司往往是从运营商申请的连续IP,此时根据零散IP获取连续IP,会增大发现弱资产的概率

算法实现费了些时间,方便师傅们可集成到自己的自动化工具中

核心代码
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")

这……就……
怎么了?。
地板
玖月๑ 2022-9-23
奖励结算,当前结算等级:1;少侠辛苦了。

评论

登录后才可发表内容
  • 主题

    70

  • 帖子

    429

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.1009s Mem:2084Kb