前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >看我如何模拟Cobalt Strike上线欺骗入侵者

看我如何模拟Cobalt Strike上线欺骗入侵者

作者头像
重生信息安全
发布2020-04-26 13:37:33
1.8K0
发布2020-04-26 13:37:33
举报
文章被收录于专栏:重生信息安全

前言

不知道你有没有遇到过马上线却不能操作的情况,我猜当你网络卡或马写得不好时会出现这个问题,但是人为的你可能没遇到过,首先要欺骗你的远控,得分析你的协议,如果你的马根本不是公开的。网络又是好的,你刚往人家机器里种马,发现马只能上线不能操作,绝对是马有问题,不能甩锅我。人家都不知道你的马的通信原理,流量特征,不可能事先准备好一个程序,让你一发就欺骗你的马。 本文主要研究CS这个APT很喜欢用的马,当然TCP的也一样原理,只要构造对应的数据包就可欺骗

远控术语

Cobalt Strike采用的是B/S架构,也就是常说的HTTP协议(HTTPS加密的http,记住都是WEB就不会错了)

Client:客户是上帝,我们想买什么告诉服务员。就是控制端,即通过它来控制对方电脑。不叫服务端哦。

Server:服务员,即服务端。以前常说的肉鸡,这个叫被控端不是控制端,叫做什么就做什么不就是服务?

中转:放在V**,好比现在的快递,可有可无,买家直接见卖家就不需要。CS中转Teamserve就是一个WEB

就是说如果你用IIS或Tomcat搭建的ASP、JSP、PHP、.NET等网站也可以做为中转,即可实现HTTP远控,如果CS不搞客户端,我们便可直接在浏览器上操作和控制目标机器,这就是08年这类码称为B/S架构的原因,CS的客户端就像我们用PY或其它语言实现模拟WEB登陆网站来操作一样,中转是WEB,那么肉鸡上线,它也一样是HTTP请求来实现,WEB发包、POST提交不管怎么表达都可以,这是渗透基础,即是CS通信采用HTTP

C/S架构:Clinet/Server,主要指的是TCP,客户端和服务端,即便带个中转它也还是叫CS架构 B/S架构: Browser/Server,主要是HTTP,无论直接通过浏览器操作,还是像CS加个中转再用客户端访问 RAT:Remote Admin Tools,远程管理工具,长期以来国内外通用叫法。 C2: 老外的新名词,command&control,从字面上就很好理解命令和控制,不管任何协议马都可这样叫。这种叫法对于不够专业的人来说不会错,因为他根本不需要了解远控到底用什么协议实现,反正都叫C2。

当然无论是以前还是现在叫RAT也绝对不会错,叫RAT可能更专业一点,RAT像老戏骨,C2像小鲜肉,看看现在好多远控基本都有CMD和文件管理,甚至只是一个SHELL而已了,我猜这就是C2的由来吧。以前像这样一般只称为后门,随便找一个远控都有CMD、文件管理、屏幕控制、键盘记录等功能,而现在一个CMD和文件管理,在10几年前也很难称为马叫炮灰,现在搞个炮灰一堆BUG还以为很吊。以前只能称为后门,连远控都称不上的,现在只实现了一个CMD执行命令,就说成自己写个远控了,多台机器管理实现不了先不说,只能一对一,断以后就无法控制,连后门都不合格,还TM说成远控。

PS:之所以写这一段话,主要是发现不少写马的或渗透的,竟然都分不清楚服务端和控制端。

HTTP协议

还有我说HTTP协议(含HTTP/S),还有人说不是HTTP还有HTTPS(首先搞清楚HTTPS是什么,加密的HTTP),比方说你设计一个HTTP经过特定格式加密,单纯HTTP访问得不到真实数据而已,解不了就不属于HTTP了?当有一天大家都觉得这个加密好用或安全,给它起个名叫KTTPS,或许可称为新协议,但本质还是HTTP协议。当然可能有些人要说HTTP也属于TCP,虽说HTTP可通过TCP实现,但是两者有很大区别,通过TCP实现叫伪 为什么因为它不是真正的HTTP,目标WAF禁TCP的时候,TCP实现的就出不来,HTTP只要会操作WEB就行。HTTP比TCP多了一个,允许通过WEB操作来访问,HTTP虽是特殊的TCP,但已经完全变异成了一个新协议。

就像猩猩和人,我们几乎不会说人是猩猩,只会说人是猩猩进化而来的,因为变异太多,可以以新物种定义。而HTTPS和HTTP,就像戴不戴口罩,戴个口罩就TM不是人了?除了戴个口罩,你的衣食住行哪一样不是人。你不戴口罩进不了小区,那你就戴口罩就能进去了啊,就像HTTPS(HTTP基础上加SSL协议就可以访问了啊)。HTTP不加SSL访问不了HTTPS,你就说HTTPS不属于HTTP,这和不戴口罩不让进小区,就说你不是人一样 本质是因为你不是人而不让你进吗?而是你不戴口罩,并不是说你不是人所以不让你出入,概念不一样。所以说我们通常只说TCP协议、HTTP协议(因为已包含HTTPS在内),至少10几年来很少听到有人说HTTPS马最多只是听说这款http马也支持https,或这个webshell工具支持https站点,这个EXP支持HTTPS站点等。

CS心跳包

一般在设计远控时,我们都会对机器进行标记,比如上线特征为AA对应信息已保存在本地数据库,因此想要确认机器是否还在控。我们只需要发送A标识给客户端,告诉它机器还在控制,即心跳包。而没实战过的人是每次都发送目标信息,这样很容易被目标发现。

下面配置好CS让其上线后,我们对服务端进行抓包,其心跳包如下。CS也是一样,因为是BS模式HTTP协议,它的心跳特征存在Cookie里。非正常cookie写法,一段很长的加密数据,可以用来判断是否中招。

上线验证

使用Ladon Exp生成器可以提交WEB数据包,类似Firefox上的HackBar但更高级区别在于可生成Ladon插件或独立EXE,对于不懂编程的人来说也可“编写”EXP。

运行LadonPoc.exe发现CS上线,执行一次就上线一次,说明思路没错。

欺骗入侵者

假设我们在内网中发现别人的CS流量或者抓到样本,给他模拟上线,让他有得看没得吃。他在客户端那边只会看到机器在线,就是死活控不了,然后他就想是不是目标环境奇葩。还是说网络太卡或有什么问题,能上线就是不能操作,哈哈,一直在上线却啥事也不能做

代码语言:javascript
复制
import urllib2
import time
### Cobalt Strike Cheat by K8gege
def cscheat():
  opener = urllib2.build_opener()
  opener.addheaders.append(('Cookie', 'Qk1UsVjTNpW6aR0327yD57Zkt1m6XWurvM+bR0xqOqGnXsatzGHpnccfgqmruH6dnJudEzijQhC0NCtoAxdA90rso7NAfBrfRrktO5B4FjZX6LEBxIyzEwQ71Jk1ttM8VY6luE5k+PMLk6DAmWUoGoJmvAl/qp4qreuWumv52TM='))
  res = opener.open("http://192.168.1.102:800/dpixel")
  content = res.read()
  print content

while True:
  print(time.strftime('%Y-%m-%d %X',time.localtime()))
  cscheat()
  time.sleep(5)

读取CMD指令

当客户端下达CMD命令时,中转TeamServer会将命令放在心跳包中,返回的结果如下:

代码语言:javascript
复制
^Zd........N...&....%COMSPEC%.... /C net user k8gege..AAAAAAAAAA.<....g..I9.....

5e5a69740000002e0000004e000000260000000925434f4d535045432500000013202f43206e6574
2075736572206b387465616d00004141414141414141414100e488fc2a22f737b0067ac4384c4971

测试多次发现不管执行多长的命令 都会出现/C空格 和两个00加至少一个A,所以我们截取 2F4320 和 000041 之间的值,再解密即为CS下发的CMD命令。

返回CMD结果

将CS的命令执行结果提交到submit.php页面,即可实现回显,数据包如下

代码语言:javascript
复制
POST /submit.php?id=60871 HTTP/1.1
Accept: */*
Content-Type: application/octet-stream
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
Host: 192.168.1.102:800
Content-Length: 68
Connection: Keep-Alive
Cache-Control: no-cache

...@...
........win-60a3b595b7m\k8gege
................0=W1..LGCN.

结语

通过本文我们了解了CS心跳包机制、下达指令、回显等原理,并玩弄入侵者,有兴趣的话,可以自行抓包实现自己的CS服务端,甚至支持对Linux的控制。也可以实现CS远控的密罐,把CS下达的指令提取出来,返回假的CMD命令结果。即能收集目标证据以及意图,还能将他玩弄于鼓掌之中,搞死他,哈哈。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 重生信息安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档