安全见闻(1)——开阔眼界,不做井底之蛙

内容预览 ≧∀≦ゞ

安全见闻一:包罗万象的网络安全


声明

学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章

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


导语

时刻保持谦逊,始终保持学习,探寻事物的本质,不要把事情复杂化

渗透测试需要面对各种开发语言、框架和通信协议,要求对网络相关的各个领域都有一定的了解,至少要具备基础概念。不论是车载系统、人工智能,还是工业控制程序等,需要具备广泛的知识储备,才能走得更远。


编程语言

不同的语言有其独特的应用场景,从脚本编写到漏洞利用、从代码审计到网络和云计算开发,合理选择编程语言能够极大地提高工作效率。

常用语言

  • Python:广泛应用于数据分析、人工智能和Web开发,常用于编写脚本、概念验证(Proof of Concept, POC)及开发各种安全产品。易于学习且功能强大。
  • JavaScript:主要用于网页前端开发,同时可用于服务器端开发(Node.js)。
  • PHP:主要用于Web开发,尤其适合服务器端脚本编程。(无需深入学习,但需能够代码审计)
  • Java:广泛使用的面向对象编程语言,具备跨平台特性,常用于企业级应用开发。
  • Go:适合高效的网络编程和云计算开发,在安全产品开发中也表现优异。
  • C++C:用于底层开发和高性能计算,在安全领域常用于漏洞利用和系统安全研究。
  • Ruby:适合快速开发,Metasploit等知名渗透测试框架基于此语言。
  • Swift:iOS应用开发的主流语言,逐渐取代Objective-C。
  • Kotlin:Android应用开发的首选语言,具备较高的安全性和开发效率。

函数式编程

  • HaskellLispClojure:函数式编程语言在某些数据处理和并发计算场景中具有独特优势,虽然在安全领域使用较少,但对于特定任务能提供高效解决方案。

数据科学和机器学习

  • R:广泛用于统计分析和数据可视化,适合应用于大数据环境的安全分析。
  • Julia:用于高性能科学计算,适合需要快速处理大规模数据的安全模型。

Web全栈开发

  • TypeScript:作为JavaScript的超集,增加了静态类型检查等特性,提升了大型项目的开发效率,并能减少前端安全风险。
  • ArkTS: 鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。

移动开发

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

嵌入式开发

  • 汇编语言:对于嵌入式系统的底层硬件控制至关重要,常用于硬件漏洞分析,不同的处理器架构有不同的汇编语言。

其他编程语言

  • Pascal:曾经在教学和早期软件开发中有广泛应用。
  • Delphi(基于 Object Pascal):用于快速应用开发。
  • Scala:融合了面向对象编程和函数式编程,运行在 Java 虚拟机上。
  • Elixir:基于 Erlang 虚拟机,具有高并发和容错性,适合构建分布式系统。

编程语言多如牛毛,选择大于努力,样样精通不可能,适合的才是最好的

软件程序

什么是软件程序代码

软件程序是指用于计算机或其他可编程设备的指令集合,通常由代码组成。代码是软件程序的核心,无论是网页设计、网站开发,还是软件开发,其本质都是通过代码来实现特定功能。不同领域的专业名词(如软件工程、网络安全)实际上都是代码在各自领域中的应用。

代码的作用是执行特定功能。例如,鉴权中间件跨域中间件的核心功能,都是由代码来实现的。理解这些功能模块的代码实现,有助于我们透过专业术语理解其背后的本质,不被术语所迷惑。

无论使用何种编程语言,只要能够指示计算机执行任务,就可以编写出程序。代码最终被转换成二进制形式,供计算机硬件执行。无论是网页设计前端开发后端开发 ,还是底层逻辑 ,它们的基础都是代码。选择合适的编程语言,注重简便性和效率,能更好地完成任务。例如,如果Python 能够满足需求,就不必使用更复杂的C++。简单、实用的编程语言往往更为高效,因为它们能让计算机执行相同的任务,避免将问题复杂化。

常见软件程序类型

  • Web程序 :包括前后端架构 (B/S架构)和客户端-服务器架构(C/S架构),通常用于构建现代网站和网络应用。

  • 二进制程序:涉及漏洞挖掘与缓冲区溢出等安全利用技术,常用于逆向工程与系统漏洞研究。

  • 驱动程序 :负责计算机硬件的控制和管理,如Windows系统中以 .sys 结尾的文件。这类程序涉及硬件与操作系统的底层交互,安全性至关重要。

  • 上位机:指可以直接与硬件(如单片机)进行交互的计算机,常用于工业控制系统中。上位机通过用户界面发送指令并展示反馈数据,确保其安全性尤为重要。

  • 脚本程序 :广泛应用于自动化任务和渗透测试中,使用语言包括LuaPHPJavaScript等。脚本语言灵活、易用,是渗透测试、漏洞扫描等领域的重要工具。

  • 操作系统:操作系统也是一种软件程序,只不过规模较大。它控制计算机的资源管理和硬件交互,涉及系统安全的开发与防护。

  • 裸板程序 :通常用于没有操作系统支持的设备,如STM32微控制器或单片机。这类程序直接运行在硬件上,针对特定任务进行开发。

  • 量子计算:未来的计算发展方向,虽然还处于早期阶段,但可能会带来全新的安全挑战。

  • 工程程序BIOS程序:这些程序运行在硬件层次上,涉及硬件控制与启动过程,需进行严格的安全防护。

操作系统

非实时操作系统

  • WindowsmacOSiOSLinux:常见的桌面与移动操作系统,渗透测试和安全审计中的重点目标。

实时操作系统

  • WinCEVxWorksRT-Thread:工业控制系统和嵌入式开发中的关键组成部分,常用于物联网设备的安全研究。

网络通讯

硬件设备

计算机硬件
  • 中央处理器(CPU):计算机的核心部件,负责执行指令和处理数据,其性能直接决定了计算机的运行速度。
  • 内存:用于存储当前运行的程序和数据,容量和速度对整体性能有显著影响。
  • 硬盘:用于长期存储数据(包括操作系统、应用程序和文件等),其容量和读写速度对系统性能至关重要。
  • 显卡:专门处理图形和图像数据,其性能直接影响图形处理能力,对游戏玩家和设计师尤为重要。
  • 主板:连接并协调各种硬件组件(如CPU、内存、硬盘和显卡),其质量和性能影响计算机的稳定性和扩展性。
网络硬件
  • 网络服务器:提供文件存储、电子邮件和Web服务,必须具备高性能和可靠性,以满足用户需求。
  • 网络存储设备:如网络附加存储(NAS)和存储区域网络(SAN),用于提供大容量和高可靠性的数据存储解决方案。
  • 网络打印机:通过网络连接多台计算机,实现方便的打印共享。
  • 网络摄像头:用于视频监控和远程会议,通过网络传输视频信号。
移动设备硬件
  • 智能手机:集成通信、拍照、娱乐和办公功能,硬件包括处理器、内存、存储、屏幕和摄像头。
  • 平板电脑:较大屏幕,适合阅读和观看视频,硬件配置与智能手机类似。
  • 可穿戴设备:如智能手表和智能手环,监测用户健康和运动数据,硬件包括传感器、处理器、内存和屏幕。
硬件发展趋势
  • 小型化:设备逐渐小型化,便于携带,同时性能不断增强。
  • 高性能:CPU速度、内存和存储容量持续提升,显卡图形处理能力增强。
  • 智能化:设备能够自动适应环境和用户需求,如智能手机根据使用习惯自动调整设置。
  • 互联互通:设备之间的连接日益紧密,形成物联网,支持智能家居和智能汽车的自动化控制。

网络类型

  • 局域网(LAN):覆盖小范围,如建筑物或校园,便于员工共享文件和打印机等资源。
  • 城域网(MAN):覆盖较大区域,通常在城市内,如城市的有线电视和宽带网络。
  • 广域网(WAN):覆盖广泛,可以跨越国家和地区,如互联网,连接全球各地的计算机和网络设备。

网络设备

  • 路由器:连接不同网络,实现数据转发,根据IP地址和路由表确定传输路径。
  • 交换机:在局域网中连接多台计算机,实现数据快速交换,基于MAC地址转发数据帧。
  • 网卡:安装在计算机上,用于连接网络,将数据转换为网络信号并进行传输。
  • 无线接入点(AP):提供无线网络连接,使无线设备能够接入局域网或广域网。

安全技术及设备

  • 加密技术:通过加密保护数据,防止窃取或篡改。常见的如SSL/TLS协议用于浏览器和服务器间的加密通信。

  • 身份认证:确保只有授权用户能够访问资源,常用方式包括用户名密码、数字证书和生物识别等。

  • 防火墙(串行):根据预设规则过滤网络流量,防护外部攻击。分为硬件防火墙和软件防火墙(WAF)。

  • 入侵防御系统 (IPS, 串行):相较于防火墙,能更深入检测和控制数据流,增强入侵行为库,自动防御检测到的威胁。

  • 上网行为管理(串行):对用户上网操作进行控制,提供流量管理,动态调整每位用户的带宽使用。

  • 入侵检测系统 (IDS, 旁挂):实时监控网络,抓取并分析指定数据包,提供监控报表并对威胁行为发出告警。

  • 日志审计(旁挂):收集并存储网络设备日志,提供审计依据,支持事后取证。

  • 堡垒机(旁挂):为每个运维人员创建唯一运维账号,确保身份可追溯,解决账号共用问题。

网络与通讯协议

网络协议和通讯协议是计算机网络中用于数据传输的规则和标准,它们定义了数据的格式、传输顺序、错误处理方式,以及如何在不同设备间建立和维持连接。以下是一些关键的网络与通讯协议及其在网络通信和安全中的作用:

  • TCP/IP(传输控制协议/网际协议)

    TCP/IP是互联网的基础协议,广泛应用于网络通信,确保数据包的可靠传输和正确顺序。TCP在数据传输前建立连接,进行错误检测和重传,适用于对可靠性要求高的应用(如网页浏览和文件传输)。攻击者可能利用TCP特性进行各种攻击,如TCP洪水攻击和SYN洪水攻击,通过消耗网络资源导致目标服务不可用。

  • UDP(用户数据报协议)

    UDP是一种无连接的协议,允许在网络上快速传输数据,适用于对实时性要求高但不要求可靠性的应用(如视频流、在线游戏和语音通话)。由于UDP不保证数据包的送达和顺序,攻击者可以利用其无连接特性进行DDoS攻击,如UDP洪水攻击,向目标服务器发送大量伪造的UDP数据包,使其超负荷。

  • HTTP/HTTPS(超文本传输协议/安全超文本传输协议)

    HTTP用于网页传输,而HTTPS是在HTTP基础上添加SSL/TLS加密,确保数据安全。HTTPS防止数据在传输过程中被窃取或篡改,特别是对敏感信息的保护至关重要。攻击者可能通过中间人攻击截获未加密的HTTP数据,因此使用HTTPS是保护用户数据安全的重要措施。

  • FTP(文件传输协议)

    FTP用于在计算机之间传输文件,支持上传和下载功能。由于FTP传输的数据通常未加密,攻击者可以利用网络嗅探工具获取文件内容和凭据。因此,采用SFTP或FTPS等安全协议替代FTP是防止数据泄露的重要措施。

  • SMTP(简单邮件传输协议)

    SMTP用于发送电子邮件,尽管在邮件发送方面表现出色,但也容易受到邮件欺骗和垃圾邮件攻击。使用安全邮件传输协议(如SMTPS)可以增强邮件传输的安全性,防止数据泄露。

  • DHCP(动态主机配置协议)

    DHCP用于自动分配网络中的IP地址,攻击者可能利用DHCP伪造攻击分配错误的IP地址,从而中断网络服务或实施其他攻击。通过启用DHCP Snooping等安全措施可以减轻此类风险。

结语

在渗透测试和网络安全领域,有几个关键要素需要重视:

  1. 编程语言的选择

    对于红队来说,效率和实用性至关重要。Python、PHP、Go和Java等语言都表现出色,灵活性和强大的功能使它们能够在各种环境中发挥作用,助力快速开发和漏洞利用。

  2. 计算机硬件基础

    了解计算机硬件的组成及其工作原理,对于识别潜在的攻击面至关重要。熟悉CPU、内存、存储和网络设备的特性,能够帮助安全专家更好地进行漏洞分析和系统防护。

  3. 网络基础

    网络协议、网络架构及其安全性是保护数据和系统的关键。掌握TCP/IP、UDP等基本协议,以及了解局域网、城域网和广域网的工作原理,可以有效帮助你在渗透测试中进行信息收集和攻击规划。

  4. 安全工具和技术

    掌握常用的安全工具(如Nmap、Burp Suite、Metasploit等)及其应用场景,可以大幅提升渗透测试的效率和成功率。同时,学习最新的攻击技术和防御措施,保持对安全动态的敏感性,能使你始终走在前沿。

正所谓"懂进攻,知防守"。渗透测试和网络安全是一个动态变化的过程。深入掌握各类编程语言、网络协议、硬件基础及安全工具,才能真正成长为独当一面的网络安全专家!

相关推荐
用户9623779544813 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机16 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机16 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544818 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star18 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户9623779544821 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全
red1giant_star6 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透6 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全