网络安全之认识勒索病毒
一、什么是勒索病毒
勒索病毒,是一种新型电脑病毒,伴随数字货币兴起,主要以邮件、程序木马、网页挂马、服务器入侵、捆绑软件等多种形式进行传播,一旦感染将给用户带来无法估量的损失。如果遭受勒索病毒攻击,将会使绝大多数文件被加密算法加密,并添加一个特殊的后缀,用户无法读取原文件内容,被感染者一般无法解密,必须拿到解密的私钥才有可能无损还原被加密文件。而拿到解密的私钥,通常需要向攻击者支付高昂的赎金,这些赎金必须是通过数字货币支付,一般无法溯源,因此极易造成严重损失。
一般被勒索病毒感染后,将导致重要文件无法读取、关键数据被损坏、计算机被锁死无法正常使用等情况;为了指引被感染者缴纳赎金,勒索病毒还会在桌面等明显位置生成勒索提示文件,被感染者需要通过缴纳高额赎金才能获取解密密钥恢复计算机系统和数据文件的正常使用,多数情况即使缴纳了高额的赎金也未必能正常恢复数据。因此,勒索病毒具有数据恢复代价大和数据恢复可能性极低的特点。
二、勒索病毒传播路径
常见勒索病毒传播途径包括:
- 网站挂马。用户浏览挂有木马病毒的网站,上网终端计算机系统极可能被植入木马并感染上勒索病毒。
- 邮件传播。邮件传播是目前互联网上常见的病毒传播方式。攻击者通过利用当前热门字样,在互联网上撒网式发送垃圾邮件、钓鱼邮件,一旦收件人点开带有勒索病毒的链接或附件,勒索病毒就会在计算机后台静默运行,实施勒索。
- 漏洞传播。通过计算机操作系统和应用软件的漏洞攻击并植入病毒是近年来流行的病毒传播方式。最典型的案例是2017年在国内泛滥的WannaCry大规模勒索事件,攻击者正是利用微软445端口协议漏洞,进行感染传播网内计算机。
- 捆绑传播。攻击者将勒索病毒与其他软件尤其是盗版软件、非法破解软件、激活工具进行捆绑,从而诱导用户点击下载安装,并随着宿主文件的捆绑安装进而感染用户的计算机系统。
- 介质传播。攻击者通过提前植入或通过交叉使用感染等方式将携有勒索病毒的U盘、光盘等介质进行勒索病毒的移动式传播。此种传播途径往往发生在文印店、公共办公区域等高频交叉使用可移动存储介质的场所,也可能通过广告活动派发、街区丢弃等方式实现诱导用户使用携带勒索病毒的U盘、光盘。携带勒索病毒的光盘、U盘一旦接入计算机,勒索病毒即可能随着其自动运行或用户点击运行导致计算机被感染。
三、勒索病毒防护难点
教育、企业、制造业、医疗、政府等行业由于数据重要性和较好的经济能力,已经成为勒索团队的重点攻击目标。以下是勒索病毒常见的攻击行为。
从勒索病毒的攻击行为来看,勒索病毒的防护存以下几个主要难点:
- 勒索病毒变种多样 :对程序 / 脚本的加壳、混淆操作,已经有一套相当成熟的自动化流程,能够快速对病毒进行变种,从而绕过传统静态防护。
- 边界突破手段多样:包括但不限于 RDP 爆破、SMB 爆破、漏洞利用、钓鱼邮件等等,其中爆破手段是最常使用的入侵手法。
- 防御规避手段多样:如无文件攻击、白进程利用、卸载安全服务等,从运营数据看 ,
- 采用黑客工具直接卸载终端安全服务、利用白进程进行加密的绕过手段是最为常见。
- 勒索病毒识别精准度不足:部分终端防护可以识别出“病毒”,但不能进一步识别出“勒索病毒”,未引起足够重视,导致后续攻击成功。
四、常见的勒索病毒
1、GlobeImposter 勒索病毒
Globelmposter3.0家族的变种采用RSA+AES算法加密,目前该勒索病毒加密的文件暂无解密工具,文件被加密后会被加上Ox4444、China4444、Help4444、Rat4444 、Tiger4444 、Rabbit4444、Dragon4444 、Snake4444 、Horse4444、Goat4444 、Monkey4444、Rooster4444、Dog4444等后缀。在被加密的目录下会生成一个名为”HOW_TO_BACK_FILES”的txt文件,显示受害者的个人ID序列号以及黑客的联系方式等。
GlobeImposter病毒本身不具备传播性。主要通过垃圾邮件和RDP暴破植入传播。
2、GandCrab 勒索病毒
GandCrab勒索病毒于2018年1月面世以来,短短一年内历经多次版本更新,目前最新的版本为V5。该病毒利用多种方式对企业网络进行攻击传播,受感染主机上的数据库、文档、图片、压缩包等文件将被加密,若没有相应数据或文件的备份,将会影响业务的正常运行。从2018年9月份V5版本面世以来,GandCrab出现了包括了5.0、5.0.2、5.0.3、5.0.4以及最新的5.0.5多个版本的变种。病毒采用Salsa20和RSA-2048算法对文件进行加密,并修改文件后缀为.GDCB、.GRAB、.KRAB或5-10位随机字母,勒索信息文件为GDCB-DECRYPT.txt、KRAB-DECRYPT.txt、[5-10随机字母]-DECRYPT.html\txt,并将感染主机桌面背景替换为勒索信息图片。
GandCrab病毒家族主要通过RDP暴力破解、钓鱼邮件、捆绑恶意软件、僵尸网络以及漏洞利用传播。病毒本身不具有蠕虫传播能力,但会通过枚举方式对网络共享资源进行加密,同时攻击者往往还会通过内网人工渗透方式,利用口令提取、端口扫描、口令爆破等手段对其他主机进行攻击并植入该病毒。主要影响Windows 系统
3、Satan 变种病毒
撒旦(Satan)勒索病毒最开始可以追溯到2017年1月,当时病毒作者提供一个门户网站(RaaS,勒索软件即服务)允许任何人注册和创建撒旦勒索软件的自定义版本。
2017年11月左右,撒旦开发者开始更新勒索软件的计划,以更好地适应这些趋势。他们采取的第一步是在Satan程序中加入EternalBlue SMB漏洞的攻击和扫描模块。添加此漏洞意味着在撒旦感染计算机后,勒索软件将使用EternalBlue扫描本地网络,查找具有过时SMB服务的计算机并感染它们,从而最大限度地提高攻击效果。
2018年5月底出现了撒旦(Satan)勒索病毒的最新的变种,它不仅仅利用了永恒之蓝漏洞,还利用了多个WEB相关的漏洞进行传播。
2018年10月底MalwareHunterTeam发现了一款新型的Satan勒索病毒——DBGer勒索病毒。其属于撒旦(Satan)勒索病毒的最新的变种样本,不仅仅利用了之前的一些安全漏洞,同时还加上了Mimikatz的功能。其加密后的文件后缀名变为了.dbger。
2018年11月初,发现部分金融客户出现linux和windows跨平台的远控病毒样本,其样本行为与本次捕获样本极其相似。
2018年11月底,国内金融厂商开始出现Satan的最新变种,可以在Linux和Windows平台同时进行传播。将本地文件进行勒索加密,将加密后的文件名修改为.lucky。同时在Linux和Windows平台进行蠕虫式传播。
Satan病毒家族通过下面8种通用漏洞进行传播。目前发现Satan在linux平台会进行内部IP遍历+端口列表的方式进行漏洞扫描。在windows平台会以IP列表+端口列表的方式进行漏洞扫描。
JBoss反序列化漏洞(CVE-2013-4810)
JBoss默认配置漏洞(CVE-2010-0738)
Tomcat任意文件上传漏洞(CVE-2017-12615)
Tomcat web管理后台弱口令爆破
Weblogic WLS 组件漏洞(CVE-2017-10271)
Windows SMB远程代码执行漏洞MS17-010
Apache Struts2远程代码执行漏洞S2-045
Apache Struts2远程代码执行漏洞S2-057
4、Sodinoki 勒索病毒
业内发现邮件附件中的恶意样本,经分析,样本为2019年6月新出的sodinokibi勒索病毒。该病毒以钓鱼邮件来传播,邮件附件中包含伪装成word文档的可执行文件,诱导员工打开附件,加密主机文件。
Sodinokibi勒索病毒暂无解密工具,可先将被加密的重要文件、勒索信息文件备份保存,以待将来有解密工具时解密。
五、勒索病毒发展趋势
随着勒索技术的发展,勒索病毒呈现加密速度更快,跨平台发展的趋势。
- 加密方式更多的转向“间歇性加密”,加密速度更快
2021 年中旬,LockFile 勒索软件是首批使用间歇性加密来逃避检测机制的主要勒索软件系列之一,该勒索软件每隔 16 个字节对文件进行加密。此后,越来越多的勒索软件操作加入了这一趋势。如 BlackCat(ALPHV)、PLAY、Qyick、Agenda、Black Basta 等。间歇性加密指对受害者文件进行部分加密,这种加密方法不仅可以大大提高加密速度也可以帮助勒索软件运营商逃避基于统计分析的勒索软件检测技术。
- 编程语言更多的转向Rust,实现跨平台勒索
近年,越来越多的勒索软件编程语言转向 Rust 语言。该语言不仅具有与 C/C++ 类似的性能开发优势,而且具有更好的内存管理实现并发编程以避免内存错误,此外在静态分析工具低检出率方面也存在优势。BlackCat是第一个使用Rust的专业/商业化分布式恶意软件家族,也是迄今为止最繁荣的。
Rust 是一种跨平台语言,使威胁行为者能够轻松地为 Windows 和 Linux 等不同操作系统创建定制的恶意软件。现在有不少于 10 个勒索软件家族推出了针对 Linux 系统的版本,其中包括 REvil 的 Linux 版本、DarkSide、Dark Angels 、BlackMatter 以及 Defray777 等家族。勒索团伙倾向于以企业为目标,随着越来越多的组织将业务迁移到 VM 以简化设备管理和提高资源利用效率,将攻击目标转向 Linux 平台具有良好的商业意义,因为这样做可以让他们以最小的努力加密多个服务器。
六、勒索病毒防护建议:
- 定期做好重要数据、文件的备份工作;
- 及时更新升级操作系统和应用软件,修复存在的中高危漏洞;
- 安装正版杀毒软件并及时升级病毒库,定期进行全面病毒扫描查杀;
- 在系统中禁用U盘、移动硬盘、光盘的自动运行功能,不要使用/打开来路不明的U盘、光盘、电子邮件、网址链接、文件;
- 避免使用弱口令,为每台服务器和终端设置不同口令,且采用大小写字母、数字、特殊字符混合的高复杂度组合结构,口令位数应8位以上;
- 不要在网上下载安装盗版软件、非法破解软件以及激活工具。
七、勒索病毒应急处置流程
1、 检测阶段
如何发现勒索病毒,可通过如下两个场景进行识别:
- 场景一:感染但未加密
从攻击者渗透进入内部网络的某一台主机到执行加密行为往往有一段时间,如果在这段时间能够做出响应,完全可以避免勒索事件的发生。如果有以下情况,可能是处于感染未加密状态:
- 监测设备告警
如果使用了监测系统进行流量分析、威胁监测,系统产生大量告警日志,例如“SMB 远程溢出攻击”、“弱口令爆破”等,可能是病毒在尝试扩散。 - 资源占用异常
病毒会伪装成系统程序,释放攻击包、扫描局域网络 445 端口等占用大量系统资源,当发现某个疑似系统进程的进程在长期占用 CPU 或内存,有可能是感染病毒。
- 场景二:感染已加密
如果有以下情况,可能是处于感染且已加密状态:
- 统一的异常后缀
勒索病毒执行加密程序后会加密特定类型的文件,不同的勒索病毒会加密几十到几百种类型的文件,基本都会包括常见的文档、图片、数据库文件。当文件夹下文件变成如下统一异常不可用后缀,就是已经被加密了。 - 勒索信或桌面被篡改
勒索病毒加密文件的最终目的是索要赎金,所以会在系统明显位置如桌面上留下文件提示,或将勒索图片更改为桌面。勒索信绝大多数为英文,引导被勒索的用户交赎金。
2、抑制阶段
发现勒索病毒后如何进行隔离:
- 采取可行措施进行隔离,避免影响其它主机(如断网隔离)
- 通过边界控制设备,防止网络区域间相互影响
防止勒索病毒扩散:
- 采取及时的补救加固措施(安全加固)
- 相关漏洞的扫描修补与跟踪
- 配置核查
3、处置阶段
信息收集:
- IT管理人员截图取证主机中的勒索信息文件
- 截图取证被加密的时间和文件后缀名
- 检查服务器开放端口情况、补丁更新情况,并截图取证
- 检查服务器当日的安全日志,截图取证或导出当天日志
4、 恢复阶段
业务恢复:
- 从备份中恢复损坏的数据
- 调整可能影响业务正常运转的策略
文件解密:
- 付费风险:部分中招主机可能包含关键信息,企业处于业务考虑可能会考虑通过比特币付款,但不能确认付款可以恢复数据,建议企业慎重考虑。
- 解密工具:可查看安全厂商已发布部分勒索病毒的解密工具。
5、安全加固
通常应从如下方面进行加固:
- 多数勒索软件会利用RDP(远程桌面协议)暴力破解传播,在不影响业务的前提下避免3389端口对外开放。利用IPS、防火墙等设备对3389端口进行防护
- 开启windows自身的防火墙尽量关闭3389、445、139、135等不用的高危端口
- 在计算机中配置账户锁定策略,连续登陆失败即锁定账户
- 要求每台服务器设置唯一口令,且禁止设置弱口令(复杂度要求采用大小写字母、数字、特殊符号混合)
- 对员工进行安全意识培训,避免打开陌生邮件的附件、下载破解版软件和运行来源不明的程序
- 定时对重要数据进行异地备份,防止数据破坏和丢失
- 及时更新系统及应用版本,及时打漏洞补丁
- 及时安装防病毒软件,并更新到最新的病毒库和引擎
- 定时通过扫描器做专项口令排查,可排查通用口令和弱口令
部分公开的勒索相关解密工具
公开的勒索病毒相关解密工具(Free Ransomware Decryption Tools),可供应急查询使用:
1、kaspersky
Free Ransomware Decryptors - Kaspersky Lab https://noransom.kaspersky.com/
2、avast
Free Ransomware Decryption Tools | Unlock Your Files | Avast
https://www.avast.com/ransomware-decryption-tools
3、avg
Free Ransomware Decryption Tools | Unlock Your Files | AVG
https://www.avg.com/en-us/ransomware-decryption-tools
4、No More Ransom
The No More Ransom Project
https://www.nomoreransom.org/en/decryption-tools.html
5、Bitdefender
Free Tools – Bitdefender Labs
https://labs.bitdefender.com/category/free-tools/
6、MalwareHunter
ID Ransomware
https://id-ransomware.malwarehunterteam.com/index.php
7、McAfee
McAfee Ransomware Recover (Mr2) | McAfee Free Tools
https://www.mcafee.com/enterprise/en-us/downloads/free-tools/ransomware-decryption.html
8、 Trend Micro
Using the Trend Micro Ransomware File Decryptor Tool
https://success.trendmicro.com/portal_kb_articledetail?solutionid=1114221
博客文章:http://xiejava.ishareread.com/
相关文章:

网络安全之认识勒索病毒
一、什么是勒索病毒 勒索病毒,是一种新型电脑病毒,伴随数字货币兴起,主要以邮件、程序木马、网页挂马、服务器入侵、捆绑软件等多种形式进行传播,一旦感染将给用户带来无法估量的损失。如果遭受勒索病毒攻击,将会使绝…...
C语言手撕一个Hash表(HashTable)
什么是Hash Table 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。 散列函数 散列函数是将我们想插入的节点散列成一个数值的函数。它…...

代码随想录第二十七天(669、108、538、回溯算法介绍)
669. 修剪二叉搜索树 不能简单地通过递归实现代码,比如: class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root nullptr || root->val < low || root->val > high) return nullptr;root->left t…...

【Leetcode】设计循环队列
目录 【Leetcode622】设计循环队列 A.链接 B.题目再现 C.解法 【Leetcode622】设计循环队列 A.链接 设计循环队列 B.题目再现 C.解法 其实这题用数组或是链表都能解决,但是如果是用链表的话,那么队列为空的条件和队列满了的条件是一样的࿰…...

【Linux】浅谈shell命令以及运行原理
前言:上篇博文把linux下的基本指令讲解完了。本期我们聊聊Linux下【shell】命令及其运行原理。 目录 Shell的基本概念与作用 原理图展示 shell命令执行原理 Shell的基本概念与作用 Linux严格意义上说的是一个操作系统,我们称之为“核心(ker…...

【shell脚本】nginx服务管理及存活检测脚本实战
前言 今天终于敢说自己是csdn万粉博主了,感谢大家的厚爱,我会继续输出更多优质的好文章,一起学习。 座右铭: 先努力让自己发光,再帮助更多的人。 🏠 个人主页:我是沐风晓月 🧑 个人…...

web服务器—nginx
一、nginx介绍Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。和apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢。又因…...

网络安全工具大合集
还是一句话,功夫再高,也怕菜刀首先,恭喜你发现了宝藏。本文章集成了全网优秀的开源攻防武器项目,包含:信息收集工具(自动化利用工具、资产发现工具、目录扫描工具、子域名收集工具、指纹识别工具、端口扫描…...

什么是SHA256?比特币是如何应用SHA256算法的?
SHA 256算法是一种具有确定性的单向哈希函数 算法是执行操作的一系列步骤或过程 哈希函数是种数学函数,输入的长度任意,但是输出长度固定,可以理解为文件的数字指纹,同一个输入值,总是得相同的输出 SHA256࿰…...

JDK20正式发布了GA版本,短期维护支持,以及JDK21预览
最近,Oracle发布了JDK20,相比对于Java开发者来说,JDK的发版是比较收关注的事情了,小简也来和大家一起了解了解JDK20发生了什么变化呢? 首先,JDK20是一个短周期版本,有6个月的维护时间࿰…...

.NET/C#/GC与内存管理(含深度解析)
详情请看参考文章:.NET面试题解析(06)-GC与内存管理 - 不灬赖 - 博客园 (cnblogs.com)一、对象创建及生命周期一个对象的生命周期简单概括就是:创建>使用>释放,在.NET中一个对象的生命周期:new创建对象并分配内存对象初始化…...

Java开发 | 内部类 | 静态内部类 | 非静态内部类 | 匿名内部类
目录 1.内部类 1.1内部类的简单创建 1.2内部类的分类 1.2.1普通内部类 1.2.2静态内部类 1.3匿名内部类 1.4局部内部类 1.内部类 内部类就是一是一个类里面装着另外一个类,就像俄罗斯套娃一样。最外层的类我们叫外部类,内层的类我们叫内部类。 1…...

Portal认证
Portal认证Portal认证简介Portal认证协议Portal认证方式Portal认证流程Portal认证用户下线Portal认证简介 定义: Portal认证通常也称作Web认证,一般将Portal认证网站成为门户网站。用户上网时,必须在门户网站进行认证,如果没有认…...

论文解读:ChangeFormer | A TRANSFORMER-BASED SIAMESE NETWORK FOR CHANGE DETECTION
论文地址:https://arxiv.org/pdf/2201.01293.pdf 项目代码:https://github.com/wgcban/ChangeFormer 发表时间:2022 本文提出了一种基于transformer的siamese网络架构(ChangeFormer),用于一对共配准遥感图…...

Redis 内存优化技巧
这次跟大家分享一些优化神技如何用更少的内存保存更多的数据?我们应该从 Redis 是如何保存数据的原理展开,分析键值对的存储结构和原理。从而继续延展出每种数据类型底层的数据结构,针对不同场景使用更恰当的数据结构和编码实现更少的内存占用…...

【java】笔试强训Day2【倒置字符串与排序子序列】
目录 ⛳选择题 1.A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明: 2.下面代码将输出什么内容:( ) 3.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有&…...

【Linux】基础IO(一) :文件描述符,文件流指针,重定向
🍎作者:阿润菜菜 📖专栏:Linux系统编程 码字不易,请多多支持😘😘 这是目录重新认识文件系统内部的文件操作我们C语言的文件操作系统内部的文件操作OS一般会如何让用户给自己传递标志位的&#x…...

【C语言】通讯录的实现(静态版)
【C语言】通讯录的实现(静态版一.前言1.前期准备a.菜单实现b.联系人结构体的构建c.菜单选项的功能d.#define 的定义2.功能的实现a.初始化通讯录b.增加联系人c.显示通讯录d.查找联系人e.修改联系人d.删除联系人3. 总代码test.ccontact.ccontact.h一.前言 本文将会用c语言实现一…...

IDEA一键构建Docker镜像
效果 Idea右击Dockerfile文件,直接在服务器构建docker镜像 开整 1、下载docker插件 2、编写Dockerfile文件 # 基础镜像 FROM openjdk:8-jdk-alpine # 工作目录 WORKDIR /opt/apps/gateway/logs/ # 文件拷贝,把target目录下的jar报拷贝到镜像的/APP/目录下 ADD…...

QT的使用3:鼠标事件
鼠标事件0 事件1 需求2 查看控件的事件处理函数3 UI设计4 新建一个类,继承QLabel5 对已有对象进行类型提升6 重写事件处理函数7 项目进一步拓展(1)获取鼠标按键(2)鼠标移动(3)显示多个按键&…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...