日志相关

Windows系统是否被重启的方法

方式一 systemifno

系统启动时间: 2021/7/7, 5:51:51
注意:此方法不可查看关机时间

方式二:通过事件查看器查看

Windows 日志 -> 应用程序中,ID为 1531 为开机记录
image.png

Windows 日志 -> 应用程序中,ID为 1532 为关机记录
image.png

方式三:通过事件查看器查看

Windows 日志 -> 系统中,ID为 6005,6006 为开关机记录
备注:6005表示开机,6006表示关机。

查看登录 IP

Windows 日志 -> 安全中,ID为 4648 可以查看登录 IP

常用事件 ID

  # 审计目录服务访问
  4934 - Active Directory 对象的属性被复制
  4935 - 复制失败开始
  4936 - 复制失败结束
  5136 - 目录服务对象已修改
  5137 - 目录服务对象已创建
  5138 - 目录服务对象已删除
  5139 - 目录服务对象已经移动
  5141 - 目录服务对象已删除
  4932 - 命名上下文的AD的副本同步已经开始
  4933 - 命名上下文的AD的副本同步已经结束
  
    # 审计登录事件
  4634 - 帐户被注销
  4647 - 用户发起注销
  4624 - 帐户已成功登录
  4625 - 帐户登录失败
  4648 - 试图使用明确的凭证登录
  4675 - SID被过滤
  4649 - 发现重放攻击
  4778 - 会话被重新连接到Window Station
  4779 - 会话断开连接到Window Station
  4800 - 工作站被锁定
  4801 - 工作站被解锁
  4802 - 屏幕保护程序启用
  4803 - 屏幕保护程序被禁用
  5378 - 所要求的凭证代表是政策所不允许的
  5632 - 要求对无线网络进行验证
  5633 - 要求对有线网络进行验证

  # 审计对象访问
  5140 - 网络共享对象被访问
  4664 - 试图创建一个硬链接
  4985 - 交易状态已经改变
  5051 - 文件已被虚拟化
  5031 - Windows防火墙服务阻止一个应用程序接收网络中的入站连接
  4698 - 计划任务已创建
  4699 - 计划任务已删除
  4700 - 计划任务已启用
  4701 - 计划任务已停用
  4702 - 计划任务已更新
  4657 - 注册表值被修改
  5039 - 注册表项被虚拟化
  4660 - 对象已删除
  4663 - 试图访问一个对象

  # 审计政策变化
  4715 - 对象上的审计政策(SACL)已经更改
  4719 - 系统审计政策已经更改
  4902 - Per-user审核政策表已经创建
  4906 - CrashOnAuditFail值已经变化
  4907 - 对象的审计设置已经更改
  4706 - 创建到域的新信任
  4707 - 到域的信任已经删除
  4713 - Kerberos政策已更改
  4716 - 信任域信息已经修改
  4717 - 系统安全访问授予帐户
  4718 - 系统安全访问从帐户移除
  4864 - 名字空间碰撞被删除
  4865 - 信任森林信息条目已添加
  4866 - 信任森林信息条目已删除
  4867 - 信任森林信息条目已取消
  4704 - 用户权限已分配
  4705 - 用户权限已移除
  4714 - 加密数据复原政策已取消
  4944 - 当开启Windows Firewall时下列政策启用
  4945 - 当开启Windows Firewall时列入一个规则
  4946 - 对Windows防火墙例外列表进行了修改,添加规则
  4947 - 对Windows防火墙例外列表进行了修改,规则已修改
  4948 - 对Windows防火墙例外列表进行了修改,规则已删除
  4949 - Windows防火墙设置已恢复到默认值
  4950 - Windows防火墙设置已更改
  4951 - 因为主要版本号码不被Windows防火墙承认,规则已被忽视
  4952 - 因为主要版本号码不被Windows防火墙承认,部分规则已被忽视,将执行规则的其余部分
  4953 - 因为Windows防火墙不能解析规则,规则被忽略
  4954 - Windows防火墙组政策设置已经更改,将使用新设置
  4956 - Windows防火墙已经更改主动资料
  4957 - Windows防火墙不适用于以下规则
  4958 - 因为该规则涉及的条目没有被配置,Windows防火墙将不适用以下规则:
  6144 - 组策略对象中的安全政策已经成功运用
  6145 - 当处理组策略对象中的安全政策时发生一个或者多个错误
  4670 - 对象的权限已更改

  # 审计特权使用
  4672 - 给新登录分配特权
  4673 - 要求特权服务
  4674 - 试图对特权对象尝试操作

  # 审计系统事件
  5024 - Windows防火墙服务已成功启动
  5025 - Windows防火墙服务已经被停止
  5027 - Windows防火墙服务无法从本地存储检索安全政策,该服务将继续执行目前的政策
  5028 - Windows防火墙服务无法解析的新的安全政策,这项服务将继续执行目前的政策
  5029 - Windows防火墙服务无法初始化的驱动程序,这项服务将继续执行目前的政策
  5030 - Windows防火墙服务无法启动
  5032 - Windows防火墙无法通知用户它阻止了接收入站连接的应用程序
  5033 - Windows防火墙驱动程序已成功启动
  5034 - Windows防火墙驱动程序已经停止
  5035 - Windows防火墙驱动程序未能启动
  5037 - Windows防火墙驱动程序检测到关键运行错误,终止。
  4608 - Windows正在启动
  4609 - Windows正在关机
  4616 - 系统时间被改变
  4621 - 管理员从CrashOnAuditFail回收系统,非管理员的用户现在可以登录,有些审计活动可能没有被记录
  4697 - 系统中安装服务器
  4618 - 监测安全事件样式已经发生

日志存储位置

C:\Windows\System32\winevt\Logs
使用事件查看器工具可以将这些EVTX事件日志文件导出为evtx,xml,txt和csv格式的文件。

用户相关

查看用户

cmd -> net user

-------------------------------------------------------------------------------
Administrator            DefaultAccount           Guest
WDAGUtilityAccount
命令成功完成。

DefaultAccount: 可能是初次升级安装系统后,自动添加的一个默认账户。在进行过重置系统的操作后可能会消失。

WDAGUtilityAccount:为了Windows Defender的正常运行而创建的用户。

主动进入安全模式的方法

当系统感染病毒或者有其他需要进入到安全模式时,用户可以主动设置进入Windows安全模式启动系统。 设置如下:

1.打开有管理员权限的命令行工具, 输入"msconfig", 进入到"系统配置"界面,勾选如下图所示
image.png

2.点击"应用",点击"确定"后,重启操作系统,系统自动进入安全模式,安全模式下,桌面四角有"安全模式"的水印,如下图所示
image.png

3.当操作完毕之后, 需要恢复到正常启动的模式。 重新打开"系统配置"界面,将启动选择修改成"正常启动"即可
image.png

Windows 内核转储设置

在某些特定的情况下,比如蓝屏、黑屏、系统hang住,研发人员需要借助转储文件才能快速定位问题点,从而快速处理问题。

在小内存转储的设置下, Dump文件会存放在%SystemRoot%\Minidump(e.g. C:\Windows\Minidump)目录底下,这些文件的历史记录按照日期命名,查找带有当前系统日期的文件名,即可找到当前的Dump文件。

此外,内存转储还有其他几种方式:核心内存转储、完全内存转储、自动内存转储,其dump文件均是%SystemRoot%\MEMORY.DMP(e.g. C:\Windows\MEMORY.DMP),此文件会自动覆盖前一次产生的dump。

可以通过下列的方式手工修改产生转储文件的方式

1.打开"控制面板",点击"系统",在系统页面双击"高级系统设置"
image.png

2.在"高级系统设置"页面下,点击"高级"页面,设置 "启动和故障恢复"
image.png

3.在"启动和故障恢复"页面,选择"写入调试信息"的方式
image.png

注意:
如果C盘空间不足,建议可以将转储文件放到其它磁盘中

Windows 系统重启后显示系统恢复选项

Windows 系统有可能会遇到重新启动后,无法正常载入系统的情况,这个时候,用户首先会看到"系统恢复"界面。

当进入到"系统恢复"界面的时候, 说明此时的系统,已经无法维持正常的运转,原因有很多,如注册表损坏,系统文件损坏,BCD出现问题等等。这些情况很多时候是由于安装的第三方杀毒软件,误操作,异常重启,第三方应用软件引起的。

"系统恢复"界面会引导客户进入Windows的修复模式(Windows Recovery Environment) ,修复模式资料参考 Understanding Windows Recovery

Windows 蓝屏宕机的一般处理

蓝屏又称为蓝屏死机(Blue screen of Death-BSoD), 英文文档提到的Stop error,也是这个意思。是指微软的Windows操作系统没有办法从错误中恢复过来,或者已经达到不能安全操作的状态,为保护数据不被破坏而强制显示的界面。百度智能云采用小内核转储方式,蓝屏发生经过搜集信息后会存在%SystemRoot%\Minidump(e.g. C:\Windows\Minidump)目录底下,具体参照[Windows 内核转储设置](#Windows 内核转储设置)

产生蓝屏宕机的原因

Windows内核态程序出错
操作系统文件,注册表的损坏
杀毒软件导致的异常
病毒感染
第三方软件和系统不兼容
硬件损坏
资源不足

蓝屏信息

在蓝屏界面,通常可以得到蓝屏错误码 如下图所示 Win32k.sys是当时内存出错时,指向的程序;0x00000050代表的是PAGE_FAULT_IN_NONPAGED_AREA错误,以及相应的参数。 具体错误码对应的意义在微软的官方网站上有相应的说明 Bug Code Rerference

image.png

当Crash Dump 收集完毕之后, 就可以重启计算机。更多的蓝屏信息,可以在启动计算机之后,查看系统事件簿。如果无法重新启动,请尝试从快照或者备份中还原系统(这可能会丢失一部分数据)

查看系统事件簿, 可以看到事件ID 为1001的BugCheck类型的事件记录了蓝屏宕机的相关信息, 此外在之前应该还有一个ID为41的来源kernel-power的电源事件,说明系统曾经发生过重启。 如果客户曾经修改过内核转储设置为不生成Dump文件, 则会有一个ID为46的内核转储失败的来源为volmgr的事件。

处理方式

由于蓝屏的分析需要比较长的时间, 建议发生蓝屏后,重启机器,以便快速恢复业务。

定时创建系统盘和数据盘快照
定期运行系统更新,确保当前系统安装了最新的更新包
使用商业版本的杀毒软件,并定期更新杀毒软件
尽量使用数据盘保护数据系统,并定期备份
避免修改您不了解的系统文件,注册表。若确实需要修改,请先备份

在处理蓝屏的经验中, 一般发生蓝屏比较多的原因是:
1.Windows内核态程序出错(例如:系统驱动程序出错)
2.病毒感染
3.操作系统文件损坏

针对病毒感染的问题,我们建议

  • 安装Windows系统更新到最新补丁包
  • 在安全模式下,运行杀毒软件进行杀毒 [Windows 主动进入安全模式的方法](#Windows 主动进入安全模式的方法)

针对文件系统损坏的问题,我们建议

  • 若系统能重启成功,进入系统后,运行有管理员权限的CMD, 输入 sfc /scannow 进行系统完整性的检查和修复
  • 若无法进入系统,一般会进入系统恢复选项界面

针对Windows系统驱动程序出错的问题

  • 一般情况下, 重启计算机程序即可恢复

内存不一致的处理

image.png

问题分析

这种情况是可用内存被限制了,Windows系统本身有最大的支持内存,同时Windows支持内存的限制使用,以帮助系统或者内核调试的场景- 即有足够的调试内存,同时可以在不改变硬件的情况下,修改内存的使用大小。百度智能云的虚拟机不会对内存的使用进行限制,一般情况下是客户对这部分内容主动进行过修改

解决方法

只要将内存的限制去掉即可,步骤如下

1.【开始】->【运行】 , 输入"msconfig"打开微软系统配置

2.在"引导"页面,选择当前系统, 点击“高级选项”, 去掉“最大内存”的勾选项

image.png

3.重启计算机,可以看到可用内存不再被限制

Windows 虚拟内存的设置

由于内存本身的价格要远超硬盘的价格, Windows 提供 了一种增加内存的方式,Windows 可以将硬盘上的的一块区域(以分页文件的方式)当作RAM来使用。这部分RAM的大小就是Windows虚拟内存的大小。

由于开启虚拟内存会导致IO性能的下降,用户可以自由选择是否打开虚拟内存。

可以通过以下方式来设置改变这个虚拟内存默认的大小值

1.打开"控制面板",点击"系统",在左侧窗口,点击"高级系统设置"

image.png

2.在"高级系统设置"窗口的"高级"页面下,点击"性能"设置,进入"高级"页面,双击"更改"修改虚拟内存
image.png

3.修改分页文件的大小,并且点击"设置"来确认修改文件的大小,再点击"确定"按钮,重启计算机
image.png

根据微软的推荐策略

  • 分页内存最好是比物理内存大一些,但是不超过两倍内存
  • 尽量将页面交换文件设置在非系统磁盘,IO性能会好一些
  • 根据系统宕机时候Dump时候的需求。

注意:
增加虚拟内存会导致磁盘IO性能下降,建议尽量通过升级物理内存来解决。在申请较大的物理内存时,建议关闭虚拟内存的使用。

关闭虚拟内存的方法是在虚拟内存设置页选择"无分页文件"
image.png

系统黑屏处理方法

Windows 桌面一直显示黑色背景屏幕的处理

问题现象

Windows计算机打开之后,一直显示黑屏,没有任何左面图标,鼠标可以正常移动

与此同时,点击右上角的Alt + Ctrl + Del 按钮可以显示出面板

问题分析

现象表明Windows无法显示相关的文件和界面。Windows explorer.exe是Windows文件资源管理器,管理着Windows图形界面,文件系统,这个程序的异常会导致Windows GUI异常,用户可以通过重新启动explorer.exe来修复问题。

explorer.exe位于C:\Windows目录底下,如果这个目录底下没有这个文件, 说明Windows的系统文件已经被破坏,需要进行修复。

解决方法

1.点击右上角的Alt + Ctrl + Del 按钮可以显示出面板, 选择"任务管理器"

2.如果在"任务管理器"里面可以看到explorer.exe程序,则重启explorer.exe即可, 如果没有,则直接启动explorer.exe

3.重启explorer.exe -先关闭explorer,如果有的话

image.png

4.启动explorer.exe

image.png

5.这个时候, Windows桌面就应该启动起来了。 如果在第四步里面输入explorer.exe执行失败, 则很有可能是系统损坏,需要进行修复

6.修复过程

a.和第四步一样,运行新任务, 输入cmd.exe, 运行命令行工具

b.在命令行中,输入 dir explorer.exe /s 看看在C:\Windows 目录有没有 explorer.exe,已经WinSxS里面有多少个存档

c.运行sfc /scannow 目录修复系统文件

d.如果修复完毕, 在C:\Windows 目录仍然没有explorer.exe文件。 重装

关闭IE增强机制教程

安装WINDOWS server 系统以后,用浏览器打开网址时,系统总是提示“Internet Explorer 增强安全配置正在阻止下列网站的内容。如果把所有网址添加到信任列表是可以打开网址的,但是用起来很吃力。那么如何解决呢?

image.png

首先,我们打开IE,看到IE显示的警告信息,这就是增强IE所引起的。

image.png

解决方法

WindowsServer2008

1.点击”WIN“打开"管理工具",找到”服务器管理器“:
image.png

2.在”服务器管理器“中找到“配置IEESC”
image.png

3.点击关闭即可。
image.png

4.可以正常使用IE浏览器访问网站了。
image.png

WindowsServer2012

1.点击左下角的"WIN",找到"服务器管理器"。
image.png

2.在”服务器管理器“中点击"本地服务器",找到"IE增强的安全配置"。
image.png

3.点击"IE增强的安全配置"后面的"启用",点击关闭即可。
image.png

4.完成上述步骤后,即可正常使用IE浏览器访问网站了。
image.png

使用xshell连接windows服务器

本教程主要讲述如何使用xshell连接windows服务器,以windows2008为例。

此教程一共分为四步骤:

第一步:远程登录服务器
第二步:下载对应服务端软件在BCC内进行解压并安装
第三步:防火墙放行22端口
第四步:使用xshell连接windows服务器

第一步:远程登录服务器

第二步:下载对应服务端软件在BCC内进行解压并安装

1.登录该网页下载对应版本的OpenSSH。下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases

image.png

2.上传该文件到windwos服务器并解压

3.在解压后的文件夹内按住shift,同时鼠标右键,打开cmd,执行:

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

image.png

image.png

4.点击开始-服务-找到OpenSSH Authen...和OpenSSH SSH Se...这两个服务。右键点击启动。

image.png

image.png

image.png

第三步:防火墙放行22端口

1.在服务器内点击-开始-管理工具-高级安全windows防火墙

image.png

2.右击入站规则-新建规则

image.png

3.选择端口-点击下一步

image.png

4.选择TCP-特定本地端口-端口内填写22-点击下一步

image.png

5.一直点击下一步直到”名称“环节,名称中填写xshell远程端口,之后点击完成即可。

image.png

第四步:使用xshell连接windows服务器

1.在xshell左上角-文件-新建
image.png

2.在会话中设置对应名称和对应的主机IP(服务器的IP地址)。
image.png

3.点击用户身份验证,输入对应的远程连接账号密码之后点击确定。
image.png

4.点击文件-打开进入会话页面。
image.png

5.双击之前创建的会话连接即可。

6.测试成功连接。
image.png

修改默认连接远程端口

更改注册表信息

找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 路径下的 "PortNumber"用十进制方式显示,默认为3389,改为自己需要的端口,比如修改为3388(前提是修改的端口未被其他服务占用)

image.png

点击"入站规则",点击"新建规则",编辑新建入站规则,开放自定义的端口
image.png

允许单个用户连接多个会话的方法

本文介绍了如何使用 Windows 允许单个用户连接多个会话方式,以 Windows Server 2008 R2 为例。

问题描述

服务器默认只允许单个用户连接一个远程桌面会话,如果已有连接登陆,另外的连接再登陆会踢掉之前的连接。

即出现以下界面:
image.png

解决方法

步骤一 通过注册表调整会话

1.WIN键+R键打开运行,然后输入cmd,回车进入命令提示符,执行 regedit 可以打开注册表。

2.找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server,右侧找到fSingleSessionPerUser 键值,右键可以修改键值,默认键值是1,修改为 0 ,不需要重启服务器。

image.png

3.测试开启两个远程。
image.png

(注意:以上方法超过两个就会出现中断)

步骤二 部署远程桌面会话服务

超过两个或者两个以上连接,可以部署Windows 远程桌面会话主机配置,具体如下:
1.打开左下角的服务器管理器添加角色。
image.png

2.勾选远程桌面服务,之后下一步安装即可。
image.png

3.依次找到远程桌面会话主机配置。
image.png

4.取消限制每个用户只能进行一个会话(如果想重复通过administrator登入的话,请取消)。
image.png

5.验证。
image.png

注意:部署此方式只允许120天免费,如果想超出120天限制,建议购买微软的授权。

配置多用户访问Windows服务器

本文档以 Windows Server 2012 R2 操作系统为例,指导配置多用户远程登录 Windows 云服务器。

安装远程桌面服务

1.打开服务器管理器,选择 “添加角色和功能向导”,选择 “远程桌面服务”,点击下一步。

image.png

2.接下来不用选择,连续3次点击下一步,在角色服务页面勾选 “远程桌面会话主机”,然后在弹出的对话框中点击 “添加功能”。
image.png

image.png

3.继续点击下一步,点击安装,等待安装完成后点击关闭。
image.png

设置本地组策略编辑器

打开 “本地组策略编辑器”。
image.png

选择"计算机配置">"管理模板">"Windows 组件">"远程桌面服务">"远程桌面会话主机">"连接",双击打开"限制连接的数量"。
image.png

在弹出的"限制连接的数量"窗口中,"选择"已启用",并在"允许的RD最大连接数"处输入最大的同时远程连接用户数,完成设置后,点击"应用",点击"确定"。
image.png

选择"计算机配置">"管理模板">"Windows 组件">"远程桌面服务">"远程桌面会话主机">"连接",双击打开"将远程桌面服务用户限制到单独的远程桌面服务会话"。
image.png

在弹出的"将远程桌面服务用户限制到单独的远程桌面服务会话"窗口中,选择"已禁用",完成设置后点击"应用",点击"确定"。
image.png

设置完毕后,可以关闭本地组策略编辑器。

新建用户并加入到Administrators组

双击"计算机管理"。弹出"计算机管理"窗口后,点击"本地用户和组"→"用户",鼠标右键点击右侧空白处,点击"新用户"。
image.png

输入用户名称,输入用户名的登录密码,然后取消勾选"用户下次登录时须更改密码",勾选"密码永不过期",最后点击"创建"。
image.png

创建完成后,鼠标右键点击新创建的用户,点击"属性"

选择"隶属于",点击左下角的"添加"按钮,将该用户添加到Administrators组中,点击"应用"、"确定"。

image.png

image.png

重启服务器

本地播放Windows服务器中的声音

选择本地资源-远程音频-设置,勾选在此计算机上播放,然后点击确认。

image.png

进行连接并且验证声音效果

1.远程连接后查看右下角音频显示正常。
image.png

2.播放声音,进行验证。

若是使用上述方案,还是无法播放声音,请参考下列步骤进行操作

1.使用vnc或者远程连接方式进入Windows系统。

2.使用Win+R,输入命令gpedit.msc或者在搜索栏输入编辑组策略,进入本地组策略编辑器。

3.依次点击计算机配置->管理模板->Windows组件->远程桌面服务。
image.png

4.选择远程桌面会话主机->设备和资源重定向。
image.png

5.左键双击允许音频录制重定向 和 允许音频和视频播放重定向。

image.png

6.选择已启用后,点击应用、确定。

image.png

7.使用Win+R,输入:services.msc。

或者点击左下角的服务器管理器,在配置->服务中进入服务管理界面。

8.找到服务WindowsAudio与WindowsAudioEndpointBuilder,把启动类型修改成自启动,也检查下是否已经是运行状态。

9.重启服务器,然后远程连接至服务器,检测声音设置是否正常。

远程连接无法使用剪切板

找到rdpclip.exe进程,结束任务

新建rdpclip任务

运行新任务,输入rdpclip,点击确定。

验证是否可以粘贴内容

首先看下任务管理器中是否有"RDP剪切板监视程序"在运行,如果正常运行的话,直接复制本机内容,然后在服务器中进行粘贴,测试功能是否正常。

Windows服务器ping不通

故障现象

Windows服务器ping不通

故障原因

由于Windows server默认禁止ping,请您打开高级安全防火墙入站的“文件和打印机共享(回显请求 - ICMPv4-In)”规则。

故障处理

您可参考如下位置开启windows实例的高级安全防火墙的入站规则。

image.png

2012 防火墙位置: 服务器管理器--工具--高级安全windows防火墙--入站规则

image.png

image.png

禁止国外IP访问服务器

IP 地址与国家对应关系

https://www.ipdeny.com/ipblocks/
https://blog.kieng.cn/774.html
https://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest

获取国外IP地址

# 获取最新中国 IP
wget -q --timeout=60 -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /root/china_ssr.txt


# 获取最新国外 IP
wget -q --timeout=60 -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep -v CN | grep -v asn | grep ipv4 | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /root/china_ssr.txt

powershell 缓存限制

8192,当命令行超过 8192 就会无输出。

一个IP地址占用字符:255.255.255.255/25 共19个字符,姑且算占用20个字符。
8000/20 = 400
每行可以放下 400 个 IP 地址段。

cmd = f"PowerShell -NoLogo -NonInteractive -Command New-NetFirewallRule -DisplayName 'Block IP address GUOWAI-{number}' -Direction Inbound -LocalPort Any -Protocol TCP -Action Block -RemoteAddress {ip} "

这里的 就可以添加 400 个左右
数组参数样例:

@('数值','数组二'......)

powershell 命令操作系统防火墙

# 在域环境中启用防火墙
Set-NetFirewallProfile -Profile Domain -Enabled True

# 添加防火墙规则
New-NetFirewallRule -DisplayName "Block IP address 146.185.220.0/23" -Direction Inbound -LocalPort Any -Protocol TCP -Action Block -RemoteAddress 146.185.220.0/23

New-NetFirewallRule -DisplayName "Block IP address 146.185.220.0/23" -Direction Outbound –LocalPort Any -Protocol TCP -Action Allow -RemoteAddress 146.185.220.0/23

New-NetFirewallRule -DisplayName "Block IP address" -Direction Outbound –LocalPort Any -Protocol TCP -Action Block -RemoteAddress 146.185.220.0/23

New-NetFirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" -Direction Inbound -LocalPort 1194 -Protocol UDP -Action Allow



# 列出当前所有的Groups
Get-NetFirewallRule |Select-Object DisplayGroup -Unique

# 添加一条规则
New-NetFirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" -Direction Inbound -LocalPort 1194 -Protocol UDP -Action Allow
New-NetFirewallRule -DisplayName "Block Outbound itunes.exe" -Direction Outbound -Program "C:\Program Files\apple\itunes\itunes.exe" -Action Block


# 启用或者禁用存在的某条规则
Set-NetfirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" -Enabled True
Set-NetfirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" -Enabled False

# 删除一条规则,这会永久的删除一条规则,如果你只是禁用一条规则,可以参考前面使用set-netfirewallrule的的例子。
Remove-NetfirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests"

# 获取防火墙环境配置信息
Get-NetFirewallProfile -name Domain

# 远程管理规则,任意的命令都可以通过New-CimSession命令远程使用。假设你的防火墙已经启用了我们上面列出过的组规则“Windows Firewall Remote Management“(必要的)。
$TargetComputer=New-CIMSession -Computername MYCOMPUTER
Set-NetFirewallRule -DisplayGroup "Remote Event Log Management" -Enabled True -CimSession $TargetComputer

启用预制的组规则

# 一个Group是用于特定用途的规则集合,下面是Windows系统上附带的几个常用的组规则:
Set-NetFirewallRule -DisplayGroup "Remote Event Log Management" -Enabled True
Set-NetFirewallRule -DisplayGroup "Windows Firewall Remote Management" -Enabled True
Set-NetFirewallRule -DisplayGroup "Windows Management Instrumentation(WMI)" -Enabled True
Set-NetFirewallRule -DisplayGroup "Remote Desktop" -Enabled True
Set-NetFirewallRule -DisplayGroup "Windows Remote Management" -Enabled True
Set-NetFirewallRule -DisplayGroup "Remote Administration" -Enabled True

python 控制Windows防火墙(FireWall)

import os
from glob import glob
import subprocess


class PowerShell:
    # from scapy
    def __init__(self, coding, ):
        cmd = [self._where('PowerShell.exe'),
               "-NoLogo", "-NonInteractive",  # Do not print headers
               "-Command", "-"]  # Listen commands from stdin
        startupinfo = subprocess.STARTUPINFO()
        startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
        print(cmd)
        self.popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, startupinfo=startupinfo)
        self.coding = coding

    def __enter__(self):
        return self

    def __exit__(self, a, b, c):
        self.popen.kill()

    def run(self, cmd, timeout=15):
        b_cmd = cmd.encode(encoding=self.coding)
        try:
            b_outs, errs = self.popen.communicate(b_cmd, timeout=timeout)
        except subprocess.TimeoutExpired:
            self.popen.kill()
            b_outs, errs = self.popen.communicate()
        outs = b_outs.decode(encoding=self.coding)
        return outs, errs

    @staticmethod
    def _where(filename, dirs=None, env="PATH"):
        """Find file in current dir, in deep_lookup cache or in system path"""
        if dirs is None:
            dirs = []
        if not isinstance(dirs, list):
            dirs = [dirs]
        if glob(filename):
            return filename
        paths = [os.curdir] + os.environ[env].split(os.path.pathsep) + dirs
        try:
            return next(os.path.normpath(match)
                        for path in paths
                        for match in glob(os.path.join(path, filename))
                        if match)
        except (StopIteration, RuntimeError):
            raise IOError("File not found: %s" % filename)


if __name__ == '__main__':
    # with open("ip", "r", encoding="utf-8") as f:
    #     for i in f:
    #         with PowerShell('GBK') as ps:
    #             ip = i.strip("\r").strip("\r\n").strip("\n")
    #             cmd = f"New-NetFirewallRule -DisplayName 'Block IP address {ip}' -Direction Inbound -LocalPort Any -Protocol TCP -Action Block -RemoteAddress {ip} 2>&1>$null"
    #             print(cmd)
    #             outs, errs = ps.run(cmd)
                # print('error:', os.linesep, errs)
                # print('output:', os.linesep, outs)

    # with open("ip", "r", encoding="utf-8") as f:
    #     for i in f:
    #             ip = i.strip("\r").strip("\r\n").strip("\n")
    #             cmd = f"PowerShell -NoLogo -NonInteractive -Command New-NetFirewallRule -DisplayName 'Block IP address {ip}' -Direction Inbound -LocalPort Any -Protocol TCP -Action Block -RemoteAddress {ip} 2>&1>$null"
    #             print(cmd)
    #             os.system(cmd)
    # NonInteractive 非交互模式
    # nologo 启动不显式版权标志的powershell
    # 对于文件里的换行:
    # (1)Windows系统里,文件每行结尾是"<回车><换行>""\r\n"
    # (2)Mac系统里,文件每行结尾是"<回车>",即'\r'
    # (3)Unix系统里,文件每行结尾是"<换行>",即'\n'

    
    with open("ip", "r", encoding="utf-8") as f:
        ip = ""
        index = 0
        n = 0
        for i in f:
            ip += "'" + i.strip()+"',"
            index += 1
            if index == 400:
                ip = ip[:-1]
                ip = "@(" + ip + ")"
                n +=1
                if n < 10:
                    number = f"0{n}"
                else:
                    number = n
                cmd = f"PowerShell -NoLogo -NonInteractive -Command New-NetFirewallRule -DisplayName 'Block IP address GUOWAI-{number}' -Direction Inbound -LocalPort Any -Protocol TCP -Action Block -RemoteAddress {ip} "
                os.system(cmd)
                # print(number)
                index = 0
                ip = ""
        
        
    # print(ip)
    # cmd = f"PowerShell -NoLogo -NonInteractive -Command New-NetFirewallRule -DisplayName 'Block IP address GUOWAI' -Direction Inbound -LocalPort Any -Protocol TCP -Action Block -RemoteAddress {ip} 2>&1>$null"

win系统cmd读取较大txt文件

在处理服务器上查看txt日志文件的时候,由于部分时候txt文本非常大,直接编辑器无法打开,可以使用命令方式,通过管道方式进行输出

进入到对应的日志存放的路径,按住shift 鼠标右键选择,在此处打开命令窗口。

在对应的窗口运行一下命令,

type  www.lnmpweb.cn.log | findstr "11/Mar/2020:21:38:03" | more
# findstr 后面是要查找的内容

本次操作由于这台计算机的限制而被取消.请与您的系统管理员联系

重启计算机,在启动时按下F8键,选择“带命令行提示的安全模式”启动,系统会自动运行CMD命令窗口,现在你可以在提示符下运行:mmc c:windowssystem32gpedit.msc,这将打开组策略。展开“用户配置→管理模板→系统”,在右侧找到“只运行许可的Windows应用程序”策略,将它设置成“未配置”,再“确定”即可.

应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。

SFC检查系统完整性来尝试修复丢失文件

  1. 点击“开始”->在搜索栏内输入“cmd”,右键点击cmd.exe,选择以管理员身份运行,跳出提示框时选择继续。

  2. 键入sfc /scannow ,然后按 Enter。系统开始扫描,请您耐心等待。

image.png

Tds-Tcp 和 RDP-Tcp 区别

注册表信息如下:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 

区别:
相同的协议!一个是无线网下传输的通道,一个是普通的传输通道。

关闭连接设备平台服务

CDPUserSvc服务禁用方法

运行regedit打开这个子项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

将下面子项属性修改

OneSyncSvc		的start属性修改为4
OneSyncSvc_随机数字	的start属性修改为4
UserDataSvc		的start属性修改为4
UserDataSvc_随机数字	的start属性修改为4
CDPSvc			的start属性修改为4
CDPUserSvc		的start属性修改为4
CDPUserSvc_随机数字 	的start属性修改为4

之的我们再重启,这个服务就不会启动了,如果要恢复,改回原值即可。

查看当前登录用户

C:\Users\Administrator>whoami
10_0_8_12\administrator
``

## 查看所有已登录用户
```bash
C:\Users\Administrator>query user
用户名                会话名             ID  状态    空闲时间   登录时间
>administrator         rdp-tcp#1           2  运行中          .  2021/12/7 12:26

通过任务管理器查看

任务管理器查看 --> 用户标签 --> 可以查看已登录用户信息以及运行的程序

image.png

Windows Server 安全

安全策略

组策略中的ip安全策略和系统自带的windows防火墙有什么区别?
简单理解,ip安全策略更高级有效,IP安全策略效率更高

配置好 IP 安全策略,就相当于拥有了一个免费的功能完善的防火墙。

IP 安全策略与 Windows 的防火墙不同,在于它提供了一个更底层的 TCP/IP 访问策略,可以更有效的对操作系统与外界系统间的网络联系进行控制。

windows 防火墙侧重于对应用程序的网络访问进行控制。
IP 安全策略只在乎操作系统的数据流的访问策略。

相比之下,IP 安全策略对于网络的限制是绝对的,比 Windows 防火墙更为绝对。而且,启用该策略,无需开启防火墙。

ip安全策略:其实可以理解为简单版的防火墙,使用操作上没有防火墙软件那么方便,因为是简单的网络访问控制,功能上也稍逊防火墙。

使用 netsh ipsec 管理本地安全策略

# 允许其他人访问我的WEB服务器,端口TCP(80);允许其他人远程连接到我的桌面,端口TCP(3389);
# 允许我打开其他网站,例如 BINGUN.BLOG.51CTO.COM ,需要使用的端口有 UDP(53)TCP(53)TCP(80)

# 创建策略
netsh ipsec static add policy name="My Policy" description="Port accessed policy."

# 创建两个过滤器
netsh ipsec static add filterlist name="Trust" description="Permit accessed rules."
netsh ipsec static add filterlist name="Distrust" description="Block accessed rules."

# 分别为过滤器创建规则
netsh ipsec static add filter filterlist="Trust" srcaddr=any srcport=53 dstaddr=me dstport=0 protocol=udp mirrored=yes description="Permit Any UDP(53) accessed Me UDP(All) ports."
netsh ipsec static add filter filterlist="Trust" srcaddr=any srcport=53 dstaddr=me dstport=0 protocol=tcp mirrored=yes description="Permit Any TCP(53) accessed Me TCP(all) ports."
netsh ipsec static add filter filterlist="Trust" srcaddr=any srcport=80 dstaddr=me dstport=0 protocol=tcp mirrored=yes description="Permit Any TCP(80) accessed Me TCP(all) ports."
netsh ipsec static add filter filterlist="Trust" srcaddr=any srcport=0 dstaddr=me dstport=80 protocol=tcp mirrored=yes description="Permit Any TCP(all) accessed Me TCP(80) ports."
netsh ipsec static add filter filterlist="Trust" srcaddr=any srcport=0 dstaddr=me dstport=3389 protocol=tcp mirrored=yes description="Permit Any TCP(all) accessed Me TCP(3389) ports."
netsh ipsec static add filter filterlist="Distrust" srcaddr=any srcport=0 dstaddr=me dstport=0 protocol=tcp mirrored=no description="Block Any TCP(all) accessed Me TCP(all) ports."
netsh ipsec static add filter filterlist="Distrust" srcaddr=any srcport=0 dstaddr=me dstport=0 protocol=udp mirrored=no description="Block Any(all) accessed Me UDP(all) ports."

# 创建过滤动作
netsh ipsec static add filteraction name="Permit" action=permit
netsh ipsec static add filteraction name="Block" action=block

# 将过滤器与过滤动作关联
netsh ipsec static add rule name="Trusted rules" policy="My Policy" filterlist="Trust" filteraction="Permit"
netsh ipsec static add rule name="Distrust rules" policy="My Policy" filterlist="Distrust" filteraction="Block"

# 启用和停止策略
netsh ipsec static set policy name="My Policy" assign=y
netsh ipsec static set policy name="My Policy" assign=n
-----------------------------------------------------------------
IP SEC 中的优先级是按所建规则的严格程度来区分的,规则越严格优先级越高。
=================================================================
# 以下是新添加的部分
netsh ipsec static add policy name=mypolicy (建一个安全策略)
netsh ipsec static add filterlist name=myaccess (允许筛选列表)
netsh ipsec static add filterlist name=myrefuse (拒绝筛选列表)
netsh ipsec static add filter filterlist=myaccess……(为myaccess添加一个筛选器)不建筛选器,建规则时会失败
netsh ipsec static add filter filterlist=myrefuse…… (为myrefuse添加一个筛选器)不建筛选器,建规则时会失败
netsh ipsec static add filteraction name=ok action=permit (建一个允许筛选操作)
netsh ipsec static add filteraction name=not action=block (建一个拒绝筛选操作)
netsh ipsec static add rule name=允许规则 policy=mypolicy filterlist=myaccess filteraction=ok (建一个规则,并将其添加到mypolicy策略中,并关联筛选操作)
netsh ipsec static add rule name=拒绝规则 policy=mypolicy filterlist=myrefuse filteraction=not (建一个规则,并将其添加到mypolicy策略中,并关联筛选操作)
netsh ipsec static set policy name=mypolicy assign=y (激活策略)

netsh ipsec static show policy all(显示所有安全策略)
netsh ipsec static show policy name=mypolicy(显示mypolicy安全策略)
netsh ipsec static show policy name=mypolicy level=verbose(显示mypolicy策略及相关筛选器及筛选操作等相关信息)
netsh ipsec static show filterlist name=myaccess lever=verbose(显示myaccess筛选列表等相关信息)

netsh ipsec static delete policy name=mypolicy(删除某个安全策略)
netsh ipsec static delete filterlist name=myaccess(删除某个筛选器列表)

程序实现,增加列表后然后才执行,每次执行前先删除现有的规则。

筛选器(filter)的参数及含义如下:

filterlist    筛选器要添加到的筛选器列表的名称。
srcaddr       源 ip 地址,dns 名称或 server 类型。
dstaddr       目标 ip 地址,dns 名称或 server 类型。
description   筛选器的简短信息。
protocol      可以是 ANY,ICMP,TCP,UDP,RAW,或者一个整数。
mirrored      值为 yes 将创建两个筛选器,每个方向一个。
srcmask       源地址掩码或一个 1 到 32 的前缀。
dstmask       目标地址掩码一个 1 到 32 的前缀。
srcport       数据包的源端口。值为 0 意味着任意端口。
dstport       数据包的目标端口。值为 0 意味着任意端口。

筛选器动作(filteraction)

name         筛选器操作的名称。
description  筛选器操作类别的简短信息。
qmpfs        设置快速模式完全向前保密的选项。
inpass       接受不安全的通讯,但是总是用 IPSec响应。这接受 yes 或 no。
soft         允许与没有 IPSec 的计算机进行不安全的通讯。可以是 yes 或 no。
action       可以是 permit,block 或 negotiate。

巧用netsh命令实现端口转发(端口映射)

好处:即时生效,随意修改删除,不影响其他ip映射

netsh interface portproxy add v4tov4 listenport=701 connectaddress=192.168.157.130 connectport=701 

netsh interface portproxy add v4tov4 listenport=2463 connectaddress=192.168.157.130 connectport=2468 

netsh interface portproxy add v4tov4 listenport=1993 connectaddress=192.168.157.130 connectport=1982 

netsh interface portproxy add v4tov4 listenport=50003 connectaddress=192.168.157.130 connectport=55555 

netsh interface portproxy show all
# 查看所有端口转发代理参数:
netsh interface portproxy show all

# 单ip转发 
# 将本地的8080端口的数据转发至192.168.56.101上的8080端口,也可以转发到其他外网ip 
# 添加: 
netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.56.101 connectport=8080 
# 删除: 
netsh interface portproxy delete v4tov4 listenport=8080 

# 双ip 多ip可以用下面 
# 添加一个IPV4到IPV4的端口映射,也就是指定一个ip 
# 添加: 
netsh interface portproxy add v4tov4 listenaddress=192.168.193.1 listenport=701 connectaddress=192.168.192.128 connectport=701 

#  指定监听ip和端口可以删除 
netsh interface portproxy delete v4tov4 listenaddress=192.168.193.1 listenport=701 

# 使用ipv4 to ipv4模式将源地址是10.252.167.136(内网服务器)的22端口代理到本服务器的所有地址的12345端口上。
netsh interface protproxy add v4tov4 listenaddress=* listenport=12345 connectaddress=10.252.167.136 connectport=22

netsh interface portproxy show all
侦听 ipv4:                     连接到 ipv4:
地址	             端口      地址	             端口
*                    12345     10.252.167.136        22     

端口转发配置完成后,直接访问本机的公网地址的12345端口,实际访问的为内网服务器10.252.167.136的22端口。

使用实例

如何通过本地安全策略阻止IP访问

1、在 组件管理 里面 选择 本地安全策略 ,然后右键 IP安全策略,在本地机器 选择 创建IP安全策略 点击 下一步 ,输入策略名称 (如输入“阻止”),然后点击 下一步,直到出现提示框,点击 完成 ,此时就创建了一个名为“阻止”的策略。

image.png

2、选择“阻止”的策略右键选择 属性 ,然后选择 添加 -- 下一步 -- 下一步 然后 网络类型 选择 所有网络连接,在点击 下一步,出现 安全规则向导 ,点击 添加 ;
image.png

image.png

使用Legacy IPSec Policy 限制指定IP连接的方法

打开 组策略管理器 选择:计算机配置 -- Windows设置-- 安全设置 -- IP安全策略 ,如图:
image.png

右键 IP安全策略 选择创建IP策略出现配置窗口,点 下一步,进入配置页面输入需要的策略名。如图:
image.png

选择 下一步 ,一直到策略属性的编辑选项卡处,建议 配置时取消添加向导 ,然后点击 添加 进入编辑模式,如图:
image.png

进入 IP筛选器列表 (注意:不要选择 使用 添加向导 ) 然后点击 添加 ,开始配置IP范围,如图:
image.png

其中:源地址指在网络中发起请求的一端称源地址;目标地址是指访问的对象称目标地址; 在这里源地址选择 一个特定的IP或者子网 ,目标为 我的IP地址 ,镜像选择后,这条策略会将源地址与目标地址反转一次,与我们这次的配置无关可以忽略。如下图:

image.png

点击 IP 筛选器 属性 中的 协议,默认是任何,这会拒绝所有的访问,也可以额外配置,在这里可以配置是否拒绝这个IP对服务器某个协议,或者某个协议的端口的操作。点两次回到我们IP规则的属性中,点 筛选器操作,在配置是对刚才的这些配置的处理行为。

image.png

在筛选器操作中,取消 使用 添加向导 ,后点 添加 ,弹出选项卡的操作属性,这里选择 阻止 ,如图:

image.png

这样,这台服务器就不会对某个IP提供服务了,即针对我们刚刚设置的源IP ,都不会提供服务了。

Windows防火墙

日志位置

首先要在设置中开启日志
image.png

windows 防火墙日志位置,首先要开启防火墙日志记录

%systemroot%\system32\LogFiles\Firewall\pfirewall.log

限制端口/IP/应用访问的方法以及例外的配置

如何允许程序或功能通过Windows防火墙

调出 允许的程序和功能 里面选择 允许运行另一个程序 ;
image.png

点击 浏览 选择应用的执行文件,我们选择的是IE浏览器实,际使用中可以根据自身需求自行选择,之后点击添加就可以了;

image.png

如何通过防火墙开启和关闭端口

点击 入站规则 -- 新建规则;
选择 端口,点击 下一步 ;
选择 端口类型 -- 输入要开启/关闭的端口然后点击 下一步 ;
选择 阻止连接/允许连接 并点击 下一步,最后选择作用域和输入规则名称后点击 完成 ;

  • 如果入站规则缺省规则是 阻止 ,那么选择选择 允许连接 表示开启该端口;
  • 如果入站规则缺省规则是 允许 ,那么选择选择 阻止连接 表示关闭该端口;

如通过防火墙何限定IP访问

点击 入站规则 -- 新建规则;
选择 自定义 规则 ,点击 下一步 ;
这个可以选择 所有程序 和 此程序路径 ,选择 所有程序 表示该规则试用与所有程序,如果想对单个程序生效就选择 此程序路径 ,本示例是选择 所有程序 ,点击 下一步 ;
默认点击 下一步 ;
在 此规则应用于那些远程IP地址? 里选择 下列IP地址 ,点 添加 ,根据自己的实际需求把需要过滤的IP填进去,然后点 确定 ,再点击 下一步 ;

image.png

选择 阻止连接/允许连接并点击 下一步,最后选择作用域和输入规则名称后点击 完成 ;

  • 阻止连接 说明定义的IP无法访问服务器任何的应用。
  • 允许连接 说明定义的IP可以访问服务器任何的应用。

如何通过防火墙实现端口仅允许特定IP访问

找到防火墙开启的端口右键点击 属性 ,选择 作用域 ;
image.png

在 远程IP地址 里选择 下列IP地址 ,点添加 ,根据自己的实际需求把需要允许IP填进去,然后点 确定 ,再点击 应用 ,就完成了操作。

image.png

image.png

3、输入 IP 筛选器列表名称,比如要屏蔽30.254.1.0/24IP网段的访问,可以命名为“30.254.1.0/24”,这样方便记忆,然后再点 添加;
image.png

4、然后进入 IP 筛选向导,点击 下一步 ,描述跟进自己需求进行填写,然后 点击 下一步 ;
image.png

5、然后源地址选择一个 特定的IP或子网 ,然后填写相应的IP或者子网,然后再点击 下一步 ;
image.png

6、目的地址选择 任何IP地址 ,点击 下一步 , 协议类型选择任何,再点击 下一步 ,然后再点击, 完成 ;
image.png

image.png

image.png

7、然后在 IP筛选器列表 里面把刚才创建的策略选择上点 下一步 ;
image.png

8、在 筛选器操作 里面选择 添加 ,然后再点 下一步 ,然后再填名称,点 下一步 ,操作行为选择 阻止 ,直至完成,然后应用该策略。
image.png

image.png

image.png

image.png

9、选择“阻止”这个策略,右键点击 分配 ,这样就阻止了定义的IP的访问了。

使用命令行配置高级安全Windows防火墙

# 导出防火墙配置文件。
netsh advfirewall export c:\adv.pol
# 导入防火墙配置文件。
netsh advfirewall import c:\adv.pol
# 防火墙恢复默认设置。
netsh advfirewall reset
# 关闭防火墙。
netsh advfirewall set allprofiles state off
# 开启防火墙。
netsh advfirewall set allprofiles state on
# 设置所有配置文件的默认防火墙策略为阻挡入站并允许出站通信。
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
# 删除名为ftp的规则。
netsh advfirewall firewall delete rule name=ftp
# 删除本地端口80的所有入站规则。
netsh advfirewall firewall delete rule name=all protocol=tcp localport=80
# 添加远程桌面的入站规则,允许端口3389。
netsh advfirewall firewall add rule name=远程桌面(TCP-In-3389) protocol=TCP dir=in localport=3389 action=allow

Windows 日志

Windows系统日志主要分为:系统日志、应用程序日志、安全日志以及应用程序和服务日志。

  • 系统日志包含 Windows 系统组件记录的事件。例如,系统日志中会记录在启动过程中加载驱动程序或其他系统组件失败。系统组件所记录的事件类型由Windows预先确定。
  • 应用程序日志包含由应用程序或程序记录的事件。例如,数据库程序可在应用程序日志中记录文件错误。程序开发人员决定记录哪些事件。
  • 安全日志包含诸如有效和无效的登录尝试等事件,以及与资源使用相关的事件,如创建、打开或删除文件或其他对象。管理员可以指定在安全日志中记录什么事件。例如,如果已启用登录审核,则安全日志将记录对系统的登录尝试。
  • 应用程序和服务日志是一种新类别的事件日志。这些日志存储来自单个应用程序或组件的事件,而非可能影响整个系统的事件。

进入事件查看器查看日志

在运行对话框中执行命令eventvwr,打开事件查看器。
image.png

修改日志路径并备份日志

日志默认保存在系统盘里面。日志最大值默认是20 MB,超过20 MB时会覆盖之前的事件。您可以根据自己的需求修改。
image.png

在事件查看器窗口,在左侧导航栏里,单击Windows 日志。在右边列表中,右键单击一个日志名称,选择属性。
image.png

在日志属性 窗口,按界面显示修改以下信息:
image.png

IPC$共享和其他共享(C$、D$)

net use共享命令的用法

net use                               #查看连接
net share                             #查看本地开启的共享
net share ipc$                        #开启ipc$共享
net share ipc$ /del                   #删除ipc$共享
net share c$ /del                     #删除C盘共享

net use \\192.168.10.15\ipc$ /u:"" ""     #与192.168.10.15建立ipc空连接
net use \\192.168.10.15      /u:"" ""     #与192.168.10.15建立ipc空连接,可以吧ipc$去掉
net use \\192.168.10.15 /u:"administrator" "root"   #以administrator身份与192.168.10.15建立ipc连接
net use \\192.168.10.15 /del              #删除ipc连接

net use \\192.168.10.15\c$  /u:"administrator" "root"  #建立C盘共享
dir \\192.168.10.15\c$                  #查看192.168.10.15C盘文件
dir \\192.168.10.15\c$\user             #查看192.168.10.15C盘文件下的user目录
dir \\192.168.10.15\c$\user\test.exe    #查看192.168.10.15C盘文件下的user目录下的test.exe文件
net use \\192.168.10.15\c$  /del        #删除该C盘共享连接

net use k: \\192.168.10.15\c$  /u:"administrator" "root"  #将目标C盘映射到本地K盘
net use k: /del                                           #删除该映射

IPC$

IPC$ (Internet Process Connection) 是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC$是NT2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT2000在提供了 ipc$ 功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(C$、D$、E$……)和系统目录(C:\windows)共享。所有的这些初衷都是为了方便管理员的管理。但好的初衷并不一定有好的收效,一些别有用心者会利用IPC$,访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测。

为了配合IPC共享工作,Windows操作系统(不包括Windows 98系列)在安装完成后,自动设置共享的目录为:C盘、D盘、E盘、ADMIN目录(C:\Windows)等,即为ADMIN$、C$、D$、E$等,但要注意,这些共享是隐藏的,只有管理员能够对他们进行远程操作。

输入 net share 可以查看开启的共享。
建立IPC空连接和使用非administrator用户建立IPC连接,是无法查看其他共享文件的(隐藏和非隐藏共享文件都查看不了)

net use \\192.168.10.15\ipc$ /u:"" ""
# 也可以直接 
net use \\192.168.10.15  /u:"" ""

image.png

使用adminstrator用户建立IPC连接,是有权限查看其他共享文件的,仅能查看共享文件,没有共享的文件也查看不了。

image.png

IPC空连接

在介绍空会话之前,我们有必要了解一下一个安全会话是如何建立的。
在Windows NT中,是使用 NTLM挑战响应机制认证。

空会话是在没有信任的情况下与服务器建立的会话(即未提供用户名与密码)。那么建立空会话到底可以做什么呢?
利用IPC$,黑客甚至可以与目标主机建立一个空的连接,而无需用户名与密码(当然,对方机器必须开了ipc$共享,否则你是连接不上的),而利用这个空的连接,连接者还可以得到目标主机上的用户列表(不过负责的管理员会禁止导出用户列表的)。建立了一个空的连接后,黑客可以获得不少的信息(而这些信息往往是入侵中必不可少的),访问部分共享,如果黑客能够以某一个具有一定权限的用户身份登陆的话,那么就会得到相应的权限。

image.png

IPC空连接可以做什么?

对于NT,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问everyone权限的共享,访问小部分注册表等,并没有什么太大的利用价值;对2000作用更小,因为在Windows 2000 和以后版本中默认只有管理员有权从网络访问到注册表,而且实现起来也不方便,需借助工具。
从这些我们可以看到,这种非信任会话并没有多大的用处,但从一次完整的ipc$入侵来看,空会话是一个不可缺少的跳板,因为我们从它那里可以得到户列表,而大多数弱口令扫描工具就是利用这个用户列表来进行口令猜解的,成功的导出用户列表大大增加了猜解的成功率,仅从这一点,足以说明空会话所带来的安全隐患,因此说空会话毫无用处的说法是不正确的。以下是空会话中能够使用的一些具体命令:

建立ipc$空连接:
net  use  \\192.168.10.15\ipc$    /u:""  "" 

建立ipc$非空连接: 
net use \\192.168.10.15\ipc$      /u:"用户名"    "密码"  或 net  use \\192.168.10.15   /u:"用户名"    "密码"

删除ipc$连接: 
net use  \\10.96.10.59\ipc$   /del 

建立其他连接,把目标主机的C盘映射到本地的Z盘:
net use  k:  \\10.96.10.59\c$   /u:"administrator"   "密码"

取消映射:  
net use  k:   /del  

image.png

image.png

有些主机的 Administrator 管理员的密码为空,那么我们可以尝试使用下面的命令进行连接,但是大多数情况下服务器都阻止了使用空密码进行连接。

ipc$使用的端口

首先我们来了解一些基础知识:

  • SMB: (Server Message Block) Windows协议族,用于文件打印共享的服务;
  • NBT: (NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。
  • 在WindowsNT中SMB基于NBT实现,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现

关闭IPC$共享

net share ipc$ /delete

修改注册表关闭
限制IPC$缺省共享:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa

  • Name:restrictanonymous
  • Type:REG_DWORD
  • Value:0x0(缺省)

0x1 匿名用户无法列举本机用户列表
0x2 匿名用户无法连接本机IPC$共享
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server。