# Windows应急响应

## windows

### 文件

`C:\Documents and Settings\Administrator\Recent`是Windows系统中存储最近使用的文件和文件夹的目录。该目录下存储着用户最近打开或使用过的文件和文件夹的快捷方式，便于用户快速访问。

`%UserProfile%\Recent`是Windows系统中存储当前用户最近使用的文件和文件夹的目录。该目录下存储着当前用户最近打开或使用过的文件和文件夹的快捷方式，便于用户快速访问。

### 日志

打开`事件查看器`：`win`键 + r，输入`eventvwr.msc`

#### 服务器日志

FTP连接日志和HTTPD事务日志：`%systemroot%\system32\LogFiles`

IIS日志默认存放在`System32\LogFiles`目录下，使用`W3C`拓展格式

#### 操作系统日志

登录成功的所有事件：

> LogParser.exe -i:EVT –o:DATAGRID “SELECT * FROM c:\Security.evtx where EventID=4624″

指定登录时间范围的事件：

> LogParser.exe -i:EVT –o:DATAGRID “SELECT * FROM c:\Security.evtx where TimeGenerated>’2018- 06-19 23:32:11′ and TimeGenerated<’2018-06-20 23:34:00′ and EventID=4624″

提取登录成功的用户名和IP：

> LogParser.exe -i:EVT –o:DATAGRID “SELECT EXTRACT_TOKEN(Message,13,’ ‘) as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,’|') as Username,EXTRACT_TOKEN(Message,38,’ ‘) as Loginip FROM c:\Security.evtx where EventID=4624″

登录失败的所有事件：

> LogParser.exe -i:EVT –o:DATAGRID “SELECT * FROM c:\Security.evtx where EventID=4625″

系统历史开关机记录：

> LogParser.exe -i:EVT –o:DATAGRID “SELECT TimeGenerated,EventID,Message FROM c:\System.evtx where EventID=6005 or EventID=6006″

### 账号

`lusrmgr.msc` 查看账户变化

`net user` 列出当前登录账户

`wmic UserAccount get` 列出当前系统所有账户

在Windows系统中，可以使用命令行或注册表编辑器来隐藏或克隆账户

隐藏账户：

- 使用命令行

  > net user username[要隐藏的用户名] /active:no

这样的操作会将指定账户的状态设置为不活动状态，从而在登录界面中隐藏该账户

- 使用注册表编辑器(`win`键 + r，再输入`regedit`)

  > 打开注册表找到以下路径
  >
  > `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList`

在`UserList`下创建一个新的DWORD值，命名为要隐藏的账户名称，值设为0即可。

克隆账户

- 使用命令行

  其中`oldusername`为要克隆的账户名称，`newusername`为新建账户的名称

  > 

- - net user newusername /add
  - net localgroup administrators newusername /add
  - reg copy "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\SID-from-oldusername" "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\SID-from-newusername" /s

这会创建一个新的账户，并将其添加到管理员组中。然后，将旧账户的注册表信息复制到新账户中，从而复制其设置和配置

- 使用注册表

  找到以下路径：

  > HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

复制要克隆账户的SID子项，将其命名为新建账户的SID，并修改以下键值：

> ProfileImagePath：将其值修改为新建账户的用户文件夹路径；
>
> Sid：将其值修改为新建账户的SID；

然后在`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList`下创建一个新的DWORD值，命名为新建账户的名称，值设为0即可。

### 进程

tasklist /svc | findstr pid

- `tasklist`命令用于列出当前正在运行的进程及其相关信息。
- `/svc`参数用于显示与每个进程相关联的服务信息。
- `|`符号是管道符号，用于将前面命令的输出作为后面命令的输入。
- `findstr`命令用于在输出中查找包含指定字符串的行。
- `pid`是一个占位符，表示需要替换为要查找的进程ID。

netstat -ano

用于显示当前计算机的网络连接状态和进程信息

- `netstat`命令用于显示当前计算机的网络连接状态。
- `-a`参数用于显示所有的网络连接，包括监听连接、已连接和未连接。
- `-n`参数用于显示IP地址和端口号，而不是域名和服务名。
- `-o`参数用于显示与每个连接相关联的进程ID。

会列出所有当前计算机的网络连接状态，包括本地和远程IP地址、端口号、连接状态以及与每个连接相关联的进程ID

wmic process | find "Proccess Id"

是一个Windows命令行命令，用于查找当前正在运行的进程ID

- `wmic process`命令用于列出当前正在运行的进程信息。
- `|`符号是管道符号，用于将前面命令的输出作为后面命令的输入。
- `find`命令用于在输出中查找包含指定字符串的行。
- `"Process Id"`是要查找的字符串，表示需要查找包含进程ID的行。

msinfo32

`msinfo32`是Windows系统中的一个系统信息工具，用于查看计算机硬件和软件配置信息

- 运行`msinfo32`之后，会打开“系统信息”窗口，其中包含了很多关于计算机的详细信息，包括操作系统信息、硬件设备信息、系统组件信息、软件环境信息等。

wmic process get caption,commandline /value

用于获取当前正在运行的进程的名称和命令行信息

- `wmic process`命令用于列出当前正在运行的进程信息。
- `get caption,commandline`参数用于获取进程的名称和命令行信息。
- `/value`参数用于以键值对（Key=Value）的形式显示输出结果。

### 端口

netstat -ano

- `-a`参数用于显示所有的网络连接，包括监听连接、已连接和未连接。
- `-n`参数用于显示IP地址和端口号，而不是域名和服务名。
- `-o`参数用于显示与每个连接相关联的进程ID。

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)
`状态的类型`

`CLOSED`：无连接活动或正在进行 `LISTEN`：监听中等待连接 `SYN_RECV`：服务端接收了SYN `SYN_SENT`：请求连接等待确认 `ESTABLISHED`：连接建立数据传输 `FIN_WAIT1`：请求中止连接，等待对方FIN `FIN_WAIT2`：同意中止，请稍候 `ITMED_WAIT`：等待所有分组死掉 `CLOSING`：两边同时尝试关闭 `TIME_WAIT`：另一边已初始化一个释放 `LAST_ACK`：等待原来的发向远程TCP的连接中断请求的确认 `CLOSE-WAIT`：等待关闭连接

### 自启动

- `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run`

- `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce`

- `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run`

- `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`

- `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce`

- `HKLM\Software\Microsoft\Windows\CurrentVersion\RunonceEx(ProfilePath)\Start Menu\Programs\Startup` 启动项

  msconfig 启动选项卡

  gpedit.msc 组策略编辑器

  开始>所有程序>启动

  msconfig-启动

### 计划任务

- C:\Windows\System32\Tasks\
- C:\Windows\SysWOW64\Tasks\
- C:\Windows\tasks\
- schtasks
- taskschd.msc
- at

开始-设置-控制面板-任务计划

### misc

- 查看指定时间范围包括上传文件夹的访问请求：

  `findstr /s /m /I “UploadFiles” *.log`

- 关键信息是x.js

  `findstr /s /m /I “x.js” *.asp`

## 被感染后的临时处置办法

被感染主机：

（1） 立即对被感染主机进行隔离处置，禁用所有有线及无线网卡或直接拔掉 网线，防止病毒感染其他主机；

（2） 禁止在被感染主机上使用 U 盘、移动硬盘等可执行摆渡攻击的设备； 未被感染主机：

（1） 关闭 SSH、RDP 等协议，并且更改主机密码；

（2） 备份系统重要数据、且文件备份应与主机隔离；

（3） 禁止接入 U 盘、移动硬盘等可执行摆渡攻击的设备；



### windows排查

#### 文件排查

- 开机启动有无异常文件

```
开始`->`运行`->`msconfig
```

- 各个盘下的temp(tmp)相关目录下查看有无异常文件：windows产生的临时文件

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

- Recent是系统文件夹，里面存放着你最近使用的文档的快捷方式，查看用户recent相关文件，通过分析最近打开分析可疑文件：

\==`开始`->`运行`->`%UserProfile%\Recent`\==

- 根据文件夹内文件列表时间进行排序，查找可疑文件。当然也可以搜索指定日期范围的文件夹文件

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

查看文件时间，创建时间、修改时间、访问时间，黑客通过菜刀类工具改变的是修改时间。若以如果修改时间在创建时间之前明显是可疑文件

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

#### 进程排查

- netstat -ano 查看目前的网络连接，定位可疑的ESTABLSHED

  netstat 显示网络连接、路由表和网络接口信息；

  > -a 显示所有网络连接、路由表和网络接口信息 -n 以数字形式显示地址和端口号 -o 显示与每个连接相关的所属进程 ID -r 显示路由表 -s 显示按协议统计信息、默认地、显示 IP

  常见的状态说明：

  > LISTENING 侦听状态 ESTABLISHED 建立连接 CLOSE_WAIT 对方主动关闭连接或网络异常导致连接中断

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

- 根据netstat定位出的pid，再通过`tasklist`命令进行进程定位

  tasklist 显示运行在本地或远程计算机上的所有进程

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

- 根据`wmic process`获取进程的全路径[任务管理器也可以定位到进程路径]

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

#### 系统信息排查

- 查看环境变量的设置

  \==我的电脑==->==属性==->==高级系统设置==->==高级==->==环境变量==

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

```
排查内容：

> temp变量的所在位置的内容；后缀映射PATHEXT是否包含有非windows的后缀；有没有增加其他的路径到PATH变量中（对用户变量和系统变量都要进行排查）；
```

- windows计划任务

  ==程序==->==附件==->==系统工具==->==任务计划程序==

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

- windows账号信息，如何隐藏账号等

\==开始==->==运行==->==compmgmt.msc==->==本地用户和组==->==用户==

（用户名以`$`结尾的为隐藏用户，如：admin$）

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

命令行方式：net user，可直接收集用户信息（此方法看不到隐藏用户），若需查看某个用户的详细信息，可使用命令==->net user username==

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

- 查看当前系统用户的会话

  使用==->query user==查看当前系统的会话，比如查看是否有人使用远程终端登录服务器；

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

```
\==logoff==踢出该用户；
```

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

- 查看==systeminfo==信息，系统版本以及补丁信息

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

#### 日志排查

> 打开事件管理器

\==开始==->==管理工具==->==事件查看==

\==开始==->==运行==->==eventvwr==

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

> 主要分析安全日志，可以借助自带的筛选功能

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

> 可以把日志导出为文本格式，然后使用`notepad++`打开，使用正则模式去匹配远程登录过的ip地址，在界定事件日期范围的基础

正则：

\==((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))==

![图片](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/640)

这样就可以把界定事件日期事件快速检索出来进行下一步的分析