细心观察,用心思考
🌟声明🌟
BiliBili·红客全栈教程
学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章
以下只涉及学习内容,其他都与本人无关,切莫逾越法律红线,否则后果自负。
星河飞雪网络安全人才培养计划,绝对零区,公益免费教学!没有网络安全,就没有国家安全!
安全见闻
编程语言
一些方向:Web程序、软件程序、二进制程序、驱动程序、脚本程序、模板程序、工控程序、bios程序、上位机、操作系统、机器学习、量子计算、网络通信、硬件等等。
操作系统
- 非实时操作系统:就像刷新、取钱,你发起一个请求,CPU、银行不会立刻回应,而是做好前期准备才会响应,如Windows,mac,Linux等
- 实时操作系统(RTOS):与上相反,如vxworks、RT-Whread、wince等
其他
找方向,什么才是最相关的,收益最大化。
Web程序
- 构成:前端url请求、后端登录调用数据库,去服务器找
-
前端
- html、css、JavaScript(dom型、反射型、存储型)
- 潜在漏洞:请求走私跨域、点击劫持、注入、xss、web缓存漏洞(溢出)
-
代码库
- 可以减轻负担,直接调用库(Python库)
-
框架
- 分析框架可以节约时间
-
后端
- xss、csrf、ssrf、反序列化漏洞、sql注入漏洞、模板注入、跨域
-
数据库
- 关系型数据库:mysql、sqlserver
- 非关系型数据库:redis、mongodb
-
服务器程序
- apache、nginx、iis
- 潜在漏洞:文件上传、文件解析、目录遍历、访问控制等
脚本语言
大多数编程语也算脚本语言,更深入一点:golang、python(脚本性)node.js(脚本性程序),用于写木马、自动化等
病毒
- 宏病毒(macro):利用metasploit生成宏病毒,植入office文件——VB/C#编写
- bat、powershell:主要用于内网渗透
- CAD LISP(脚本病毒):CAD运行时会正常执行一些脚本,我们可以放一些自己的东西。——使用lisp语言(较特殊)
- Autol3(脚本病毒):冷门语言不易被杀
- bios程序(病毒):理解bios、NASM以及上位UFFI
操作系统
操作系统是管理和协调计算机资源的系统软件
- 账户、文件、源码的加密方式
- 文件系统的权限
- 日志怎么分析、清理
- 系统设计、业务逻辑是否有缺陷
- 能否利用操作系统调用计算机资源、监控计算机
- 隐藏账户、影子账户
- 看了这个文章后学到了关于linux /proc目录(虚拟文件系统)的一些东西
- ……
注册表
- win才有注册表,本质就是数据库,包括根键、子键、键值
- linux在/etc用单独的文本文件放配置信息,文本编辑器修改配置文件;Mac(基于unix开发)提供了一些工具来管理配置文件,和linux类似
- 注册表是普通人接触不到的区域,不当操作能毁坏计算机
防火墙
防火墙为了安全而生,包括:
1. '包过滤防火墙':
- 最基本的防火墙,它根据预设的'规则'对数据包的头部信息进行检查,如源地址、目的地址、端口号和协议类型等。
2. '状态检测防火墙':
- 除了检查数据包头部信息外,还能跟踪网络连接的状态,确保数据包是在已建立的'合法'会话中传输。
3. '代理防火墙':
- 又叫应用层防火墙,它在网络和用户之间充当中介,对数据包进行'更深入'的检查,包括内容过滤和应用层过滤。
4. 个人防火墙:
- 用于个人计算机,保护单个设备免受网络攻击。
5. 企业级防火墙:
- 为大型网络环境设计,提供更高级的安全功能和更高的性能。
6. '下一代防火墙':
- 集成了传统的防火墙功能和额外的安全服务,如入侵防御系统(IPS)、防病毒、URL过滤和应用程序识别。
7. '统一威胁管理防火墙':
- 提供了包括防火墙、防病毒、垃圾邮件过滤、入侵防御和VPN等多种安全功能于一体的解决方案。
8. '硬件防火墙':
- 物理设备,安装在网络中,用于监控和控制网络流量。
9. 软件防火墙:
- 运行在操作系统上的软件程序,用于监控和控制进出计算机的数据流。
10. '云防火墙':
- 基于云的服务,用于保护云环境中的资源和应用程序。
11. '分布式防火墙':
- 在多个网络节点上部署防火墙,以提供更全面的保护。
12. '透明防火墙':
- 在网络中以透明模式运行,不需要更改现有的网络架构。
13. '双宿主防火墙':
- 具有两个网络接口卡,一个连接到内部网络,另一个连接到外部网络,用于'过滤两个网络之间的流量'
14. 三宿主防火墙:
- 具有三个网络接口卡,通常用于更复杂的网络配置,提供额外的隔离和监控功能。
15. '虚拟防火墙':
- 在虚拟化环境中运行,用于保护虚拟网络和虚拟机。
16. '集成防火墙':
- 与其他网络设备(如路由器或交换机)集成在一起,提供基本的防火墙功能。
17. '无线防火墙':
- 专门设计用于保护无线网络,防止未授权的访问和攻击
发展更偏向集成和自动化
自启动
Window
1. 任务计划程序:
打开“任务计划程序”(可以在开始菜单搜索)。
在右侧的“操作”面板中选择“创建基本任务...”。
按照向导设置触发器为“当计算机启动时”,并指定要运行的程序。
2. 注册表:
打开“运行”对话框(Win + R),输入 `regedit` 打开注册表编辑器。
导航到 `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
或 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`。
在右侧空白处右键选择“新建” > “字符串值”,输入名称,并在“数据值”中输入程序的完整路径。
3. 启动文件夹:
在文件资源管理器中,导航到 `C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`。
将程序的快捷方式拖放到此文件夹中。
Linux
1. 系统级服务(Systemd):
创建一个服务文件,例如 `/etc/systemd/system/yourservice.service`。
在该文件中定义服务的启动命令和其他配置。
使用 `sudo systemctl enable yourservice` 启用服务。
2. 桌面环境的自启动应用:
对于 GNOME,可以安装 `gnomesessionproperties` 并添加启动时运行的程序。
对于 KDE,可以在系统设置中的“启动和关机”部分添加自启动程序。
3. .xinitrc 或 .xsession 文件:
在用户的主目录中创建或编辑 `.xinitrc` 或 `.xsession` 文件。
在文件中添加启动程序的命令。
macOS
1. 系统偏好设置:
打开“系统偏好设置”。
点击“用户与群组”。
选择“登录项”标签页。
点击“+”添加要自启动的应用程序。
2. Launch Agents 和 Launch Daemons:
创建一个 plist 文件,定义程序的启动条件和路径。
将 plist 文件放置在 `/Library/LaunchAgents`(全局)
或 `~/Library/LaunchAgents`(用户级)。
使用 `launchctl load` 命令加载 plist 文件。
3. 第三方应用:
使用第三方应用程序,如 Lingon, Cocktail 等,来管理自启动程序。
计划任务
- 使用命令可以设置任务在特定时间、系统启动时、用户登录时、计算机空闲时等情况下触发。比如启动程序、发送电子邮件、显示消息等。
事件日志
- 事务日志是一种'[记录系统操作]'的机制,用于确保事务的原子性、一致性、隔离性和持久性(ACID属性)日志一般用于恢复数据、配置
- win日志文件主要用于数据库系统
- linux常见的日志文件包括
/var/log/syslog
、/var/log/messages
、/var/log/auth.log
等,记录了系统和应用程序等各种活动 - mac使用统一日志系统,十个跨平台的日志系统,日志数据以
tracev3
格式的文件存储在/var/db/diagnostics
目录中,可以使用log show等命令查看
内核驱动
内核驱动有点复杂 暂缓
系统服务
- 远程桌面
- 文件共享
- iis服务
- 防火墙
- SSH
- FTP
- Apache
- 自定义服务创建
进程、线程
- linux进程隐藏(伪造进程名)
系统编程
驱动程序
- 内核驱动、设备驱动
- 内网渗透、逆向工程、安全对抗、外挂保护
通讯协议、端口
保密性
- 数据泄露风险:没有充分考虑数据加密,比如未加密的http协议、使用老旧的des等加密协议
- 秘钥管理管理不善:加密通信依赖加密算法
完整性
- 修改数据包,存在逻辑漏洞
- 重放攻击:记录通讯过程中的数据,并在稍后的时间里重复发送这些数据,从而达到欺骗系统的目的,比如抓包记录数据包,然后重复发送cookie登录请求(有些会被封ip,可以用代理绕过)
身份校验
- 假冒身份风险:例如假冒身份骗取信息
- 身份验证风险:一些通讯协议存在漏洞,插入木马窃取用户信息,就是钓鱼
可用性
- 分布式拒绝服务攻击
- 通讯协议漏洞导致的可用性问题
协议实现
- 缓存溢出:添加大量脏数据,导致内存缓存溢出,从而被利用破坏系统
- 第三方库和组件的安全漏洞
移动通信协议安全
- 无线网络易被监听,如wifi、蓝牙攻击,分析协议包解析内容
- 移动应用使用特定的协议与服务器进行通讯
物联网通讯协议安全
- 大量的设备难题:设备更新的难题,很难保证全部设备的安全性(薄弱点)
- 异构性:不是统一采购的,有新旧设备互联,入侵薄弱的旧机器;不同设备可能用到不同协议和技术,比如域渗透
工业控制通讯协议安全
工业对实时性要求很高,保障安全和实时性可能产生安全冲突
人工智能(AI)
通过算法模拟人的操作
- 非对称信息博弈和对称信息博弈:双方掌握的信息是否对称
- python专门用于机器学习的库,如TensorFlow、PyTorch、Keras、scikit-learn等(这些工具简化了复杂的数学运算和模型构建过程)数据处理和分析
- 人工智能安全:对抗样本攻击、鲁棒性
网络安全热门证书介绍
oscp
- 准备稳定的vpn、周围不能有其他设备、只能使用规定内的工具进行测试(比如只能用nmap,不能用sqlmap,kali能有的不多)
考点
- 信息收集:包括网络侦察、端口扫描、服务识别
- 漏洞发现:常见的sql注入、缓冲区溢出、文件上传漏洞
- 漏洞利用:掌握漏洞利用方法,获取系统权限
- 后渗透测试:包括权限提升、横向移动、数据窃取
- 免杀:
考核形式
- 拿下n个靶机,提交flag;有加分项:如考前训练加分
学习方法
- 学习基础知识:掌握网络、操作系统书籍库等基础知识,了解常见漏洞类型和利用方法。
- 搭建实验环境:使用虚拟机搭建各种渗透测试环境进行实操
- 培训课程:Offensive Security提供官方培训课程,也有第三方培训
- 练习靶场:利用在线渗透测试靶场,如Hack the box、VulnHub等
🌟osep
- (Offensive Security Exploit Developer-->kali)
- 专注于漏洞利用开发,要求考生具有深入的底层知识和高级编程技能,能够独立发现和利用漏洞,无加分
考点
- 逆向工程:掌握反汇编、调试等技术,分析软件的内部结构
- 漏洞挖掘:使用静态分析和动态分析方法,发现软件中的安全漏洞
- 漏洞利用开发:编写漏洞利用代码,实现对目标的控制
- 高级编程:熟悉c、c++、python等编程语言,能够进行底层编程,掌握反汇编技术
练习方法
- 学习逆向工程知识
- 开发漏洞利用代码
- 参加ctf比赛:积累靶机经验
cissp
- 偏理论证书,考的内容、领域很多,偏向管理
- 1000个理论,答对700
考点
- 安全管理、访问控制、密码学、网络安全、软件开发安全
硬件设备
一些网络安全问题点:
- 设备被盗或损坏等物理方法渗透(社会工程学)
- 环境因素,例如高温、潮湿、清洁
- 电磁干扰设备正常运行
- 供应链安全:假冒一些产品,存在安全漏洞或被植入恶意程序;可以检测设备序列号、固件版本等,使用可信的供应链渠道
- 设备漏洞:操作系统可能存在缓冲区溢出、权限提升等,例如攻击者发送精心够早的数据包,出发操作系统缓存溢出,从而执行恶意代码
- 固件漏洞:攻击者可以利用固件升级或恶意软件植入等
- 硬件设计漏洞:硬件后门、侧信道攻击,攻击者可以利用漏洞获取设备敏感信息,如分析设备电磁辐射或工号变化
- 网络攻击:DDoS攻击、SQL注入、跨站脚本攻击
- 无线安全:wifi破解、蓝牙攻击、窃取信息甚至控制手机
- 网络隔离:设备没有进行网络隔离,可能会影响其他设备,例如蠕虫病毒
硬件设备潜在漏洞(进行信息比对)及渗透测试方法
处理器漏洞
幽灵(Spectre)和熔断(Meltdown)漏洞
渗透测试方法:可以使用专门的漏洞检测工具,如Meltdown and Spectre Checker,对处理器进行检测。也可以通过分析处理器的性能指标,如 CPU 使用率、内存访问时间等,判断是否存在漏洞。
攻击者可以利用这些漏洞获取处理器中的敏感信息,如密码、密钥等。例如,通过构造特定的代码序列,诱导处理器执行错误的预测执行,从而读取内核内存中的敏感数据。
侧信道攻击漏洞
渗透测试方法:侧信道攻击通常需要对目标设备进行长时间的观察和分析,因此渗透测试人员可以使用专门的侧信道攻击工具,如电磁辐射分沂仪、功耗分析器等,对设备进行监测。也可以过软件模拟的方式,分析设备的运行状态,判断是否存在侧信道攻击漏洞。
存储设备漏洞
固态硬盘(SSD)漏洞:
- 可以使用:SSD漏洞检测工具,如SSD Secure Erase Tool,对 SSD 进行检测。也可以通过分析 SSD 的固件版本和功能判断是否存在漏洞。
- 攻击者可以利用 SSD 的固件漏洞获取存储在 SSD 中的数据。例如,通过修改 SSD 的固件,使 SSD 在特定条件下泄露数据。
内存漏洞:
- 可以使用内存漏洞检测工具,如Memtest86,对内存进行检测。也可以通过分析程序的内存访问模式,内存可能存在缓冲区溢出、内存泄漏等漏洞
网络设备漏洞:
- 路由器漏洞:可以使用路由器漏洞扫描工具,如Router Scan,对路由器进行检测。也可以通过分析路由器的配置文件和固件版本,判断是否存在漏洞
- 交换机漏洞:可以使用交换机漏洞扫描工具,如 Switch Scanner对交换机进行检测。也可以通过分析交换机的配置文件和固件版本,判断是否存在漏洞。
物联网设备漏洞:
- 可以使用物联网设备漏洞扫描工具,如IoT nspector,对物联网设备进行检测。也可以通过分析物联网设备的通信协议和固件版本,判断是否存在漏洞。
渗透测试应用
渗透测试流程
- 信息收集:收集目标硬件设备的相关信息,包括设备型号、固件版本网络配置等。
- 漏洞扫描:使用漏洞扫描工具对硬件设备进行扫描,发现潜在的安全漏洞。
- 漏洞利用:根据发现的漏洞,尝试利用漏洞获取设备的控制权或敏感信后渗透测试:在成功获取设备控制权后,进行后渗透测试,如权限提升、横向移动、数据窃取等。
- 报告生成:将渗透测试的结果整理成报告,包括发现的漏洞、利用方法、风险评估等
渗透测试注意事项
- 合法合规:渗透测试必须在合法合规的前提下进行,获得相关授权后方可进行测试。
- 风险控制:在进行渗透测试时,要注意控制测试的风险,避免对目标设备造成不必要的损害。
- 保密原则:渗透测试人员要遵守保密原则,对测试过程中获取的敏感信息进行严格保密。
小总结:找到对应硬件扫描器,直接对硬件进行扫描检测漏洞
量子计算
量子物理学基础
- 了解量子力学的基本原理,如量子态、叠加态、纠缠等概念,这是理解量子计算的基础
- 学习量子力学的数学表达,包括波函数、算符等,以便更好地分析量子计算系统的特性。
量子计算原理与技术
- 掌握量子比特、量子门、量子电路等量子计算的核心概念
- 研究不同的量子计算模型,如量子线路模型、绝热量子计算等。
- 解量子算法,特别是对传统密码学构成威胁的算法,如 Shor 算法。
传统网络安全知识
- 传统加密算法、哈希函数、数字签名等网络安全技术
量子密码学
- 学习量子密钥分发(QKD)的原理和技术,掌握其优势和局限性。
- 研究抗量子密码算法,,如基于格的密码、基于哈希的密码等。
加密算法被破解风险
- 传统非对称加密算法(如 RSA、ECC)可能被量子计算机上的 Shor 算法快速破解
- 哈希函数可能受到量子计算的攻击,导致碰撞攻击更容易实施
- “现在收获,以后解密”风险:攻击者可能在当前收集加密数据,等待量子计算技术成熟后进行解密
- 量子计算可能破解区块链用户的私钥,威胁加密货币的安全
- 量子信道可能受到干扰,影响密钥的生成和传输。
量子计算系统自身风险
- 设备和系统可能存在安全漏洞,被攻击者利用
- 量子计算系统存在错误和噪声问题,可能被攻击者利用来破坏计算过程或获取敏感信息
- 供应链安全风险,硬件设备或软件可能被植入恶意代码
测试方法
加密算法测试
- 使用量子计算模拟器或量子硬件,尝试运行 Shor 算法对传统加密算法进行破解
- 区块链安全普通设备很难破解
阶段
信息收集阶段
- 了解目标背景,确定量子系统的服务、量子设备类型、拓扑结构
- 利用互联网搜集目标系统发布的公开信息
危险建模阶段
- 识别潜在威胁源,如可能对量子系统构成威胁的主体,内部管理员等操作或恶意行为
- 评估影响程度,如数据泄露、系统瘫痪、量子密钥被破解等等
漏洞分析阶段
- 设备漏洞,使用专业扫描器,扫描硬件设备,检查计算机控制系统、量子通讯设备接口是否有漏洞或配置不当
- 软件漏洞,对量子系统中运行的软件进行漏洞检测(如操作系统、控制软件、通讯协议等)查找可能存在的代码漏洞、缓冲区溢出、权限管理不当等问题
- 量子算法分析,针对量子系统使用的量子算法进行安全分析,例如量子密钥分发算法是否存在被监听或破解的风险,对于系统是否有可被利用的漏洞
渗透攻击阶段
- 漏洞利用尝试,通过发现的系统漏洞,尝试利用漏洞获取量子系统访问权限,例如发现远程代码执行漏洞,尝试通过发送精心构造的数据包来执行恶意代码,获得控制权
- 量子信道干扰,比如强磁场、强光等干扰/窃听量子态传输
- 社会工程学攻击
后渗透攻击阶段
- 内部网络探测,再取得量子系统访问权限后,进一步探测系统内部的网络结果,了解系统中其他设备的连接情况和访问权限,以便扩大攻击面
- 数据窃取与分析
- 权限提升和持久化
为什么shor算法可以快速破解传统非对称加密算法?
首先,Shor算法通过量子傅里叶变换(Quantum Fourier Transform, QFT)来寻找周期函数的周期,这是解决整数分解问题的关键步骤
Shor算法的关键在于量子傅里叶变换能够将量子态之间的隐含关系变成相位因子,从而使得算法能够在多项式时间内找到周期rr。一旦找到周期,就可以使用经典的数学技术来求解离散对数问题。
解决了整数分解和离散对数问题,传统非对称加密算法就容易被破解
此外,研究人员正在开发量子安全加密(quantum-safe cryptography)或称为后量子加密(post-quantum cryptography, PQC)的新型加密算法,这些算法被设计为即使在量子计算机面前也能保持安全