一、 帐号安全策略设置算法
二、 文件系统安全数据库
三、 系统服务安全设置windows
四、 配置注册表提升系统安全sass
五、 系统进程和端口检查和分析安全
六、 日志安全服务器
七、 IPSEC安全网络
八、 组策略安全ide
九、 WSH组件的安全函数
十、常见CMD维护命令的使用工具
十一、Windows自带的安全攻击和第三方安全工具
十二、其余一些零碎的安全设置
1三、Windows 下的病毒手工查杀
一、 用户帐户(Account)
所谓用户帐户,是计算机使用者的身份标识
用户帐户由两种基本类型:本地用户帐户和全局用户帐户(域用户帐号)
(1)、本地用户帐户建立于网络客户机,做用范围仅限于建立它的计算机。
(2)、全局用户帐户建立于服务器(域控制器),能够在网络中任何计算机上登陆,做用范围是整个网络。
Windows系统经常使用的内置帐户:
(1)、Guest:来宾帐户
(2)、Administartor:系统管理员帐户,具备最高权限。
二、组(Group)
组是一组相关帐号的集合,即用户帐户的一种容器,提供了为一组用户同时设定权力和权限的可能。
使用组的目的:简化对系统的管理,经过组能够一次性地为一批用户授予必定的权利或权限。
内置用户帐号:
Administartor和Guest
能够更名,不能够删除
内置用户组帐号:
Administrators
Users
Guests
Backup Operators
Domain * (Administrators,Users,Guests)
特殊组(Network,Interative,Everyone,…)
Windows系统中的组有三种基本类型:
本地组、全局组、特别组
(1)、本地组
工做组网络环境中的组)用于建立网络客户机,控制对所建立的计算机资源的访问。他的成员是用户帐户和全局组,在一个本地的系统或域中进行维护。本地组只有在建立它的本地系统或者域中才能实现权限的管理。
(2)、全局组(域环境中的组)
用于建立服务器(域控制器),控制对资源的访问。系统管理员能够利用全局组有效地将用户按他们的须要进行安排。
Windows系统提供了三类全局组:
A、 管理员组(Domain Admins)
B、 用户组(Domain Users)
C、 域客人组(Domain Guests)
(3)、特殊组
Windows系统为了特定的目的建立了特别组。经过用户访问系统资源的方式来决定用户是否具备特别组的成员资格,特别组不能够经过用户管理器为其增长新成员,同时他也不能够被浏览和修改。
Windows提供的特别组以下:
1)、System:Windows操做系统
2)、Creator Owner:建立对对象拥有全部权的用户
3)、Interactive:以交互的方式在本地系统登陆入网的全部用户
4)、Network:系统中全部经过网络链接的用户
5)、Everyone:登录上网的系统中的全部用户(包括Interactive和Network组)
须要注意的是,在特别组中,全部登陆帐户都是Everyone组的成员。
一、用户帐户的管理
(1)、要保证用户不会从隶属于的组中得到超过其任务要求的额外权限,同时用户隶属于的组能知足他的任务要求。
二、系统管理员帐户的管理:
(1)、系统管理员口令设置
为了使爆破密码变得更加困难,应该选择复杂度高的密码来设置系统管理员,尤为是系统域管理员(主域控制器的系统管理员)的口令。其余服务器的管理员应采用与域控制器中管理员不一样的密码,一边更安全的保证域的绝对管理权限。
三、 组的安全管理措施
(1)、应该清楚用户组的成员设置是否得当,要对其进行仔细的观察。
(2)、为了使具备相同安全策略的用户组在登陆时间、密码和权限等方面保持一致,能够用组将其组织在一块儿。
基本概念:
一、 安全标识符(Security Identifiers)
SID也就是安全标识符,是表示用户、组和计算机帐户的惟一号码。其实Windows系统是按SID来区别用户的,不是按用户的帐户名称,因此创建一个帐户A,而后删除后立刻在重建一个用户A实际上是两个帐户。
二、 利用SID原理进行帐户克隆
(1)、在Windows操做系统中经过对注册表的HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\下的子键进行操做,(须要system权限)使一个普通用户具备与管理员同样的桌面和权限,这样的用户就叫克隆帐号。
(2)、在平常查看中这个用户却显示它正常的属性,例如Guest用户被克隆后当管理员查看guest的时候他仍是属于guest组,若是是禁用状态,显示仍是禁用状态,但这个时候guest登入到系统并且是管理员权限。
(3)、通常攻击者在入侵一个系统就会采用这个办法来为本身留一个后门。
三、 帐号克隆演示
(1)、新建一个隐藏用户,咱们会发如今CMD下使用”net user”是看不到的,可是在”计算机管理—本地用户和组”中仍是能够看到隐藏掉的用户。
(2)、打开注册表,对HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\的子键进行操做。
(3)、将”F”子键中的值所有复制下来,copy到要克隆的帐户的”F”子键中。而后将”abc$”和”000003EA”导出。
(4)、删除用户abc$,在将上面的导入。这样创建的隐藏用户,在windows2003中重启后,计算机管理--用户管理那里又能看到帐户,但有些windows2003几年都不重启!
四、 防范帐号克隆
一、首先要重启服务器。
二、进入计算机管理—用户管理中查看。
三、进入注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Name查看。
因为Windows的默认安装容许任何用户经过空用户获得系统多有帐号和共享列表,这本是为了方便局域网用户共享资源和文件的,但任何一个远程用户经过一样的方法都能获得帐户列表,使用暴力破解帐户密码后,对服务器进行攻击,称之为帐号枚举。
防止"帐号枚举"的本地安全设置:
一、 控制面板---管理工具---本地安全策略选项
二、 在Windows设置-"安全设置"中单击"本地策略"中的"安全选项"命令,将右边"策略"中"网络访问:不容许SAM帐户的匿名枚举"及"网络访问:不容许SAM帐户和共享的匿名枚举"命令启用。如图:
一、 Administrator帐号改名
(1)、因为windows的administrator帐号是不能停用的,也不能设置安全策略,这样就给了咱们爆破的可能。
(2)、在"计算机管理"中把administrator帐号改名来防止这一点。鼠标右键点击"重命名",从新输入一个名称。
二、不要显示上次登陆的用户名
(1)、攻击者通常还会从本地或者Terminal Service的登陆界面看到用户名,而后去爆破。
(2)、进制显示登陆的用户名。选择【控制面板】--【管理工具】--【本地安全策略】--【安全选项】,在右侧双击"登陆屏幕上不要显示上次登陆的用户名"一项,选中"已启用"。
(3)、另外一种方法:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon新建DWORD键值项"Don't Display Last User Name",将其数据设置为1。
三、强制Windows口令的复杂性
经过组策略来实现强制口令复杂性的设置。
四、检查组和帐号
(1)、常规检查
计算机的常规检查主要经过"个人电脑"-"管理"-"计算机管理"-"本地用户与组"来实施检查,主要检查管理员组中是否存在多余帐号,是否存在多个用户帐号。(或者net user系列命令)
(2)、检查用户
操做系统中默认存在Administrator以及按照我的喜好而添加的用户名称,其余还有一些用户例如启动IIS进程帐户、Internet来宾帐户等,这些帐户和系统中提供的服务或者安装的软件有关。
对账号的检查也能够在Dos提示符下实现。
"net user" -- 查看系统全部用户
"net localgroup administrators" -- 查看管理员组
若是入侵者在添加帐号是在帐号末尾加上了"$"符号,则使用"net user"命令查看用户时,以"$"结束的用户名不会显示,须要在用户管理的图形界面来查看。
(3)、检查组
任何一个用户帐户都必须有一个组,须要特别注意Administrators组,这个组具备管理员权限的组,在"计算机管理"中,双击"组"中的"Administrators"便可查看是否存在多余的管理员帐号。
Winlogon -- GINA -- SSPI -- Kerberos/NTLM
包含的要素:
Winlogon -- Winlogon.exe是系统启动必须的进程,管理用户的登陆和退出。位于system32目录下。
Winlogon的做用:
负责进行安全的用户登录和交互的可执行文件,启动登录进程。具体完成以下工做:桌面锁定、加载User Profile、控制屏幕保护程序、支持多种网络服务提供者、查找GINA(MSGINA.dll)。
Graphical Identification and Authentication DLL(GINA) à GINA(Msgina.dll),这个DLL用来接收用户和密码, 是一个被Winlogon进程在启动的前期阶段加载的DLL模块。
GINA负责处理SAS事件并激活用户SHELL。做用:
一、能够实如今登录以前的警告提醒框;
二、显示上一次登录用户名;
三、自动登录、容许关机;
四、激活Userinit.exe进程。
Local Security Authority(LSA)à Winlogon和GINA调用LSA处理登录凭据。LSA的验证过程当中包括了以下的组件:验证包(Authentication Packages)、SAM和AD。
LSA管理本地安全策略、管理审计策略和设置、为用户生成包含SID和组权限关系的令牌。
LSA验证的过程:LSA以一种安全的方式收到Msgina.dll传送来的用户名和密码,并对其进行处理,经过访问本地SAM(Security Accounts Manager)数据库或AD数据库,能够完成本地用户的验证。
进程为lsass.exe
Security Support Provider Interface(SSPI) -- Windows系统在执行认证操做所使用的API。
SSPI是SSP的API接口
Authentication Packages --
LSA调用该组件来分别处理本地登录和网络登录。
Security support provider -- 又名Security Package.简单的理解为SSP就是一个DLL,用来实现身份认证。
在系统启动的时候SSP会被加载到进程lsass.exe中.
Netlogon Service --
NetLogon服务:NetLogon服务验证NTLM的登录请求,注册、认证和定位域控制器的位置,并提供NT4.0的兼容性、更新主机的DNS记录、定位域控制器。
Security Account Manager(SAM) -- Windows的用户帐户数据库
一、Winlogon调用GINA DLL,并监视安全认证序列。而GINA DLL提供一个 交互式的界面为用户登陆提供认证请求。
二、Winlogon在注册表查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,若是存在GinaDLL键,Winlogon将使用这个DLL,若是不存在该键,Winlogon将使用默认值MSGINA.dll。
三、Winlogon键盘记录
WinLogon启动时会调用GINA.DLL,那么咱们若是将它替换掉呢? ---
(1)、下载WinlogonHack工具,运行install.bat
(2)、当有人远程登陆时,WinLogonHack会记录帐号密码,运行ReadLog.bat,
(3)、密码文件在pass.bat中。
Windows中对用户帐户的安全管理使用了安全帐号管理器(Security Account Manager)的机制,SAM对帐号的管理是经过安全标识进行的,安全标识在帐号建立时就同时建立,一旦帐号被删除,安全标识也同时被删除。安全标识时惟一的,即便时相同的用户名,在每次建立时得到的安全表示都是彻底不一样的。
SAM的具体表现就是%SystemRoot%system32\config\sam文件。全部用户的登陆名及口令等相关信息都会保存在这个文件中。
SAM文件位置:
C:\windows\repair\SAM
C:\windows\system32\config\SAM
第一个SAM文件时帐户数据库的备份文件,第二个SAM文件时系统正在使用的帐户数据库。
一、SAM构成Windows注册表里五大分支之一,具体内容保存在%systemroot%\system32\config\sam里;
二、在Windows域控制器上,帐号和口令密文保存在活动目录(Active Directory,AD)里,对应文件时:%systemroot%\ntds\ntds.dit,这里面包含的不仅是username和Hash,还有OU、Group等。
- SAM = Security Account Manager
- %systemroot%\system32\config\sam
- HKEY_LOCAL_MACHINE\SAM\SAM
SAM文件的破解步骤
一、 SAM文件存储在C:\Windows\system32\config文件夹内,直接复制粘贴出来是不行的。
二、 使用工具将SAM文件取出来。
三、 Samcopy或hWinHex工具提取
四、使用ophcrack进行彩虹表破解。
彩虹表就是一个庞大的、针对各类可能的字母组合预先计算好的哈希值的集合,不必定是针对MD5算法的,各类算法的都有,有了它能够快速的破解各种密码。越是复杂的密码,须要的彩虹表越大,如今主流的彩虹表都是100G以上。
算法对明文密码进行加密存储,因为哈希算法不可逆,所以由密码逆向出明文就成了不可能。
Ophcrack
一、 打开ophcrack软件选择load,加载提取的sam和system文件。
二、 点击crack,开始跑表。
本地安全认证(Local Security Authority):
一、调用全部的认证包,检查在注册表
二、从新找回本地组的SIDs和用户的权限
三、建立用户的访问令牌
四、管理本地安装的服务所使用的服务帐号
五、储存和映射用户权限
六、管理审核的策略和设置
七、管理信任关系
WinPswLogger:
Windows的身份认证通常最终都是在lsass进程,默认模块时msv1_0.dll,而关键在其导出函数LsaApLogonUserEx2,本程序经过注入代码到lsass进程hook LsaApLogon UserEx2,截取密码。
早期SMB协议在网络上传输明文口令,简称LM。后来出现LAN Manager Challenge/Response验证机制,称之为NTLM。如今已经有了更新的NTLMv2以及Kerberos验证体系(保存的加密后的散列统称为hash,就是把任意长度的输入,经过散列算法,变换成固定长度的输出,该输出就是散列值。)
NTLM是windows早期安全协议,因向后兼容性而保留下来。NTLM是NT LAN Manager的缩写,及NT LAN管理器。
NTLM的使用场景
在网络环境中,NTLM用做身份验证协议以处理两台计算机(其中至少由一台计算机运行Windows NT 4.0或更早版本)之间的事务。
列举两种配置将使用NTLM做为身份验证机制:
一、windows或windows XP Professional客户端向windows NT4.0的域控制器验证身份。
二、Windows NT4.0 Workstation客户端向Windows或Windows Server 2003域控制器验证身份。
NTLM工做流程:
一、 客户端首先在本地加密当前用户的密码成为密码散列
二、 客户端向服务器发送本身的帐号,这帐号是没有通过加密的,明文传输
三、 服务器产生一个16位的随机数字发送给客户端,做为一个challenge(挑战)
四、 客户端再用加密后的密码散列来加密这个challenge,而后把这个返回给服务器做为response(响应)
五、 服务器把用户名、给客户端的challenge,客户端返回的response这三个东西,发送域控制器。
六、 域控制器用这个用户名在SAM密码管理库中找到这个用户的密码散列,而后使用这个密码散列来加密challenge。
七、 域控制器比较两次加密的challenge,若是同样,那么认证成功。
NTLM散列窃取和破解
Pwdump7能够在CMD下提取出系统中的用户和密码Hash(包括LM和NTLM),固然,必须有系统权限,提取出了HASH,再用ophcrack破出明文密码。
禁止LM HASH存取
方法1:经过使用"组策略"实现NoLMHash策略
要经过使用"本地组策略"禁止在本地计算机的SAM数据库中存储用户密码的LM哈希,或经过使用Active Directory中的"组策略"。
一、 在"组策略"中,依次展开"计算机配置","windows设置","安全设置","本地策略",而后单击"安全选项"。
二、 在可用策略的列表中,双击"网络安全:不要在下次更改密码时存储LAN Manager的哈希值",单击"启用",而后单击"肯定"。
方法2:使用长度至少为15位字符的密码
组织windows存储密码的LM哈希的最简单方法是:使用长度至少位15位字符的密码。在这种状况下,windows会存储没法用于验证用户身份的LM哈希值。
Keberos是为TCP/IP网络系统设计的可信的第三方认证协议。网络上的Keberos服务基于DES堆成加密算法,但也能够用其余算法替代。所以,Keberos是一个在许多系统中得到普遍应用的认证协议。