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