网站首页 关于作者 Bee 的所有文章

  • 赋予数据灵魂—印巴两国网空测绘数据对比

    一.摘要 获取网空测绘数据后,去分析数据和解读数据、让数据说话,这是 ZoomEye 团队常说的“赋予数据灵魂”,也是网空测绘的真正价值所在。网空测绘数据,不仅可以应用于网络空间领域,去感知网络空间层面的态势,也可以与其他行业领域的数据进行结合,通过分析挖掘去印证和感知现实实体空间的态势,进而发挥其更大价值。 印度和巴基斯坦是两个位于南亚的相邻国家。本文主要基于 ZoomEye 网络空间搜索引擎 [1] 的测绘数据,从多个维度进行两个国家的对比分析,并与其他行业领域的数据结合进行解读。 对比两个国家的人均 IPv4 地址拥有数量,印度略高于巴基斯坦,反映出印度的信息化水平略高于巴基斯坦;与南亚其他国家(例如不丹、斯里兰卡、尼泊尔、孟加拉)进行横向比较,这些国家的信息化水平处于同一层级别上;与信息化水平较高的国家(例如美国、韩国、英国、德国、日本)进行横向比较,差距比较大。 对比 2022 年两个国家在线IPv4地址(此处"在线IPv4地址"指的是对互联网开放某个端口提供某种协议服务的IPv4地址)占其IPv4地址总量的比例,印度高于巴基斯坦,说明印度在 IP 地址服务提供率上高于巴基斯坦,反映出印度的信息化水平高于巴基斯坦。 我们将近 4 年两个国家的 GDP 数值和在线 IPv4 数量的变化趋势结合起来观察,发现:两个国家的 GDP 数值和在线 IPv4 数量,在 2020 年均有明显下降,在 2021 年和 2022 年均为上升趋势。推测原因:受全球疫情影响,两个国家在 2020 年出现经济衰退,互联网应用服务相应较少,因此出现在线 IPv4 地址数量下降的现象;2021 年和 2022 年经济复苏,互联网应用服务也随之增加,因此在线 IPv4 地址数量呈现上升趋势。 对比两个国家使用了 SSL/TLS 协议的 IPv4 资产占总资产数量的比例,印度高于巴基斯坦;对比两个国家防火墙设备资产占总资产数量的比例,印度也高于巴基斯坦;这两个维度的数据对比,反映出印度的信息化建设安全水平高于巴基斯坦。 针对使用了 SSL/TLS 协议的 IPv4 资产,提取 SSL 证书中的关键词样例进行设备厂商的分析对比,我们可以发现:美国设备厂商在两个国家的市场覆盖率基本相当;相比较而言,中国设备厂商的市场覆盖率比较低。这些说明,在“一带一路”倡议的大背景下,中国设备厂商在海外的市场存在广阔增长空间。 二.国家概况对比 2.1人口和经济 印度的人口数量(14.13 亿)是巴基斯坦的人口数量(2.35 亿)的 6 倍 [2] 。在 2022年,印度的 GDP(国内生产总值) [3] 是巴基斯坦 [4] 的 9 倍,印度的人均 GDP 是巴基斯坦的 1.43 倍,如表1所示。受限于全球疫情影响,印度和巴基斯坦在 2020 年均出现明显的经济衰退;而在 2021 年和 2022 年,两国经济均有所复苏。从数据可以看出,印度的国家经济实力要强于巴基斯坦。 表1: 印度和巴基斯坦GDP比较 2.2电信运营商 印度的 5 家主要运营商 [5] ,其企业大股东所属国家均为印度自身;而巴基斯坦的 4 家主要运营商 [6] ,只有 1 家企业大股东所属国家为巴基斯坦自身,另外 3 家分别属于荷兰、挪威和中国 ,如表2所示。从这个维度上进行对比,可以一定程度上反映出:印度的通信基础设施能力要高于巴基斯坦,并且主要由国家自身进行主导。 其中,位于巴基斯坦的 CMPak Limited 企业(中文名:中国移动辛姆巴科公司),是中国移动在海外的第一张通信网络,也是中国移动参与“一带一路”建设的重要实践[7] 。 表2 :印度和巴基斯坦主要运营商 三.拥有 IP 数量对比 3.1 IPv4 拥有总量 我们比较两个国家拥有 IPv4 地址的数量,及其年度变化 [8] 。详细数据见下表3。可以看出,印度作为 IPv4 地址拥有数量全球排名第 13 位的国家,其绝对数量值远大于巴基斯坦IPv4 地址拥有数量(全球排名第 51 位);年度变化方面,2021-2023 年,两个国家拥有 IPv4 地址的数量整体呈上升趋势,推测与疫情之后两国经济复苏相关。 表3 :印度和巴基斯坦拥有 IPv4 地址的数量比较 3.2 IPv4 人均拥有数量 IPv4 地址拥有数量绝对值的对比,未必能够真实反映两国信息化水平现状,因此,接下来我们比较两个国家人均 IPv4 地址的数量。详细数据见下表4。可以看出,印度的人均 IPv4 地址数量略高于巴基斯坦,一定程度上反映出印度的信息化水平略高于巴基斯坦;与信息化水平较高的国家(例如美国、韩国、英国、德国、日本)进行横向比较,差距比较大;与南亚其他国家(例如不丹、斯里兰卡、尼泊尔、孟加拉)进行横向比较,这些国家的信息化水平处于同一层级别上。 表4:IPv4 地址拥有数量对比 四.在线 IP 数量对比 4.1 在线 IPv4 数量及占总量的比例 对比 2022 年两个国家的在线 IPv4 地址(此处"在线IPv4地址"指的是,对互联网开放某个端口提供某种协议服务的IPv4地址),印度的绝对数量高于巴基斯坦;对比 2022 年两个国家在线 IPv4 地址占 IPv4 地址总量的比例,印度为 13.84%,巴基斯坦为 8.28%,如表5所示,说明印度在 IP 地址服务提供率上高于巴基斯坦,反映出印度的信息化水平高于巴基斯坦。 表5:印度和巴基斯坦在线 IPv4 数量及占总量的比例比较 4.2 在线 IPv4 数量的变化趋势 接下来,我们查看近 4 年两个国家在线 IPv4 地址数量的变化情况,详细数据见下表 6。可以看出,两个国家在线 IPv4 地址数量,在 2020 年均有明显下降,然后在 2021 年和2022年均为上升趋势。 表6:近 4 年印度和巴基斯坦在线 IPv4 地址数量的变化情况我们将近 4 年两个国家的 GDP 数值和在线 IPv4 数量的变化趋势结合起来观察,发现:两个国家的 GDP 数值和在线 IPv4 数量,在 2020 年均有明显下降,在 2021 年和 2022 年均为上升趋势,如图1、图2所示。推测原因:受全球疫情影响,两个国家在 2020 年出现经济衰退,互联网应用服务相应较少,因此出现在线 IPv4 地址数量下降的现象;2021 年和 2022 年经济复苏,互联网应用服务也随之增加,因此在线 IPv4 地址数量呈现上升趋势。 图1:印度近4年GDP数值和在线IPv4数量的变化趋势 图2:巴基斯坦近4年GDP数值和在线IPv4数量的变化趋势 五.设备资产数据对比 本章节,我们挑选具体的 IP 设备资产数据进行对比分析。 5.1 SSL/TLS协议资产和防火墙设备资产 我们提取这两个国家使用了 SSL/TLS 协议的 IPv4 资产,并统计其占在线 IPv4 总资产数量的比例,印度的该占比值为 23.17%,而巴基斯坦的该占比值为 7.87%,如表 7 所示。 然后,我们提取这两个国家的防火墙设备资产,并统计其占总资产数量的比例,印度的该占比值为 0.69%,相当于平均使用 1 个防火墙保护 145 个 IP 资产;而巴基斯坦的该占比值为 0.25%,相当于平均使用 1 个防火墙保护 400 个 IP 资产。 这两个维度的数据对比,可以一定程度上反映出:印度的信息化建设安全水平高于巴基斯坦。 表7:SSL/TLS协议资产和防火墙设备资产比较 5.2 不同厂商设备资产 接下来,我们针对使用了 SSL/TLS 协议的 IPv4 资产,提取 SSL 证书中的关键词样例进行设备厂商的分析对比。此处的数据分析是基于 SSL 证书中的关键词,所以,我们统计设备厂商资产数量占比比例的时候,不是统计其占在线总资产数量的比例,而是统计其占使用SSL/TLS协议资产数量的比例。(注:此处从 SSL 证书中提取设备厂商关键词样例,不代表覆盖全部厂商,也不代表覆盖一个厂商的全部设备型号。) 通过表 8 的详细数据可以看出,在这两个国家,4 个美国设备厂商资产数量占比基本持平。 表8:印度和巴基斯坦不同厂商设备资产的比较这个维度的数据比对,可以反映出:**美国设备厂商在两个国家的市场覆盖率基本相当;相比较而言,中国设备厂商的市场覆盖率比较低。**这些说明,在“一带一路”倡议的大背景下,中国设备厂商在海外的市场存在广阔增长空间。 六.结语 本文主要基于 ZoomEye 网络空间搜索引擎的测绘数据,从多个维度进行印度和巴基斯坦两国的对比分析,数据可以反映出印度的信息化水平要高于巴基斯坦。 网空测绘数据和国家GDP数据结合进行解读,可以反映出两个国家在2020年出现经济衰退,互联网应用服务相应较少,因此出现在线IPv4地址数量下降的现象;2021年和2022年经济复苏,互联网应用服务也随之增加,因此在线IPv4地址数量呈现上升趋势。 设备资产测绘数据的对比分析,可以发现美国设备厂商在这两个国家的市场覆盖率高于中国设备厂商;说明在“一带一路”倡议的大背景下,中国设备厂商在海外的市场存在广阔增长空间。 基于网络空间测绘数据,不仅可以感知网络空间层面的态势,还可以与其他行业领域的数据进行结合,通过分析挖掘去印证和感知现实实体空间的态势,这也是网空测绘数据的魅力所在。 七.参考链接 [1] ZoomEye 网络空间搜索引擎https://www.zoomeye.org [2] 国家人口数量https://zh.wikipedia.org/zh-hans/各国家和地区人口列表 [3] 印度的GDP数值https://en.wikipedia.org/wiki/Economy_of_India [4] 巴基斯坦的GDP数值https://en.wikipedia.org/wiki/Economy_of_Pakistan [5] 印度的电信运营商https://en.wikipedia.org/wiki/List_of_telecom_companies_in_India [6] 巴基斯坦的电信运营商https://en.wikipedia.org/wiki/List_of_telecommunication_companies_in_Pakistan [7] 中国移动筑就“一带一路”信息高速路http://ccnews.people.com.cn/n1/2019/0701/c141677-31204950.html [8] 国家拥有IPv4地址数量数据来源于埃文公司的IP地理位置库 作者:知道创宇404实验室English version: https://paper.seebug.org/2094/** ...

    2023-08-13 250
  • 后门病毒携带蠕虫 使用多种免杀手段

    近期,火绒威胁情报系统监测到一款后门病毒正在快速传播,被激活后会释放多个恶意文件并执行,使黑客可以进行信息收集,远程控制等恶意操作。值得注意的是,该病毒不但使用多种免杀手段躲避查杀,其释放的子文件中还具有 Synares 蠕虫感染特征,可在受害者电脑的文件中进行传播。 用户点击病毒程序之后,该病毒就会释放并执行恶意文件,随后黑客可以远程控制用户电脑。除此之外,该黑客团伙在开发过程中疑似主机环境被Synares蠕虫病毒感染或有意捆绑,致使释放的子文件中存在着蠕虫的特征,增加了破坏性。执行流程如下图所示: 执行流程图 在免杀层面上,该病毒文件使用了包括:多层 PE 流调用、VMProtect 和 Safengine Shielden 加壳保护、DLL 内存加载、异常反调试、流程混淆等多种技术来进行对抗。在此,火绒工程师提醒大家警惕陌生文件,先查杀再使用。 一、样本分析: malware.exe: 在分析对抗层面上,病毒对运行逻辑进行了混淆处理,并利用了包括:函数指针动态获取、函数包装调用等手段来干扰静态分析: 函数指针动态获取 函数包装调用 在关键执行层面上,病毒文件先后释放 look2.exe 和 "HD_malware.exe" 文件并执行。其中 look2.exe 存放于用户的 TEMP 目录中,而 "HD_malware.exe" 则释放到桌面下,并赋予 "隐藏属性和系统保护属性" 隐藏自身。 执行流程图 文件示意图 Look2.exe: look2.exe 是一个支持持久化和配置更新的木马程序。该病毒在执行前会解密出互斥体名称: “kinh.xmcxmr.com:442:svchcst” ,通过该互斥体的成功创建与否来判断父进程 malware.exe 是否正在执行,以此决定后续操作。 父子进程交互 后续操作中,look2.exe 会尝试获取系统目录,然后释放一个以时间戳命名的 bat 文件,该文件实则为用于加载的 DLL 文件。根据父进程写入的执行标志位来决定是直接执行 DLL 内 MainThread 导出函数还是 Install 导出函数(这两个导出函数在后面解析),执行完后还尝试删除文件,但实际上由于文件被加载占用,所以无法被移除。 look2.exe 执行流程 另一种情况是 look2.exe 被用于执行配置更新操作,当命令行中包含 GUpdate 和要更新的注册表项时,程序会定位到指定的位置进行配置更新: 配置更新操作 释放的 DLL 文件实际上是 Gh0st 后门病毒的变种,该 dll 中包括 5 个导出函数,但都围绕着 MainThread 展开。导出函数名代表了真实意图,包括配置更新(DllUpdate)、创建服务(Install)、卸载服务(Uninstall)、服务启动函数(ServiceMain)。 导出函数列表 导出函数逻辑代码 MainThread 包含核心恶意功能,包括:终端数据收集,接收和执行控制命令、派发执行任意病毒模块等。火绒安全实验室在 2019 年发布的 《火绒5.0公测阶段就立功 有效防御某一类常见黑客攻击 》 文章中披露的后门病毒在执行流程和代码逻辑上,经对比与该函数没有太大改动,故不再重复分析。 注册表修改对比 信息收集对比图 HD_malware.exe: “HD__malware.exe” 是一个被 Synares 蠕虫病毒感染过的文件,当它执行时,会释放感染前的 ".cache_malware.exe" 源程序,并且执行蠕虫自身的感染操作,包括:更新自身配置、篡改注册表自启动项,感染指定位置 EXE 和 EXCEL 文件、远控,窃密等。执行流程如下所示: 执行流程图 Synares 蠕虫病毒是一个相对较老的病毒,虽然变种极多,但本次观察到的行为与以前版本并无太大变化,包括感染的三个指定位置为:%USERPROFILE%\Desktop、%USERPROFILE%\Documents、%USERPROFILE%\Downloads。包括键盘记录和 usb、目录文件信息记录,并通过邮件回传。包括基础远控功能:CMD 命令执行、屏幕截图、打印目录、下载文件、删除文件等,故不再重复分析。 代码逻辑图 ._cache_HD_malware.exe 释放出来的 ._cache_HD_malware.exe 是被感染前的原始程序,其套用 vmp 壳来试图隐藏自身逻辑: 套用 VMP 壳 在其内部嵌入了未加密的 EXE 文件,用于释放执行,并包含核心操作: 内嵌 EXE 文件 HD_.cache_HD_malware.exe 内嵌的 EXE 文件在释放时会再次以 “HD_” 做前缀,其同样被设置系统保护和隐藏属性,并且套用 SE 壳试图隐藏逻辑: 套用 SE 壳 当前文件示意图 该病毒文件执行时,会从 C2 服务器上下载 exploror.exe 写入到创建的 C:\windowss64 目录下 computer.exe 文件中并启动执行。 下载文件并执行 Computer.exe Computer.exe 是一个引导程序,用于引导内嵌的 DLL 加载执行。内嵌 DLL 是加密存储的,Computer.exe 在执行时会构造并利用异常来进行反调试,并且解密操作也在异常处理中定义。 解密 DLL 和异常反调试 在解密内嵌 DLL 后,会调用指定导出函数 fuckyou,剩下所有操作均由 DLL 内代码完成。 指定导出函数 该导出函数主体逻辑同样与火绒安全实验室在 2019 年发布的 《火绒5.0公测阶段就立功 有效防御某一类常见黑客攻击 》文章中提到的后门病毒,经对比并没有太大改动(DDOS 模块已移除),故不再重复分析。 代码对比 二:附录 HASH ...

    2023-08-13 204
  • Linux系统使用cp命令用法教程详解

    熟悉在 Linux 命令行中复制文件和目录的 cp 命令。 cp 命令是 Linux 中一个重要的命令,你可能经常会用到它。 正如名称所示,cp 代表 复制copy,它被用于 在 Linux 命令行中复制文件和目录。 这是一个相对简单的命令,只有几个选项,但你仍有必要深入了解它。 在展示 cp 命令的实际示例之前,我更建议你先熟悉绝对路径和相对路径的概念,将文件从一个位置复制到另一个位置时,你需要用到它们。 Linux 中的绝对路径和相对路径的不同之处 复制单个文件 cp 命令最简单和最常见的用途是复制文件,只需指定源文件和要“粘贴”文件的目标目录即可。 cp 源文件 目标目录 在复制文件的同时重命名它 你将文件复制到另一个位置时可以同时进行 重命名。这有点类似于文本编辑器中的“另存为”选项。 为此,你必须在路径中给出新的文件名。 cp 源文件 目标目录/新文件名 复制多个文件 你还可以将多个文件复制到另一个位置。 cp 文件1 文件2 文件3 目标目录 在这种情况下,你无法重命名文件。 你还可以使用通配符扩展,将特定后缀的文件复制到另一个位置: cp *.txt 目标目录 复制文件时避免覆盖现有文件 如果你将 file1.txt 复制到一个已经存在名为 file1.txt 文件的目录中,它会将原有的文件覆盖掉。 如果你不希望这样,cp 命令还提供了几个选项来处理文件覆盖的情况。 首先是使用选项 -i 的交互模式。在交互模式下,它会询问是否确认或放弃覆盖目标文件。 cp -i 源文件 目标目录 cp:覆盖 '目标目录/源文件' ? 按 Y 覆盖文件,按 N 跳过复制该文件。 选项 -n 代表完全取消覆盖。使用此选项时目标文件不会被覆盖。 cp -n 源文件 目标目录 还有一个选项 -b,在目标目录的文件将被覆盖时自动为其创建备份。我猜这里 b 代表 备份backup。 cp -b 源文件 目标目录 最后,还有一个“更新update”选项 -u,如果目标文件比源文件旧,或者目标文件不存在,就会被覆盖掉。 cp -u 源文件 目标目录 复制目录(文件夹) cp 命令也用来在 Linux 命令行中复制目录。 在复制目录时,你需要使用递归选项 -r。 cp -r 源目录 目标目录 你还可以将多个目录复制到另一个位置: cp -r 目录1 目录2 目录3 目标目录 在复制时保留属性 当你将文件复制到另一个位置时,它的 时间戳、文件权限 甚至所有权都会发生变化。 这是正常的行为。但在某些情况下,你可能希望在复制文件时保留其原始属性。 要保留属性,请使用选项 -p: cp -p 源文件 目标目录 ? 还有一个 -a 选项用于存档模式。它将连 ACL 也保留下来。 ...

    2023-08-12 194
  • 如何在命令行上舒适地生存?

    有时我与一些害怕使用命令行的朋友交谈,我感到自己给不出好的建议(我已经使用命令行太长时间了),因此我向一些 Mastodon上的人提出了以下问题: 如果在过去一到三年内,你刚刚不再害怕使用命令行了,是什么帮助了你? (如果你不记得,或者你已经使用命令行舒适地工作了 15 年,则无需回答——这个问题不适用于你 ?) 这个列表还不如我希望的那么长,但我希望通过发布它来收集更多的答案。显然,并没有一个单一的方法适用于所有人,不同的人会选择不同的路径。 我认为舒适使用命令行有三个方面:减少风险、动机和资源。我将先谈谈减少风险,然后是一些动机,并列出一些资源。 减少风险的方式 很多人(没错!)对在命令行上意外执行了一些无法撤销的破坏性操作感到担心。 以下是一些人们提到的帮助他们减少风险的策略: 定期备份(有人提到他们在上周的一个命令行错误中意外删除了整个家目录,但很幸运他们有备份)。 对于代码,尽可能多地使用 git。 将 rm设置为类似safe-rm或rmtrash这样的工具的别名,这样你就不会意外删除不应删除的内容(或者就设置别名到rm -i)。 尽量避免使用通配符,使用制表符键补全代替(我的 Shell 会使用 TAB键补全rm *.txt并显示我将要删除的内容)。 使用精美的终端提示符,可以显示当前目录、计算机名称、git分支和你是否具有 root 权限。 如果你计划对文件运行未经测试或危险的命令,先备份文件副本。 拥有一台专用的测试机器(如便宜的旧 Linux 计算机或树莓派)进行特别危险的测试,例如测试备份软件或分区。 对于危险命令,如果有的话,使用 --dry-run选项来查看执行结果而不实际执行操作。 在你的 Shell 脚本中构建自己的 --dry-run选项。 这些策略有助于降低在命令行上引发不可逆操作的风险。 杀手级应用程序 一些人提到了一个“杀手级命令行应用程序”,这激励他们开始花更多时间在命令行上。例如: ripgrep jq wget / curl git(一些人发现他们更喜欢使用 git 命令行界面而不是使用图形界面) ffmpeg(用于视频处理) yt-dlp 硬盘数据恢复工具(来自 这个精彩的故事) 还有一些人提到他们对图形界面工具感到失望(例如使用了所有内存,并使计算机崩溃的重型集成开发环境),并因此有动机用更轻量级的命令行工具替代它们。 激发人们的命令行技巧 有人提到被其他人在命令行上展示的酷炫功能所激励,例如: 命令行工具可以比你的 Hadoop 集群快 235 倍 Gary Bernhardt 的这个“命令行链锯”演讲 explainshell 有几个人提到了 explainshell,它可以让你粘贴任何命令行指令,并将其分解成不同的部分解释。 命令历史、制表符补全等等 有很多小技巧和窍门可以使在命令行上工作更容易,例如: 使用向上箭头查看先前的命令 使用 Ctrl+R搜索你的 Bash 历史记录 使用快捷键在行内导航:Ctrl+w(删除一个单词)、Ctrl+a(跳转到行首)、Ctrl+e(跳转到行尾),以及Ctrl+left arrow/Ctrl+right arrow(向前/向后跳转一个单词) 将 Bash 历史记录设置为无限制 使用 cd -返回上一个目录 文件名和命令名的制表符自动补全 学习如何使用像 less这样的分页工具阅读手册页或其他大型文本文件(如搜索、滚动等) 在 macOS 上使用 pbcopy/pbpaste将剪贴板内容复制/粘贴到 stdout/stdin 在编辑配置文件之前备份它们 fzf 很多人提到使用 fzf作为模糊搜索 Shell 历史记录的更好方法。除了作为更好的模糊搜索 Shell 历史记录的工具,人们还提到了一些其他用途: 选择 git分支(git checkout $(git for-each-ref --format='%(refname:short)' refs/heads/ | fzf)) 快速查找要编辑的文件(nvim $(fzf)) 切换 Kubernetes 上下文(kubectl config use-context $(kubectl config get-contexts -o name | fzf --height=10 --prompt="Kubernetes Context> ")) 从测试套件中选择要运行的特定测试 一般的模式是使用 fzf来选择某个对象(文件、git分支、命令行参数),fzf将所选对象输出到标准输出,然后将其插入作为另一个命令的命令行参数。 你还可以将 fzf用作工具,自动预览输出并快速迭代,例如: 自动预览 jq的输出(echo '' | fzf --preview "jq {q} ) 自动预览 sed的输出(echo '' | fzf --preview "sed {q} YOURFILE") 自动预览 awk的输出(echo '' | fzf --preview "awk {q} YOURFILE") 你可以参考这个思路。 通常,人们会为 fzf的使用定义别名,比如输入gcb或其他命令,以快速选择要检出的git分支。 树莓派 一些人开始使用树莓派,这样可以更安全地进行实验,而不必担心损坏计算机(只需擦除 SD 卡然后重新开始即可!)。 漂亮的 Shell 环境 很多人说,当他们开始使用像 oh-my-zsh或Fish这样更用户友好的 Shell 环境时,他们在命令行上感到更舒适。我非常同意这一点 – 我已经使用 Fish 十年了,我非常喜欢它。 在这里还有一些其他的事情可以做: 有些人说,让他们的终端更漂亮可以帮助他们感到更舒适(“让它变成粉色!”)。 设置一个漂亮的 Shell 提示符来提供更多信息(例如,当命令失败时,可以将提示符设置为红色)。特别是 transient prompts(在当前命令设置一个非常花哨的提示符,但在之前的命令中设置一个简单得多的提示符)看起来非常好。 一些用于美化终端的工具: 我使用 base16-shell powerlevel10k是一个流行的漂亮的 Zsh 主题,具有 transient prompts starship是一个漂亮的提示符工具 在 Mac 上,我认为 iTerm2比默认的终端更容易自定义。 漂亮的文件管理器 一些人提到了像 ranger或nnn这样的漂亮的终端文件管理器,这是我之前没有听说过的。 一个有帮助的朋友或同事 一个可以回答初学者问题并给你指点的人是无价的。 通过肩并肩地观察学习 有人提到观察更有经验的人使用终端 – 有很多经验丰富的用户甚至没有意识到自己在做什么,你可以从中学到很多小技巧。 别名 很多人说,为常用任务创建自己的别名或脚本就像是一个神奇的“灵光一现”时刻,因为: 他们不必记住语法 然后他们就有了一份自己常用命令的列表,可以轻松调用 查找示例的备忘单 很多手册页没有示例,例如 openssl s_client的手册页就没有示例。这使得起步变得更加困难! 人们提到了一些备忘单工具,比如: tldr.sh cheat(还可以进行编辑 – 你可以添加自己的命令以供以后参考) um(一个非常精简的需要自己构建的系统) 例如,openssl 的备忘单非常棒 – 我认为它几乎包含了我在实际中使用openssl时用过的所有内容(除了openssl s_client的-servername选项)。 有人说他们配置了他们的 .bash_profile,这样每次登录时都会打印出一张备忘单。 不要试图背诵 一些人说他们需要改变自己的方法 – 他们意识到不需要试图记住所有的命令,只需按需查找命令,随着时间的推移,他们会自然而然地记住最常用的命令。 (我最近对学习阅读 x86 汇编有了完全相同的体会 – 我正在上一门课程,讲师说“是的,刚开始时可以每次都查找,最终你会记住最常见的指令。”) 还有一些人说相反的观点 – 他们使用间隔重复应用程序(如 Anki)来记忆常用的命令。 Vim 有人提到他们开始在命令行上使用 Vim 编辑文件,一旦他们开始使用终端文本编辑器,使用命令行处理其他事情也变得更自然。 此外,显然有一个名为 micro的新编辑器,像是更好的pico/nano,适用于那些不想学习 Emacs 或 Vim 的人。 桌面上使用 Linux 有人说他们开始使用 Linux 作为他们的日常主力系统,而需要修复 Linux 问题可以帮助他们学习。这也是我在大约 2004 年熟悉命令行的方式(我非常喜欢安装各种不同的 Linux 发行版,以找到我最喜欢的那个),但我猜这不是如今最受欢迎的策略。 被迫仅使用终端 有些人说他们参加了一门大学课程,教授让他们在终端上做所有事情,或者他们自己制定了一个规则,一段时间内必须在终端上完成所有工作。 工作坊 有几个人说像 Software Carpentry这样的工作坊(面向科学家的命令行、Git 和 Python/R 编程简介)帮助他们更熟悉命令行。 你可以在这里查看 Software Carpentry 课程。 书籍和文章 一些提到的材料: 文章: 《终端》 《命令行功夫》(包含 UNIX 和 Windows 命令行技巧) 书籍: 《Effective Linux at The Command Line》 《Unix Power Tools》(可能有些过时) 《The Linux Pocket guide》 视频: Mindy Preston 的 CLI tools aren’t inherently user-hostile Gary Bernhardt 的 destroy all software screencasts DistroTube ...

    2023-08-12 212
  • MySQL数据库基本操作

    基本操作有:查看有哪些数据库、查看有哪些表、创建数据库、创建表、查看表信息、向表中插入数据等 # 查看有哪些数据库 MariaDB [(none)]> show databases; # 切换到test数据库 MariaDB [(none)]> use test; # 查看当前数据库有哪些表 MariaDB [test]> show tables; Empty set (0.000 sec) # 表明当前数据库是空的 # 如果test数据库不存在,则创建 MariaDB [test]> CREATE DATABASE IF NOT EXISTS test; # 在数据库test种创建表三个表:books、authors、series MariaDB [test]> CREATE TABLE IF NOT EXISTS books ( # 创建books表(前提是books表不存在,如果已经存在,则不创建) -> BookID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, -> Title VARCHAR(100) NOT NULL, -> SeriesID INT, AuthorID INT); Query OK, 0 rows affected (0.033 sec) MariaDB [test]> CREATE TABLE IF NOT EXISTS authors # 创建authors表(前提是authors表不存在,如果已经存在,则不创建) -> (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT); Query OK, 0 rows affected (0.005 sec) MariaDB [test]> CREATE TABLE IF NOT EXISTS series # 创建series表(前提是series表不存在,如果已经存在,则不创建) -> (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT); Query OK, 0 rows affected (0.005 sec) # 接下来我们再来看看表是否添加成功 MariaDB [test]> show tables; +----------------+ | Tables_in_test | +----------------+ | authors | | books | | series | +----------------+ 3 rows in set (0.000 sec) # 向books表中插入数据 MariaDB [test]> INSERT INTO books (Title,SeriesID,AuthorID) -> VALUES('The Fellowship of the Ring',1,1), -> ('The Two Towers',1,1), ('The Return of the King',1,1), -> ('The Sum of All Men',2,2), ('Brotherhood of the Wolf',2,2), -> ('Wizardborn',2,2), ('The Hobbbit',0,1); Query OK, 7 rows affected (0.004 sec) Records: 7 Duplicates: 0 Warnings: 0 # 查看表信息 MariaDB [test]> describe books; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | BookID | int(11) | NO | PRI | NULL | auto_increment | | Title | varchar(100) | NO | | NULL | | | SeriesID | int(11) | YES | | NULL | | | AuthorID | int(11) | YES | | NULL | | +----------+--------------+------+-----+---------+----------------+ 4 rows in set (0.002 sec) # 查询数据(从表中查询数据) MariaDB [test]> select * from books; +--------+----------------------------+----------+----------+ | BookID | Title | SeriesID | AuthorID | +--------+----------------------------+----------+----------+ | 1 | The Fellowship of the Ring | 1 | 1 | | 2 | The Two Towers | 1 | 1 | | 3 | The Return of the King | 1 | 1 | | 4 | The Sum of All Men | 2 | 2 | | 5 | Brotherhood of the Wolf | 2 | 2 | | 6 | Wizardborn | 2 | 2 | | 7 | The Hobbbit | 0 | 1 | +--------+----------------------------+----------+----------+ 7 rows in set (0.000 sec) 小知识:sql语句允许换行,直到遇到分号+回车才会认为sql语句输入结束,进入执行阶段 ...

    2023-08-12 221
  • 网站收录对SEO有什么好处?网站免费收录平台有哪些?

    什么是网站免费收录? 网络中的网站免费收录是指搜索引擎或者第三方网站收录平台免费为网站提供收录服务,即搜索引擎或者第三方网站收录平台将网站的内容加入索引中,使得用户可以通过搜索引擎或者第三方网站收录平台找到该网站。这种免费收录的方式对于网站主人来说,可以提高网站的曝光率和流量,为网站的推广和发展提供了便利。 搜索引擎通常会根据网站的质量和相关性对网站进行评估,评估结果越好,网站收录的机会就越大。而第三方网站收录平台为你提供外链支持,也将有利于搜索引擎对你网站的评价和网页的抓取。网站可以通过提高质量和关联性来提高被免费收录的机会,例如优化网站的内容、提高用户体验和提高网站的权威性和可信度等。此外,也可以通过提交网站地图和使用搜索引擎的工具和资源来提高网站收录的机会。 网站免费收录对网站 搜索引擎优化(SEO)有什么好处? 1. 提高网站权威性 当一个网站被搜索引擎或者其他第三方网站免费收录平台免费收录后,相当于搜索引擎或者其他第三方网站免费收录平台认可了该网站的内容质量和价值,在搜索引擎或者其他第三方网站免费收录平台页面上也可以给用户显示该网站的相关信息。这会给用户带来一个更直观的认知,并建立网站在用户心中的权威形象,提高了网站的信誉度。 2. 提高网站的曝光率和流量 搜索引擎或者其他第三方网站免费收录平台页面是大多数用户了解网站的方式之一。当一个网站被搜索引擎或者其他第三方网站免费收录平台免费收录后,就可以在搜索引擎或者其他第三方网站免费收录平台页面上展示,并有更多的机会被用户点击,这可以明显提高网站的曝光率和流量、增长网站的知名度。 3. 可帮助网站提高关联性 搜索引擎通过对网站内容的解析、分析和评估,来确定网站和搜索关键词之间的相关性。当一个网站被搜索引擎免费收录后,说明该网站的相关性较高,这可以在用户搜索相关关键词时提供更多机会让网站第一时间出现在搜索结果页面上,从而提高网站的关联性和排名。 4. 对网站SEO优化有益 在搜索引擎优化(SEO)中,免费收录是一个重要的环节。当网站被搜索引擎或者其他第三方网站免费收录平台免费收录后,它会为我们的网站增加外链、有助于得到搜索引擎官方的认可或者吸引蜘蛛前往抓取,并且有助于网站的权威性提升、页面排名上升和优化流量的增加。因此,网站 SEO 优化过程中,免费收录是非常重要的一步。 以上是网站免费收录对网站 SEO 搜索引擎优化的几个好处,同时网站也可以通过不断优化内容、提升用户体验、提高网站的权威性和可信度等方法来进一步提高自己的搜索排名和流量。 网站免费收录平台有哪些? 中国国内还有一些非搜索平台的第三方网站收录平台,比如: 1. 百万站:百万站是中国最大的网站资源库之一,提供了大量免费的网站提交、网站分类目录、站长平台等服务。 2. 目录网:目录网的特色是提供了众多的行业分类,用户可以根据自己的行业特点进行网站的免费提交和收录。 3. 站酷:站酷是一个专注于设计、创意和视觉艺术领域的综合性平台,提供了免费的创意作品上传和展示、设计师社区、设计资源下载等服务。 4. 天极网站库:天极网站库是天极网旗下的一个收录平台,提供了网站免费收录、网站分类目录、站长工具、网站建设等服务。 5. 网站大全:网站大全是一个聚合中国境内外优秀网站和资源的导航平台,提供了网站分类目录、免费收录等服务。 6、链接交易网和站长交易网。不要以为链接交易网或者站长交易网不属于网站收录平台了,他们提供了网站信息展示和链接直达,实实在在为你提供了外链输入。 7、导航网站:国内的导航网站数量还是不少的,如果每个导航网站你都能成功申请收录,将会给你带来不错的外链数量。 以上是一些非搜索平台的第三方网站免费收录平台,这些平台的服务类型和特点各不相同,用户应根据自身需求选择合适的平台进行网站收录。还有很多类似网站,本文这里就不详细列举了,需要你去费心发现。...

    2023-08-12 222
  • Bash基础知识:If Else语句详解

    如果这样,那就那样,否则就……。还不明白吗?了解了 Bash Shell 脚本中的 if-else 语句后就明白了。 Bash 支持 if-else 语句,以便你可以在 shell 脚本中使用逻辑推理。 通用的 if-else 语法如下: if [ expression ]; then ## 如果条件为真则执行此块,否则转到下一个 elif [ expression ]; then ## 如果条件为真则执行此块,否则转到下一个 else ## 如果以上条件都不成立,则执行此块 fi 正如你所注意到的: elif 用于 “否则如果” 类型的条件。 if-else 条件始终以 fi 结尾。 使用分号 ; 和 then 关键字 在展示 if 和 else-if 的示例之前,我先分享一下常见的比较表达式(也称为测试条件)。 测试条件 以下是可用于数字比较的测试条件运算符: 条件 当满足以下条件时为真 $a -lt $b $a < $b($a 小于 $b) $a -gt $b $a > $b($a 大于 $b) $a -le $b $a <= $b($a 小于等于 $b ) $a -ge $b $a >= $b ($a 大于等于 $b) $a -eq $b $a == $b $a -ne $b $a != $b 如果你要比较字符串,可以使用以下测试条件: 条件 当满足以下条件时为真 "$a" = "$b" $a 与 $b 相同 "$a" == "$b" $a 与 $b 相同 "$a" != "$b" $a 与 $b 不同 -z "$a" $a 为空字符串 文件类型检查也有条件: 条件 当满足以下条件时为真 -f $a $a 是一个文件 -d $a $a 是一个目录 -L $a $a 是一个链接 现在你已经了解了各种比较表达式,让我们在各种示例中看看它们的实际应用。 在 Bash 中使用 if 语句 让我们创建一个脚本来告诉你给定的数字是否为偶数。 这是我的脚本,名为 even.sh: #!/bin/bash read -p "Enter the number: " num mod=$(($num%2)) if [ $mod -eq 0 ]; then echo "Number $num is even" fi 当模数运算(%)整除给定数字(本例中为 2)时,它返回零。 ? 特别注意空格。左括号和右括号与条件之间必须有空格。同样,条件运算符(-le、== 等)前后必须有空格。 这是我运行脚本时显示的内容: 你是否注意到,当数字为偶数时,脚本会告诉你,但当数字为奇数时,脚本不会显示任何内容? 让我们使用 else 来改进这个脚本。 使用 if else 语句 现在我在前面的脚本中添加了一条 else 语句。 这样,当你得到一个非零模数(因为奇数不能除以 2)时,它将进入 else 块。 #!/bin/bash read -p "Enter the number: " num mod=$(($num%2)) if [ $mod -eq 0 ]; then echo "Number $num is even" else echo "Number $num is odd" fi 让我们用相同的数字再次运行它: 正如你所看到的,该脚本更好,因为它还告诉你该数字是否为奇数。 使用 elif(否则如果)语句 这是一个检查给定数字是正数还是负数的脚本。在数学中,0 既不是正数也不是负数。 该脚本也检查了这一事实。 #!/bin/bash read -p "Enter the number: " num if [ $num -lt 0 ]; then echo "Number $num is negative" elif [ $num -gt 0 ]; then echo "Number $num is positive" else echo "Number $num is zero" fi 让我运行它来涵盖这里的所有三种情况: 用逻辑运算符组合多个条件 到目前为止,一切都很好。但是你是否知道通过使用与(&&)、或(||)等逻辑运算符可以在一个条件中包含多个条件? 它使你能够编写复杂的条件。 让我们编写一个脚本来告诉你给定的年份是否是闰年。 你还记得闰年的条件吗? 它应该被 4 整除,但如果它能被 100 整除,那么它就不是闰年。 但是,如果能被 400 整除,则为闰年。 这是我的脚本。 #!/bin/bash read -p "Enter the year: " year if [[ ($(($year%4)) -eq 0 && $(($year%100)) != 0) || ($(($year%400)) -eq 0) ]]; then echo "Year $year is leap year" else echo "Year $year is normal year" fi ? 注意上面双括号 [[ ]] 的使用。如果你使用逻辑运算符,则这是强制性的。 通过使用不同的数据运行脚本来验证脚本: ?️ 练习时间 让我们做一些练习吧 ? 练习 1:编写一个 Bash Shell 脚本,检查作为参数提供给它的字符串的长度。如果未提供参数,它将打印 “empty string”。 练习 2:编写一个 Shell 脚本来检查给定文件是否存在。你可以提供完整的文件路径作为参数或直接在脚本中使用它。 提示:文件使用 -f 选项 练习 3:通过检查给定文件是否是常规文件、目录或链接或者是否不存在来增强之前的脚本。 提示:使用 -f、-d 和 -L ...

    2023-08-12 240
  • 什么是SSD(固态驱动器)

    SSD采用闪存技术来存储数据,相比HDD具有更快的读写速度和更短的访问时间。 这使得SSD在许多场景下能够提供更高的性能,特别是在需要快速随机访问的应用中,如虚拟化、数据库和Web服务器。 另外,SSD没有机械部件,因此更耐受冲击和振动,具有更高的可靠性。 然而,SSD的主要缺点是价格较高。 相比之下,SSD的价格通常更高,容量较小。 这对于需要大量存储空间的项目可能会成为限制因素。 但随着技术的发展,SSD的价格逐渐下降,容量逐渐增加,逐渐成为越来越受欢迎的选择。 ...

    2023-08-12 220
  • 什么是HDD(硬盘驱动器)

    HDD是一种传统的存储设备,其工作原理是利用磁性技术来存储和检索数据。它的主要优势之一是成本效益。 与SSD相比,HDD的价格更低,容量更大,这使得它成为存储大量数据的理想选择。 对于需要存储海量数据、成本敏感的项目,HDD可能是更好的选择。 然而,HDD在性能方面存在一些局限性。 由于其机械性能,HDD的读写速度相对较慢,访问时间较长。 这在需要快速数据检索和高吞吐量的应用中可能导致性能瓶颈。 此外,HDD较易受冲击和振动影响,可能导致损坏或故障。 ...

    2023-08-12 197
  • HDD和SSD的区别有哪些?

    特点 HDD SSD 工作原理 机械旋转部件和磁性技术 闪存技术 读/写速度 相对较慢 更快 随机访问速度 较慢,受寻道和旋转延迟影响 更快,无寻道和旋转延迟 访问时间 较长,受机械部件影响 更短 可靠性 机械部件易受冲击和振动影响 无机械部件,较耐久 耐用性 机械部件易损坏 抗冲击和振动 能耗 较高,机械部件需要较多能量 较低,节能 发热量 较高,机械部件运转产生热量 较低,不产生太多热量 噪音 机械运动产生噪音 无噪音 容量 容量较大 容量较小 价格 通常较便宜 通常较贵 适用场景 大容量存储,成本敏感项目 高性能、速度和可靠性要求 长期闲置可能性 可能引起数据丢失或降级 数据保持时间较长 数据持久性(断电情况) 需要时间将数据写入磁盘,较易丢失 数据写入速度快,断电时更可靠 技术发展趋势 逐渐被淘汰,但仍用于大容量存储 不断发展和改进,逐渐普及 ...

    2023-08-12 204
  • 服务器存储如何选择使用HDD还是SSD

    在选择服务器存储方案时,需要综合考虑多个因素: 性能需求: 如果项目需要高性能、快速的数据访问速度,特别是在虚拟化、数据库等应用中,SSD可能更适合。 存储容量: 如果项目需要大量存储空间,HDD可能是更经济的选择。但是,如果预算允许,也可以考虑使用更大容量的SSD。 可靠性和耐用性: 如果项目需要更高的可靠性和抗冲击性,SSD可能更合适,因为它没有机械部件。 成本预算: HDD通常比SSD更便宜,适用于成本敏感的项目。但是,如果性能要求较高,可能需要权衡性能和成本之间的关系。 未来扩展性: 考虑到项目未来的增长和扩展,可以选择支持更多硬盘的服务器,以便在需要时可以轻松扩展存储容量。 ...

    2023-08-12 190
  • 在互联网如何提高变现能力

    互联网上,稍微有点粉的都在变现,比如跨境电商的,有点粉丝的,变现无非几种:卖课、卖圈子(小红圈,知识星球)、做代运营、自己直接带货、赚服务商的钱(各种软件,工具)。 其实我一直都觉得赚钱也没什么,这和你开亚马逊店铺,淘宝店铺,本质上没有任何区别。都是赚钱的一种形态。 因为任何赚钱的背后都是因为满足了需求,没有需求就不会延伸出产品。你不做,照样有人做。并且一旦你变现,总有不好的声音,哪怕你做知识星球99块一年,照样有人说你割韭菜。所以,不要太在意,你做的所有的事,就是对你自己认知的变现。 还有因为有付出,有回报,这才是真实的回馈。人不可能没有回馈的,没有回馈就是不正常的商业形态。 当然有些人也可能为爱发电,那他收获的也是美誉,这都是一种回馈。即便不变现的,其实也收获了影响力,影响力是可以做很多东西的。 比如掌握的信息更多了,再比如和供应商谈判就有优势,比如我做亚马逊,利用影响力,供应商直接都是给我支持100w的货,先卖再说。完全不用钱自己先掏着。所以,如果你有本事你就上,任何在一个领域取得成功的人,都是值得我们学习的。 那些你看起来很简单的事,其实每一点做起来都不容易。 比如:持续内容输出/获客/裂变/投流/交付/迭代/团队管理/内部效率管理 你去做了你就知道,真正做出效果的人,远比那些高谈阔论的人,厉害太多了。所以我不喜欢那些整天看这不爽,看那不爽的人,指点江山的人一点意义都没有。 所有人,我建议直接学习那些有结果人,去剖析他们为什么成功,成功在哪里,有什么是我们可以学习的。这种直接快速的拆解,反复训练,对你帮助最大。 @小北带你飞的微博...

    2023-08-11 190
  • 来的真快:微信小程序必须要备案,否则下架

    随着上面的一声令下(工信部要求所有APP、小程序进行备案),各大互联网大厂都开始实施具体政策了。来的可真快啊! 首先来的就是微信公众号,它是跟进政策是最快的了。微信公众号要求所有的微信小程序都要备案。9月起小程序必须备案才能上架。 未履行备案手续的,不得从事APP互联网信息服务。 微信要求: 1、若微信小程序未上架,自2023年9月1日起,微信小程序须完成备案后才可上架; 2、若微信小程序已上架,请于2024年3月31日前完成备案,逾期未完成备案,平台将按照备案相关规定于2024年4月1日起进行清退处理。 同时,微信也在建设ICP代备案管理系统了,系统将于9月1日上线,功能大概率会和网站备案一样。 小程序备案周期大约是:1-20个工作日内(具体以实际审核时间为准)完成审核。可以说小程序备案和网站备案的流程一摸一样。 小程序,一般都是依托于各个平台下的网站程序,比如微信生态、支付宝生态、百度生态等等都有自己的小程序。美其名曰小程序,其实就是移动站,唯一不同的是只能在自己平台下访问的小程序。 其实小程序的发布挺麻烦的,比如网页上有个错别字,修改一下,后面都要重新审核才能发布。松松简单看了一下小程序备案的材料,政策备案到是挺简单的,但一些特殊行业是真的麻烦。要求有前置审批材料。比如你小程序做出版的必须要有网络出版服务许可证,你做新闻的必须要有互联网新闻服务许可证。总之,小程序的创业门槛越来越高了。 APP备案还能理解哈,但像微信小程序在正式发布的时候其实已经做过实名认证了,域名也做了备案了。而且微信也验证了企业资质,但有点想不明白,为什么还要单独做备案。但国家一定有自己的考虑,我们只要遵守就好了。...

    2023-08-11 209
  • 国家标准《信息安全技术 敏感个人信息处理安全要求》公开征求意见

    近日,全国信息安全标准化技术委员会秘书处就《信息安全技术 敏感个人信息处理安全要求》,公开征求意见。 根据国家标准化管理委员会2023年下达的国家标准制修订计划,《信息安全技术 敏感个人信息处理安全要求》由中国电子技术标准化研究院负责承办。本标准由全国信息安全标准化技术委员会归口管理。 本标准适用于规范个人信息处理者的个人信息处理活动,也可为监管部门、第三方评估机构对个人信息处理者开展个人信息处理活动进行监督、管理、评估提供参考。 为落实《个人信息保护法》对敏感个人信息处理规则的要求,本标准对生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹、不满十四周岁未成年人信息等敏感个人信息进行场景化规定,明确数据处理者对这些敏感个人信息进行收集、存储、使用、加工、传输、提供、公开、删除等处理活动的安全要求,重点突出采集必要性、安全保护、脱敏规则、告知同意等方面的具体要求。 《敏感个人信息处理安全要求》在各个行业,例如网上购物、网络支付、网络预约汽车、快递物流、网络音视频、即时通信等典型行业领域的推广应用,可以很好地帮助这些行业领域的企业提升自身的个人信息保护能力,有效促进各行业的健康发展。标准将为规范个人信息处理者的行为,保障个人信息权益,促进个人信息合理利用提供支持。目前,国内大部分企业均处理敏感个人信息,标准应用范非常广泛,标准应用将取得良好的效果。 原文链接: https://www.tc260.org.cn/front/bzzqyjDetail.html?id=20230809174946&norm_id=20221102151828&recode_id=52543 ...

    2023-08-11 203
  • 对线面试官 &#8211; TCP经典面试题之三次握手

    面试官:TCP三次握手和四次挥手的工作流程是什么? 不念:首先说一下TCP三次握手。 第一次握手,客户端发送链接请求报文,此时SYN=1、ACK=0、seq=x,这就是个连接请求此时客户端处于SYN_SENT状态,等待服务器响应。 第二次握手,服务端收到SYN=1的请求报文后需要返回一个确认的报文,ack=x+1,SYN=1,ACK=1,seq=y,发送给客户端,自己处于一个SYN_RECV的状态。 第三次握手,客户端接着又给服务端发送了ack=y+1,ACK=1,seq=x+1 简单总结:其实说白了三次握手就是来回来去的三次请求,每次请求携带上次一堆的TCP报文头,根据报文头是否正确从而建立连接。 面试官:为什么不是五次握手或者两次握手? 不念:假设如果是两次握手的话,第一次客户端握手过去结果卡在某个地方了,没有到达服务端。 可是客户端再次重新又发送了第一次握手过去,服务端收到了并握手返回,接着彼此就建立了连接。 意外的是,之前卡住的第一次握手又死灰复燃发送到了服务端。 服务端直接返回一个第二次握手。这个时候服务器也就开辟了一个资源等待接收客户端的数据。 可是客户端直接就忽略了该回合的第二次握手,因为之前已经通信过了。 如果要是三次握手的话,那个第二次握手发回去之后客户端发现第一次握手已经被丢弃了,就会发送个复位的报文过去,避免了资源的开销。 说白了就是两次握手可能会导致服务端资源的一个浪费。三次握手会有一个复位的报文从而避免这种情况。 不念:既然三次握手都可以保证连接,四次五次握手就有些浪费资源了。 面试官:不错,继续聊一聊为什么是四次挥手。 不念:好的。 第一次挥手,客户端发送报文,FIN=1,seq=u,此时进入FIN-WAIT-1状态。 第二次挥手,服务端就收到报文,这是便进入CLOSE_WAIT状态,返回一个报文,ACK=1,ack=u+1 seq=v。客户端收到这个报文后,直接进入到FIN-WAIT-2状态,此时客户端到服务端的连接断开了。 第三次挥手,服务端发送连接释放的报文,FIN=1,ack=u+1,seq=w服务端进入LAST-ACK状态。 第四次挥手,客户端收到连接释放的报文后,发应答报文,ACK=1,ack=w+1,seq=u+1,进入到TIME_WAIT状态,等待一会客户端进入到CLOSED状态,服务端收到报文之后就进入到CLOSED状态。 ...

    2023-08-11 221
  • 对线面试官 &#8211; TCP_IP四层网络模型经典连环问

    面试官:TCP、IP四层模型有了解吗?可以简单说说嘛。 不念:主要包括数据链路层、网络层、传输层、应用层。 面试官:可以简单聊聊什么是OSI七层网络模型吗? 不念:可以的,其实它和四层网络模型主要区别是多了表示层、会话层、物理层,依次顺序是应用层``表示层、会话层、传输层、网络层、数据链路层、物理层 面试官:可以简单聊一聊各个层不同的含义,存在的意义吗? 不念:当然:首先来说:从底向上的4层模型: 物理层:所谓的物理层就是指将各个电脑直接通过某种介质(WiFi、网线)连接起来形成一个网络,这就是物理层的含义。物理层负责传输0和1的电路信号。 数据链路层:架构在物理层之上,定义一些协议,将电路信号0和1进行分组。后来统一固定为以太网协议,一组电信号就是一个数据包又叫一个帧,每帧分成两个部分,标头(head)和数据(data),标头会包含一些说明性的东西,比如发送者接收者和数据类型等等。 数据链路层:网络交换机就是工作在该层的。网络交换机是通过MAC地址来寻址和传输数据包的;但是路由器/网关是通过IP地址寻址和传输数据包的。网络交换机主要用在局域网的通信。一般你假设一个局域网,里面的电脑通过数据链路层发送数据包,通过MAC地址来广播的,广播的时候就是通过网络交换机这个设备来吧数据广播到局域网内的其它机器上去的。路由器一般用来让你接入英特网。 这里涉及到了以太网协议,它规定了只要接入网络的设备都必须要有一个网卡,以太网规定了,每个网卡必须包含一个Mac地址,Mac地址是这个网卡的唯一标识,唯一的Mac地址是一个48位的二进制,但是一般为了方便使用12个16进制数据表示,前6个事厂商编号,后6个16进制是网卡流水号。然后通过广播的方式在同一个子网内进行传播。 网络层:上面说通过广播的方式将数据包在同一个子网内传播出去,那么是确定是同一个子网、局域网呢?那这个时候就需要网络层。 在网络层中最重要的就是IP协议,IP协议可以给每个电脑定义一个IP地址(IPV4、IPV6),范围是0.0.0.0~255.255.255.255,这里的IP地址中前24个二进制位(也就是前3组十进制的数据)中表示的是网络,后8位(最后一组十进制)代表了主机。运算公式为:通过将两个IP地址的二进制与子网掩码的二进制进行与运算,并判断前面的3部分二进制是否一样,一样则是一个子网。否则不是一个子网/局域网 传输层:这里有个问题是。一台机器上很多程序使用的都是一个网卡进行通信的。这些软件都是从一个网卡往外面发送数据,完后并从该网卡接收数据。如何区分不同应用软件接收的不同数据呢,此时就需要引入一个端口(范围是0~65536、0~1023被系统占用了)的概念。从上面说的我们可以发现网络层是基于IP协议进行主机间的寻址和通信的,传输层则是建立在主机的某个端口上到另外主机的某个端口上完成连接和通信的这个通信是通过socket来实现的。通过socket就可以基于tcp/ip协议完成上述所说的基于IP地址和MAC地址转换和寻址。以及通过路由进行通信然后建立一个端口到另外一个端口的连接。 TCP/UDP都是传输层的协议,作用就是在数据包里面加入端口号,可以通过端口号进行点对点通信。UDP是不可靠的。TCP是可靠的。 应用层:通过TCP协议可以完成端口对端口的一个通信,但是通信成功后拿到的这个数据应该如何去处理,这里就涉及到了应用层。比如最常见的应用层协议就是http协议(按照什么格式封装的就需要按照什么格式去解析响应。)。进行网络通信。 不念:总结,其实最常见的就是四层网络协议,分别是:数据链路层(以太网协议)、网络层(IP协议)、传输层(TCP协议)、应用层(http协议)所谓的七层就是引入了物理层(网线、光缆)、会话层、表示层、应用层 这三层一个并也就是四层里的应用层了 面试官:不错不错,那你知道如果不在一个子网数据应该如何传播的吗? 不念:当然知道啦,不过这次有点累了,下次吧。 ...

    2023-08-11 184
  • 攻防演练|记一次对xx教育局攻防总结

    前言 这次攻防演练每个队伍分配不同的目标,有些队伍拿的点可以直接 nday 打,有些队伍外网打点十分困难比如我们,但分数是是统一算的,可以说不是那么的公平。不过也算是提供了些许经验,简单做一下总结,都是比较基础的东西,如有写的不正确的地方欢迎各位师傅指正。 外网打点 敏感信息泄露 一般来说学校外网能拿直接权限的点已经很少了,web 应用大多是放在 vpn 后面,因此能弄到一个 vpn 账号可以说是事半功倍 另外还可以通过语法筛选出存在默认弱口令的系统,常用命令如下: PLAINTEXT 1 2 3 4 5 6 7 #google语法 site:*.edu.cn intext: vpn | 用户名 | 密码 | 帐号 | 默认密码 #github*.edu.cn password   查看方式优先选择最近更新,太久远的基本上失效了 这里队友收集到了某个目标的 vpn 账号,使用的是 姓名拼音/12345678 弱口令 进去内网后能访问的只有一个 OA 系统,测试了一下没发现什么东西,寻找其他突破口 shiro 无链 常规的打点可通过 fofa、hunter、quake 等网络测绘平台进行资产收集,收集好后进行去重,把去重后的资产列表进行批量指纹识别,筛选出重要易打点的系统 在常规的 hw 中这些方法比较通用,但是对于教育行业来说会相对困难,有 edusrc 的存在许多通用型漏洞已经被提交修复了,因此在信息搜集的时候要多去寻找旁站和一些容易被遗漏的站点 坐了一天牢后,终于通过测绘平台找到一个比较偏的资产,直接访问是一个静态页面,但扫描目录后指纹识别一波发现是 shiro 直接工具开冲,发现有默认 key 但是无利用链 这里想到之前学习 shiro 可以无依赖利用,感觉有戏尝试一波,相关知识可学习此文章 https://www.le1a.com/posts/a5f4a9e3/ PLAINTEXT 12 java -jar shiro_tool.jar 地址VPS:端口 通过 dnslog 测试有回显,这里有个注意点:使用 http://dnslog.cn/部分站点会拦截,可以换多个 dnslog 平台测试 dnslog 有回显接下来就是拿 shell 了,这里由于固化思维,之前遇到的都是 linux 系统,先入为主觉得是 Linux,结果没利用成功 这里可以通过网站快速生成 payload,https://x.hacking8.com/java-runtime.html 一开始以为是防火墙拦截,后面队友探测了一下目录结构,发现是 windows,所以这里 payload 要改变一下 Linux:  ...

    2023-08-11 252
  • 出于网络安全考虑,印度启用本土操作系统”玛雅“取代Windows

    据《印度教徒报》报道,印度将放弃微软系统,选择新的操作系统和端点检测与保护系统。 备受期待的 "玛雅操作系统 "将很快用于印度国防部的数字领域,而新的端点检测和保护系统 "Chakravyuh "也将一起面世。 不过,印度国防部尚未证实此事,也未发布官方消息。 玛雅操作系统与印度国防部 由于微软产品经常出现漏洞,一个拥有 14.86 亿人口的国家不能忽视这些漏洞带来的影响。 虽然大部分国防计算机是不联网的,但仍然有相当数量的计算机是相互连接的,因此很容易受到网络威胁。 众所周知,国家支持的高级持续威胁(ATP)组织以这些系统为目标,旨在提取敏感信息或建立未经授权的网络访问,以开展网络间谍活动。 据报道,为了应对这些不断变化的网络挑战,国防部正考虑在所有连接互联网的计算机上用本土的”玛雅“ 操作系统取代微软操作系统。 ”玛雅“ 操作系统是一个基于 Linux 的发行版,从流行的 Ubuntu 操作系统中汲取灵感。 预计这一过渡将是无缝的,因为与其他 GUI(图形用户界面)操作系统一样,”玛雅“ 操作系统将提供与 Windows 相似的用户界面和功能。 据报道,”玛雅“ 操作系统将在印度独立日(即 8 月 15 日)之前在南区实施。 印度旨在利用”玛雅“ 操作系统提高安全性 印度陆军、海军和空军已经对新操作系统进行了严格评估,海军已经批准。 同时,陆军和空军正在进行全面评估。据 Gizbot 报道,一旦这些评估结束,三个军种都准备将 ”玛雅“ 操作系统集成到其服务网络中。 在向玛雅操作系统过渡的同时,还引入了 "Chakravyuh",这是一种先进的端点恶意软件检测和保护系统。这种双管齐下的方法有望遏制针对国家数字安全的网络攻击的增加。 国防部之所以决定采用这些先进技术,是因为认识到网络威胁的不断升级。 尽管微软 Windows 操作系统广为人知,而且用户界面友好,但一些漏洞和漏洞利用,以及威胁行为者不断将 Windows 机器作为攻击目标的事实,迫使印度在玛雅操作系统和 Chakravyuh 端点安全的帮助下制定新的方针。 印度国防部正准备进行一次重大的技术变革,有可能告别微软 Windows,迎来 "玛雅 "操作系统时代。 在部署先进的 "Chakravyuh "保护系统的同时,此举标志着印度在捍卫国家数字主权方面迈出了大胆的一步。 参考链接:https://thecyberexpress.com/india-maya-operating-system-defense-ministry/ ...

    2023-08-11 185
  • EoL-Zyxel 路由器五年前的漏洞仍在被利用

    Bleeping Computer 网站消息,Gafgyt 恶意软件正积极利用 Zyxel P660HN-T1A 路由器五年前曝出的漏洞,每天发动数千次网络攻击活动。据悉,漏洞被追踪为 CVE-2017-18368,是路由器设备远程系统日志转发功能中存在的严重性未验证命令注入漏洞(CVSS v3:9.8),Zyxel 已于 2017 年修补了该漏洞。 早在 2019 年,Zyxel 就强调当时的新变种 Gafgyt 可能会利用该漏洞发动网络攻击,敦促仍在使用旧固件版本的用户尽快升级到最新版本,以保护其设备免遭接管。然而自 2023 年 7 月初以来,Fortinet 仍能够监测到平均每天 7100 次的攻击活动,且攻击数量持续至今。 Fortinet 发布警报表示截止到 2023 年 8 月 7 日,FortiGuard 实验室持续监测到利用 CVE-2017-18368 漏洞的攻击活动,并在过去一个月中阻止了超过数千个独特 IPS 设备的攻击企图。 试图利用 Zyxel 路由器中的 CVE-2017-18368 漏洞(来源:Fortinet ) Fortinet 指出虽然目前还尚不清楚观察到的攻击活动中有哪一部分成功感染了设备,但自 7 月份以来,攻击活动一直保持稳定。值得一提的是,CISA 近期发布了 CVE-2017-18368 在野外被利用的情况,并将该漏洞添加到其已知利用漏洞目录中,要求联邦机构在 2023 年 8 月 28 日前修补 Zyxel 漏洞。 为应对漏洞利用的爆发,Zyxel 又更新了安全公告,提醒客户 CVE-2017-18363 只影响运行 7.3.15.0 v001/3.40(ULM.0)b31 或更旧固件版本的设备,运行 2017 年为修复漏洞而推出的最新固件版本 3.40(BYF.11) 的 P660HN-T1A 路由器不受影响。 此外,Zyxel 表示 P660HN-T1A 在几年前就已达到报废年限。因此,强烈建议用户将其更换为更新一代的产品,以获得最佳保护。 路由器感染恶意软件常见迹象包括连接不稳定、设备过热、配置突然改变、反应迟钝、非典型网络流量、开放新端口和意外重启,如果怀疑自己的设备受到网络恶意软件的攻击,用户可以执行出厂重置,将设备固件更新到最新版本,更改默认的管理员用户凭据,并禁用远程管理面板,只从内部网络管理设备。 文章来源: https://www.bleepingcomputer.com/news/security/gafgyt-malware-exploits-five-years-old-flaw-in-eol-zyxel-router/#google_vignette ...

    2023-08-11 187
  • 搜狗输入法曝加密系统漏洞(已修复),黑客可窃取用户输入的内容

    近期,来自加拿大多伦多大学公民实验室的研究人员在国内热门输入法——搜狗输入法的加密系统中发现了漏洞,能允许网络监听者破译用户的输入内容。目前该漏洞已得到修复。 研究人员发现漏洞的软件版本涉及三大主流系统,分别是Windows 13.4版本、Android 11.20版本和 iOS 11.21版本,其内部定制的EncryptWall加密系统在Windows和Android系统中存在CBC 密文填塞(padding oracle)攻击漏洞,能让网络监听者恢复加密网络传输的明文,从而泄露敏感信息。在iOS中虽然发现了漏洞,但并不清楚具体的利用方式。 恢复的数据示例摘录,第 11 行包含键入的文本 EncryptWall加密系统旨在通过纯 HTTP POST 请求中的加密字段,将敏感流量安全地传输到未加密的搜狗 HTTP API 端点。在通过 HTTPS 发出 EncryptWall 请求的情况下,研究人员认为这些请求是安全的,但EncryptWall 请求的底层加密技术中可能存在任何缺陷。 研究人员发现,CBC 密文填塞攻击是一种早在2002年就曾出现的选择密文攻击,信息的明文可以一个字节一个字节地恢复,每个字节最多使用 256 条信息。这种攻击依赖于一种称为填充预言的侧通道的存在,它可以明确地揭示接收到的密文在解密时是否被正确填充。 研究人员于今年5月31日向搜狗报告了次漏洞,最终修复版本于7月20日正式发布(Windows 13.7版本 、Android 11.26版本  和 iOS11.25 版本 ),强烈建议搜狗输入法的用户立刻升级至上述版本。 根据研究人员的报告,搜狗输入法是最受欢迎的中文输入法,占中文输入法用户的70%,每月活跃用户超过4.55 亿。 ...

    2023-08-11 169

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注