如何使用Twitter构建C;C服务器
写在前面的话
社交媒体网络对于企业的市场营销团队来说,绝对是一个非常好的推广平台。如果能够正确使用它们的话,绝对可以帮助企业带来新的商机。因此,社交媒体平台(例如Twitter和Facebook)上的任何网络流量都不太可能会被屏蔽掉。但是对于渗透测试人员来说,这些社交平台可以成为命令控制工具,而网络犯罪分子甚至还可以利用社交媒体网络流量来隐藏自己的恶意行为。
工具介绍
目前,最著名的一款利用Twitter当作命令控制工具的就是Twittor了,这款工具由Paul Amar开发,而这款工具的开发灵感来自于Gcat(该工具使用Gmail作为命令控制服务器)。
这里唯一的限制条件就是,植入程序以及C2服务器都需要用户的参与以及访问令牌,而这两者都可以使用Twitter应用程序管理来生成。
当一个新的Twitter应用被创建之后,这些值都会自动生成。控制器与主机之间的通信是通过Twitter的直接消息来进行的,因此新的应用程序将需要拥有这类消息的读取、写入和转发权限。
植入程序是采用Python语言开发的,不过我们也可以用pyinstaller将其转换成可执行程序(exe)。需要注意的是,这款工具要求的是Python 2.7,你可以使用下列命令直接安装pyinstaller:
当我们的植入程序执行之后,Twittor将会接收到来自目标主机的通信连接以及MAC地址。
此时,Twittor将能够在目标主机上执行任意命令,包括在内存中执行shellcode,并获取到它已经在目标主机中执行过的命令列表。
为了发送控制命令,Twittor还需要使用目标主机的MAC地址。
命令将会通过一条Twitter的直接消息被发送至目标主机,该消息采用base64编码格式。
由于Twittor不会对直接消息进行加密,因此解码起来也相对更加容易。发送给目标主机的消息中包含以下信息:
- CMD命令
- JobID
- 消息发送者
- 消息接收者的MAC地址
命令执行后的输出可以通过retrieve指令和相关的JobID来获取。
$ !retrieve SPVGIpE
除此之外,为了得到Meterpreter会话并利用其完整功能,我们还可以向目标主机发送shellcode。Metasploit msfvenom还可以被用来生成Python shellcode。
下面这条命令将会帮助你在目标主机上执行shellcode。
下面这个Metasploit模块可以用来获取网络连接。
- 基于WAVSEP的靶场搭建指南
- 【干货】大数据量下,58同城mysql实践!
- 如何预先处理电影评论数据以进行情感分析
- 如何在Python中从零开始实现随机森林
- 教程从头开始在Python中实现k最近邻居
- 建立安全的 AI
- Python NLTK 自然语言处理入门与例程
- 漏洞预警 | Apache Struts2 曝任意代码执行漏洞 (S2-045,CVE-2017-5638)
- 详解OSSIM-OSSEC WIN 4771案例
- JSShell:一个基于python的交互式Shell
- golang中操作excel
- 企业安全漏洞通告引擎
- 通过httprouter和redis框架搭建restful api服务
- .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法