声明:
本文的学习内容来源于B站up主“泷羽sec”的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。
本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文中的信息从事违法活动,均与本文作者和“泷羽sec”无关。请读者自觉遵纪守法,合理合法使用相关知识。
本文章主要讲解网络安全、网络技术都有什么,开阔眼见。
一、编程语言
1. 常见编程语言
编程语言 | 简介 |
---|---|
C 语言 | 一种通用的、面向过程的编程语言,广泛应用于系统软件和嵌入式开发。 |
C++ | 在 C语言基础上发展而来支持面向对象编程,常用于游戏开发、高性能计算等领域。 |
Java | 一种广泛使用的面向对象编程语言具有跨平台性,应用于企业级应用开发等。 |
Python | 简洁易学,拥有丰富的库,适用于数据分析、人工智能、Web 开发等。 |
JavaScript | 主要用于网页前端开发,也可用于服务器端开发(Node.js)。 |
C# | 由微软开发,主要用于 windows 平台上的应用开发。 |
Ruby | 一种简洁而富有表现力的编程语言,常用于 web 开发。 |
PHP | 主要用于 Web 开发,尤其适合服务器端脚本编程。 |
Go | 一种高效、简洁的编程语言,适用于网络编程和云计算等领域。 |
Swift | 苹果公司开发的编程语言,用于iOS 和 macOS 应用开发。 |
Kotlin | 可与 Java 互操作,主要用于 Android 开发。 |
- 首推python,用于写脚本、工具,非常方便。
- 其次是JavaScript,XSS主要是审计并利用JavaScript代码。
- 最后是PHP,主要是白盒代码审计,白盒漏洞挖掘PHP是主流,红队中白盒审计比较有前景,比较吃香。
- C、C++更适合去后期去做windows逆向。
2. 函数式编程语言
编程语言 | 简介 |
---|---|
Haskell | 纯函数式编程语言,以强大的类型系统和数学上的严谨性著称。 |
Lisp(包括 Common Lisp、Scheme 等) | 历史悠久的编程语言家族 |
Clojure | 运行在 Java 虚拟机上的 Lisp 方言,结合了函数式编程和 Java 平台的优势。 |
3. 数据科学和机器学习领域
编程语言 | 简介 |
---|---|
R | 在统计分析和数据可视化方面应用广泛。 |
Julia | 设计用于高性能科学计算和数据分析。 |
4. Web 全栈开发:
编程语言 | 简介 |
---|---|
TypeScript | 是 JavaScript 的超集,增加了静态类型检查等特性,提高了大型项目的开发效率。 |
5. 移动开发:
编程语言 | 简介 |
---|---|
0bjective-C | 曾经是 iOS开发的主要语言,现在逐渐被Swift取代。 |
6. 嵌入式系统开发:
编程语言 | 简介 |
---|---|
Assembly Language(汇编语言) | 不同的处理器架构有不同的汇编语言,用于对硬件进行底层控制。 |
7. 其他:
编程语言 | 简介 |
---|---|
Pascal | 曾经在教学和早期软件开发中有广泛应用。 |
Delphi(基于 0bject Pascal) | 用于快速应用开发。 |
Scala | 融合了面向对象编程和函数式编程,运行在Java 虚拟机上。 |
Elixir | 基于 Erlang 虚拟机,具有高并发和容错性,适合构建分布式系统。 |
二、软件程序
1. web程序(网站)
也就是常见的渗透最基础的网站,渗透最开始学的也就是web安全。
2. 二进制程序
更多是专门做逆向分析的人研究,和渗透是两个方向。
3. 驱动程序
本质也是二进制程序,以Windows为例,后缀为sys结尾的都属于驱动程序。
4. 上位机
5. 脚本程序
lua、php、java、python等都算,主要是写POC、EXP。
6. 操作系统
本质上也是一个很大的软件,只不过很厉害,看做技术含量很高的软件就好。
7. 裸板程序
web渗透、二进制都属于在操作系统上去写代码,但是裸板程序是直接在stm32或单片机上写代码,没有操作系统、进程等概念,需要自己去模拟才行。
8. 机器学习
一般用python写,go之类的也可以写,归根结底就是程序。
9. 量子计算
10. 工控程序
11. bios程序
就是代码写的程序而已,起了个高大上的名字。
三、操作系统
非实时操作系统 | 实时操作系统 |
---|---|
iOS | wince |
macOS | vxworks |
Linux | RT-THread |
Android | |
Windows | |
非实时操作系统就是你现在要执行的命令需要排队,不是立刻执行,内核功能是不可中断的,主要致力于在各种情况下提供良好的整体性能、用户体验和多任务处理能力,但不能保证在严格的时间限制内对事件做出响应。 | |
实时操作系统是抢占式操作系统,如果你的进程优先级高,则肯定第一个得到执行,直至结束执行,能够在确定的时间内对外部事件做出响应并完成特定的任务,具有严格的时间确定性和可预测性,常用与对时间要求极为严格的嵌入式系统、工业控制等领域。 |
四、网络通讯
无论搞什么都离不开网络通讯
1. 网络通讯
类型 | 简介 |
---|---|
局域网(LAN) | 覆盖范围较小,一般在一个建筑物或一一个校园内。例如,公司办公室内的网络就是一个局域网,用于员工之间共享文件、打印机等资源 |
城域网(MAN) | 覆盖范围较大,一般在一个城市内。例如,城市的有线电视网络、宽带网络等。 |
广域网(WAN) | 覆盖范围非常大可以跨越国家和地区。例如,互联网就是一个广域网,连接了全球各地的计算机和网络设备。 |
2. 网络协议
协议 | 简介 |
---|---|
TCP/IP | 是互联网的基础协议,包括传输控制协议(TCP)和网际协议(IP)。TCP负责数据的可靠传输,IP负责数据的路由和寻址。 |
HTTP | 超文本传输协议,用于在Web服务器之间传输超文本数据,如网页、图片、视频等。 |
FTP | 文件传输协议,用于在计算机之间传输文件。 |
SMTP、POP3、IMAP | 用于电子邮件的发送和接收。 |
- TCP/IP和端口协议需要重点关注,这里有缓存溢出等漏洞。
3. 网络设备
设备 | 简介 |
---|---|
路由器 | 连接不同的网络,实现网络之间的数据转发。它根据IP 地址和路由表来确定数据的传输路径。 |
交换机 | 在局域网中连接多台计算机,实现数据的快速交换。它根据 MAC 地址来转发数据帧。 |
网卡 | 安装在计算机上用于连接网络。它将计算机的数据转换为网络信号进行传输,并接收网络信号转换为计算机可识别的数据。 |
无线接入点(AP) | 提供无线网络连接,使无线设备能够接入局域网或广域网。 |
4. 网络安全
技术 | 简介 |
---|---|
防火墙 | **分为硬件防火墙和软件防火墙,软件防火墙包括WAF(软件狗)等。**用于保护网络免受外部攻击,它可以根据预设的规则过滤网络流量。 |
加密技术 | 对数据进行加密,防止数据被窃取或篡改。例如,SSL/TLS协议用于在浏览器和 Web 服务器之间进行加密通信。 |
身份认证 | 确保只有授权用户能够访问网络资源,常见的身份认证方式有用户名和密码、数字证书、生物识别等。只让特定用户、IP等认证信息来访问资源。 |
五、硬件设备
1. 计算机硬件
硬件 | 简介 |
---|---|
中央处理器 | 计算机的核心部件,负责执行指令和处理数据。它的性能决定了计算机的运行速度。 |
内存 | 用于存储正在运行的程序和数据,它的容量和速度对计算机的性能有很大影响。 |
硬盘 | 用于长期存储数据,包括操作系统、应用程序、文件等。硬盘的容量和读写速度也 是影响计算机性能的重要因素。 |
显卡 | 用于处理图形和图像数据,它的性能决定了计算机的图形处理能力。对干游戏玩家和图形设计师来说显卡的性能非常重要。 |
主板 | 是计算机的核心电路板,连接着各种硬件设备,如 CPU、内存、硬盘、显卡等。主板的质量和性能对计算机的稳定性和扩展性有很大影响。 |
2. 网络硬件
硬件 | 简介 |
---|---|
网络服务器 | 提供网络服务,如文件存储、电子邮件、Web 服务等。网络服务器通常具有较高的性能和可靠性,以满足大量用户的需求。 |
网络存储设备 | 用于存储网络中的数据,如网络附加存储(NAS)和存储区域网络(SAN)。它们提供了大容量、高可靠性的数据存储解决方案。 |
网络打印机 | 可以通过网络连接被多台计算机共享,方便用户打印文件。 |
网络摄像头 | 用于视频监控和远程会议等应用。它可以通过网络将视频信号传输到其他设备上。 |
- 可以通过fofa等硬件搜索引擎搜索网络打印机、网络摄像头。
3. 移动设备硬件
硬件 | 简介 |
---|---|
智能手机 | 集成了多种功能,如通信、拍照、娱乐、办公等。智能手机的硬件包括处理器、内存、存储、屏幕、摄像头等 |
平板电脑 | 类似于智能手机,但屏幕更大,适合阅读、浏览网页、观看视频等。平板电脑的硬件也包括处理器、内存、存储、屏幕、摄像头等。 |
可穿戴设备 | 如智能手表、智能手环等,可以检测用户的健康数据、运动数据等,并与智能手机等设备进行连接和交互。可穿戴设备的硬件包括传感器、处理器、内存、存储、屏幕等。 |
4. 硬件发展趋势
趋势 | 简介 |
---|---|
小型化 | 硬件设备越来越小型化,便于携带和使用。例如,智能手机、平板电脑等移动设备的体积越来越小,性能却越来越强。 |
高性能 | 随着技术的不断进步,硬件设备的性能不断提高。 |
智能化 | 硬件设备越来越智能化,能够自动适应不同的环境和用户需求。 |
互联互通 | 硬件设备之间的互联互通越来越紧密,形成一个庞大的物联网。 |
六、人工智能
1. 机器学习 python
工作流程:
数据收集:
来源:可以从各种渠道获取数据,如数据库、文件、传感器、网络等。
类型:包括结构化数据(如表格数据)、半结构化数据(如 XML、JSON 格式的数据)和非结构化数据(如文本、图像、音频等)。
数据预处理:
数据清洗:去除噪声数据、处理缺失值、纠正错误数据等。例如,对于包含缺失值的数据集,可以采用均值填充、中位数填充等方法进行处理。
数据归一化:将数据的特征值缩放到一定的范围内,以提高算法的性能和稳定性。常见的归一化方法有最小-最大归一化、Z-score 标准化等。
特征提取:从原始数据中提取出有用的特征,以便机器学习算法能够更好地处理和理解数据。例如,在图像识别中,可以提取图像的颜色、纹理、形状等特征。
模型选择与训练:
根据任务类型和数据特性选择合适的机器学习算法。例如,对于分类问题可以选择决策树、支持向量机等算法;对于回归问题可以选择线性回归、随机森林等算法。
将预处理后的数据分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。
使用训练集训练模型过程中,通过调整模型的参数使得训练集上的损失函数最小化。
模型评估与优化:
使用测试集对训练好的模型进行评估,常用的评估指标有准确率、精确率、召回率、F1 值、均方误差等。
根据评估结果对模型进行优化,例如,可以调整模型的参数、增加数据量等。比如,如果模型在测试集上的准确率较低,可以尝试增加训练数据的数量或调整模型的超参数。
模型应用:
将优化后的模型应用到实际问题中,进行预测、分类、聚类等任务。
对模型的应用结果进行监控和评估,不断改进模型以提高性能。
2. 深度学习
深度学习
深度学习的基本原理主要包括以下几个方面:
神经元模型
深度学习的基础是人工神经网络,其灵感来源于生物神经系统。神经网络中的基本单元是神经元,它接收多个输入信号,对这些信号进行加权求和,然后通过一个激活函数处理得到输出。
例如,典型的神经元接收来自其他神经元或输入层的数据,每个输入都有一个对应的权重。假设输入为对应的权重,则神经元的加权输入总和为,其中包括偏置项。然后,通过激活函数 得到神经元的输出。
多层神经网络
深度学习中的神经网络通常有多个层组成,包括输入层、隐藏层和输出层。
输入层接收原始数据;隐藏层对数据进行多次特征提取和变换;输出层产生最终的预测结果。
例如,在图像识别任务中,输入层接收图像的像素值,隐藏层逐步提取图像的边缘、纹理、形状等特征,最后输出层给出图像所属的类别。