• cs上线qq邮件通知


    0x01.两个文件

    1.sme.cna

    使用sme脚本监控上线, 然后调用python脚本执行发邮件

    #Sme.cna
    #Config
    $Switch = "on"; #开关
    #Config
    
    
    on beacon_initial { # 在Beacon 初始化时执行,也就是上线时执行
    
        if ($Switch eq "on"){ #判断开关是否为on
            action("\c9Sending SME......"); # 调试信息发送到CS的公屏上,代表邮件正在发送
            $IP = beacon_info($1, "external"); #取上线主机IP
            $User = beacon_info($1, "user"); #取上线主机用户名
            $ComName = beacon_info($1, "computer"); #取上线主机计算机名
            $Arch = beacon_info($1, "arch"); #取上线主机架构
            @Curl_command = @('python3', '/tmp/sme.py'  ,$IP,$User,$ComName,$Arch); #定义执行邮件发送脚本命令, sme.py一定要写服务器的绝对路径,并且要有执行权限
            exec(@Curl_command); #执行邮件发送命令
            println(@Curl_command);
            action("\c9Send SME Done: ".$ComName."!");
        }
    }
    

    2.sme.py

    import sys
    
    import smtplib  # smtplib发送邮件
    from email.mime.text import MIMEText  # 构造文本内容
    from email.header import Header  # 构造标题内容
    
    
    def post_email(ip, username, computer_name, arch):
        # 设置服务器地址
        mail_host = "smtp.qq.com"
        # 设置服务器端口
        mail_port = 465
    
        # QQ邮件登录账号
        mail_user = "273xxxxxx"
        # QQ邮箱第三方授权码
        mail_pass = "xxxxxxx"
    
        # 初始化发送方账号
        sender = "27xxxxx@qq.com"
        # 初始化接收方账号
        receivers = "273xxxxxxx@qq.com"
        # 构造文本对象,三个参数:文本内容,设置文本格式,设置编码
        data = f"""上线主机IP:{ip}
    上线主机用户名:{username}
    上线主机计算机名:{computer_name}
    上线主机架构:{arch}
    """
    
        message = MIMEText(data, "plain", "utf-8")
        # 文本对象 添加 发送者
        message["From"] = sender
        # 文本对象 添加 接收者
        message["To"] = receivers
        # 文本对象 添加 标题
        message["Subject"] = Header("至风一样男子的邮件")
    
        # 创建 SMTP 对象,连接目标服务器
        smtpObj = smtplib.SMTP_SSL(mail_host, mail_port)
        # 自己账号登录
        smtpObj.login(mail_user, mail_pass)
        # 发送邮件到目标地址  注意:信息由MTMEText对象 转为 字符串对象
        smtpObj.sendmail(sender, receivers, message.as_string())
        # 结束 SMTP 对象
        smtpObj.quit()
    
    
    if __name__ == '__main__':
        ip = sys.argv[1]
        username = sys.argv[2]
        computer_name = sys.argv[3]
        arch = sys.argv[4]
        post_email(ip, username, computer_name, arch)
    

    3.注意事项

    根据个人配置,修改两个文件相应的内容
    # 1.邮件发送方需要开通smtp服务,获取授权码
    # 2.sme.py需要有执行(x)权限
    # 3.cs服务端后台加载扩展脚本的命令
    nohup ./agscript cs的ip cs的端口 任意用户名 密码 插件路径 &
    
  • 相关阅读:
    Java知识回顾 (2) Java 修饰符
    SpringMVC和Springboot的区别
    VS Supercharger插件的破解
    Spring3.1新属性管理API:PropertySource、Environment、Profile
    如何进行接口测试
    commons-lang3中DateUtils类方法介绍
    springCloud com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
    rabbitmq 连接报错 An unexpected connection driver error occured
    rabbitmq的安装与使用
    mysql5.7 mysql库下面的user表没有password字段无法修改密码
  • 原文地址:https://www.cnblogs.com/xcymn/p/15721403.html
Copyright © 2020-2023  润新知