信息收集之路—邮箱收集

  • A+
所属分类:安全文章
信息收集之路—邮箱收集
△△△点击上方“蓝字”关注我们了解更多精彩




0x00 Preface [前言/简介]

  水文者羊咩咩是也,干啥啥不行水文第一名^_^。我又双来了展现极弱的代码功底了。对于邮件钓鱼攻击来说,收集目标邮箱是一件挺麻烦的事情所以,我想在我自己的信息收集脚本中添加上一个收集邮箱的功能。
  脚本编写目的:完成一些简单的信息收集工作。

  记录一个菜鸟的编程之路



0x01 代码功能

信息收集之路—邮箱收集

这次我单独整理了一个脚本出来(嘿嘿菜鸟只能造轮子了)
脚本实现功能:收集目标网站相关邮箱
脚本编写原因:手工收集邮箱是一件挺麻烦的事,于是这个脚本就诞生了
脚本思路:通过爬取百度以及bing搜索引擎搜索出来的邮箱到本地(谁叫这方面收集邮箱最费劲呢!害)



0x02 代码讲解

#-*- coding:utf-8 -*-import requestsimport reimport sysimport os
from bs4 import BeautifulSoup
#定义 header 数据def headers(referer): headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0', 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip,deflate', 'Referer': referer } return headers#爬取bing搜索引擎数据def bing_search(url,page,key_word): referer = "http://cn.bing.com/search?q=email+site%3abaidu.com&qs=n&sp=-1&pq=emailsite%3abaidu.com&first=1&FORM=PERE1" conn = requests.session() #保持会话 bing_url = "http://cn.bing.com/search?q=" + key_word + "+site%3a" + url + "&qs=n&sp=-1&pq=" + key_word + "site%3a" + url + "&first=" + str((page-1)*10) + "&FORM=PERE1" #设定接口 conn.get('http://cn.bing.com', headers=headers(referer)) #发起请求 r = conn.get(bing_url, stream=True, headers=headers(referer), timeout=8) #获取返回内容 emails = re.findall(r"[a-z0-9.-+_][email protected][a-z0-9.-+_]+.[a-z]+",r.text,re.I) #晒选出目标邮箱 return emails#爬取百度搜索引擎数据def baidu_search(url,page,key_word): email_list = [] emails = [] referer = "https://www.baidu.com/s?wd=email+site%3Abaidu.com&pn=1" baidu_url = "https://www.baidu.com/s?wd="+key_word+"+site%3A"+url+"&pn="+str((page-1)*10) conn = requests.session() #保持会话 conn.get(referer,headers=headers(referer)) r = conn.get(baidu_url, headers=headers(referer)) soup = BeautifulSoup(r.text, 'lxml') #解析网页中的元素 tagh3 = soup.find_all('h3') #查找标签 for h3 in tagh3: href = h3.find('a').get('href') try: r = requests.get(href, headers=headers(referer),timeout=8) emails = re.findall(r"[a-z0-9.-+_][email protected][a-z0-9.-+_]+.[a-z]+",r.text,re.I) except Exception as e: pass for email in emails: email_list.append(email) return email_list
if __name__ == '__main__': #获取总数据并去重用 email_slit = [] email_slits = []
try: url = sys.argv[1] page = sys.argv[2] key_words = ['email', 'mail', 'mailbox', '邮件', '邮箱', 'postbox'] print('开始收集邮箱请耐心等待:') for key in key_words: bing = bing_search(url,int(page),key) baidu = baidu_search(url,int(page),key) email = bing + baidu email_slit = email + email_slit         for slit in email_slit:          #做个去重处理 if slit not in email_slits: email_slits.append(slit) print(email_slits) file_path = os.path.dirname(__file__) + "/" + url + ".txt" # 在当前目录创建文件,保存结果 fp = open(file_path, 'w', encoding='utf-8') for i in email_slits: fp.write(i + "n") print('------------------------------------------------') print('[+]扫描结束,结果保存至当前目录下,文件名:url.txt') except Exception as ree: print('''使用命令:python3 email.py
[页数]'''
)



0x03 信息验证

 弟弟很菜,还不知道该怎么去编写脚本验证邮箱是否有效,所以提供了一个邮箱验证网
http://tool.chacuo.net/mailverify

信息收集之路—邮箱收集



0x04 关于邮箱伪造

ps:文章是网上找到的,这方面表示只能咩?咩?咩?~毕竟没研究过。
https://bbs.ichunqiu.com/thread-55388-1-1.html
url的冒名顶替,粗心大意者的攻击利器。
1、利用相近字符:1 б 6 、2O 0 、 B  ᴃ  ß、q qa α、B β、r γ
2、利用西里尔字符:Κ λ μ ν ο ρ σ χ ω О Р а в В А
3、利用歧义URLmail-qq.comsecure-alipay.commail163.com
4、示例:[email protected]jԁ.com 235235@ jd.com αlіyun.com aliyun.comТаоЬао.com Taobao.comМі.com    Mi.com



0x05 Summary 总结

 至于利用!就不说了,本文主要的还是信息收集的脚本,至于怎么钓鱼执法就看各位大佬们的了!
 学习写脚本,励志做个脚本小子O(∩_∩)O哈哈~



END



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


或添加NOVASEC-MOYU 以便于及时回复。

信息收集之路—邮箱收集


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

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


本团队任何技术及文件仅用于学习分享,请勿用于任何违法活动,感谢大家的支持!



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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: