比较IP和域名的小工具
本帖最后由 huaguoshanhouzi 于 2023-8-11 15:40 编辑在某些时候特别需要一个工具来帮助我处理大量的IOC识别工作,网上找了很多地方都没找到,要么就是设备上固定的,所有就简单写了个小工具。感觉其中还有很多可以优化的地方,所以他分享出来,希望可以群策群力继续优化。需要的朋友请自取。
def checkIoc():#IOC指标检查模块,被检查对象格式txt,ioc指标格式xlsx# t.yesware.com
path='./ioc'
iocs=[]
print('IOC指标加载中...')
for f in os.listdir(path):
if f.endswith('.xlsx'):#加载ioc指标
filepaths=os.path.join(path,f)
iocfile=pd.read_excel(filepaths)
ioc=iocfile.iloc[:,0].tolist()
for i in ioc:
iocs.append(i)
iocs=list(set(iocs))#去重
ioc_num=[]
ioc_letter=[]
for i in iocs:#ioc指标分类
if is_number(i[-1:]):
ioc_num.append(i)
else:
ioc_letter.append(i)
#获取待检查文件
print('被检查文件加载中...')
ipfilepath='./maybeioc'
ip=[]
for f in os.listdir(ipfilepath):# 遍历文件目录
fip=os.path.join(ipfilepath,f)
if f.endswith('.xlsx'):#判断xlsx文件格式
fl=pd.read_excel(fip)#读取xlsx文件
ip=fl.iloc[:,0].tolist()
x=''
yesIoc=[]
for j in ip:#比对ioc,时间复杂度n^2,若有条件可以改进
if is_number(j[-1:]):#分流使用域名还是IP比对
for k in ioc_num:#
if j==k:
yesIoc.append(j)
x=True
else:
for k in ioc_letter:
if j==k:
yesIoc.append(j)
x=True
if x!=True:
print('未找到对应IOC')
else:
print('比对到可疑IOC,信息如下')
for iox in yesIoc: #循环打印
print(iox)
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
这个小工具需要用到的其他条件如下:
在工具当前目录下需要有两个文件夹ioc和maybeioc
文件夹中的需要使用的文件都是.xlsx后缀。并且使用的参数需要放在第一列才能被检测到。两个文件夹文件格式都一样。另外欢迎大家一起探索更加高效的算法或者方式。本人第一次发帖,有不对的地方欢迎指正。谢谢
页:
[1]