第四章基于windows操作系统的攻击与防御1.windows系统口令攻击口令攻击主要采用以下几种方法:猜测攻击字典攻击穷举攻击混合攻击直接破解系统口令文件网络嗅探(sniffer)键盘记录中间人攻击社会工程学1.1Windows操作系统的口令破解技术1.输入法漏洞windows2000sp2之前的版本。目前的Vista操作系统,极点五笔输入法,也存在此类问题。2.暴力破解SAM文件,一般使用工具LC3.删除SAM文件1.2设置系统策略保护口令连接策略问题:默认情况下系统没有设置登录的失败次数限制,导致可以被无限制地尝试连接系统管理的共享资源。解决方法:设置用户的访问策略,定义用户登录失败达到一定次数时锁定帐号,并限制管理员远程访问。如何实现?1.在“管理工具”中,选择本地安全策略。2.在本地安全策略中选择“帐户安全策略”,其中的“密码策略”可以对密码的长度、密码的存留时间等方面进行设置。比如:在“密码必须符合复杂性要求”的选项中,系统默认是停用该功能,但推荐用户在使用时将该功能开启。3.点击“帐户锁定策略”,可以看到三个被选项,这里可以对帐户的时间和帐户无效访问的次数进行设置。此处,我们点击“用户锁定阈值”点右键,选择“安全性”,此处就可以对用户无效访问次数进行限制。4.由于Administrator帐号的特殊性,Administrator帐号无法设置帐号锁定,即使登录失败的次数达到设置时,该帐号也不可能被锁住。因此除了系统默认创建的Administrator帐号,还应该创建至少一个具有管理员特权的帐号,并且,把默认帐号Administrator改成另外一个名字。2.IPC$入侵2.1什么是IPCIPC是英文InternetProcessConnection的缩写,即:命名管道,它是windows提供的一个通信基础,用来在两台计算机进程之间建立通信连接,而IPC后面的$是windows系统所使用的隐藏符号,因此IPC$表示IPC共享,但是是隐藏的共享。默认IPC是共享的。通过IPC连接,入侵者就能够实现远程控制目标主机。基础知识SMB:(ServerMessageBlock)Windows协议族,用于文件打印共享的服务;NBT:(NETBiosOverTCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。在WindowsNT中SMB基于NBT实现,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现。网络共享对于端口的选择对于win2000客户端(发起端)来说:1如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话,当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败;2如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。对于win2000服务器端来说:1如果允许NBT,那么UDP端口137,138,TCP端口139,445将开放(LISTENING);2如果禁止NBT,那么只有445端口开放。我们建立的ipc$会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听139或445端口,ipc$会话是无法建立的。2.2空会话(NullSession)攻击概念:Null会话是同服务器建立的无信任支持的会话。一个会话包含用户的认证信息,而Null会话是没有用户的认证信息,也就好比是一个匿名的一样。作用:当在多域环境中,要在多域中建立信任关系,首先需要找到域中的pdc来通过安全通道的密码验证,使用空会话能够非常容易地找到pdc,还有就是关于一些系统服务的问题。而且Lmhosts的#include就需要空会话的支持。攻击过程:1).用扫描软件搜寻存在弱口令的主机比如流光,SSS,X-scan等,然后锁定目标,如果扫到了管理员权限的口令,假设现在得到了administrator的密码为空2).然后,我们先建立起ipc$连接netuse\\192.168.1.6\ipc$/user:administrator3).查看远程主机开了什么共享netview\\192.168.1.6注释:声明用netview命令无法看到默认共享,因此通过上面返回的结果,并不能判断对方是否开启了默认共享。4).查看远程主机的时间nettime\\192.168.1.65).得到远程主机的netbios用户名列表nbtstat-A192.168.1.6Copye:\nc.exe\\192.168.10.15\c$上传文件nc.exe到目标地址的c盘At\\192.168.10.1514:03c:\nc.exe指定在目标地址上在14:03执行程序nc.exe以下是一些常见的导致ipc$连接失败的原因:1IPC连接是WindowsNT及以上系统中特有的功能,由于其需要用到WindowsNT中很多DLL函数,所以不能在Windows9.x/Me系统中运行,也就是说只有nt/2000/xp才可以相互建立ipc$连接,98/me是不能建立ipc$连接的;2如果想成功的建立一个ipc$连接,就需要对方开启ipc$共享,即使是空连接也是这样,如果对方关闭了ipc$共享,你将会建立失败;3你未启动Lanmanworkstation服务,它提供网络链结和通讯,没有它你无法发起连接请求(显示名为:Workstation);4对方未启动Lanmanserver服务,它提供了RPC支持、文件、打印以及命名管道共享,ipc$依赖于此服务,没有它远程主机将无法响应你的连接请求(显示名为:Server);5对方未启动NetLogon,它支持网络上计算机pass-through帐户登录身份;6对方禁止了NBT(即未打开139端口);7对方防火墙屏蔽了139和445端口;8你的用户名或者密码错误(显然空会话排除这种错误);9命令输入错误:可能多了或少了空格,当用户名和密码中不包含空格时两边的双引号可以省略,如果密码为空,可以直接输入两个引号“”即可;10如果在已经建立好连接的情况下对方重启计算机,那么ipc$连接将会自动断开,需要重新建立连接。2.3空会话攻击的防御有如下方法:I.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous。在Windows2000中将值改为“2”,表示限制所有的匿名访问,除非明确许可。II.禁止自动打开默认共享。对于Windows2000Pro来说,修改[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters],把AUTOShareWks(DWORD)的键值该为00000000。如果主键不存在,就新建一个再修改键值。server版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer(DWORD)的键值改为:00000000。III.关闭ipc$和默认共享依赖的服务:server服务操作:控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-选已禁用这时可能会有提示说:XXX服务也会关闭是否继续,因为还有些次要的服务要依赖于lanmanserver,不要管它。IV.屏蔽139,445端口由于没有以上两个端口的支持,是无法建立ipc$的,因此屏蔽139,445端口同样可以阻止ipc$入侵。注意:如果屏蔽掉了以上两个端口,你将无法用ipc$入侵别人。V.设置复杂密码,防止通过ipc$穷举出密码3NTFS文件系统3.1优势长文件名支持对文件目录的安全控制先进的容错能力不易受到病毒和系统崩溃的侵袭3.2NTFS权限设置多重权限中应该遵循以下几个原则:用户对资源的有效权限是分配给该个人用户帐户和用户所属的组的所有权限的总和。如果用户对文件具有“读取”权限,该用户所属的组又对该文件具有“写入”的权限,那么该用户就对该文件同时具有“读取”和“写入”的权限。文件权限高于文件夹权限。NTFS文件权限对于NTFS文件夹权限具有优先权,假设你能够访问一个文件,那么即使该文件位于你不具有访问权限的文件夹中,你也可以进行访问(前提是该文件没有继承它所属的文件夹的权限)拒绝高于其他权限。拒绝权限可以覆盖所有其他的权限。甚至作为一个组的成员有权访问文件夹或文件,但是该组被拒绝访问,那么该用户本来具有的所有权限都会被锁定而导致无法访问该文件夹或文件。也就是说上面第一点的权限累积原则将失效。4文件系统加密与保护4.1文件系统加密4.2文件系统保护Windows2000提供了两种方式对系统文件进行保护,一种是浏览保护,一种是文件保护。浏览保护文件保护“Windows文件保护”能阻止替换受保护的系统文件,这些受保护的文件包括.sys、.dll、.exe、.ttf等系统文件。5安全恢复5.1安全恢复造成系统崩溃的原因可能有很多种:硬件问题,硬件的物理损坏导致系统无法工作。病毒破坏,由于病毒、木马软件对系统的破坏造成系统崩溃。程序问题,由于安装新软件产生兼容性问题导致系统崩溃。人为失误,由于人为的操作失误对系统的破坏导致系统无法工作。人为破坏,人为的恶意破坏导致系统的瘫痪。自然灾害,又不可抗拒的问题导致系统崩溃,如火灾等常见的恢复机制主要有以下几点:创建系统紧急修复盘开始-程序-附件-系统工具-备份定期将系统中的重要数据进行备份5.2安全设置Windows2000的安全子系统由本地安全策略、安全账号管理器、安全证明监视器三部分组成。他们包括如下一些主要组件:安全参考监视器(SRM,SecurityReferenceMonitor):Windows2000执行程序(\Winnt\System32\Ntoskrnl.exe)中的一个部件,负责执行对对象的安全访问检查本地安全认证子系统(Lsass,LocalSecurityAuthoritySubsystem):运行在\Winnt\System32\Lsass.exe映像下的用户模式进程,负责本机系统安全策略(例如,哪个用户允许登录此机,口令策略、用户和组的特权授予和系统安全审计设置等)、用户认证和发送安全审计消息到事件日志。本机安全授权服务(Lsasrv-\Winnt\System32\Lsasrv.dll)实现了大部分的功能。Lsass策略数据库:包含本机系统安全策略设置的数据库。该数据库存储在注册表HKLM\SECURITY下。安全帐号管理器(SAMSecurityAccountsManager)服务:负责管理包括本机上定义的用户名和组的数据的一组子程序。SAM服务由\Winnt\System32\Samsrv.dll实现,运行在Lsass进程下。SAM数据库:包含定义的用户和组以及口令及其他属性信息的数据库。该数据库保存在注册表HKLM\SAM下。活动目录(ActiveDirectory):一种目录服务,包含保存在域中对象信息数据库。域是由一组计算机和它们相关的安全组组成的。活动目录保存域内对象的信息:包括用户、组和计算机。口令信息和域用户和组的特权信息保存在活动目录中。活动目录服务器由\Winnt\System32\Ntdsa.dll实现,运行在Lsass进程下。登录过程:(LogonProcess-Winlogon):运行\Winnt\System32\Winlogon.exe的用户模式进程。负责响应安全提示序列(SAS,SecurityAttentionSe