文章前言
使用涉交网络作为C2 Server有两个好处,一方面是因为社交网络的服务器稳定,另一个方面是因为在于其通信的数据可以隐藏在正常的流量中,不容易被发现,本节主要是"站在巨人的肩膀"上来介绍通过Telegram的Bots功能结合Python来对API的调用来实现C2。
基础内容
Telegram是一款跨平台的实时通讯应用,目前支持Android、iPhone/iPad、WP、Web、PC/Mac/Linux,在整个通信过程中通信数据加密,官方曾悬赏$300,000 for Cracking Telegram Encryption,而且Telegram支持发送所有文件类型,Telegram提供对外开放的api,用户可定制性的开发客户端。
Telegram的Bots是Tegegram内置的第三方应用,通信方式为HTTPS,功能类似于聊天机器人,它可以获取定制化的信息,结合其他的服务使用,同时可以创建自定义的工具。
自我构建
搭建C2 Server
首先,登录Tegegram
之后访问https://telegram.me/botfather,添加BotFather为联系人(BotFather用来创建和管理自定义bot)
之后按照提示创建自定义bot,之后输入/newbot,根据流程依次为设定name、Username、Token信息:
之后成功创建Token:
12724xxxx059:AAEINExxxxxxxxxxxxxxxxxxx_hIl8A
Bot API 示例
安装依赖
目前Telegram官网已经公开了如下语言的开发实例:
https://core.telegram.org/bots/samples
下面我们选择Python作为测试,首先,安装需要的依赖:
pip install telepot
pip install requests
环境测试
首先,我们需要测试一下账号是否可以正常使用:
import telepot
bot = telepot.Bot('12xxxxx059:AAEINExxxxxxxxxxu_hIl8A')
bot.getMe()
接受消息
成功返回username相关的信息,下面我们再来测试一下是否可以正常接收消息,在Telegram控制端向c2_test发送消息:
之后在终端使用python执行如下代码接收消息:
import telepot
from pprint import pprint
bot = telepot.Bot('12xxxxxx9:AAEINxxxxxxxxxxWKJolu_hxxx8A')
response = bot.getUpdates()
pprint(response)
跟多详情可以直接访问以下连接查看:
未知攻,焉知防,以攻促防,共筑安全~
个人知乎:https://www.zhihu.com/people/flypeng-56
个人CSDN:https://blog.csdn.net/Fly_hps
个人GitHub:https://github.com/Al1ex
个人云+社区:https://cloud.tencent.com/developer/user/8423247
安全团队公众号:七芒星实验室
欢迎关注微信公众号"七芒星实验室"获取最新安全动态~