从安全“黑历史”到学习工具:在Ubuntu上搭建Telnet靶场,亲手复现经典网络攻击

基本SQL语句大全-收缩数据库 收缩数据库 --重建索引 DBCC REINDEX DBCC INDEXDEFRAG --收缩数据和日志 DBCC SHRINKDB DBCC SHRINKFILE 3、压缩数据库 dbcc shrinkdatabase(dbname) 4、转移数据库给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname' go 5、检查备份集 立即下载

在Ubuntu上构建Telnet历史漏洞实验室:从协议考古到安全实战

当我们回顾互联网的发展历程,Telnet协议就像一位饱经沧桑的老兵,见证了网络通信从明文传输到加密保护的演进。如今,这个几乎被SSH完全取代的协议,却成为了网络安全教学的绝佳标本。本文将带你在Ubuntu系统上搭建一个完整的Telnet实验环境,通过亲手复现那些曾经震惊业界的经典攻击,深入理解现代网络安全防护的重要性。

1. 搭建Telnet历史实验室环境

在开始我们的时间旅行之前,需要建立一个安全的实验沙箱。推荐使用VirtualBox或VMware创建Ubuntu虚拟机作为实验平台,这样可以完全隔离实验环境与主机系统。

1.1 安装Telnet服务组件

现代Ubuntu系统默认不再包含Telnet服务,我们需要手动安装两个关键组件:

sudo apt update
sudo apt install openbsd-inetd telnetd -y

openbsd-inetd 是一个超级服务守护进程,它负责管理像Telnet这样的传统网络服务。安装完成后,系统会自动配置并启动服务。验证服务状态可以使用:

sudo netstat -tulnp | grep inetd

1.2 配置网络访问控制

为了实验安全,我们需要限制Telnet服务的访问范围。编辑inetd配置文件:

sudo nano /etc/inetd.conf

找到telnet相关行,在服务地址前添加 127.0.0.1 限制仅本地访问:

telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd -L /usr/sbin/login

修改后重启服务使配置生效:

sudo systemctl restart openbsd-inetd

2. Telnet协议安全缺陷深度解析

Telnet设计于1969年,当时网络安全概念尚未形成。让我们通过实验揭示其根本性缺陷。

2.1 明文传输实验

启动Wireshark抓包工具,过滤telnet流量:

sudo apt install wireshark -y
sudo wireshark &

在过滤栏输入 tcp.port == 23 ,然后从另一终端连接Telnet:

telnet localhost

登录后观察Wireshark捕获的数据包,你会震惊地发现:

  • 每个按键都会生成独立的数据包
  • 用户名和密码以ASCII明文传输
  • 所有会话内容都可被中间节点读取

2.2 会话劫持演示

Telnet的另一个致命缺陷是缺乏会话完整性保护。使用如下Python脚本可以模拟中间人攻击:

import socket
import sys

def relay(src, dst):
    while True:
        data = src.recv(4096)
        if not data: break
        print("[*] Intercepted: ", data.decode('ascii', errors='ignore'))
        dst.send(data)

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 23))

attacker_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
attacker_socket.bind(('localhost', 2323))
attacker_socket.listen(1)

victim_socket, _ = attacker_socket.accept()

import threading
threading.Thread(target=relay, args=(client_socket, victim_socket)).start()
threading.Thread(target=relay, args=(victim_socket, client_socket)).start()

这个简单的代理会记录所有经过的Telnet通信内容,展示了为何现代协议都采用端到端加密。

3. 从Telnet到SSH的安全进化

对比Telnet,SSH协议解决了三大核心安全问题:

安全特性 Telnet SSH
数据传输加密 ❌ 明文 ✅ AES等
身份认证完整性 ❌ 弱认证 ✅ 公钥认证
会话完整性保护 ❌ 无保护 ✅ MAC校验
防重放攻击 ❌ 易受攻击 ✅ 序列号保护

在Ubuntu上安装SSH服务只需一条命令:

sudo apt install openssh-server -y

观察SSH的Wireshark流量,你会发现所有内容都变成了加密数据包,这正是现代网络安全的基础。

4. 构建综合网络安全实验

将Telnet实验室扩展为完整的网络安全教学平台:

4.1 网络拓扑设计

使用Linux网络命名空间创建复杂实验环境:

sudo ip netns add client
sudo ip netns add server
sudo ip netns add attacker

4.2 高级攻击模拟

使用Scapy构造定制化攻击数据包:

from scapy.all import *

def telnet_intercept(pkt):
    if pkt.haslayer(TCP) and pkt[TCP].dport == 23:
        if pkt.haslayer(Raw):
            payload = pkt[Raw].load.decode('ascii', errors='ignore')
            if "password" in payload.lower():
                print(f"[!] Possible password found: {payload.strip()}")

sniff(filter="tcp port 23", prn=telnet_intercept)

4.3 防御措施实践

配置iptables防火墙规则保护Telnet服务:

sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 23 -j DROP

5. 从历史漏洞到现代防护

通过Telnet实验室,我们可以清晰看到网络安全演进的轨迹。现代协议设计必须考虑:

  • 加密传输 :防止数据泄露
  • 强身份认证 :避免冒充攻击
  • 完整性校验 :防御中间人篡改
  • 最小权限原则 :限制服务访问范围

在完成实验后,切记关闭Telnet服务以消除安全隐患:

sudo systemctl disable openbsd-inetd
sudo apt purge telnetd openbsd-inetd -y
常用SQL语句大全 软件介绍 常用SQL语句大全 语 句 功 能  --数据操作  SELECT --从数据库表中检索数据行和列  INSERT --向数据库表添加新数据行  DELETE --从数据库表中删除数据行  UPDATE --更新数据库表中的数据  --数据定义  CREATE TABLE --创建一个数据库表  DROP TABLE --从数据库中删除表  ALTER TABLE --修改数据库表结构  CREATE VIEW --创建一个视图  DROP VIEW --从数据库中删除视图  CREATE INDEX --为数据库表创建一个索引  DROP INDEX --从数据库中删除索引  CREATE PROCEDURE --创建一个存储过程  DROP PROCEDURE --从数据库中删除存储过程  CREATE TRIGGER --创建一个触发器  DROP TRIGGER --从数据库中删除触发器  CREATE SCHEMA --向数据库添加一个新模式  DROP SCHEMA --从数据库中删除一个模式  CREATE DOMAIN --创建一个数据值域  ALTER DOMAIN --改变域定义  DROP DOMAIN --从数据库中删除一个域 Tags: 常用SQL语句大全 SQL语句大全 SQL 立即下载

相关推荐

数据库基本----SQL语句大全

数据库基本----SQL语句大全

基础SQL语法语句大全(一篇学会所有SQL语句)

基础SQL语法语句大全(一篇学会所有SQL语句)

m0_51697147的博客 9110

CrewAI 多 Agent 实战包 v1(Mock免Key跑通+通义千问可选+流水线样例)

本资源是 CrewAI 风格多 Agent 可运行工程包:研究→写作→审校等流水线样例。无 API Key 时自动降级 Mock 引擎跑通;有 DASHSCOPE_API_KEY 时可接真实 CrewAI + 通义千问。含中文 README、samples、smoke 留档、单元测试。本包不含密钥。关联博客:https://blog.youkuaiyun.com/mtl1994

SQL基础语句大全(建议收藏)

本文系统梳理了SQL基础语句,涵盖单表查询、多表关联、聚合统计、子查询等核心操作。HAVING 用于对分组后的结果进行条件过滤(类似WHERE,但作用于分组后)‌。SELECT * 表示选取表中所有字段,适用于快速查看全表数据‌。DISTINCT 用于消除重复记录,适用于统计唯一值场景‌。GROUP BY 需与非聚合字段结合使用,支持多字段分组‌。支持 >, <, =,!=, >=, <= 等运算符‌。右连接保留右表全部数据,全外连接保留两表所有记录‌。仅返回两表中匹配的行,适用于需要精确关联的场景‌。

u013115157的博客 8860

市场销售总监年终汇报必备PPT.pptx

市场销售总监年终汇报必备PPT

MATPOWER下载安装教程

将MATPOWER文件复制在C:\Program Files (x86)\MATLAB\R2016b\bin目录下。原来的窗口中多了很多文件路径,点击【保存】,再点击【关闭】选择所要添加的MATPOWER文件夹,点击【选择文件夹】二、将MATPOWER放在bin目录下。找到菜单栏的【设置路径】点击【添加并包含子文件】一、从官网下载后解压。

weixin_47365903的博客 2万+

SQL常用语句(基础)大全

数据控制语言:用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视。DQL是数据查询语言,主要就是select配合其他限制条件的关键字进行查询。如果查询数据的来源来自多张表,则必须对这些表进行连接查询。DDL是数据定义语言,主要是对数据库和数据表的操作。只有当第一个排序条件值一样,才会执行第二个排序条件。左外连接:是表1和表2的交集再并上表1的其他数据。右外连接:是表1和表2的交集再并上表2的其他数据。DML是数据操作语言,主要是对数据表的操作。

mzdxxcdh的博客 8562

Unity工业数据可视化:基于ModbusTCP的实时数据通信实战

本文详细介绍了在Unity中实现工业数据可视化的核心方法,重点讲解了基于ModbusTCP协议与PLC等工业设备进行实时数据通信的实战流程。内容涵盖NModbus库的集成、Modbus Slave模拟器的使用、TCP连接的建立与多线程安全通信、数据读写与解析,以及如何将实时数据驱动3D场景,为构建工业数字孪生与监控系统提供完整解决方案。

ol7890123的博客 554

SQL常用语句大全

SQL常用语句大全

龙木南的博客 8万+

从零搭建高通8255车载开发环境:QNX SDP、SDK配置与镜像编译全流程

本文详细介绍了如何从零搭建高通SA8255P车载开发环境,涵盖QNX SDP部署、SDK工具链配置到多系统镜像编译的全流程。特别针对SAIL安全岛镜像构建、QNX系统优化及Android系统资源分配等关键技术点提供实战指导,帮助开发团队高效完成车载系统开发与调试。

weixin_33582311的博客 364

Matlab实战:3种雷达间歇采样干扰的仿真与识别(附完整代码)

本文通过Matlab实战,详细仿真了雷达有源间歇采样干扰的三种核心样式:直接转发、重复转发和循环转发干扰。文章提供了完整的代码实现,并深入探讨了基于时频分析和循环平稳分析的特征提取与识别方法,为雷达抗干扰技术的学习与实践提供了清晰的工程实现路径。

weixin_29053695的博客 364

SQL常用语句大全!!!(语法+实战)

SQL 书写规范:关键字(SELECT、INSERT 等)建议大写,字段名、表名小写,增强可读性;缩进对齐,便于后期维护。避免性能陷阱:尽量不使用SELECT *,精准查询所需字段;避免在 WHERE 子句中对字段使用函数(会导致索引失效);大批量操作数据时,优先使用批量语句(如批量 INSERT)。谨慎使用危险操作:UPDATE、DELETE、DROP、TRUNCATE 等语句,使用前务必加 WHERE 条件(除全表操作外),最好先备份数据或通过事务测试。不同数据库差异。

2501_91025807的博客 4778

视频编解码——视频编解码器工作原理

目录什么是视频编解码器为什么需要视屏编解码器视频编码器与数字视频容器时评编码器的历史 什么是视频编解码器 简单来说就是用于压缩或解压数字视频的软件或硬件 编码是信息从一种形式或格式转换为另一种形式的过程,解码是编码的反向。 适用于视频 编码是将视频、音频的原始格式的文件通过压缩技术转换成另一种格式(视频如h.264,h.265,m-jpeg等)。 解码是编码的反向过程。应用中,一般是将h.264,h.265格式数据解码成如YUV格式裸流交给显示器显示。 为什么需要视屏编解码器 需要在有限的带宽或存储空间

路人coder 1万+

ShellShock漏洞原理与实战:从环境变量注入到CGI安全攻防

环境变量注入是一种常见的安全漏洞类型,攻击者通过控制程序运行时的环境变量数据,影响程序行为或执行恶意代码。其原理在于程序在处理外部输入时,未对可能被篡改的环境变量进行充分验证和过滤,导致数据与代码边界模糊。在Web安全领域,这种技术缺陷常通过CGI(通用网关接口)暴露,因为CGI机制会将HTTP请求头等信息自动转换为环境变量传递给后端脚本。ShellShock(CVE-2014-6271)正是这一攻击面的经典案例,它利用Bash解析函数定义时的逻辑缺陷,使得附加在环境变量中的恶意命令得以执行。该漏洞虽然已过

a1311010193的博客 457

随机森林遥感反演详细教程

通过这篇文章,我们展示了如何使用Python对筛选后的影响因子进行随机森林建模,并应用于遥感数据反演森林生物量的任务。该流程不仅可以提高预测精度,还能有效处理大规模的遥感数据,为生态监测和森林管理提供重要支持。

热爱分享,热爱记录 2952

Python 爬虫实战:爬取万方数据文献信息

本文介绍了基于Python爬虫技术合规获取万方数据文献信息的方法。通过分析万方数据的请求机制与反爬策略,采用requests库结合Session维持合法会话,实现了文献标题、摘要、作者等核心元数据的提取。文章详细讲解了Token验证、动态请求构造、JSON数据解析等关键技术,并提供了完整可运行代码。同时强调严格遵守《万方数据知识服务平台用户协议》,控制请求频率,仅限学术研究使用。该方案为万方数据文献信息获取提供了标准化解决方案,支持数据清洗、结构化存储及后续分析应用。

2503_91057718的博客 2135

SQL语句-小记录

1.SQL语句 2. 一、基础 1.1、说明:创建数据库 2.CREATE DATABASE database-name 3.2、说明:删除数据库 4.drop database dbname 5.3、说明:备份sql server 6.— 创建 备份数据的 device 7.USE master 8.EXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mss...

weixin_45412748的博客 1331

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数据库常用的sql语句大全--sql

前言 本片博客使用mysql数据库进行数据操作,使用Navicat for mysql 这个IDE进行可视化操作。每个SQL语句都是亲身实验验证的,并且经过自己的思考的。能够保证sql语句的可运行性。 sql语句的命令不区分大小写,但储存的数据是区分大小写的。在这里我们统一使用英文小写进行命令编辑。如果喜欢大写的可以使用IDE编辑器的一键美化功能,可以统一转化为大写。并且会对你的sql语句进行美化,例如自动换行等。 创建删除(数据库、表) 创建数据库 create database <数据库名

m0_68064743的博客 3万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

基础sql语句大全(详细解析,注意事项)

1. 数据库及表操作 注意:如果需要本文的数据库文件,请下载,否则自己建表练习 sql文件 1.1. 创建、删除、查看数据库 1.1.1. 查看mysql服务器中所有数据库 SHOW DATABASES; show databases; show datebases; -- 错误写法 书写规范: SQL语句中的关键字在书写时应该大写;自定义的库名、表(别)名、列(别)名 应该小写。 SELECT * FROM stu WHERE id>2; -- 规范写法 select * from stu whe

yyclassmvp的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

sql语句

一、基础   1、说明:创建数据库   CREATE DATABASE database-name   2、说明:删除数据库   drop database dbname   3、说明:备份sql server   --- 创建 备份数据的 device   USE master   EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssq

Chaos_hu__的专栏 1778

MySQL 常用SQL语句

mysql教程 ■  在DOS命令行启动MYSQL服务: net start mysql ■在DOS命令行停止MYSQL服务: net stop mysql ■查看被监听的端口: netstat –na | findstr 3306 findstr用于查找后面的端口是否存在。 ■创建数据库用户:只有根用户(root)才有创建新用户的权限 CREATE USER

4683

数据库---经典SQL语句大全

一、基础 1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' -...

Nagile-zhou博客 1240
上一篇: PHP安全开发启示录:从‘无字母数字RCE’漏洞看如何设计更安全的正则过滤规则
下一篇: 用‘搭积木’思维理解刚体运动:从机器人底盘到机械臂,手把手推导速度转换链
weixin_33728708
博客等级 码龄11年 5472粉丝 1452原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值