python黑帽子学习笔记(三)—— ssh隧道
1.SSH隧道。
SSH隧道是一个不可思议又难以理解和配置的技术方法,特别是在做反向SSH隧道的时候!关于SSH隧道的具体内容可以访问这个链接学习!
https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/index.html
2.rforword.py工具。
paramiko库文件中包含了叫rforward.py的文件,他可以完美解决这个问题可以到下面的链接去去下载它!
https://github.com/paramiko/paramiko/tree/master/demos
3.代码。
main()函数
def main():options, server, remote = parse_options() #确保必要参数传递给了脚本password = Noneif options.readpass:password = getpass.getpass("Enter SSH password: ")client = paramiko.SSHClient() #建立与SSH客户端的连接client.load_system_host_keys()client.set_missing_host_key_policy(paramiko.WarningPolicy())verbose("Connecting to ssh host %s:%d ..." % (server[0], server[1]))try:client.connect(server[0],server[1],username=options.user,key_filename=options.keyfile,look_for_keys=options.look_for_keys,password=password,)except Exception as e: #测试代码print("*** Failed to connect to %s:%d: %r" % (server[0], server[1], e))sys.exit(1)verbose("Now forwarding remote port %d `to` %s:%d ..."% (options.port, remote[0], remote[1]))try: #调用函数reverse_forward_tunnel(options.port, remote[0], remote[1], client.get_transport())except KeyboardInterrupt: #测试代码如果端口关闭打印消息print("C-c: Port forwarding stopped.")sys.exit(0)
rever_forward_tunnel函数
def reverse_forward_tunnel(server_port, remote_host, remote_port, transport):transport.request_port_forward("", server_port) #转发SSH服务器一个端口的TCP连接while True:chan = transport.accept(1000) #建立新的传输通道if chan is None:continuethr = threading.Thread(target=handler, args=(chan, remote_host, remote_port) #调用handler函数处理)thr.setDaemon(True)thr.start()
Paramiko中,两个主要的通信方法:transport用来处理和维护加密连接,channel加密传输会话中发送和接受数据。
handler函数
def handler(chan, host, port):sock = socket.socket()try:sock.connect((host, port))except Exception as e:verbose("Forwarding request to %s:%d failed: %r" % (host, port, e))returnverbose("Connected! Tunnel open %r -> %r -> %r"% (chan.origin_addr, chan.getpeername(), (host, port)))while True: #数据的发送和接收r, w, x = select.select([sock, chan], [], [])if sock in r:data = sock.recv(1024)if len(data) == 0:breakchan.send(data)if chan in r:data = chan.recv(1024)if len(data) == 0:breaksock.send(data)chan.close()sock.close()verbose("Tunnel closed from %r" % (chan.origin_addr,))
4.测试。
我们先在Windows系统上运行rforword.py并将它设置成WEB服务器和kail SSH服务器端的中间人程序。我将WEB服务器设置成了百度。
Windows主机上可以看到,连接到了192.168.179.128的SSH服务端并且打开了8080端口,程序将数据流量导向180.97.33.108主机的80端口。现在用Linux服务器上的浏览器访问http://127.0.01:8080,通过SSH隧道连接到位于180.97.33.108的WEB服务器上。返回Windows主机,可以看到Paramiko已经建立了连接:
python黑帽子学习笔记(三)—— ssh隧道相关推荐
- python白帽子学习笔记(整合)
python白帽子学习笔记(整合) 学习笔记目录 python白帽子学习笔记(整合) 前言 一.基础篇 1.正则表达式 2.列表 3.元组带上了枷锁的列表 4.奇葩的内置方法 5.格式化字符 6.序列 ...
- Python计算机视觉编程学习笔记 三 图像到图像的映射
图像到图像的映射 (一)单应性变换 1.2 仿射变换 (二)图像扭曲 2.1 图像中的图像 2.2 图像配准 (三)创建全景图 3.1 RANSAC 3.2 拼接图像 (一)单应性变换 单应性变换是将 ...
- Python基础函数学习笔记(三)
数学函数,字符串,对象. Simple Python Build-in Functions abs,max(x1,x2,x3...),min(x1,x2,x3...),pow(a,b),round(x ...
- python自然语言处理学习笔记三
第三章 处理原始文本 1 从网络和硬盘访问文本 #<<罪与罚>>的英文翻译 未作测试?? From utlib import urlopen Url='http://www.g ...
- scapy python3_【Python3黑帽子学习笔记 on Mac】第四章 Scapy:网络的掌控者
Scapy:网络掌控者? 哇咔咔,我喜欢!可是我的问题来了,貌似Scapy只支持Python2,那哥哥这Python3咋办呢? [最新更新:目前scapy目前已经支持Python3了,就不用折腾这个了 ...
- Python黑帽子-黑客与渗透测试编程之道
Python黑帽子-黑客与渗透测试编程之道 时间:2018年4月28日 前言 本文参考了两篇资料,优化补全了代码内容 giantbranch 的 Python黑帽子–黑客与渗透测试编程之道 意闲 的 ...
- 关于《Python黑帽子:黑客与渗透测试编程之道》的学习笔记
本篇文章是学习<Python黑帽子:黑客与渗透测试编程之道>的笔记,会持续地将书上的代码自己敲一遍,从而让自己对Python的安全编程有更多的了解,同时希望各位可以给给建议,不足之处太多了 ...
- 《Python 黑帽子》学习笔记 - 命令行选项和参数处理 - Day 4
在学习书中 netcat 代码的时候,发现其命令行选项和参数的处理存在一些小问题,由于调用 getopt 模块的 getopt() 函数时参数设置不当,会引起代码执行时获取不到参数值或引发异常.该问题 ...
- 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(三):scapy——网络的掌控者
目录 前言 1.窃取email认证 2.ARP缓存投毒 3.PCAP文件处理 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源码,并自己将其中一些改写成P ...
- 《Python 黑帽子》学习笔记 - 准备 - Day 1
信息安全是一个有意思的方向,也是自己的爱好,从零开始,想在工作之余把这个爱好培养为自己的技术能力,而 web 安全相对来说容易入门些,于是选择 web 渗透测试作为学习的起点,并选择同样是容易入门的 ...
最新文章
- !! 机器学习常用工具
- magic系统将来能升鸿蒙,荣耀30和V30将首批搭载Magic UI 4.0 后续可升级鸿蒙系统
- 【转】Linux查看物理CPU个数、核数、逻辑CPU个数
- Proxy + Reflect 实现 响应的数据变化
- 自学Python六 爬虫基础必不可少的正则
- 中国行业趋势报告——2022年度特别报告
- 【less-7】sqli-labs靶场第七关(类似less-5)
- 基于人脸识别的课堂签到管理系统(二)---摄像头显示
- 12.RabbitMQ实战 --- 聪明的Rabbit:扩展RabbitMQ
- Java - Java Mail邮件开发(2)springboot +Java Mail + Html
- STM32单片机雨滴模块
- 北斗三号频点_海格通信发布国内首批北斗三号双模应用专用芯片
- SQL创建数据库与写入数据的全过程
- 曾经跨过山和大海的百度AI技术汇,跨进北工大!
- oracle的安装教程
- App渗透中常见的加密与解密。
- [从头读历史] 第301节 山海经 其实这不是一本神话书
- 【最近抖音上元宇宙虚拟项目七国争霸,直播互动游戏源码解析】
- Python数据分析实战之物流行业数据分析
- 分享给你一份温暖,如冬日暖阳亦或是一杯午后的咖啡
热门文章
- C/C++网络编程详解(Windows版)
- Recycler 病毒(jwgkvsq.vmx)手动查杀
- 基于wemos d1 按键开锁
- 什么是Proxy Server
- ucenter通信失败和不能登录的解决
- “跟技术Leader聊了10分钟,我就猜到下周要发生重大宕机事故!”
- 【NetBeans IDE 8.2链接MySQL数据库教程】
- 遥感图像几何校正 matlab,利用多项式实现图像几何校正(Matlab实现)
- 计算半圆弧的周长及半圆的面积
- FastStone Capture滚动截屏丢失行解决办法