信息收集之路—Python篇(2)

admin 2022年3月8日00:23:27评论95 views字数 3641阅读12分8秒阅读模式

信息收集之路—Python篇(2)


△△△点击上方“蓝字”关注我们了解更多精彩




0x00 Preface [前言/简介]
  水文者羊咩咩是也,干啥啥不行水文第一名^_^。延续上一篇文章我又来了展现极弱的代码功底了。本次在原有代码的基础上添加了利用ico_hash来寻找真实ip的功能
 
脚本编写目的:完成一些简单的信息收集工作。

      记录一个菜鸟的编程之路



0x01 代码功能图-CDN部分

信息收集之路—Python篇(2)



0x02 文件目录
MYscan
 -dic.txt       #子域名字典
 -scan.py       #起始文件
 -nmapscan.py     #端口扫描
 -subdomain.py    #子域名爆破
 -cdnjudge.py     #cdn判查
 -fofa.py       #fofa接口调用(PS:极度简单)



0x03 scan.py 改动
这次我将原本写在起始文件的cdn判断功能独立了出来,以对象的方式进行调用
#!/usr/bin/python3import socketimport sysfrom nmapscan import *
from cdnjudge import *from subdomain import *'''使用方法: python3 scan.py url -all 使用全部功能   python3 scan.py url -cdn   查CDN'''#IP查询def ip_check(url): ip = socket.gethostbyname(url) print('ip获取:') print (url+'t'+'该网址IP为:'+ip) print('--------------------------------------------------')
#程序入口def main():
url = sys.argv[1] check = sys.argv[2] if check == '-all': ip_check(url) cd = cdnjudge(url) #cdn判断 cd.cdn_check() nm = nmapscan(url) #端口扫描 nm.nmapscan_check() su = subdomain(url) #子域名爆破 su.subdomain_check() elif check == '-cdn':        cd = cdnjudge(url)   #cdn判断 cd.cdn_check() else: print('请输入参数:')if __name__ == '__main__': main()



0x04 chapter2 正文2

import jsonimport requestsimport base64import time
class fofa: def __init__(self,url): self.u = url
def search(self): you_email = '' #fofa_邮箱 you_key = '' #fofa_key #headers = { # 'cookie': '', #} url = 'https://fofa.so/api/v1/search/all?email=%s&key=%s&size=20&page=1&qbase64='%(you_email,you_key) #调用的fofa-API参数设定 search_data_bs = str(base64.b64encode(self.u.encode("utf-8")), "utf-8") #将搜索内容转换为 base64        urls = url + search_data_bs  #拼接请求地址 try: result = requests.get(urls).content #发起请求并获取结果 except Exception as e: pass
return json.loads(result) #以json解码后的结果返回查询




0x05 cdnjudge.py 代码讲解
其思路,判断CDN->爬取ico链接->转化hash值->fofa搜索相关ip->对结果进行人工判断
import base64import osimport requestsimport refrom fofa import *from lxml import etree#cdn判定class cdnjudge():    def __init__(self,url):        self.u = url
#采用nslookup执行结果进行返回ip解析数目判断 def cdn_check(self): print("CDN判断") ns = "nslookup "+self.u #利用nslookup做cdn判断 data = os.popen(ns,"r").read() #执行命令并且获取数据 #print(data) #输出执行结果 if data.count(".")>10: #cdn判断 print(self.u + 't' + "存在CDN!") cdnjudge.ico_hash() #调用ico_hash()
else: print(self.u + 't' + "不存在CDN!") print('--------------------------------------------------')# 黑暗引擎搜索.ico (hash值) def ico_hash(self): url = ['http://' + self.u, 'https://' + self.u] # 指定url i = 0 while i < 2: try: response = requests.get(url=url[i]) # 发起请求 if response.status_code == 200: # 根据状态码判断网站是否能够正常访问 page_text = response.text # 获取响应数据 icourl = re.findall(r'" href="(.*?.ico)"', page_text) #正则匹配获取ico文件 if re.findall(r'http', icourl[i]): icourls = icourl[i] print("该网站的ico文件地址为: %s " % icourls) else: icourls = url[i] + icourl[i] print("该网站的ico文件地址为: %s " % icourls) # 利用fofa的ico_hash值转换功能,并且调用接口进行查询 s = (base64.b64encode(icourls.encode('utf-8'))).decode('utf-8') #对ico文件地址进行base64编码 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', } url = "https://www.fofa.so/result?qbase64=%s" % s #赋值请求参数 r = requests.get(url=url, headers=headers) #发起请求 soup = etree.HTML(r.text) #将html转换成_Elementduixiang result = soup.xpath('//*[@id="q"]/@value') #通过xpath表达式获取h1变迁中的文本 for hash in result: print(hash) #调用fofa搜索hash值 ff = fofa(hash) #自定义fofa接口调用 datas = ff.search() print("根据fofa搜索的结果可稍微判断一下真实ip:") for data in datas['results']: #遍历返回的json数据进行输出 print(data)
i = 2 else: print('无法正常访问!') i += 1 except Exception as err: print("error:未找到ico文件!") i = 2            print('--------------------------------------------------')



0x06 运行结果

信息收集之路—Python篇(2)



0x07 Summary 总结

  弟弟就是先写简单的一些功能,还有好多东西没有去写,想一步步的记录自己的编写过程。
   相关历史文章请后台留言。
参考引用:
 正则参考资料:https://www.jb51.net/article/65286.htm  计算ico文件hash值脚本:https://blog.csdn.net/weixin_45859734/article/details/111087843 fofa接口参考资料:https://fofa.so/static_pages/api_he


END



如您有任何问题、建议、需求请后台留言NOVASEC公众号!


感谢大哥们的对NOVASEC的支持点赞和关注

加入我们与萌新一起成长吧!


信息收集之路—Python篇(2)


如有任何问题、建议、合作、投稿请加NOVASEC-MOYU,以方便及时回复。



本文始发于微信公众号(NOVASEC):信息收集之路—Python篇(2)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月8日00:23:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   信息收集之路—Python篇(2)https://cn-sec.com/archives/494566.html

发表评论

匿名网友 填写信息