ссылка: https://www.securitylab.ru/analytics/509199.php
P2P things
Сайт прикладной вирусологии.
16 июня 2020 г.
25 декабря 2018 г.
Как запустить процесс с правами System
запускаем командную строку с правами администратора:
После этого в Windows 7/2008R2 появится сообщение, что имеется сообщение от системного сервиса. Смотрим сообщение и оказываемся в окне с cmd.
После того как сервис стал не нужен:
sc create RunAsSystemSvc binpath= "cmd /K start" type= own type= interact
sc start RunAsSystemSvc
После этого в Windows 7/2008R2 появится сообщение, что имеется сообщение от системного сервиса. Смотрим сообщение и оказываемся в окне с cmd.
После того как сервис стал не нужен:
sc stop RunAsSystemSvc
sc delete RunAsSystemSvc
UPD: для всех версий windows годится
psexec.exe -i -s cmd.exe
28 января 2018 г.
Speedup yaourt in Arch Linux
I greatly increased the speed of yaourt by replacing curl with wget. I have no doubt that curl can accomplish this task no worse than wget, but wget is my favorite tool that I can use efficiently.
In yaourtrc, there is no mention of XferCommand, because yaourt uses makepkg for this. Therefore, make the following changes to the /etc/makepkg.conf configuration:
DLAGENTS = ('ftp :: / usr / bin / wget -c --passive-ftp -t 3 -waitretry = 3 -O% o% u' 'http: / usr / bin / wget -c -t 3 -waitretry = 3 -O% o% u' 'https :: / usr / bin / wget -c -t 3 - waitaitry = 3 --no-check-certificate -O% o% u' 'rsync :: / usr / bin / rsync -z% u% o' 'scp :: / usr / bin / scp -C% u% o') ## DLAGENTS = ('ftp :: / usr / bin / curl -fC - -ftp-pasv --retry 3 --retry-delay 3 -o% o% u' ## 'http :: / usr / bin / curl -fLC - --retry 3 --retry-delay 3 -o% o% u' ## 'https :: / usr / bin / curl -fLC - --retry 3 --retry-delay 3 -o% o% u' ## 'rsync :: / usr / bin / rsync --no-motd -z% u% o' ## 'scp :: / usr / bin / scp -C% u% o')
21 августа 2017 г.
PowerShell: удалённое выполнение в безопасном режиме
В продолжение предыдущей статьи.
Итак,
если вы просрали пароль на KES10 и имеете только удалённый доступ к хосту.
или же, если вам надо запустить какую-то команду в безопасном режиме
Потребуется некоторая предварительная подготовка
1. Создать на хосте пользователя с правами локального администратора
2. Создать на хосте папку (например, c:\Scripts) и скопировать в неё (только!) необходимые скрипты.
Ваши скрипты безопасного режима должны соответствовать маске SafeMode-*.ps1. Скрипт ищет их в той же папке, где находится сам.
Если же вам надо запустить что-то другое, это что-то другое можно указать в параметре -SafeCommand скрипта. Например, вы можете указать свой CMD файл и вписать в него всё,
что хотели.
Execute-SafeMode.ps1 -UserName Admin -Password AdminPassword
DomainName - необязательный. Если не указан, то принимается название хоста.
Password - обязательный. пароль пользователя с административными правами
RebootImmediately - необязательный. флажок немедленной перезагрузки. Если указать, скрипт немедленно перезагрузит хост в безопасный режим
SafeCommand - необязательный. команда для безопасного режима
Порядок работы скрипта
При запуске в нормальном режиме
Итак,
если вы просрали пароль на KES10 и имеете только удалённый доступ к хосту.
или же, если вам надо запустить какую-то команду в безопасном режиме
Потребуется некоторая предварительная подготовка
1. Создать на хосте пользователя с правами локального администратора
2. Создать на хосте папку (например, c:\Scripts) и скопировать в неё (только!) необходимые скрипты.
Ваши скрипты безопасного режима должны соответствовать маске SafeMode-*.ps1. Скрипт ищет их в той же папке, где находится сам.
Если же вам надо запустить что-то другое, это что-то другое можно указать в параметре -SafeCommand скрипта. Например, вы можете указать свой CMD файл и вписать в него всё,
что хотели.
Использование
Execute-SafeMode.ps1 -UserName Admin -DomainName MyDomain -Password AdminPassword -RebootImmediately -SafeCommand "cmd.exe /c c:\windows\temp\1.tmp"Execute-SafeMode.ps1 -UserName Admin -Password AdminPassword
Параметры
UserName - обязательный, имя пользователя с правами администратора. пользователь должен иметь возможность входа в безопасном режиме, иначе хост так и останется в безопасном режиме.DomainName - необязательный. Если не указан, то принимается название хоста.
Password - обязательный. пароль пользователя с административными правами
RebootImmediately - необязательный. флажок немедленной перезагрузки. Если указать, скрипт немедленно перезагрузит хост в безопасный режим
SafeCommand - необязательный. команда для безопасного режима
Порядок работы скрипта
При запуске в нормальном режиме
- скрипт устанавливает себя в ключ RunOnce для запуска в безопасном режиме
- скрипт устанавливает указанные логин и пароль для автоматического входа (AutoAdminLogon)
- скрипт устанавливает флаг загрузки в безопасном режиме (с помощью bcdedit)
- скрипт выполняет перезагрузку, если указан флаг немедленного исполнения
- происходит автоматический вход в систему под указанной учётной записью
- происходит автоматический запуск скрипта
- скрипт выполняет команду, переданную в параметре SafeCommand
- скрипт ищет рядом с собой файлы по маске SafeBoot-*.ps1 и последовательно выполняет их. Порядок выполнения не определён
- скрипт удаляет параметры автоматического входа в систему (AutoAdminLogon)
- скрипт устанавливает флаг загрузки в нормальном режиме
- скрипт выполняет перезагрузку
# Execute-SafeMode.ps1 # LastUpdate: 21.08.2017 17:30:04 # [CmdletBinding()] Param( [string]$UserName = "", [string]$Domain = "", [string]$Password = "", [switch]$RebootImmediately = $false, [string]$SafeCommand = "" ) $SaveVerbosePreference = $VerbosePreference $VerbosePreference = 'Continue' $SaveCurrentDir = Get-Location $keyRunOnce = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" $keyWinlogon = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" $runEntry = "*ExecuteSafeMode" $SaveVerbosePreference = $VerbosePreference $VerbosePreference = 'Continue' $PluginScriptMask = "SafeMode-*.ps1" $MyScript = $MyInvocation.MyCommand.Path $WorkDir = Split-Path ($MyInvocation.MyCommand.Path) -Parent $SafeBootScript = "$WorkDir\safeboot.cmd" $LogFile = [IO.Path]::ChangeExtension($MyInvocation.MyCommand.Path, "log") Set-Location $WorkDir $IsNormalBoot = (Get-WmiObject -Class Win32_ComputerSystem | Select-Object -ExpandProperty BootupState) -like '*Normal*' function myeval($cmd) { if ($cmd[0] -eq '"') { Invoke-Expression "& $cmd" } else { Invoke-Expression $cmd } } function Write-RegistryString($Path, $Name, $Value) { Remove-ItemProperty -Path $Path -Name $Name | Out-Null New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType String } Write-Verbose "Arguments is" Write-Verbose "`tUserName : $UserName" Write-Verbose "`tDomain : $Domain" Write-Verbose "`tPassword : $Password" Write-Verbose "`tRebootImmediately : $RebootImmediately" Write-Verbose "`tSafeCommand : $SafeCommand" Write-Verbose "" Write-Verbose "`tIsNormalBoot : $IsNormalBoot" # проверка аргументов if ($IsNormalBoot) { if ( [string]::IsNullOrEmpty($UserName) ) { throw New-Object System.ArgumentException("Parameter -UserName must not be NULL") } if ( [string]::IsNullOrEmpty($Password) ) { throw New-Object System.ArgumentException("Parameter -Password must not be NULL") } } if ($IsNormalBoot) { # создаём файл safeboot.cmd с указанной командой $CommandLine = "PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File {0} -SafeCommand `"{1}`"" -f $MyScript, $SafeCommand $CommandLine | Set-Content -Path $SafeBootScript -Force # устанавливаем в HKLM\\RunOnce наш скрипт safeboot.cmd if ( !(Test-Path -Path $keyRunOnce) ) { New-Item -Path $keyRunOnce -Force } Remove-ItemProperty -Path $keyRunOnce -Name $runEntry -Force | Out-Null New-ItemProperty -Path $keyRunOnce -Name $runEntry -Value $SafeBootScript -PropertyType String -Force | Out-Null # назначаем AutoAdminLogon пользователя if ( !(Test-Path -Path $keyWinlogon) ) { New-Item -Path $keyWinlogon -Force | Out-Null } Remove-ItemProperty -Path $keyWinlogon -Name "AutoAdminLogon" | Out-Null New-ItemProperty -Path $keyWinlogon -Name "AutoAdminLogon" -Value "1" -PropertyType String -Force if ( [string]::IsNullOrEmpty($Domain) ) { $Domain = $env:COMPUTERNAME } Remove-ItemProperty -Path $keyWinlogon -Name "DefaultDomainName" -Force | Out-Null New-ItemProperty -Path $keyWinlogon -Name "DefaultDomainName" -Value $Domain -PropertyType String -Force | Out-Null Remove-ItemProperty -Path $keyWinlogon -Name "DefaultUserName" -Force | Out-Null New-ItemProperty -Path $keyWinlogon -Name "DefaultUserName" -Value $UserName -PropertyType String -Force | Out-Null Remove-ItemProperty -Path $keyWinlogon -Name "DefaultPassword" -Force | Out-Null New-ItemProperty -Path $keyWinlogon -Name "DefaultPassword" -Value $Password -PropertyType String -Force | Out-Null # устанавливаем следующую перезагрузку в безопасном режиме & bcdedit /set `{current`} safeboot minimal # перегружаемся if ($RebootImmediately) { Restart-Computer -Force } } else # Safe Mode { # удаляем Auto Logon пользователя if ( !(Test-Path -Path $keyWinlogon) ) { New-Item -Path $keyWinlogon -Force } Remove-ItemProperty -Path $keyWinlogon -Name "AutoAdminLogon" | Out-Null New-ItemProperty -Path $keyWinlogon -Name "AutoAdminLogon" -Value "0" -PropertyType String | Out-Null Remove-ItemProperty -Path $keyWinlogon -Name "DefaultPassword" -Force | Out-Null Remove-ItemProperty -Path $keyWinlogon -Name "DefaultDomainName" -Force | Out-Null Remove-ItemProperty -Path $keyWinlogon -Name "DefaultUserName" -Force | Out-Null # устанавливаем следующую перезагрузку в нормальный режим & bcdedit /deletevalue `{current`} safeboot # удаляем SafeBoot.cmd Remove-Item -Path $SafeBootScript -Force | Out-Null # выполняем команду пользователя if ( ![string]::IsNullOrEmpty($SafeCommand) ) { try { "Invoke $SafeCommand :" | Out-File -FilePath $LogFile -Append -Encoding unicode myeval $SafeCommand | Out-File -FilePath $LogFile -Append -Encoding unicode } catch { "ERROR: $($_.Exception.Message)" | Out-File $LogFile -Append -Encoding unicode } } Get-ChildItem -Path $WorkDir -Filter "SafeMode-*.ps1" | Select-Object -ExpandProperty FullName | ForEach-Object { $SafeModePlugin = $_ try { "Invoke $SafeModePlugin :" | Out-File -FilePath $LogFile -Append -Encoding unicode Invoke-Expression -Command $SafeModePlugin | Out-File -FilePath $LogFile -Append -Encoding unicode "Invoke $SafeModePlugin : OK" | Out-File -FilePath $LogFile -Append -Encoding unicode } catch { "ERROR: $($_.Exception.Message)" | Out-File -FilePath $LogFile -Append -Encoding unicode } } # перегружаемся & shutdown.exe -r -f -t 3 } $VerbosePreference = $SaveVerbosePreference Set-Location $SaveCurrentDir
PowerShell: Если забыли пароль от KES10
Итак, если вы просрали пароль на KES10 и хотите его сбросить - поможет следующий скрипт.
Скрипт необходимо выполнять в безопасном режиме.
safemode-resetpwdkes10.ps1
Скрипт необходимо выполнять в безопасном режиме.
safemode-resetpwdkes10.ps1
# howto reset KES10 # x64: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\KasperskyLab\protected\KES10\settings # x32: HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\protected\KES10\settings # "EnablePswrdProtect"=dword:00000000 # "OPEP"="" # $keyKES10x64 = "HKLM:\SOFTWARE\Wow6432Node\KasperskyLab\protected\KES10" $keyKES10x86 = "HKLM:\SOFTWARE\KasperskyLab\protected\KES10" $valPassworpProtect = "EnablePswrdProtect" $valOPEP = "OPEP" if ([System.IntPtr]::Size -eq 8) # is x64 bit system { $keyKES10Settings = "$keyKES10x64\Settings" } else { $keyKES10Settings = "$keyKES10x86\Settings" } New-ItemProperty -Path $keyKES10Settings -Name $valPassworpProtect -Value 0 -PropertyType DWord -Force | Out-Null New-ItemProperty -Path $keyKES10Settings -Name $valOPEP -Value "" -PropertyType String -Force | Out-Null# the end :-)
13 августа 2017 г.
О DPI (a.k.a. Deep Packet Inspection)
DPI (Deep Packet Inspection) — технология классификации и фильтрации трафика по его содержимому.
Подробности в статье "Типы DPI"
Подробности в статье "Типы DPI"
21 июля 2017 г.
Скрипт PowerShell, проверяющий хосты локальной сети на наличие установленных патчей уязвимости протокола SMBv1
Скрипт PowerShell, проверяющий хосты локальной сети на наличие установленных патчей уязвимости протокола SMBv1
# -- function Find-CryHotFixes { param([string]$ComputerName) # List of all HotFixes containing the patch $hotfixes = @( "KB4012598", "KB4012212", "KB4012215", "KB4015549", "KB4019264", "KB4012213", "KB4012216", "KB4015550", "KB4019215", "KB4012214", "KB4012217", "KB4015551", "KB4019216", "KB4012606", "KB4015221", "KB4016637", "KB4019474", "KB4013198", "KB4015219", "KB4016636", "KB4019473", "KB4013429", "KB4015217", "KB4015438", "KB4016635", "KB4019472", "KB4018466") # Search for the HotFixes $HotfixIDs = Get-HotFix -ComputerName $ComputerName | Where-Object {$hotfixes -contains $_.HotfixID} | Select-Object -ExpandProperty "HotFixID" $obj = New-Object -TypeName PSCustomObject -Property @{ ComputerName = $ComputerName; CryHotFixes = [string]$HotfixIDs } $obj | Write-Output } # -- Clear-Host $FoundFixes = @() Get-ADComputer -Filter { Enabled -eq $true } ` -Properties IPv4Address -SearchBase "OU=Computers,DC=office,DC=domain,DC=com" | Where-Object { Test-Connection -ComputerName $_ -Quiet } | ForEach-Object { $pc = $_ $FoundFixes += ( Find-CryHotFixes -ComputerName $pc ) } $FoundFixes | ft -au
Подписаться на:
Сообщения (Atom)