13-7-knowledge-graph-Threat-Intelligence.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import networkx as nx
  2. import matplotlib.pyplot as plt
  3. # 挖掘后门文件潜在联系
  4. def backfile_cc():
  5. # 后门文件file1和file2分别对应C&C域名domain1、domain2、domain3、domain6domain2、domain3、 domain4、domain5
  6. # 其中domain2和domain3同时被file1和file2使用,初步怀疑邮箱file1和file1为同一黑产团体控制的后门文件,
  7. # domain1至domain4均疑似黑产同时控制,并很可能是同一用途,比如DDoS。
  8. with open("data/KnowledgeGraph/sample6.txt") as f:
  9. G = nx.Graph()
  10. for line in f:
  11. line = line.strip('\n')
  12. # 文件(md5)、cc域名
  13. file, domain = line.split(',')
  14. G.add_edge(file, domain)
  15. nx.draw(G, with_labels=True, node_size=600)
  16. plt.show()
  17. # 挖掘域名潜在联系
  18. def domain_contact():
  19. # 邮箱mail1和mail2分别注册了域名domain1、domain3和domain2、domain4、domain5,
  20. # 其中domain1和domain2都指向同一个ip1,domain3和domain4都指向同一个ip2,初步怀疑邮箱mail1和mail2被同一黑产团体控制,
  21. # domain1至domain4均疑似黑产同时控制, 并很可能是同一用途,比如C&C服务器或者钓鱼网站。
  22. with open("data/KnowledgeGraph/sample5.txt") as f:
  23. G = nx.Graph()
  24. for line in f:
  25. line = line.strip('\n')
  26. # 注册邮箱、域名、IP
  27. email, domain, ip = line.split(',')
  28. G.add_edge(email, domain)
  29. G.add_edge(domain, ip)
  30. nx.draw(G, with_labels=True, node_size=600)
  31. plt.show()
  32. def main():
  33. backfile_cc()
  34. domain_contact()
  35. if __name__ == "__main__":
  36. main()