免费域名、免费CDN的注册及邮箱的收集、验证

0X01 - 免费域名

免费域名平台:freenom.com

注册详细方法:https://zhuanlan.zhihu.com/p/115535965

注意:选中域名进行支付,地址需要选择美国

 

0X02 - 免费CDN

免费cnd平台:cloudflare.com

 

注册详细方法:https://zhuanlan.zhihu.com/p/105801731

 

0X03 - 邮箱收集

在线邮箱收集平台:

 

http://www.skymem.info/    显示前10个,多的需购买

 

https://hunter.io/           

 

https://www.email-format.com/i/search/

邮箱收集工具:

1、theHarvester

下载链接:https://github.com/laramies/theHarvester 

python3 theHarvester.py -d xxx.com -l 1000 -b all -f test.html

 

2、teemo

 

下载链接:https://github.com/bit4woo/teemo

 

teemo基本使用
运行环境:python 2.7.*
 
查看帮助:
python teemo.py -h
 
枚举指定域名(会使用搜索引擎和第三方站点模块):
python teemo.py -d example.com

使用代理地址(默认会使用config.py中的设置):
python teemo.py -d example.com -x "http://127.0.0.1:9999"

启用枚举模式:
python teemo.py -b -d example.com

将结果保存到指定文件(默认会根据config.py中的设置保存到以域名命名的文件中):
python teemo.py -d example.com -o result.txt

 

 

0X04 - 邮箱验证

在线邮箱验证:https://mailtester.com/testmail.php

邮箱验证工具:

1、verifyemail

 

下载链接:https://github.com/Tzeross/verifyemail

1 python3 verifyemail.py

链接中的脚本只支持在验证脚本中的邮箱,以下脚本稍作改动,支持test.txt文件读取邮箱,并将验证结果输出为verify.csv。

 1 '''
 2 在线验证邮箱真实性
 3 '''
 4 
 5 import random
 6 import smtplib
 7 import logging
 8 import time
 9 import csv
10 import dns.resolver
11 
12 logging.basicConfig(level=logging.DEBUG,
13                     format='%(asctime)s - %(filename)s [line:%(lineno)d] - %(levelname)s: %(message)s')
14 
15 logger = logging.getLogger()
16 
17 
18 def fetch_mx(host):
19     '''
20     解析服务邮箱
21     :param host:
22     :return:
23     '''
24     logger.info('正在查找邮箱服务器')
25     answers = dns.resolver.query(host, 'MX')
26     res = [str(rdata.exchange)[:-1] for rdata in answers]
27     logger.info('查找结果为:%s' % res)
28     return res
29 
30 
31 def verify_istrue(email):
32     '''
33     :param email:
34     :return:
35     '''
36     email_list = []
37     email_obj = {}
38     final_res = {}
39     if isinstance(email, str) or isinstance(email, bytes):
40         email_list.append(email)
41     else:
42         email_list = email
43 
44     for em in email_list:
45         name, host = em.split('@')
46         if email_obj.get(host):
47             email_obj[host].append(em)
48         else:
49             email_obj[host] = [em]
50 
51     for key in email_obj.keys():
52         host = random.choice(fetch_mx(key))
53         logger.info('正在连接服务器...:%s' % host)
54         s = smtplib.SMTP(host, timeout=10)
55         for need_verify in email_obj[key]:
56             helo = s.docmd('HELO chacuo.net')
57             logger.debug(helo)
58 
59             send_from = s.docmd('MAIL FROM:<3121113@chacuo.net>')
60             logger.debug(send_from)
61             send_from = s.docmd('RCPT TO:<%s>' % need_verify)
62             logger.debug(send_from)
63             if send_from[0] == 250 or send_from[0] == 451:
64                 final_res[need_verify] = True  # 存在
65             elif send_from[0] == 550:
66                 final_res[need_verify] = False  # 不存在
67             else:
68                 final_res[need_verify] = None  # 未知
69 
70         s.close()
71 
72     return final_res
73 
74 
75 if __name__ == '__main__':
76 
77     with open('test.txt') as f:
78         data = f.read().splitlines()
79         f.close()
80     
81     final_list=verify_istrue(data)
82     
83     with open('verify.csv','w') as ff:
84         writer = csv.writer(ff)
85         for  final_list1 in final_list.items():
86             writer.writerow(final_list1)
87         ff.close()    

2、mailtester.py

这款工具可以自动组合邮箱地址再根据组合的结果逐个验证。

脚本的好处在于,它会根据 First / Last Name 中的名字随意拼装组合,然后再对其进行逐个验证。

当我们在对邮箱用户进行枚举的时候,尽量多找一些字典,如中国人姓名拼音、字母缩写top100,1000,10000,此处我们需要更多的鱼叉,多一个邮箱就多一份成功率。

当然可以把搜集到疑似网络管理员、运维人员、安全部门的人员提取出来,这些人单独写邮箱或者不发,因为这些人安全意识相对较高,容易打草惊蛇,我们需要对一些非技术员工安全意识薄弱的人下手,挑软柿子捏

这里可以配合这个网址根据收集到的目标信息制定对应人名字典进行组合。

python meiltester.py -start -up

 

posted @ 2020-09-01 18:15  Persimmon~  阅读(612)  评论(0)    收藏  举报