红队-安全见闻篇(上)

时间:2024-10-24 14:40:47

声明

学习视频来自B站UP主 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,如涉及侵权马上删除文章

笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负

一.编程与开发

1.后端语言学习

C语⾔:⼀种通⽤的、⾯向过程的编程语⾔。⼴泛应⽤于系统软件和嵌⼊式开发。
C++:在C语⾔的基础上发展⽽来,⽀持⾯向对象变成,常⽤于游戏开发、⾼性能计算等领域。
java:⼀种⼴泛使⽤的⾯向对象变成语⾔,具有跨平台性,应⽤于企业级应⽤开发等。
python:简介易学,拥有丰富的库,使⽤于数据分析,⼈⼯智能,WEB开发等。
JavaScript:主要⽤于⽹⻚前端开发,也可⽤于服务器端开发(Node.js)。
C#:由微软开发,主要⽤于Windows平台上的应⽤开发。
Ruby:⼀种简介⽽富有表现⼒的编程语⾔,常⽤语web开发。
PHP:主要⽤于web开发,尤其适合服务器端脚本编程。
GO:⼀种⾼效、简洁的编程语⾔,⽤于iOS和macOS应⽤开发。
kotlin:可与java互操作,主要⽤于Android开发。

对渗透有帮助的编程语言 (优先级从上往下依次排序)

(1)python [多用来编写POC,EXP和一些工具脚本]

(2)JavaScript [涉及XSS漏洞]

(3)PHP [设计到白盒漏洞挖掘]

(4)swift [web页面打不进去,就上app打] Swift 教程 |

针对红队的白盒审计: php和java很吃香

针对逆向 学习C++搞windows逆向

针对学习编程语言的一些见解,如图所示

2.函数式编程语言

haskell:纯函数式编程语⾔,以强⼤的类型系统和数学上的严谨性著称。
lisp(包括common lisp、scheme等):历史悠久的编程语⾔家族,以其⾼度的灵活性个宏系统闻名。
clojure:运⾏在java虚拟机上的lisp⽅⾔,结合了函数式编程和java平台的优势。

Cn/十分钟学会 Haskell - HaskellWiki

LISP - 教程 -

Clojure入门教程 | Clojure 入门教程

3.数据科学和机器学习领域  

R:在统计分析和数据可视化⽅⾯应⽤⼴泛。
Julia:设计⽤于⾼性能科学计算和数据分析。

R 语言教程 |

Julia 教程 |

4.Web全栈开发

TypeScript:是 JavaScript 的超集,增加了静态类型检查等特性,提⾼了⼤型项⽬的开发效率。
ArkTS 语⾔是鸿蒙⽣态的应⽤开发语⾔。它在保持TypeScript(简称TS)基本语法⻛格的基础上,进⼀
步通过规范强化静态检查和分析,使得在程序运⾏之前的开发期能检测更多错误,提升代码健壮性,并
实现更好的运⾏性能。

TypeScript 教程 |

5.移动开发

oblective-C:曾经是iOS开发的主要语⾔,现在逐渐被Swift取代。

还是学Swift吧 Swift 教程 |

6.嵌入式系统开发

Assembly Language(汇编语⾔):不同的处理器架构有不同的汇编语⾔,⽤于对硬件进⾏底层控制

汇编语言 教程 -

7.其他

Pascal:曾经在教学和早期软件开发中⼴泛应⽤
Delphi(基于object Pascal):⽤于快速应⽤开发
Scala:融合了⾯向对象编程和函数式编程,运⾏在java虚拟机上
Elixir:基于Erlang 虚拟机,具有⾼并发和容错性,适合构建分布式系统。

二.软件程序

1.web程序

2.二进制程序

3.驱动程序

4.操作系统

5.裸板程序

6.机器学习

7.bios程序

三.操作系统

1.常见操作系统

2.实时操作系统和非实时操作系统

四.硬件设备

1.计算机硬件

*处理器(CPU):计算机的核⼼部件,负责执⾏指令和处理数据。它的性能决定了计算机的运
⾏速度。
内存:⽤于存储正在运⾏的程序和数据。它的容量和速度对计算机的性能有很⼤的影响
硬盘:⽤于⻓期存储数据,包括操作系统、应⽤程序、⽂件等。硬盘的容量和读写速度也是影响计
算机性能的重要因素。
显卡:⽤于处理图形和图像数据,它的性能决定了计算机的图形处理能⼒。对于游戏玩家和图形设
计师来说,显卡的性能⾮常重要。
主板:是计算机的核⼼电路板,连接着各种硬件设备,如CPU、内存、硬盘、显卡等。主板的质量
和性能对计算机的稳定性和扩展性有很⼤的影响。

2.网络硬件

⽹络服务器:提供⽹络服务,如⽂件存储,电⼦邮件,web服务等。⽹络服务器通常具有较⾼的性
能和可靠性,以满⾜⼤量⽤户的需求。
⽹络存储设备:⽤于存储⽹络中的数据,如⽹络附加存储(NAS)和存储区域⽹络(SAN)它们提
供了⼤容量、⾼可靠性的数据存储解决⽅案。
⽹络打印机:可以通过⽹络连接被多台计算机共,⽅便⽤户打印⽂件。
⽹络摄像头:⽤于视频监控和远程会议等应⽤。可以通过⽹络将视频信号传输到其他设备上。

3.移动设备硬件

智能⼿机:集成了多种功能,如通信、拍照、娱乐、办公等。智能⼿机的硬件包括处理器、内存、
存储、屏幕、摄像头等。
平板电脑:类似于智能⼿机,但但屏幕更⼤,适合阅读、浏览⽹⻚、观看视频等。平板电脑的硬件
也包括处理器、内存、存储、屏幕、摄像头等。
可穿戴设备:如智能⼿表、智能⼿环等,它们可监测⽤户的健康数据、运动数据等,并与智
能⼿机等设备进⾏连接和交互。可穿戴设备的硬件包括传感器、处理器、内存、存储、屏幕等。

4.硬件发展趋势

⼩型化:硬件设备越来越⼩型化,便于携带和使⽤。例如,智能⼿机、平板电脑等移动设备的体积
越来越⼩,性能越来越强。
⾼性能:随着技术的不断进步,硬件设备的性能断提⾼。例如,CPU的处理速度越来越快,内存和
存储的容量越来越⼤,显卡的图形处理能⼒越来越强。
智能化:硬件设备越来越智能化,能够⾃动适应不同的环境和⽤户需求。例如,智能⼿机可以根据
⽤户的使⽤习惯⾃动调整屏幕亮度、⾳量等设置。
互联互通:硬件设备之间的互联互通越来越紧密,形成了⼀个庞⼤的物联⽹。例如,智能家居设备
可以通过⽹络连接实现⾃动化控制

五.网络

1.网络类型

局域⽹(LAN):覆盖范围⼩,⼀般在⼀个建筑或⼀个校园内。⽐如家庭WiFi
域域⽹(MAN):覆盖范围较⼤,⼀般在⼀个城市内。例如城市有线电视⽹络、宽带⽹络等。
⼴域⽹(WAN):覆盖范围⾮常⼤,可以跨越国家和地区。例如互联⽹就是⼴域⽹,连接全球各
地的计算机和⽹络设备

2.网络协议(重要关注)

TCP/IP 协议:是互联⽹的基础协议,包括传输控制协议(TCP)和⽹际协议(IP)。TCP 负责数据的可
靠传输IP 负责数据的路由和寻址。
HTTP协议:超⽂本传输协议,⽤于在 Web 浏览器和 Web 服务器之间传输超⽂本数据,如⽹⻚、
图⽚、视频等。
FTP 协议:⽂件传输协议,⽤于在计算机之间传输⽂件。
SMTP、POP3 和 IMAP 协议:⽤于电⼦邮件的发送和接收。

其中FTP SMTP POP3 IMAP协议全是端口协议,因此这些协议存在一些漏洞

如:FTP协议存在 缓存溢出 暴力破解等的漏洞

TCP协议详解 (史上最全)-****博客

HTTP协议超级详解_xttb协议-****博客

【网络协议详解】——FTP系统协议(学习笔记)_ftp协议详解-****博客

POP3、SMTP和IMAP之间的区别和联系_smpt pop3 imap-****博客

3.网络设备

路由器:连接不同的⽹络,实现⽹络之间的数据转发。它根据IP 地址和路由表来确定数据的传输路
径。
交换机:在局域⽹中连接多台计算机,实现数据的快速交换。他根据MAC地址来转发数据帧。
⽹卡:安装在计算机上,⽤于⽹络连接,它将计算机的数据转换为⽹络信号进⾏传输,并接收⽹络
信号转换为计算机可识别的数据。
⽆线接⼊点(AP):提供⽆线⽹络连接。使⽆线设备能够接⼊局域⽹或⼚域⽹。

4.网络安全

防⽕墙:⽤于保护⽹络免受外部攻击,它可以根据预设的规则过滤⽹络流量。
加密技术:对数据进⾏加密,放置数据被窃取或篡改。例如,SSL/TLS协议⽤于在web浏览器和
web服务器之间进⾏加密通信。
身份认证:确保只有授权⽤户能够访问⽹络资源,常⻅的身份认证⽅式和有⽤户名和密码、数字证
书、⽣物识别等。

其中防火墙分为 软件防火墙硬件防火墙

5.通讯协议

六.机械学习(python 人工智能)

1.数据收集

来源:可以从各种渠道获取数据,如数据库、⽂件、传感器、⽹络等
类型:包括结构化数据(如表格数据)、半结构化数据(如 XML、JSON 格式的数据)和⾮结构化数据数
据(如⽂本、图像、⾳频等)

2.数据预处理

数据清洗:去除噪声数据、处理缺失值、纠正错误数据等。例如,对于包含缺失值的数据集,可以
采⽤均值填充、中位数填充等⽅式进⾏处理。
数据归⼀化:将数据的特征值缩放到⼀个特定的范围内,以提⾼算法的性能和稳定性。常⻅的归⼀
化⽅法有最⼩ -最⼤归⼀化、Z-score 标准化等
特征提取:从原始数据中提取出有⽤的特征,以便机器学习算法能够更好地处理和理解数据。例
如,在图像识别中,可以提取图像的颜⾊、纹理、形状等特征。

3.模型选择与训练

根据任务类型和数据特点选择合适的机器学习穿法。例如,对于分类问题可以选择决策树、⽀持向
量机等算法;对于回归问题可以选择线性回归、随机森林等算法。
将预处理后的数据分为训练集和测试集。训练集⽤于训练模型,测试集⽤于评估模型的性能。
使⽤训练集对模型进⾏训练,通过调整模型的参数使得模型在训练集上的损失函数最⼩化

4.模型评估与优化

使⽤测试集对训练好的模型进⾏评估,常⽤的诗估指标有准确率、精确率、召回率、F1 值、均⽅
误差等
根据评估结果对模型进⾏优化,可以调整模型的参数、更换算法、增加数据量等。例如,如果模型
测试集上的准确率较低,可以尝试增加驯良数据的数量或调整模型的超参数。

5.模型应用

七.深度学习(python 人工智能)

⼀、神经⽹络基础
深度学习的基础是⼈⼯神经⽹络,其灵感来源于⽣物神经系统。神经⽹络中的基本单元是神经元,
它接收多个输⼊信号,对这些信号进⾏加权求和,然后通过⼀个激活函数处理得到输出。
例如,典型的神经元接收来⾃其他神经元或输⼊层的数据,每个输⼊都有⼀个对应的权重。
二.多层神经网络
深度学习中的神经⽹络通常由多个层次组成,包输⼊层、隐藏层和输出层
输⼊层接收原始数据
隐藏层对数据进⾏多层次特征提取和变换
输出层产⽣最终的预测结果。
例如,在图像识别任务中,输⼊层接收图像的像素值,隐藏层逐步提取图像的边缘、纹理、形状等
特征最后输出层给出图像所属的类别。

前1~7为大方向,后续将开始逐步详细解释

八.web程序

通常构成 前端-后端-数据库-服务器 基本就是这些 前端url 请求到端要执⾏什么 后端登陆,这
时候就要调⽤数据库的数据,数据库放在,放服务器上(⼤概就是这样)

黑盒测试偏向前端

黑盒测试的大概流程 从前端 找到 后端或者是和数据库的一个数据传输点 通过该点插入一个恶意代码 之后观察页面的一个状态  进而判断页面是否存在漏洞

前端

1.语言
HTML (点击劫持)
CSS(存在注⼊。和xss区分开)
JavaScript(xss dom型 反射型 存储型 点击劫持)

2.代码库
JQuery
BOOtstrap
elementui
代码库是什么?简单来说就是将⼀些原⽣的代码封装成⼀些库,⽅便开发者去调⽤。

3.框架
.vue
.react
.angular
框架不论怎么写都是基于最本质的三种语⾔写的HTML,JavaScript

Vue.js 教程 |

快速入门 – React 中文文档

Angular 入门 - 学习 Web 开发 | MDN

4.前端潜在的漏洞

后端

1.后端潜在的漏洞

2.语言
PHP
python
go
ruby
lua
后端语⾔有很多,⽐如PHP就会有反序列化漏洞、SQL注⼊漏洞、命令注⼊漏洞等问题。所以语⾔是很
重要的,如果你连后端语⾔都没写过怎么知道啥叫反序列化呢?

3.数据库
潜在漏洞:SQL注⼊、xss、命令注⼊等
数据库分类:
关系型数据库
MySQL
SQLserver
access
postgresql
⾮关系型数据库
MongoDB
couchdb
neo4j
redis
想学sql注⼊的话得学习数据库。

MySQL 教程 |

SQL Server 教程 -

Access 教程 -

PostgreSQL 教程 |

MongoDB 教程 |

CouchDB - 简介 | CouchDB 教程

Neo4j - 教程 -

Redis 教程 |

4.服务器程序
潜在漏洞:信息泄露、⽂件上传漏洞、⽂件解析漏洞、⽬录遍历、访问控制
Apache
NGINX
iis
tengine
Tomcat
weblogic

九.脚本程序

1.脚本语言

通俗来说就是拿过来之后我就可以直接看⻅他的源代码,可复制性⾼。⽐如我们打开浏览器随便进⼀个 ⽹站 F12 去看⼀下。基本上前端代码在这个调试器这⾥都可以看监的这种就是典型的脚本语⾔。
主流脚本性质程序:
golang
python
node
js
类型:lua/php/go/python/js/golang/nodejs
这些编程语⾔都能写⼀些脚本性的病毒。会了编程语⾔基础,但也要了解相应脚本⽊⻢的结构,它是怎
么写的。

2.macro(宏病毒)

⽐如利⽤metasploit⽣成宏病毒,并将宏病毒植⼊office⽂件中⼀般来说这个⼯具植⼊的都是微软
的产品,还是如上所述,想要编写宏病毒,就要先了解宏的代码构成。
编写语⾔:⼀般是VB或者C#类似这样的语⾔

3.powershell

这两个都是微软的,主要⽤于内⽹渗透(内⽹渗透不只是内⽹渗透中的渗透域,总的来说内⽹渗透
和公⽹渗透的区别就是的渗透域,但是渗透域代表不了内⽹渗透)

4.CAD LISP(脚本病毒)

在使⽤CAD画图纸时可能⽤到⼀些脚本,在这些脚本中植⼊的病毒。
危害:可能盗取CAD机密图
编写语⾔:lisp

5.AUtolt3(脚本病毒)

这种病毒编写语⾔不常⻅,主流杀毒软件(运⾏过程是类似于暴⼒破解,在病毒库中搜寻与检测对
象相等或类似的内容进⾏⽐对并且查杀)对这种语⾔的查杀程度低

6.bios病毒

总结

安全见闻(上篇)主要解释了相关的理论知识: 编程与开发 软件程序 操作系统 网络 机械学习 深度学习 WEB程序 脚本程序等大量专有名词来让大家明确学习方向,不再迷茫.