渗透测试-权限维持

  • 发表于
  • 周边

linux权限维持

渗透测试中维护权限是最常见的需求

添加账号

一般在具有root权限时可以使用以下2种方式添加root权限用户

1.通过useradd,后面账号backdoor/123456

2.通过直接对etc/passwd文件进行写入

清理以上痕迹

设置sid位的文件

在具有高权限时,将高权限的bash文件拷贝隐藏起来,设置其suid位,则可后面通过低权限用户获取高权限操作

在高权限时

使用时带上-p参数

清理痕迹

通过环境变量植入后门

以下是环境变量的位置

写入shell反弹语句

这样在重启的时候就会弹shell过来了,会根据登的哪个账号弹哪个账号的shell

以下文件需要高权限,为全局变量

以下为当前用户的环境变量

清理痕迹

删除配置文件中添加的代码即可

写入ssh公钥

首先在本地生成ssh公钥和私钥

在自己的~/.ssh/目录下执行

会生成以下三个文件,id_rsa.pub为公钥,id_rsa为私钥

xxx为公钥内容,也就是id_rsa.pub的内容

清理痕迹

删除目标上的 ~/.ssh/authorized_keys即可

ssh任意密码登录

在root用户时,suchfnchsh命令不需要输入密码认证

通过软连接将ssh的服务进行cp,并重命名为以上命令

连接

清理方式

修改sshd文件做到无认证登录

建立连接时ssh服务器端使用的是sshd文件来管理接收到的连接,此时对sshd文件内容进行修改,则能做到无认证登录

将原先的sshd文件进行转义

开始使用perl进行写脚本

其实整个脚本在第二行执行了个if,如果端口符合要求,则直接建立连接,否则正常执行sshd

其中的LF代表开启的端口号是19526

赋予新文件权限并重启sshd

连接方式

清除痕迹

利用vim可执行python脚本预留后门

先准备个python的反弹shell脚本

找到提供vim插件的python的扩展包目录

找到python的扩展位置

进入目录

将内容写入

运行,并删除文件

清除痕迹

计划任务

因为计划任务使用的是/bin/sh,所以传统的直接通过bash反弹shell是行不通的

这里借助python,或者perl都可

使用python

使用perl

清除痕迹

如果通过crontab -e 不知道为啥会顶掉上一个

动态加载库

使用export LD_PRELOAD=./xx.so

这时候./xx.so中如果对函数进行了重定义,调用了该函数的程序就会执行重定义的代码

这里使用以下项目

准备2个文件

  • msf的木马
  • Veglie项目

使用方法将MSF木马Vegile上传到目标服务器上,把项目目录弄成http服务

目标服务器上

解压后运行

清理痕迹

清理起来十分麻烦,因为直接删除进程是删不掉的,因此存在父进程与多个子进程

清理思路挂起父进程,清除所有子进程再删除父进程

windows权限维持

比较常见的windows提取

计划任务

拿到shell后先修改编码

设置计划任务,每分钟调用运行一次shell

清理痕迹

映像劫持

在程序运行前会去读自己是否设置了debug,需要对劫持的程序有权限

以下通过注册表对setch.exe设置了debug为cmd.exe程序,也就是按5下shift会弹出cmd的框

清理痕迹

HKLM是HKEY_LOCAL_MACHINE

找到目标的注册表,将debug内容删除

环境变量

用户登陆时会去加载环境变量,通过设置环境变量UserInitMprLogonScript值,实现登陆时自动运行脚本

清理痕迹

直接找到 开始->用户头像->更改我的环境变量

进程退出劫持

在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit下控制程序的退出时执行的动作,但有时候权限很迷

清理痕迹

找到目标的注册表删除即可

AppInit_DLLs注入

User32.dll 被加载到进程时,设置其注册表的中能设置加载其他的dll文件,则可使其加载恶意的脚本

对HKML注册表的内容进行修改一般都要system权限

Windows 10

其他

这样在打开cmd或者计算器这种能调用User32.dll动态链接库的时候就会触发

清理痕迹

到对应注册表的位置删除Appinit_Dlls的值

bits文件传输

通过bitsadmin从网络上下载的时候可以额外执行脚本

每次开机的时候会触发

清理痕迹

COM组件劫持

将脚本放入com组件中

清理痕迹

删除注册表中的路径值,并通过路径删除木马文件

替换cmd.exe

将sethc.exe(按shift 5下)替换成cmd.exe

清理痕迹

找个原版的setch.exe 覆盖回去

Winlogon劫持

winlogon是windows登录账户时会执行的程序,这里将其注册表中写入木马运行的dll路径

清理痕迹

删除注册表的shell中的值,并且找到后门文件删除掉

组策略

需要能远程登录到桌面

输入gpedit.msc打开组策略,需要管理员账号

在用户与计算机中的windows设置中均可以对脚本进行编辑,用户策略是用户权限,计算机策略是system权限

清理痕迹

打开组策略找到脚本,删除即可

修改计算器启动服务调用的程序

启动服务有些需要手动启动,比如IEEtwCollectorService 服务,这里做后面的思路是,该服务本身对计算机运行没有影响,因此将其手动启动改成自动启动,并将其运行的脚本改成木马后门

类比一下windows10 没有IEEtwCollectorService 服务可以选择COMSysApp服务

返回的是system权限

清理痕迹

将篡改的注册表改回来,并且删除目标木马

MSDTC 服务

MSDTC 服务默认会加载一个在windowss/system32下的不存在的 oci.dll,思路是将cs.dll 改名为oci.dll,放到system32下即可,该方法需要管理员用户权限

清理痕迹

删除的时候因为被多个进程调用,因此删不掉,这里可以换个思路修改其名称,重启再删除

启动项

启动项是会去指定文件夹下运行文件夹下的所有服务,这个文件夹是

也会运行以下注册表中的脚本

清理痕迹

删除文件夹下的木马或者删除注册表中添加的恶意木马注册表,并找到木马位置删除

cmd 启动劫持

在cmd启动时回去注册表中查看是否有AutoRun的健值,如果有则会运行其中的脚本

清理痕迹

在管理员权限下删除注册表的值即可

wmic事件

本文转载于:https://www.cnblogs.com/sijidou/p/13124098.html