windows 本地安全设置 灰色_window系统安全加固

windows 系统账号特性

一般我们使用的普通的windows操作系统,对用户的密码是没有限制的,一般在家用版的windows中都会在一开始的时候给由你创建一个用户。而且对于家用的windows来说你的电脑不设置密码也是可以的。但是对于windows server来说,这是不行的。windows服务器对于账号和密码是有 严格的要求的,而且windows服务器里面可能有很多的用户,因为每一个用户对应的权限和职责也是不同的。有一次在渗透获取shell后,惊讶的发现对方主机具有有这么多的用户!并且权限分配的很合理。所有在管理服务器的时候,需要对每一个用户进行合理的权限配置,才能比较有效的保护服务器的安全

d1bc8da7bbf7237e8224f999da8245af.png

密码策略加强

windows服务器对于每一个用户的密码强度也是有要求的,强密码可以防止被爆破嘛!使用win+R打开运行,并且输入secpol.msc 进入本地安全策略,点击账户策略里面的密码策略。可以看到一般都是开启了密码复杂性要求,并且还对复杂性要求进行了说明

6198a7d6ca176a23c7b91d5d05001fa3.png

不能包含用户的帐户名,不能包含用户姓名中超过两个连续字符的部分至少有六个字符长包含以下四类字符中的三类字符:英文大写字母(A 到 Z)英文小写字母(a 到 z)10 个基本数字(0 到 9)非字母字符(例如 !、$、#、%)在更改或创建密码时执行复杂性要求。

我们可以根据实际的情况来进行对服务器的密码加固。例如如下方案

“密码必须符合复杂度要求” 设 置为“启用”“密码长度最小值”设置为“8个字符”“密码最长使用期限”设置为“90天”“强制密码历史”设置为“记住5个密码”“用可以还原的加密来存储密码”设置为“禁用”

设置好了密码强度的策略之后,在设定服务器密码的时候不要在密码上带上有个人信息的一些字符。以免被社工特别指定密码来进行爆破

ae5ea8e2837420880a6d08617b0e9d73.png

当我们创建一个账户的时候,如果密码强度不正确的话,是不给创建的哦!

cba1cbc305136c76d935ad7d51122c28.png

密码策略设定好了,其实还可以对Administrator这个账户的用户名进行修改,因为都知道有这个用户,我们可以对这个用户的用户名进行更改,在本地安全策略中选择本地策略中的安全策略,找到重命名系统管理员账户,可以按照实际情况来进行修改

dcf944033630c5f399c5f012f69305e3.png

对账户输入锁定策略加强

我们还可以对登陆进行一些策略设置,应配置当用户连续认证失败次数超过5 次(不含5 次),锁定该用户使用的账号

“账户额锁定阀值”设置为 5 次
“账户锁定时间”设置为 5分钟
“复位账户锁定计数器”设置为 5分钟

5fdc146f7c243e7976261773da78c516.png

当输入错误了五次之后,页面就直接提示锁定了!

7175b243b910d5cf367b1f6056b13dcf.png

禁用Guest账户和无关账户

对于windows服务器来说,一般都会把Guest账户和一些无关紧要的账户给禁用或者删除。Guest账户对于window服务器来讲是一个比较危险的账户,供来宾访问计算机或访问域的内置用户,可以无密码的登陆到计算机,但是Guest的权限比较低,很多操作也不能在计算机上使用。输入win+R打开运行输入compmgmt.msc进入到计算机管理,点击本地用户和组在点击用户,此时可以看到Guest用户已经处于禁用的状态了。如果显示没有禁用的话,最好还是禁用它

e227e7466e5904f5196ecad7c534edef.png

对于一些无关的用户来说,例如一些已经离职的员工。他们的用户里面都会有保留用户的文件夹,也许文件夹里面还有一些重要的文件,这个时候就需要先把这个用户给禁止掉,是的不能登陆到服务器上,然后再对该用户的一些信息进行处理。

用户权限分配

在本地安全策略中选择本地策略里面的用户权限分配,这里可以设置一些用户操作的一些权限。例如这里设置允许关机和远程关机的用户为administrators组里面的成员

ad6f35641a1ef59f58cd69bcf08fea68.png

例如还有对备份文件和目录这个选项进行权限控制,

9c99429f8ce6e6e49da8d41fd53532bf.png

还有从网络访问服务器的权限控制,,这里可以把一些比较危险的选项给剔除,例如everyone等等,在结合一些情况在设置

81067e329e0c3dbfa8eb8b2216fe53f3.png

设置主机安全审计

在主机的审核策略上设置日志审核策略操作流程:进入“控制面板->管理工具->本地安全策略”,在“本地策略->审核策略”在主机的审核策略上设置日志审核策略:

审计帐户登录事件:成功,失败
审计帐户管理:成功,失败
审计目录服务访问:成功,失败
审计登录事件:成功,失败
审计对象访问:成功,失败
审计策略更改:成功,失败
审计特权使用:成功,失败
审计系统事件:成功,失败
审计过程追踪:成功,失败

b9d30de435b6aeb858cdcf1c8ee91652.png

查看系统事件查看器和任务计划程序

设置日志文件大小

可以根据磁盘的空间进行配置日志的文件大小,一般日志记录的多点比较好,在运行窗口输入eventvwr,配置 应用日志、系统日志、安全日志 属性中的日志大小,以及设置当达到最大的日志尺寸时的相应策略。

7ad40b65ca14719d63a84b81abfc6e7d.png

事件查看器记录和windows服务器的操作。一些可疑的操作都会有红色警报信息

202b20dcc0567e8ef59f840941401dbd.png

操作流程:使用打开允许输入eventvwr,目的:检查系统/安全/应用日志是否有可疑时间报警。这里给出一些常见的事件ID。还有一些事件ID可以通过搜索来获取信息

17dd59580c9d04e4b2ce5254956a11ff.png

例如这里,如果4672代表管理员进行登陆,4624代表了普通用户登陆了,可以更加实际情况推测有无可以登陆的情况

ffb9aeaf634661bfb5d6d4f2b0491fc0.png

还可以查看一些登陆类型,可以从日志上查看对方是通过什么方式进行登陆的

d04364b2424064606a376a2256cd3e75.png

例如下面这个,是普通登陆,并且是从远程网络登陆也就是远程桌面登陆,并且还可以查看源网络的地址

ac28bc6dd3aeefb2dd3e63edae4506bd.png

查看任务计划程序

有的时候如果被入侵的,可能会被设定计划任务,定时的执行某些程序,这些程序可能是一些监听木马和后门程序,在允许窗口中输入taskschd.msc进入到任务计划程序。查看是否有可以的任务计划

f9591261cf493832152400ac4a923b91.png

mimikatz抓取密码

Mimikatz是法国人benjamin开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能强大,能够直接读取WindowsXP-2012等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具

作者个人博客:http://blog.gentilkiwi.com/

这个工具很强大,是windows系统渗透的必备神器,由于它很强大,所有很多安全厂商都对其列入黑名单。在windows2012以及以上的系统,以及不能获取的到明文密码了,但是可以搭配procdump+mimikatz来进行获取密码。
把mimikatz上传到服务器上面,使用如下命令

mimikatz # log
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

这里我获取的是windows2008系统的密码,很顺利就已经获取到了密码了!

339745febdf4751b0b00c5f0a2199fbd.png

msv:这项是账户对于的密码的各种加密协议的密文,可以看到有LM、NTLM和SHA1加密的密文tspkg,wdigest,kerberos:这个就是账户对于的明文密码了。有的时候这三个对于的也不是全部都是一样的,需要看服务器是什么角色。SSP:是最新登陆到其他RDP终端的账户和密码

如何防止mimikatz获取密码呢?

mimiktaz是需要管理员权限才能使用mimikatz。如下图,如果我们不是管理员权限的话,是不能够debug的。

8b275b64fef6f52771a303d60f7b509b.png

在windows中调试权限可以用来调式进程,甚至是调试内核,mimiktaz就是需要通过debug来对进程进行调试。当用户登陆的时候会把账户密码保存到lsass中,经过wdigest和tspkg两个模块的调试之后使用算法进行加密并存储在内存中。mimikatz便是通过逆算法获取到明文密码的!

2d62e9ead683593392ff8a530b8170e4.png

当我们是普通权限的时候,是没有debug的权限的,如果是administrator权限呢!当然是可以的,我们可以通过对debug权限进行设置即可。在运行窗口输入secpol.msc进入到本地安全策略,点击本地策略进入到用户权限分配中,可以看到调试程序中之后administrator有这个权限。

329ca0ee366106df75c479ad39e98762.png

把administrator去除掉,然后注销在登陆系统,接着使用mimikatz进行获取debug的权限,这个时候已经不能获取到权限了

e3a5a7d9c3ffcd19bbde522d0c14505b.png

WDigest

WDigest协议是在WindowsXP中被引入的,旨在与HTTP协议一起用于身份认证。默认情况下,Microsoft在多个版本的Windows(Windows XP-Windows 8.0和Windows Server 2003-Windows Server 2012)中启用了此协议,这意味着纯文本密码存储在LSASS(本地安全授权子系统服务)进程中。Mimikatz可以与LSASS交互,允许攻击者通过以下命令检索这些凭据:

mimikatz # privilege::debug
mimikatz # sekurlsa::wdigest

27e4493fa706daa36b2c4fd14b115a38.png

在windows2012系统以及以上的系统之后这个默认是关闭的如果在 win2008 之前的系统上打了 KB2871997 补丁,那么就可以去启用或者禁用 WDigest。Windows Server2012及以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。Windows Server2012以下版本,如果安装了KB2871997补丁,攻击者同样无法获取明文密码。配置如下键值:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest

UseLogonCredential 值设置为 0, WDigest 不把凭证缓存在内存;UseLogonCredential 值设置为 1, WDigest 就把凭证缓存在内存。

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

当在网络维护管理的时候,可以通过查看注册表Wdigest,如果这个选项是0的时候,是不能够回去得到明文密码的。

ea6440b9d0288fdf5ede9f3a8062ed48.png

使用mimikatz获取windows密码的哈,密码这里是显示null的。但是能获取到NTLM和SHA1的加密密文

97390f4cdc3c5590b449e8c3fc072150.png

只要把值给成1的话,就是开启了Wdigest功能

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

使用mimikatz来获取windows的密码,可以看到这里以及获取到了系统的明文密码

978f0bf354b9270e648b54fe690281dc.png

还可以使用powershell来进行更改。

开启Wdigest AuthSet-ItemProperty -Path HKLM:\SYSTEM\CurrentCzontrolSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1关闭Wdigest AuthSet-ItemProperty -Path HKLM:\SYSTEM\CurrentCzontrolSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 0

但是不获取到明文的话,可以使用hash来进行PTH攻击,可以管理到对方的服务器

5c4ac98990e9b8a181f6ec931c31fe09.png

接着使用PsExec这个工具就可以连接管理对方的服务器了

0825ba7e6e50b5258171851c5aa742f4.png

LSA保护

如何防止mimikatz获取一些加密的密文进行PTH攻击呢!其实微软推出的补丁KB2871997是专门针对PTH攻击的补丁,但是如果PID为500的话,还是可以进行PTH攻击的!本地安全权限服务(LSASS)验证用户是否进行本地和远程登录,并实施本地安全策略。Windows 8.1及更高版本的系统中,Microsoft为LSA提供了额外的保护,以防止不受信任的进程读取内存或代码注入。Windows 8.1之前的系统,攻击者可以执行Mimikatz命令来与LSA交互并检索存储在LSA内存中的明文密码。当使用如下命令

sekurlsa::logonPasswords

没有这个键或者这个键为0的时候,mimikatz是可以使用这个命令来获取hash或者明文密码的

e1142c1a0082443a653aea6e6cebed01.png

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL /t REG_DWORD /d 1 /f

使用上面这条命令添加或者修改键的值。设置为1

bc72febd80f5a92921638ad64ea9f8c6.png

接着重启服务器,这样即使你获取了debug权限,你也不能获取到明文和hash。

c063e2991bd79272049f775e9047c085.png

但是如果攻击者的权限够高的话,也是可以修改的,把值修改为0即可。但是需要重启服务器

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL /t REG_DWORD /d 0 /f

获取高版本windows系统的密码凭证

方法1:
第一种方法就是修改注册表了!也就是WDigest这个选项

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

修改之后需要重启计算机。这样做的话比较鸡肋

76a7bd515db5022189ce6cfe07f0ff8f.png

方法2:
首先使用procdump把lsass给 dump下来,但是需要管理员权限。procdump是微软的一个小工具。自己的东西当然不会被杀啦!

procdump64.exe -accepteula -ma lsass.exe 1.dmp

174e891b70d9d493dbeda2a80992a9e2.png

接着我们可以把这个文件下载到本地,使用mimikatz读取密码

mimikatz.exe "log" "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit

3df5652d0f9274fb287355a34999b0f0.png

关闭一些危险的端口

一般windows中的远程溢出漏洞,例如ms17-010。都是开启了445和一些共享的端口造成的,在扫描这些漏洞的时候,也是通过扫描445端口有无打开,在测试有没有这个漏洞。如果把这些端口关闭了的话,就可以防止一些不必要的危险。在扫描的时候发现都开启了这些端口,特别是445和139着些端口

896230910c0a78eb24af829d8818e3a4.png

接着使用msf对windows2008操作系统进行ms17-010漏洞扫描,这里显示是存在漏洞

ff82b0d5ee11f899457329bfc180094e.png

试着使用ms17-010的payload进行攻击,然后尝试发现可以成功

eb040dc802e580cd39afd6fafa369540.png

使用如下批处理。可以关闭这些危险的端口。把下列批处理复制到文本文件中,保存并且修改后缀为bat

@echo off
color 07
title 关闭常见的危险端口
echo 正在开启Windows防火墙
echo.
netsh advfirewall set currentprofile state on > nul
netsh advfirewall set publicprofile state on > nul
netsh advfirewall set allprofile state on > nul
netsh advfirewall set privateprofile state on > nul
echo.
echo 防火墙已经成功启动。
echo.
echo.
pause
cls
echo 正在关闭常见的危险端口,请稍候…
echo.
echo 正在关闭135,139,445端口…
netsh advfirewall firewall add rule name=denyDangerTCPPort dir=in protocol=TCP localport=135,139,445 action=block
echo 正在关闭137,138端口…
netsh advfirewall firewall add rule name=denyDangerUDPPort dir=in protocol=UDP localport=137,138 action=block

echo 常见的危险端口已经关闭。
echo.
echo.
echo.
echo 按任意键退出。
pause>nul

d2cc0a44b18e2bd2d1c896862e2664c6.png

接着使用nmap对这些危险的端口进行扫描,可以看到已经现在已经被过滤了

77084220a10b3870d026374ae7090c9c.png

测试在进行扫描的时候已经显示没有ms17-010漏洞了

cae41a40d4335165a6dffa6a46e437b2.png

再次尝试使用ms17-010漏洞进行攻击,这个时候已经不能在进行攻击了

4cfd51babd03311e153910a5c9d85700.png

结尾

windows系统加固方法还有很多,而且我这里也很片面。还有很多还未学习的!希望以后能慢慢接触到!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值