一台电脑怎么装多个虚拟机-怎么伪装多台电脑系统
1.为什么我电脑里有十个svchost
2.什么是非过滤毒?
3.局域网内的一台计算机通过伪装成别的电脑发起arp风暴
4.共享神盾的安装方法
5.目前有关服务器系统的最新技术有哪些
6.常见伪装IP的方法有几种
为什么我电脑里有十个svchost
SvcHost
进程文件: svchost.dll
进程名称: Trojan.W32.Agent
英文描述:
svchost.dll is a module which is registered as a trojan. This Trojan allows attackers to access your computer from remote locations, stealing passwords, Internet banking and personal data. This process is a security risk and should be removed from your system.
进程分析:
svchost.exe是一个属于微软Windows操作系统的系统程序,用于执行DLL文件。这个程序对你系统的正常运行是非常重要的。注意:svchost.exe也有可能是W32.Welchia.Worm病毒,它利用WindowsLSASS漏洞,制造缓冲区溢出,导致你计算机关机。更多详细信息参考:,该进程的安全等级是建议立即删除。
安全等级 (0-5): N/A (N/A无危险 5最危险)
间谍软件: 否
广告软件: 否
病毒: 否
木马: 否
系统进程: 否
应用程序: 否
后台程序: 是
使用访问: 是
访问互联网: 是
大家都要知道Svchost.exe,是系统必不可少的一个进程,很多服务都会多多少少用到它,但是我想大家也知道,由于它本身特殊性,高明的"黑客们"肯定是不会放过的,前段时间的Svchost.exe木马风波,大家应该是记忆犹新吧,而且现在还是有很多机器里都藏有此木马,因为它伪装和系统进程Svchost.exe一样,所以很多人分不清,那个是进程,那个是木马....
好的,还是让我们详尽了解一下Svchost.exe进程吧
1.多个服务共享一个 Svchost.exe进程利与弊
windows 系统服务分为独立进程和共享进程两种,在windows NT时只有服务器管理器SCM(Services.exe)有多个共享服务,随着系统内置服务的增加,在windows 2000中ms又把很多服务做成共享方式,由svchost.exe启动。windows 2000一般有2个svchost进程,一个是RPCSS(Remote Procedure Call)服务进程,另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中,则一般有4个以上的svchost.exe服务进程,windows 2003 server中则更多,可以看出把更多的系统内置服务以共享进程方式由svchost启动是ms的一个趋势。这样做在一定程度上减少了系统资源的消耗,不过也带来一定的不稳定因素,因为任何一个共享进程的服务因为错误退出进程就会导致整个进程中的所有服务都退出。另外就是有一点安全隐患,首先要介绍一下 svchost.exe的实现机制。
2. Svchost原理
Svchost本身只是作为服务宿主,并不实现任何服务功能,需要Svchost启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost,启动这些服务时由svchost调用相应服务的动态链接库来启动服务。
那么svchost如何知道某一服务是由哪个动态链接库负责呢?这不是由服务的可执行程序路径中的参数部分提供的,而是服务在注册表中的参数设置的,注册表中服务下边有一个Parameters子键其中的ServiceDll表明该服务由哪个动态链接库负责。并且所有这些服务动态链接库都必须要导出一个ServiceMain()函数,用来处理服务任务。
例如rpcss(Remote Procedure Call)在注册表中的位置是 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs,它的参数子键Parameters里有这样一项:
"ServiceDll"=REG_EXPAND_SZ:"%SystemRoot%system32 pcss.dll"
当启动rpcss服务时,svchost就会调用rpcss.dll,并且执行其ServiceMain()函数执行具体服务。
既然这些服务是使用共享进程方式由svchost启动的,为什么系统中会有多个svchost进程呢?ms把这些服务分为几组,同组服务共享一个svchost进程,不同组服务使用多个svchost进程,组的区别是由服务的可执行程序后边的参数决定的。
例如rpcss在注册表中 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs 有这样一项:
"ImagePath"=REG_EXPAND_SZ:"%SystemRoot%system32svchost -k rpcss"
因此rpcss就属于rpcss组,这在服务管理控制台也可以看到。
svchost的所有组和组内的所有服务都在注册表的如下位置: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost,例如windows 2000共有4组rpcss、netsvcs、wugroup、BITSgroup,其中最多的就是netsvcs=REG_MULTI_SZ: EventSystem.Ias.Iprip.Irmon.Netman.
Nwsapagent.Rasauto.Rasman.Remoteaccess.SENS.Sharedaccess.Tapisrv.Ntmssvc.wzcsvc..
在启动一个svchost.exe负责的服务时,服务管理器如果遇到可执行程序内容ImagePath已经存在于服务管理器的映象库中,就不在启动第2个进程svchost,而是直接启动服务。这样就实现了多个服务共享一个svchost进程。
3. Svchost代码
现在我们基本清楚svchost的原理了,但是要自己写一个DLL形式的服务,由 svchost来启动,仅有上边的信息还有些问题不是很清楚。比如我们在导出的ServiceMain()函数中接收的参数是ANSI还是 Unicode?我们是否需要调用RegisterServiceCtrlHandler和StartServiceCtrlDispatcher来注册服务控制及调度函数?
这些问题要通过查看svchost代码获得。下边的代码是windows 2000+ service pack 4 的svchost反汇编片段,可以看出svchost程序还是很简单的。
主函数首先调用ProcCommandLine()对命令行进行分析,获得要启动的服务组,然后调用SvcHostOptions()查询该服务组的选项和服务组的所有服务,并使用一个数据结构 svcTable 来保存这些服务及其服务的DLL,然后调用PrepareSvcTable() 函数创建 SERVICE_TABLE_ENTRY 结构,把所有处理函数SERVICE_MAIN_FUNCTION 指向自己的一个函数FuncServiceMain(),最后调用API StartServiceCtrlDispatcher() 注册这些服务的调度函数。
; =============================== Main Funcion =======================================
.text:010010B8 public start
.text:010010B8 start proc near
.text:010010B8 push esi
.text:010010B9 push edi
.text:010010BA push offset sub_1001EBA ; lpTopLevelExceptionFilter
.text:010010BF xor edi, edi
.text:010010C1 call ds:SetUnhandledExceptionFilter
.text:010010C7 push 1 ; uMode
.text:010010C9 call ds:SetErrorMode
.text:010010CF call ds:GetProcessHeap
.text:010010D5 push eax
.text:010010D6 call sub_1001142
.text:010010DB mov eax, offset dword_1003018
.text:010010E0 push offset unk_1003000 ; lpCriticalSection
.text:010010E5 mov dword_100301C, eax
.text:010010EA mov dword_1003018, eax
.text:010010EF call ds:InitializeCriticalSection
.text:010010F5 call ds:GetCommandLineW
.text:010010FB push eax ; lpString
.text:010010FC call ProcCommandLine
.text:01001101 mov esi, eax
.text:01001103 test esi, esi
.text:01001105 jz short lab_doservice
.text:01001107 push esi
.text:01001108 call SvcHostOptions
.text:0100110D call PrepareSvcTable
.text:01001112 mov edi, eax ; SERVICE_TABLE_ENTRY returned
.text:01001114 test edi, edi
.text:01001116 jz short loc_1001128
.text:01001118 mov eax, [esi+10h]
.text:0100111B test eax, eax
.text:0100111D jz short loc_1001128
.text:0100111F push dword ptr [esi+14h] ; dwCapabilities
.text:01001122 push eax ; int
.text:01001123 call InitializeSecurity
.text:01001128
.text:01001128 loc_1001128: ; CODE XREF: start+5Ej
.text:01001128 ; start+65j
.text:01001128 push esi ; lpMem
.text:01001129 call HeapFreeMem
.text:0100112E
.text:0100112E lab_doservice: ; CODE XREF: start+4Dj
.text:0100112E test edi, edi
.text:01001130 jz ExitProgram
.text:01001136 push edi ; lpServiceStartTable
.text:01001137 call ds:StartServiceCtrlDispatcherW
.text:0100113D jmp ExitProgram
.text:0100113D start endp
; =============================== Main Funcion end ===========================================
由于svchost为该组的所有服务都注册了svchost中的一个处理函数,因此每次启动任何一个服务时,服务管理器SCM都会调用FuncServiceMain() 这个函数。这个函数使用 svcTable 查询要启动的服务使用的DLL,调用DLL导出的ServiceMain()函数来启动服务,然后返回。
; ============================== FuncServiceMain() ===========================================
.text:01001504 FuncServiceMain proc near ; DATA XREF: PrepareSvcTable+44o
.text:01001504
.text:01001504 arg_0 = dword ptr 8
.text:01001504 arg_4 = dword ptr 0Ch
.text:01001504
.text:01001504 push ecx
.text:01001505 mov eax, [esp+arg_4]
.text:01001509 push ebx
.text:0100150A push ebp
.text:0100150B push esi
.text:0100150C mov ebx, offset unk_1003000
.text:01001511 push edi
.text:01001512 mov edi, [eax]
.text:01001514 push ebx
.text:01001515 xor ebp, ebp
.text:01001517 call ds:EnterCriticalSection
.text:0100151D xor esi, esi
.text:0100151F cmp dwGroupSize, esi
.text:01001525 jbe short loc_1001566
.text:01001527 and [esp+10h], esi
.text:0100152B
.text:0100152B loc_100152B: ; CODE XREF: FuncServiceMain+4Aj
.text:0100152B mov eax, svcTable
.text:01001530 mov ecx, [esp+10h]
.text:01001534 push dword ptr [eax+ecx]
.text:01001537 push edi
.text:01001538 call ds:lstrcmpiW
.text:0100153E test eax, eax
.text:01001540 jz short StartThis
.text:01001542 add dword ptr [esp+10h], 0Ch
.text:01001547 inc esi
.text:01001548 cmp esi, dwGroupSize
.text:0100154E jb short loc_100152B
.text:01001550 jmp short loc_1001566
.text:01001552 ; =================================================
.text:01001552
.text:01001552 StartThis: ; CODE XREF: FuncServiceMain+3Cj
.text:01001552 mov ecx, svcTable
.text:01001558 lea eax, [esi+esi*2]
.text:0100155B lea eax, [ecx+eax*4]
.text:0100155E push eax
.text:0100155F call GetDLLServiceMain
.text:01001564 mov ebp, eax ; dll ServiceMain Function address
.text:01001566
.text:01001566 loc_1001566: ; CODE XREF: FuncServiceMain+21j
.text:01001566 ; FuncServiceMain+4Cj
.text:01001566 push ebx
.text:01001567 call ds:LeaveCriticalSection
.text:0100156D test ebp, ebp
.text:0100156F jz short loc_100157B
.text:01001571 push [esp+10h+arg_4]
.text:01001575 push [esp+14h+arg_0]
.text:01001579 call ebp
.text:0100157B
.text:0100157B loc_100157B: ; CODE XREF: FuncServiceMain+6Bj
.text:0100157B pop edi
.text:0100157C pop esi
.text:0100157D pop ebp
.text:0100157E pop ebx
.text:0100157F pop ecx
.text:01001580 retn 8
.text:01001580 FuncServiceMain endp ; sp = -8
; ============================== FuncServiceMain() end ========================================
由于svchost已经调用了StartServiceCtrlDispatcher来服务调度函数,因此我们在实现DLL实现时就不用了,这主要是因为一个进程只能调用一次StartServiceCtrlDispatcher API。但是需要用 RegisterServiceCtrlHandler 来注册响应控制请求的函数。最后我们的DLL接收的都是unicode字符串。
由于这种服务启动后由svchost加载,不增加新的进程,只是svchost的一个DLL,而且一般进行审计时都不会去HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost 检查服务组是否变化,就算去检查,也不一定能发现异常,因此如果添加一个这样的DLL后门,伪装的好,是比较隐蔽的。
4. 安装服务与设置
要通过svchost调用来启动的服务,就一定要在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下有该服务名,这可以通过如下方式来实现:
1) 添加一个新的服务组,在组里添加服务名
2) 在现有组里添加服务名
3) 直接使用现有服务组里的一个服务名,但本机没有安装的服务
4) 修改现有服务组里的现有服务,把它的ServiceDll指向自己
其中前两种可以被正常服务使用,如使用第1种方式,启动其服务要创建新的svchost进程;第2种方式如果该组服务已经运行,安装后不能立刻启动服务,因为svchost启动后已经把该组信息保存在内存里,并调用API StartServiceCtrlDispatcher() 为该组所有服务注册了调度处理函数,新增加的服务不能再注册调度处理函数,需要重起计算机或者该组的svchost进程。而后两种可能被后门使用,尤其是最后一种,没有添加服务,只是改了注册表里一项设置,从服务管理控制台又看不出来,如果作为后门还是很隐蔽的。比如EventSystem服务,缺省是指向es.dll,如果把ServiceDll改为EventSystem.dll就很难发现。
因此服务的安装除了调用CreateService()创建服务之外,还需要设置服务的ServiceDll,如果使用前2种还要设置svchost的注册表选项,在卸载时也最好删除增加的部分。
注: ImagePath 和ServiceDll 是ExpandString不是普通字符串。因此如果使用.reg文件安装时要注意。
5. DLL服务实现
DLL程序的编写比较简单,只要实现一个ServiceMain()函数和一个服务控制程序,在ServiceMain()函数里用RegisterServiceCtrlHandler()注册服务控制程序,并设置服务的运行状态就可以了。
另外,因为此种服务的安装除了正常的CreateService()之外,还要进行其他设置,因此最好实现安装和卸载函数。
为了方便安装,实现的代码提供了InstallService()函数进行安装,这个函数可以接收服务名作为参数(如果不提供参数,就使用缺省的iprip),如果要安装的服务不在svchost的netsvcs组里安装就会失败;如果要安装的服务已经存在,安装也会失败;安装成功后程序会配置服务的ServiceDll为当前Dll。提供的UninstallService()函数,可以删除任何函数而没有进行任何检查。
为了方便使用rundll32.exe进行安装,还提供了RundllInstallA()和RundllUninstallA()分别调用InstallService()及UninstallService()。因为rundll32.exe使用的函数原型是:
void CALLBACK FunctionName(
HWND hwnd, // handle to owner window
HINSTANCE hinst, // instance handle for the DLL
LPTSTR lpCmdLine, // string the DLL will parse
int nCmdShow // show state
);
对应的命令行是rundll32 DllName,FunctionName [Arguments]
DLL服务本身只是创建一个进程,该程序命令行就是启动服务时提供的第一个参数,如果未指定就使用缺省的svchostdll.exe。启动服务时如果提供第二个参数,创建的进程就是和桌面交互的。
6
svchost.exe是nt核心系统的非常重要的进程,对于2000、xp来说,不可或缺。很多病毒、木马也会调用它。所以,深入了解这个程序,是玩电脑的必修课之一。
大家对windows操作系统一定不陌生,但你是否注意到系统中“svchost.exe”这个文件呢?细心的朋友会发现windows中存在多个 “svchost”进程(通过“ctrl+alt+del”键打开任务管理器,这里的“进程”标签中就可看到了),为什么会这样呢?下面就来揭开它神秘的面纱。
发现
在基于nt内核的windows操作系统家族中,不同版本的windows系统,存在不同数量的“svchost”进程,用户使用“任务管理器”可查看其进程数目。一般来说,win2000有两个svchost进程,winxp中则有四个或四个以上的svchost进程(以后看到系统中有多个这种进程,千万别立即判定系统有病毒了哟),而win2003 server中则更多。这些svchost进程提供很多系统服务,如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp client)等。
如果要了解每个svchost进程到底提供了多少系统服务,可以在win2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是win2000 support tools提供的。在winxp则使用“tasklist /svc”命令。
svchost中可以包含多个服务
深入
windows系统进程分为独立进程和共享进程两种,“svchost.exe”文件存在于 “%systemroot% system32”目录下,它属于共享进程。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 svchost.exe进程来启动。但svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢?
原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 svchost,由svchost调用相应服务的动态链接库来启动服务。那svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现。下面就以rpcss(remote procedure call)服务为例,进行讲解。
从启动参数中可见服务是靠svchost来启动的。
实例
以windows xp为例,点击“开始”/“运行”,输入“services.msc”命令,弹出服务对话框,然后打开“remote procedure call”属性对话框,可以看到rpcss服务的可执行文件的路径为“c:\windows\system32\svchost -k rpcss”,这说明rpcss服务是依靠svchost调用“rpcss”参数来实现的,而参数的内容则是存放在系统注册表中的。
在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到 [hkey_local_machine systemcurrentcontrolsetservicesrpcss]项,找到类型为“reg_expand_sz”的键“magepath”,其键值为“%systemroot%system32svchost -k rpcss”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“servicedll”的键,其值为“% systemroot%system32rpcss.dll”,其中“rpcss.dll”就是rpcss服务要使用的动态链接库文件。这样 svchost进程通过读取“rpcss”服务注册表信息,就能启动该服务了。
解惑
因为svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”)。但windows系统存在多个svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明。
假设windows xp系统被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32\wins”目录中,因此使用进程管理器查看svchost进程的执行文件路径就很容易发现系统是否感染了病毒。windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如“windows优化大师”进程管理器,通过这些工具就可很容易地查看到所有的svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。
Svchost.exe病毒的检测和查杀方法
1.假冒Svchost.exe程序的病毒
运行的病毒并没有直接利用真正的Svchost.exe,而是启动了一个名称同样是 Svchost.exe的病毒进程,由于没有加载系统服务,它和真正的 Svchost.exe进程是不同的,只需在命令行窗口中运行一下“Tasklist /svc”,如果看到哪个Svchost.exe进程后面提示的服务信息是“暂缺”,而不是一个具体的服务名,那么它就是病毒进程了,记下这个病毒进程对应的PID数值(进程标识符),即可在任务管理器的进程列表中找到它,结束进程后,在C盘搜索Svchost.exe文件,也可以用第三方进程工具直接查看该进程的路径,正常的Svchost.exe文件是位于% systemroot%\System32目录中的,而假冒的Svchost.exe病毒文件则会在其他目录。
2:一些高级病毒则采用类似系统服务启动的方式,通过真正的Svchost.exe进程加载病毒程序,而Svchost.exe是通过注册表数据来决定要装载的服务列表的,所以病毒通常会在注册表中采用以下方法进行加载:
添加一个新的服务组,在组里添加病毒服务名
在现有的服务组里直接添加病毒服务名
修改现有服务组里的现有服务属性,修改其“ServiceDll”键值指向病毒程序
病毒程序要通过真正的Svchost.exe进程加载,就必须要修改相关的注册表数据,可以打开[HKEY_LOCAL_MACHINE\Software \Microsoft\WindowsNT\CurrentVersion\Svchost],观察有没有增加新的服务组,同时要留意服务组中的服务列表,观察有没有可疑的服务名称,通常来说,病毒不会在只有一个服务名称的组中添加,往往会选择LocalService和netsvcs这两个加载服务较多的组,以干扰分析。还有通过修改服务属性指向病毒程序的,通过注册表判断起来都比较困难,这时可以利用前面介绍的服务管理专家,分别打开 LocalService和netsvcs分支,逐个检查右边服务列表中的服务属性,尤其要注意服务描述信息全部为英文的,很可能是第三方安装的服务,同时要结合它的文件描述、版本、公司等相关信息,进行综合判断。
Svchost.exe病毒的简单处理:
1.当发现Svchost.exe不在%systemroot%\System32目录中的,可以安全删除,同时在注册表中查找对应的注册项删除掉。
2.Svchost.exe在%systemroot%\System32目录,说明Svchost.exe是被病毒感染了,可以用杀毒软件清除。
注:清除和删除要分清楚,清除是清除病毒,删除则是删文件
svchost.exe到底启动了那些服务?
答:
如果你想了解每个SVCHOST进程当前到底提供了哪些系统服务,可以在命令提示符下输入命令来查看。例如在Windows XP中,打开“命令提示符”,键入tasklist /svc命令查看;在Windows 2000中,则输入“Tlist -S”命令来查看。如果
如果你在Windows XP中,想得到所有进程的详细信息,可以打开“命令提示符”,键入 tasklist /svc>abc.txt 命令,于是在当前目录中,将会生成一个abc.txt文件,其内容就是当前正在运行的所有进程情况,例如进程名、PID号、该进程启动了哪些服务。
本词条对我有帮助
什么是非过滤毒?
非过滤毒
过滤毒包括口令破解软件、嗅探器软件、键盘输入记录软件,远程特洛伊和谍件等等,组织内部或者外部的攻击者使用这些软件来获取口令、侦察网络通信、记录私人通信,暗地接收和传递远程主机的非授权命令,而有些私自安装的P2P软件实际上等于在企业的防火墙上开了一个口子。 非滤过毒有增长的趋势,对它的防御不是一个简单的任务。与非过滤毒病毒有关的概念包括:
(1)谍件
谍件(Spyware)与商业产品软件有关,有些商业软件产品在安装到用户机器上的时候,未经用户授权就通过Internet连接,让用户方软件与开发商软件进行通信,这部分通信软件就叫做谍件。用户只有安装了基于主机的防火墙,通过记录网络活动,才可能发现软件产品与其开发商在进行定期通讯。谍件作为商用软件包的一部分,多数是无害的,其目的多在于扫描系统,取得用户的私有数据。
(2)远程访问特洛伊
远程访问特洛伊RAT 是安装在受害者机器上,实现非授权的网络访问的程序,比如NetBus 和SubSeven 可以伪装成其他程序,迷惑用户安装,比如伪装成可以执行的电子邮件,或者Web下载文件,或者游戏和贺卡等,也可以通过物理接近的方式直接安装。
(3)Zombies
恶意代码不都是从内部进行控制的,在分布式拒绝服务攻击中,Internet的不少 站点受到其他主机上 zombies程序的攻击。zombies程序可以利用网络上计算机系统的安全漏洞将自动攻击脚本安装到多台主机上,这些主机成为受害者而听从攻击者指挥,在某个时刻,汇集到一起去再去攻击其他的受害者。
(4)破解和嗅探程序和网络漏洞扫描
口令破解、网络嗅探和网络漏洞扫描是公司内部人员侦察同事,取得非法的资源访问权限的主要手段,这些攻击工具不是自动执行, 而是被隐蔽地操纵。
(5)键盘记录程序
某些用户组织使用PC活动监视软件监视使用者的操作情况,通过键盘记录,防止雇员不适当的使用资源,或者收集罪犯的证据。这种软件也可以被攻击者用来进行信息刺探和网络攻击。
(6)P2P 系统.
基于Internet的点到点 (peer-to-peer)的应用程序比如 Napster、Gotomypc、AIM 和 Groove,以及远程访问工具通道像Gotomypc,这些程序都可以通过HTTP或者其他公共端口穿透防火墙,从而让雇员建立起自己的***,这种方式对于组织或者公司有时候是十分危险的。因为这些程序首先要从内部的PC 远程连接到外边的Gotomypc 主机,然后用户通过这个连接就可以访问办公室的PC。这种连接如果被利用,就会给组织或者企业带来很大的危害。
局域网内的一台计算机通过伪装成别的电脑发起arp风暴
正好前几天刚看到,希望对你有帮助!
[转贴]ARP攻击与防护完全手册
ARP攻击与防护完全手册
完整PDF下载:[attach]1334[/attach]
关键字: ARP ARP病毒 ARP攻击 ARP防护 ARP故障 网络分析 科来网络分析系统
最近在论坛上经常看到关于ARP病毒的问题,于是在Google上搜索ARP关键字,啊哦!结果出来N多关于这类问题的讨论。呵呵,俺的求知欲很强:),想再学习ARP下相关知识,所以对目前网络中常见的ARP问题进行了一个总结。现在将其贴出来,希望和大家一起讨论!
1. ARP概念
咱们谈ARP之前,还是先要知道ARP的概念和工作原理,理解了原理知识,才能更好去面对和分析处理问题。
1.1 ARP概念知识
ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。
IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。
1.2 ARP工作原理
首先,每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
例如:
A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA
B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB
根据上面的所讲的原理,我们简单说明这个过程:A要和B通讯,A就需要知道B的以太网地址,于是A发送一个ARP请求广播(谁是192.168.10.2 ,请告诉192.168.10.1),当B收到该广播,就检查自己,结果发现和自己的一致,然后就向A发送一个ARP单播应答(192.168.10.2 在BB-BB-BB-BB-BB-BB)。
1.3 ARP通讯模式
通讯模式(Pattern Analysis):在网络分析中,通讯模式的分析是很重要的,不同的协议和不同的应用都会有不同的通讯模式。更有些时候,相同的协议在不同的企业应用中也会出现不同的通讯模式。ARP在正常情况下的通讯模式应该是:请求 -> 应答 -> 请求 -> 应答,也就是应该一问一答。
2. 常见ARP攻击类型
个人认为常见的ARP攻击为两种类型:ARP扫描和ARP欺骗。
2.1 ARP扫描(ARP请求风暴)
通讯模式(可能):
请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 应答 -> 请求 -> 请求 -> 请求...
描述:
网络中出现大量ARP请求广播包,几乎都是对网段内的所有主机进行扫描。大量的ARP请求广播可能会占用网络带宽资源;ARP扫描一般为ARP攻击的前奏。
出现原因(可能):
*病毒程序,侦听程序,扫描程序。
*如果网络分析软件部署正确,可能是我们只镜像了交换机上的部分端口,所以大量ARP请求是来自与非镜像口连接的其它主机发出的。
*如果部署不正确,这些ARP请求广播包是来自和交换机相连的其它主机。
2.2 ARP欺骗
ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。所以在网络中,有人发送一个自己伪造的ARP应答,网络可能就会出现问题。这可能就是协议设计者当初没考虑到的!
2.2.1 欺骗原理
假设一个网络环境中,网内有三台主机,分别为主机A、B、C。主机详细信息如下描述:
A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA
B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB
C的地址为:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC
正常情况下A和C之间进行通讯,但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址四192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通讯的数据都经过了B。主机B完全可以知道他们之间说的什么:)。这就是典型的ARP欺骗过程。
注意:一般情况下,ARP欺骗的某一方应该是网关。
2.2.2 两种情况
ARP欺骗存在两种情况:一种是欺骗主机作为“中间人”,被欺骗主机的数据都经过它中转一次,这样欺骗主机可以窃取到被它欺骗的主机之间的通讯数据;另一种让被欺骗主机直接断网。
第一种:窃取数据(嗅探)
通讯模式:
应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求 -> 应答 -> 应答 ->请求->应答...
描述:
这种情况就属于我们上面所说的典型的ARP欺骗,欺骗主机向被欺骗主机发送大量伪造的ARP应答包进行欺骗,当通讯双方被欺骗成功后,自己作为了一个“中间人“的身份。此时被欺骗的主机双方还能正常通讯,只不过在通讯过程中被欺骗者“窃听”了。
出现原因(可能):
*木马病毒
*嗅探
*人为欺骗
第二种:导致断网
通讯模式:
应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求…
描述:
这类情况就是在ARP欺骗过程中,欺骗者只欺骗了其中一方,如B欺骗了A,但是同时B没有对C进行欺骗,这样A实质上是在和B通讯,所以A就不能和C通讯了,另外一种情况还可能就是欺骗者伪造一个不存在地址进行欺骗。
对于伪造地址进行的欺骗,在排查上比较有难度,这里最好是借用TAP设备(呵呵,这个东东好像有点贵勒),分别捕获单向数据流进行分析!
出现原因(可能):
* 木马病毒
*人为破坏
*一些网管软件的控制功能
3. 常用的防护方法
搜索网上,目前对于ARP攻击防护问题出现最多是绑定IP和MAC和使用ARP防护软件,也出现了具有ARP防护功能的路由器。呵呵,我们来了解下这三种方法。
3.1 静态绑定
最常用的方法就是做IP和MAC静态绑定,在网内把主机和网关都做IP和MAC绑定。
欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。
方法:
对每台主机进行IP和MAC地址静态绑定。
通过命令,arp -s可以实现 “arp –s IP MAC地址 ”。
例如:“arp –s 192.168.10.1 AA-AA-AA-AA-AA-AA”。
如果设置成功会在PC上面通过执行 arp -a 可以看到相关的提示:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA static(静态)
一般不绑定,在动态的情况下:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA dynamic(动态)
说明:对于网络中有很多主机,500台,1000台...,如果我们这样每一台都去做静态绑定,工作量是非常大的。。。。,这种静态绑定,在电脑每次重起后,都必须重新在绑定,虽然也可以做一个批处理文件,但是还是比较麻烦的!
3.2 使用ARP防护软件
目前关于ARP类的防护软件出的比较多了,大家使用比较常用的ARP工具主要是欣向ARP工具,Antiarp等。它们除了本身来检测出ARP攻击外,防护的工作原理是一定频率向网络广播正确的ARP信息。我们还是来简单说下这两个小工具。
3.2.1 欣向ARP工具
俺使用了该工具,它有5个功能:
A. IP/MAC清单
选择网卡。如果是单网卡不需要设置。如果是多网卡需要设置连接内网的那块网卡。
IP/MAC扫描。这里会扫描目前网络中所有的机器的IP与MAC地址。请在内网运行正常时扫描,因为这个表格将作为对之后ARP的参照。
之后的功能都需要这个表格的支持,如果出现提示无法获取IP或MAC时,就说明这里的表格里面没有相应的数据。
B. ARP欺骗检测
这个功能会一直检测内网是否有PC冒充表格内的IP。你可以把主要的IP设到检测表格里面,例如,路由器,**服务器,等需要内网机器访问的机器IP。
(补充)“ARP欺骗记录”表如何理解:
“Time”:发现问题时的时间;
“sender”:发送欺骗信息的IP或MAC;
“Repeat”:欺诈信息发送的次数;
“ARP info”:是指发送欺骗信息的具体内容.如下面例子:
time sender Repeat ARP info 22:22:22 192.168.1.22 1433 192.168.1.1 is at 00:0e:03:22:02:e8
这条信息的意思是:在22:22:22的时间,检测到由192.168.1.22发出的欺骗信息,已经发送了1433次,他发送的欺骗信息的内容是:192.168.1.1的MAC地址是00:0e:03:22:02:e8。
打开检测功能,如果出现针对表内IP的欺骗,会出现提示。可以按照提示查到内网的ARP欺骗的根源。提示一句,任何机器都可以冒充其他机器发送IP与MAC,所以即使提示出某个IP或MAC在发送欺骗信息,也未必是100%的准确。所有请不要以暴力解决某些问题。
C. 主动维护
这个功能可以直接解决ARP欺骗的掉线问题,但是并不是理想方法。他的原理就在网络内不停的广播制定的IP的正确的MAC地址。
“制定维护对象”的表格里面就是设置需要保护的IP。发包频率就是每秒发送多少个正确的包给网络内所有机器。强烈建议尽量少的广播IP,尽量少的广播频率。一般设置1次就可以,如果没有绑定IP的情况下,出现ARP欺骗,可以设置到50-100次,如果还有掉线可以设置更高,即可以实现快速解决ARP欺骗的问题。但是想真正解决ARP问题,还是请参照上面绑定方法。
D. 欣向路由器日志
收集欣向路由器的系统日志,等功能。
E. 抓包
类似于网络分析软件的抓包,保存格式是.cap。
3.2.1 Antiarp
这个软件界面比较简单,以下为我收集该软件的使用方法。
A. 填入网关IP地址,点击〔获取网关地址〕将会显示出网关的MAC地址。点击[自动防护]即可保护当前网卡与该网关的通信不会被第三方监听。注意:如出现ARP欺骗提示,这说明攻击者发送了ARP欺骗数据包来获取网卡的数据包,如果您想追踪攻击来源请记住攻击者的MAC地址,利用MAC地址扫描器可以找出IP 对应的MAC地址.
B. IP地址冲突
如频繁的出现IP地址冲突,这说明攻击者频繁发送ARP欺骗数据包,才会出现IP冲突的警告,利用Anti ARP Sniffer可以防止此类攻击。
C. 您需要知道冲突的MAC地址,Windows会记录这些错误。查看具体方法如下:
右击[我的电脑]--[管理]--点击[事件查看器]--点击[系统]--查看来源为[TcpIP]---双击事件可以看到显示地址发生冲突,并记录了该MAC地址,请复制该MAC地址并填入Anti ARP Sniffer的本地MAC地址输入框中(请注意将:转换为-),输入完成之后点击[防护地址冲突],为了使MAC地址生效请禁用本地网卡然后再启用网卡,在CMD命令行中输入Ipconfig /all,查看当前MAC地址是否与本地MAC地址输入框中的MAC地址相符,如果更改失败请与我联系。如果成功将不再会显示地址冲突。
注意:如果您想恢复默认MAC地址,请点击[恢复默认],为了使MAC地址生效请禁用本地网卡然后再启用网卡。
3.3 具有ARP防护功能的路由器
这类路由器以前听说的很少,对于这类路由器中提到的ARP防护功能,其实它的原理就是定期的发送自己正确的ARP信息。但是路由器的这种功能对于真正意义上的攻击,是不能解决的。
ARP的最常见的特征就是掉线,一般情况下不需要处理一定时间内可以回复正常上网,因为ARP欺骗是有老化时间的,过了老化时间就会自动的回复正常。现在大多数路由器都会在很短时间内不停广播自己的正确ARP信息,使受骗的主机回复正常。但是如果出现攻击性ARP欺骗(其实就是时间很短的量很大的欺骗ARP,1秒有个几百上千的),它是不断的发起ARP欺骗包来阻止内网机器上网,即使路由器不断广播正确的包也会被他大量的错误信息给淹没。
可能你会有疑问:我们也可以发送比欺骗者更多更快正确的ARP信息啊?如果攻击者每秒发送1000个ARP欺骗包,那我们就每秒发送1500个正确的ARP信息!
面对上面的疑问,我们仔细想想,如果网络拓扑很大,网络中接了很多网络设备和主机,大量的设备都去处理这些广播信息,那网络使用起来好不爽,再说了会影响到我们工作和学习。ARP广播会造成网络资源的浪费和占用。如果该网络出了问题,我们抓包分析,数据包中也会出现很多这类ARP广播包,对分析也会造成一定的影响。
呵呵,不知不觉说这么多,上面会可能会有说的不正确和不够的地方,希望大家多多讨论。
CSNA网络分析论坛
KelvinFu
2006-09-07
共享神盾的安装方法
步骤1:关闭路由器或者代理服务器SNMP服务。
--如果你是使用宽带路由器上网,那么在宽带路由器中要关闭SNMP协议,具体请参考路由器使用手册。
--如果你是使用代理服务器上网,那么在代理主机中要关闭SNMP协议,可以通过卸载SNMP服务也可以通过防火墙来禁用161端口来实现。
步骤2:在每台使用共享宽带上网的主机上安装“共享神盾”。
--共享神盾完全免费。
--共享神盾专门针对“网络尖兵”设备开发,可以对用户的数据进行隐藏和整流,从而使得“网络尖兵”无法探测到共享主机数量。
--突破共享宽带封锁
为了帮助家庭、网吧等共享上网用户不受网络运营商的限制。软件提供突破电信、网通使用网络尖兵设备封锁功能。
--拦截恶意软件木马
由于很多恶意流氓软件都采用注入IE和资源管理器方法偷偷下载文件,所以软件还提供独有的HTTP、FTP应用层防火墙功能,可以拦截程序下载文件并通知用户。软件还提供了对一千多个恶意网站过滤功能,给您的电脑以更完善的保护。
*安装说明
为了保证所有主机以一致的方式进行报文伪装,请务必在每台使用共享宽带上网的主机上都安装“共享神盾”,这样才能使得电信认为你只有一台主机,启动后,采用默认设置即可突破封锁.
另外,网络上所说的关于关闭宽带路由器的SNMP服务可以突破封锁情况,目前尚未得到证实,共享神盾
用户可以无需关心这个问题,直接使用共享神盾就可以突破封锁了。
如今有很多地方的ISP限制多机共享上网,只要一条线路被连接多台电脑并上网,就会自动断线。很多高手对此提供了多种有效的对策,然而这些方法还是让“菜鸟”朋友摸不着头脑。其实借助“共享神盾”这款软件就可以突破目前的限制,无须过多复杂设置
一、突破共享上网限制有“神招”
1.原理
ISP主要是通过类似“网络尖兵”、“信风”等检测软件来限制用户共享上网,当用户主机被检测到发送的数据报文不一致时,检测软件将会认为有多台主机共享上网,于是进行封锁。“共享神盾”的原理就是让共享上网的所有主机以一致的方式进行报文伪装,“骗”ISP以为只有一台电脑在上网。
2.安装
目前,“共享神盾”最新版本是1.3Beta,不过在安装过程可能会出现微软硬件驱动程序检测的警告而无法安装,我们可以在安装前关闭驱动程序检测功能,方法是:在桌面上右击“我的电脑”,然后依次点击“属性”→“硬件”→“驱动程序签名”,最后在打开的“驱动程序签名”窗口中选中“忽略-安装软件,不用征求我的同意”项即可。
3.启动
所有共享上网的电脑安装好“神盾”后,需要共同启动“共享神盾”,成功启动后保持默认设置即可突破ISP共享上网的限制。在其中一个主机中可以在软件主窗口中看到网络的运行状态(如图)。
不过,有的用户在启动“神盾”时并非一帆风顺,可能会出现“启动转发器失败”的提示,这主要是由于主机中不止有一个网卡,这时在出现“启动共享神盾转发器失败”提示窗口中点击“确定”,进入该界面后点击左侧“突破共享限制”项,然后在右侧“请选定用来上网的网络接口”下选择用来上网的网卡,最后保存配置并重新启动“共享神盾”即可。
如果仍然不能解决问题,那么请到系统SYSTEM32文件夹中删除wpcap.dll和packet.dll文件,另外在SYSTEM32文件夹下的“drivers”子文件夹中删除npf.sys文件,重新启动系统后,再到共享神盾安装目录中运行winpcap.exe程序。
二、有效拦截恶意软件木马
应该说突破共享的过程基本不用任何设置,除此之外,软件还可以帮你有效拦截恶意软件和木马,从而让你有一个安全的网络空间。
在“共享神盾”主界面中点击“应用防火墙”,然后确保选中了“启用HTTP防火墙”和“启用FTP防火墙”,接着分别选中“禁止HTTP下载危险文件”项和“禁止FTP下载危险文件”项,这样可以禁止恶意软件和木马通过注入IE和资源管理器的方法而偷偷安装到你的电脑中。另外还能通过点击“编辑危险文件后缀名”来添加禁止下载的文件类型,例如禁止下载扩展名为EXE的程序,则只要在打开的窗口中输入“exe”,最后点击“添加”即可。
如果选中“启用危险站点过滤保护”项,那么可以使用软件提供的对近两千个恶意网站的过滤功能。
只要局域网中的每台电脑都安装了共享神盾,就完全可以实现共享上网,不过提醒大家如果以后升级软件时也要进行同步升级,确保伪装效果。
目前有关服务器系统的最新技术有哪些
目前服务器常用的操作系统有三类: -Unix -Linux -Windows NT/2000/2003 Server. 这些操作系统都是符合C2级安全级别的操作系 统.但是都存在不少漏洞,如果对这些漏洞不了 解,不采取相应的措施,就会使操作系统完全暴 露给入侵者. BJFU Info Department, QiJd第七章操作系统安全配置方案 UNIX系统 UNIX操作系统是由美国贝尔实验室开发的 一种多用户,多任务的通用操作系统. 诞生于1969年,在GE645计算机上实现一 种分时操作系统的雏形 1970年给系统正式取名为Unix操作系统. 到1973年,Unix系统的绝大部分源代码都 用C语言重新编写过,大大提高了Unix系统 的可移植性,也为提高系统软件的开发效率 创造了条件. BJFU Info Department, QiJd第七章操作系统安全配置方案 主要特色 UNIX操作系统经过20多年的发展后,已经成为一种成 熟的主流操作系统,并在发展过程中逐步形成了一些 新的特色,其中主要特色包括5个方面. -(1)可靠性高 -(2)极强的伸缩性 -(3)网络功能强 -(4)强大的数据库支持功能 -(5)开放性好 BJFU Info Department, QiJd第七章操作系统安全配置方案 Linux系统 Linux是一套可以免费使用和自由传播的 类Unix操作系统,主要用于基于Intel x86 系列CPU的计算机上. Linux是在GPL(General Public License)保护下的自由软件,版本有: Redhatlinux,Suse,Slackware, Debian等;国内有:XteamLinux,红旗 Linux.Linux流行的原因是免费并且功能 强大. BJFU Info Department, QiJd第七章操作系统安全配置方案 Linux典型的优点 (1)完全免费 (2)完全兼容POSIX 1.0标准 (3)多用户,多任务 (4)良好的界面 (5)丰富的网络功能 (6)可靠的安全,稳定性能 (7)支持多种平台 BJFU Info Department, QiJd第七章操作系统安全配置方案 Windows系统 Windows NT(New Technology)是微软 公司第一个真正意义上的网络操作系统, 发展经过NT3.0,NT40,NT5.0 (Windows 2000)和NT6.0(Windows 2003)等众多版本,并逐步占据了广大的 中小网络操作系统的市场. Windows NT众多版本的操作系统使用了 与Windows 9X完全一致的用户界面和完全 相同的操作方法,使用户使用起来比较方 便.与Windows 9X相比,Windows NT的 网络功能更加强大并且安全. BJFU Info Department, QiJd第七章操作系统安全配置方案 Windows NT系列操作系统 Windows NT系列操作系统具有以下三方面的优点. (1)支持多种网络协议 -由于在网络中可能存在多种客户机,如Windows 95/98,Apple Macintosh,Unix,OS/2等等,而这些客户机可能使用了不同的 网络协议,如TCP/IP协议,IPX/SPX等.Windows NT系列操作支 持几乎所有常见的网络协议. (2)内置Internet功能 -内置IIS(Internet Information Server),可以使网络管理员轻松 的配置WWW和FTP等服务. (3)支持NTFS文件系统 -NT同时支持FAT和NTFS的磁盘分区格式.使用NTFS的好处主要 是可以提高文件管理的安全性,用户可以对NTFS系统中的任何文 件,目录设置权限,这样当多用户同时访问系统的时候,可以增加 文件的安全性. BJFU Info Department, QiJd第七章操作系统安全配置方案 安全配置方案初级篇 安全配置方案初级篇主要介绍常规的操作 系统安全配置,包括十二条基本配置原 则: (1)物理安全,(2)停止Guest帐号, (3)限制用户数量 (4)创建多个管理员帐号,(5)管理员帐号改名 (6)陷阱帐号,(7)更改默认权限,(8)设置 安全密码 (9)屏幕保护密码,(10)使用NTFS分区 (11)运行防毒软件,(12)确保备份盘安全. BJFU Info Department, QiJd第七章操作系统安全配置方案 1,物理安全 服务器应该安放在安装了监视器的隔离房 间内,并且监视器要保留15天以上的摄像 记录. 另外,机箱,键盘,电脑桌抽屉要上锁, 以确保旁人即使进入房间也无法使用电 脑,钥匙要放在安全的地方. 2,停止Guest帐号 在计算机管理的用户里面把Guest帐号停用,任何时候都不允许 Guest帐号登陆系统. 为了保险起见,最好给Guest 加一个复杂的密码,包含特殊字符,数 字,字母的长字符串. 用它作为Guest帐号的密码.并且修改Guest帐号的属性,设置拒绝 远程访问,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 3 限制用户数量 去掉所有的测试帐户,共享帐号和普通部门帐号 等等.用户组策略设置相应权限,并且经常检查 系统的帐户,删除已经不使用的帐户. 帐户很多是黑客们入侵系统的突破口,系统的帐 户越多,黑客们得到合法用户的权限可能性一般 也就越大. 对于Windows NT/2000主机,如果系统帐户超过 10个,一般能找出一两个弱口令帐户,所以帐户 数量不要大于10个. BJFU Info Department, QiJd第七章操作系统安全配置方案 4 多个管理员帐号 虽然这点看上去和上面有些矛盾,但事实上是服 从上面规则的.创建一个一般用户权限帐号用来 处理电子邮件以及处理一些日常事物,另一个拥 有Administrator权限的帐户只在需要的时候使 用. 因为只要登录系统以后,密码就存储再 WinLogon进程中,当有其他用户入侵计算机的 时候就可以得到登录用户的密码,尽量减少 Administrator登录的次数和时间. 5 管理员帐号改名 Windows 2000中的Administrator帐号是不能被停用的,这意味着 别人可以一遍又一边的尝试这个帐户的密码.把Administrator帐户 改名可以有效的防止这一点. 不要使用Admin之类的名字,改了等于没改,尽量把它伪装成普通用 户,比如改成:guestone.具体操作的时候只要选中帐户名改名就 可以了,如图所示. 6 陷阱帐号 所谓的陷阱帐号是创建一个名为"Administrator"的本地帐 户,把它的权限设置成最低,什么事也干不了的那种,并 且加上一个超过10位的超级复杂密码. 这样可以让那些企图入侵者忙上一段时间了,并且可以借 此发现它们的入侵企图.可以将该用户隶属的组修改成 Guests组,如图所示. 7 更改默认权限 共享文件的权限从"Everyone"组改成"授权用户"."Everyone"在 Windows 2000中意味着任何有权进入你的网络的用户都能够获得这 些共享资料. 任何时候不要把共享文件的用户设置成"Everyone"组.包括打印共 享,默认的属性就是"Everyone"组的,一定不要忘了改.设置某文 件夹共享默认设置如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 8安全密码 一些网络管理员创建帐号的时候往往用公司名, 计算机名,或者一些别的一猜就到的字符做用户 名,然后又把这些帐户的密码设置得比较简单, 这样的帐户应该要求用户首此登陆的时候更改成 复杂的密码,还要注意经常更改密码. 这里给好密码下了个定义:安全期内无法破解出 来的密码就是好密码,也就是说,如果得到了密 码文档,必须花43天或者更长的时间才能破解出 来,密码策略是42天必须改密码. 9屏幕保护密码 设置屏幕保护密码是防止内部人员破坏服务器的一个屏 障. 还有一点,所有系统用户所使用的机器也最好加上屏幕保 护密码. 将屏幕保护的选项"密码保护"选中就可以了,并将等待时 间设置为最短时间"1秒",如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 10 NTFS分区 把服务器的所有分区都改成NTFS格式.NTFS文 件系统要比FAT,FAT32的文件系统安全得多. 11防毒软件 Windows 2000/NT服务器一般都没有安装防毒软 件的,一些好的杀毒软件不仅能杀掉一些著名的 病毒,还能查杀大量木马和后门程序. 要经常升级病毒库. BJFU Info Department, QiJd第七章操作系统安全配置方案 12备份盘的安全 一旦系统资料被黑客破坏,备份盘将是恢 复资料的唯一途径.备份完资料后,把备 份盘防在安全的地方. 把资料备份放在多台服务器上. BJFU Info Department, QiJd第七章操作系统安全配置方案 安全配置方案中级篇 安全配置方案中级篇主要介绍操作系统的安全策 略配置,包括十条基本配置原则: (1)操作系统安全策略, (2)关闭不必要的服务 (3)关闭不必要的端口, (4)开启审核策略 (5)开启密码策略, (6)开启帐户策略,(7)备份敏感文件 (8)不显示上次登陆名,(9)禁止建立空连接 (10)下载最新的补丁 1 操作系统安全策略 利用Windows 2000的安全配置工具来配置安全策略,微 软提供了一套的基于管理控制台的安全配置和分析工具, 可以配置服务器的安全策略. 在管理工具中可以找到"本地安全策略". 可以配置四类安全策略:帐户策略,本地策略,公钥策略 和IP安全策略.在默认的情况下,这些策略都是没有开启 的. BJFU Info Department, QiJd第七章操作系统安全配置方案 2 关闭不必要的服务 Windows 2000的Terminal Services(终 端服务)和IIS(Internet 信息服务)等都 可能给系统带来安全漏洞. 为了能够在远程方便的管理服务器,很多 机器的终端服务都是开着的,如果开了, 要确认已经正确的配置了终端服务. 有些恶意的程序也能以服务方式悄悄的运 行服务器上的终端服务.要留意服务器上 开启的所有服务并每天检查. Windows2000可禁用的服务 服务名说明 Computer Browser维护网络上计算机的最新列表以及提供这个 列表 Task scheduler允许程序在指定时间运行 Routing and Remote Access 在局域网以及广域网环境中为企业提供路由 服务 Removable storage管理可移动媒体,驱动程序和库 Remote Registry Service允许远程注册表操作 Print Spooler将文件加载到内存中以便以后打印.要用打 印机的用户不能禁用这项服务 IPSEC Policy Agent管理IP安全策略以及启动 ISAKMP/Oakley(IKE)和IP安全驱动程序 Distributed Link Tracking Client 当文件在网络域的NTFS卷中移动时发送通 知 Com+ Event System提供事件的自动发布到订阅COM组件 3 关闭不必要的端口 关闭端口意味着减少功能,如果服务器安装在防火墙的后面,被入侵 的机会就会少一些,但是不可以认为高枕无忧了. 用端口扫描器扫描系统所开放的端口,在 Winnt\system32\drivers\etc\services文件中有知名端口和服务的对 照表可供参考.该文件用记事本打开如图所示. 设置本机开放的端口 设置本机开放的端口和服务,在IP地址设置窗口 中点击按钮"高级",如图所示. 设置本机开放的端口 在出现的对话框中选择选项卡"选项",选中 "TCP/IP筛选",点击按钮"属性",如图所示. 设置本机开放的端口 设置端口界面如图所示. 一台Web服务器只允许TCP的80端口通过就可以了. TCP/IP筛选器是Windows自带的防火墙,功能比较强 大,可以替代防火墙的部分功能. 4 开启审核策略 安全审核是Windows 2000最基本的入侵检测方法.当有人尝试对系 统进行某种方式(如尝试用户密码,改变帐户策略和未经许可的文件 访问等等)入侵的时候,都会被安全审核记录下来. 必须开启的审核如下表: 策略设置 审核系统登陆事件成功,失败 审核帐户管理成功,失败 审核登陆事件成功,失败 审核对象访问成功 审核策略更改成功,失败 审核特权使用成功,失败 审核系统事件成功,失败 审核策略默认设置 审核策略在默认的情况下都是没有开启的,如图所 示. 设置审核策略 双击审核列表的某一项,出现设置对话框,将复 选框"成功"和"失败"都选中,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 5 开启密码策略 密码对系统安全非常重要.本地安全设置 中的密码策略在默认的情况下都没有开 启.需要开启的密码策略如表所示 策略设置 密码复杂性要求启用 密码长度最小值6位 密码最长存留期15天 强制密码历史5个 设置密码策略 设置选项如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 6 开启帐户策略 开启帐户策略可以有效的防止字典式攻击, 设置如表所示. 策略设置 复位帐户锁定计数器30分钟 帐户锁定时间30分钟 帐户锁定阈值5次 BJFU Info Department, QiJd第七章操作系统安全配置方案 设置帐户策略 设置的结果如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 7 备份敏感文件 把敏感文件存放在另外的文件服务器中; 把一些重要的用户数据(文件,数据表和 项目文件等)存放在另外一个安全的服务 器中,并且经常备份它们 8 不显示上次登录名 默认情况下,终端服务接入服务器时,登陆对话框中会显示上次登陆 的帐户名,本地的登陆对话框也是一样.黑客们可以得到系统的一些 用户名,进而做密码猜测. 修改注册表禁止显示上次登录名,在HKEY_LOCAL_MACHINE主键 下修改子键: Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Dont DisplayLastUserName,将键值改成1,如图所示. 9 禁止建立空连接 默认情况下,任何用户通过空连接连上服务器,进而可以 枚举出帐号,猜测密码. 可以通过修改注册表来禁止建立空连接.在 HKEY_LOCAL_MACHINE主键下修改子键: System\CurrentControlSet\Control\LSA\RestrictAnon ymous,将键值改成"1"即可.如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 10 下载最新的补丁 很多网络管理员没有访问安全站点的习 惯,以至于一些漏洞都出了很久了,还放 着服务器的漏洞不补给人家当靶子用. 经常访问微软和一些安全站点,下载最新 的Service Pack和漏洞补丁,是保障服务 器长久安全的唯一方法. BJFU Info Department, QiJd第七章操作系统安全配置方案 安全配置方案高级篇 高级篇介绍操作系统安全信息通信配置,包 括十四条配置原则: (1)关闭DirectDraw,(2)关闭默认共享 (3)禁用Dump File,(4)文件加密系统 (5)加密Temp文件夹(6)锁住注册表, (7)关机时清除文件 (8)禁止软盘光盘启动(9)使用智能卡, (10)使用IPSec (11)禁止判断主机类型,(12)抵抗DDOS (13)禁止Guest访问日志 (14)数据恢复软件 1 关闭DirectDraw C2级安全标准对视频卡和内存有要求.关闭DirectDraw可能对一些 需要用到DirectX的程序有影响(比如游戏),但是对于绝大多数的 商业站点都是没有影响的. 在HKEY_LOCAL_MACHINE主键下修改子键: SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI\Timeo ut,将键值改为"0"即可,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 2 关闭默认共享 Windows 2000安装以后,系统会创建一些隐藏的 共享,可以在DOS提示符下输入命令Net Share 查 看,如图所示. 停止默认共享 禁止这些共享,打开管理工具>计算机管理>共享文件夹> 共享,在相应的共享文件夹上按右键,点"停止共享"即 可,如图所示. 3 禁用Dump文件 在系统崩溃和蓝屏的时候,Dump文件是一份很有用资 料,可以帮助查找问题.然而,也能够给黑客提供一些敏 感信息,比如一些应用程序的密码等 需要禁止它,打开控制面板>系统属性>高级>启动和故障 恢复,把写入调试信息改成无,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 4 文件加密系统 Windows2000强大的加密系统能够给磁盘,文 件夹,文件加上一层安全保护.这样可以防止别 人把你的硬盘挂到别的机器上以读出里面的数 据. 微软公司为了弥补Windows NT 4.0的不足,在 Windows 2000中,提供了一种基于新一代 NTFS:NTFS V5(第5版本)的加密文件系统 (Encrypted File System,简称EFS). EFS实现的是一种基于公共密钥的数据加密方 式,利用了Windows 2000中的CryptoAPI结 构. BJFU Info Department, QiJd第七章操作系统安全配置方案 5 加密Temp文件夹 一些应用程序在安装和升级的时候,会把 一些数据拷贝到Temp文件夹,但是当程序 升级完毕或关闭的时候,并不会自己清除 Temp文件夹的内容. 所以,给Temp文件夹加密可以多一层保 护. 6 锁住注册表 在Windows2000中,只有Administrators和Backup Operators才有从 网络上访问注册表的权限.当帐号的密码泄漏以后,黑客也可以在远程 访问注册表,当服务器放到网络上的时候,一般需要锁定注册表.修改 Hkey_current_user下的子键 Software\microsoft\windows\currentversion\Policies\system 把DisableRegistryTools的值该为0,类型为DWORD,如图所示. 7 关机时清除文件 页面文件也就是调度文件,是Windows 2000用来存储没有装入内存 的程序和数据文件部分的隐藏文件. 一些第三方的程序可以把一些没有的加密的密码存在内存中,页面文 件中可能含有另外一些敏感的资料.要在关机的时候清除页面文件, 可以编辑注册表修改主键HKEY_LOCAL_MACHINE下的子键: -SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management -把ClearPageFileAtShutdown的值设置成1,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 8 禁止软盘光盘启动 一些第三方的工具能通过引导系统来绕过原有的 安全机制.比如一些管理员工具,从软盘上或者 光盘上引导系统以后,就可以修改硬盘上操作系 统的管理员密码. 如果服务器对安全要求非常高,可以考虑使用可 移动软盘和光驱,把机箱锁起来仍然不失为一个 好方法. BJFU Info Department, QiJd第七章操作系统安全配置方案 9 使用智能卡 对于密码,总是使安全管理员进退两难, 容易受到一些工具的攻击,如果密码太复 杂,用户把为了记住密码,会把密码到处 乱写. 如果条件允许,用智能卡来代替复杂的密 码是一个很好的解决方法. BJFU Info Department, QiJd第七章操作系统安全配置方案 10 使用IPSec 正如其名字的含义,IPSec提供IP数据包的 安全性. IPSec提供身份验证,完整性和可选择的机 密性.发送方计算机在传输之前加密数 据,而接收方计算机在收到数据之后解密 数据. 利用IPSec可以使得系统的安全性能大大增 强. 11 禁止判断主机类型 黑客利用TTL(Time-To-Live,生存时间)值可以鉴别操作系统的类 型,通过Ping指令能判断目标主机类型.Ping的用处是检测目标主 机是否连通. 许多入侵者首先会Ping一下主机,因为攻击某一台计算机需要根据 对方的操作系统,是Windows还是Unix.如过TTL值为128就可以认 为你的系统为Windows 2000,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 TTL值-判断主机类型 从表中可以看出,TTL值为128,说明改主机的操作系统 是Windows 2000操作系统.下表给出了一些常见操作系 统的对照值. 操作系统类型TTL返回值 Windows 2000128 Windows NT107 win9x128 or 127 solaris252 IRIX240 AIX247 Linux241 or 240 BJFU Info Department, QiJd第七章操作系统安全配置方案 修改TTL的值 修改TTL的值,入侵者就无法入侵电脑了.比如将操作系统的TTL值 改为111,修改主键HKEY_LOCAL_MACHINE的子键: SYSTEM\CURRENT_CONTROLSET\SERVICES\TCPIP\PARAME TERS 新建一个双字节项,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 修改TTL的值 在键的名称中输入"defaultTTL",然后双击改键名,选择 单选框"十进制",在文本框中输入111,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 修改TTL的值 设置完毕重新启动计算机,再用Ping指令,发现 TTL的值已经被改成111了,如图所示. 12 抵抗DDOS 添加注册表的一些键值,可以有效的抵抗DDOS的攻击.在键值 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcp ip\Parameters]下增加响应的键及其说明如表所示. 增加的键值键值说明 "EnablePMTUDiscovery"=dword:00000000 "NoNameReleaseOnDemand"=dword:00000000 "KeepAliveTime"=dword:00000000 "PerformRouterDiscovery"=dword:00000000 基本设置 "EnableICMPRedirects"=dword:00000000防止ICMP重定向报文的攻击 "SynAttackProtect"=dword:00000002防止SYN洪水攻击 "TcpMaxHalfOpenRetried"=dword:00000080 "TcpMaxHalfOpen"=dword:00000100 仅在TcpMaxHalfOpen和 TcpMaxHalfOpenRetried设置 超出范围时,保护机制才会采取 措施 "IGMPLevel"=dword:00000000不支持IGMP协议 "EnableDeadGWDetect"=dword:00000000禁止网关监测技术 "IPEnableRouter"=dword:00000001支持路由功能 BJFU Info Department, QiJd第七章操作系统安全配置方案 13 禁止Guest访问日志 在默认安装的Windows NT和Windows 2000中,Guest 帐号和匿名用户可以查看系统的事件日志,可能导致许多 重要信息的泄漏,修改注册表来禁止Guest访问事件日 志. 禁止Guest访问应用日志 -HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Eventlog\Application下添加键值名称为: RestrictGuestAccess,类型为:DWORD,将值设置为1. 系统日志: -HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Eventlog\System下添加键值名称为: RestrictGuestAccess,类型为:DWORD,将值设置为1. 安全日志 -HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Eventlog\Security下添加键值名称为: RestrictGuestAccess,类型为:DWORD,将值设置为1. 14 数据恢复软件 当数据被病毒或者入侵者破坏后,可以利用数据恢复软件 可以找回部分被删除的数据,在恢复软件中一个著名的软 件是Easy Recovery.软件功能强大,可以恢复被误删除 的文件,丢失的硬盘分区等等.软件的主界面如图所示. Easy Recovery 比如原来在E盘上有一些数据文件,被删除了,选择左边 栏目"Data Recovery",然后选择左边的按钮 "Advanced Recovery",如图所示. Easy Recovery 进入Advanced Recovery对话框后,软件自动扫描出目 前硬盘分区的情况,分区信息是直接从分区表中读取出来 的,如图所示. Easy Recovery 现在要恢复E盘上的文件,所以选择E盘,点击按 钮"Next",如图所示. Easy Recovery 软件开始自动扫描该盘上曾经有哪些被删除了文件,根据 硬盘的大小,需要一段比较长的时间,如图所示. Easy Recovery 扫描完成以后,将该盘上所有的文件以及文件夹显示出 来,包括曾经被删除文件和文件夹,如图所示. Easy Recoery 选中某个文件夹或者文件前面的复选框,然后点 击按钮"Next",就可以恢复了.如图所示. Easy Recovery 在恢复的对话框中选择一个本地的文件夹,将文件保存到 该文件夹中,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 Easy Recovery 选择一个文件夹后,点击按钮"Next",就出现了恢复的 进度对话框,如图所示. BJFU Info Department, QiJd第七章操作系统安全配置方案 本章总结 本章分成三部分介绍Windows 2000的安 全配置. 三部分共介绍安全配置三十六项,如果每 一条都能得到很好的实施的话,该服务器 无论是在局域网还是广域网,即使没有网 络防火墙,已经比较安全了. 需要重点理解三大部分中的每一项设置, 并掌握如何设置.
常见伪装IP的方法有几种
1.使用代理
代理服务器拥有自己的 IP 地址,可以充当用户与互联网之间的转发中介。当互联网用户使用代理时,他们的互联网请求首先通过代理服务器,然后才连接到在线资源。代理服务器从 Web 服务器收集响应后,会将其传回给用户,从而确保增强的匿名性,因为不会暴露用户的真实 IP 地址。
2.使用移动网络
每次打开移动数据时,用户的 IP 地址都会发生变化。但频繁使用这种方法关闭-开启移动数据会降低连接速度,并且数据未加密。因此这种方法一般仅用于某些特定情况,例如当IP 受到攻击时。
3.连接公共 Wi-Fi
使用计算机连接到开放的 Wi-Fi 网络是隐藏 IP 地址的简单方法。但是,连接到公共热点网络时存在许多风险。例如,通常同时有许多未经检查的连接。此外,不安全的公共网络会给您的设备带来安全风险。在特殊情况下,您应该将此选项视为隐藏您的 IP 地址以防止黑客入侵。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。