声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频
上节课我们对 web 程序进行了全面且深入的科普讲解,大家应该已经意识到其中涵盖了众多不同类型的软件,像是脚本类的、二进制形式的,还有其他各种程序以及 web 程序等等。但无论其类型如何多样,我们都必须深刻理解它们的本质。归根结底,这些程序都是通过一串串的代码编写而成的,这些代码可能是英文代码,当然也有像易语言这样使用中文编写的情况。其核心目的在于向计算机传达明确的指令,告知计算机我们期望它完成的具体任务,这便是所谓的程序。所以,我们万不可被程序那些看似高大上的名称所迷惑,无论名称多么耀眼,其底层的逻辑架构无一不是由代码构建而成。
今天,让我们将目光聚焦于操作系统和驱动程序。正如之前所提及的,这两者实际上也属于软件程序的范畴。在计算机软件的广袤世界里,许多程序之间并非孤立存在,而是相互交织、彼此关联,你中有我,我中有你,这恰恰是计算机软件领域的真实写照。并非所有事物都是非黑即白、界限分明的,当我们深入探究各类程序后就会发现,它们在很多方面都存在着相似性与关联性。
首先来探讨操作系统。当我们深入学习操作系统后,究竟能够掌握哪些与之相关的安全技能呢?以 Windows 操作系统为例,如果我们对其有了透彻的理解,那么在网络安全领域,我们至少能够在诸如内网渗透以及域渗透方面有所建树。这是因为一旦我们洞悉了 Windows 的操作机制,便如同掌握了一把开启逆向分析大门的钥匙。我们能够凭借对这些机制的熟悉,精准地剖析系统中潜在的问题点、漏洞点以及各类安全隐患,进而有效地开展逆向分析工作。然而,需要注意的是,如果我们仅仅掌握了操作系统知识,是否就能够顺利进行 web 渗透呢?答案显然是否定的。因为操作系统与 web 渗透之间的关联相对较小,二者所涉及的知识体系和技术重点差异较大,所以仅靠操作系统知识难以在 web 渗透领域发挥作用。
那么,对于操作系统,我们究竟需要了解哪些内容呢?不得不说,操作系统的构成极为复杂,其中所包含的知识元素可谓浩如烟海。但对于我们从事安全工作的人员而言,并非要对所有细节都了如指掌。当然,这里所说的并非仅仅局限于普通安全人员,而是涵盖了整个安全领域的从业者。毕竟,想要精通操作系统的每一个方面几乎是不可能的任务。我们只需要对其常规的、大致的框架和原理有清晰的认识即可。或许有人会提出疑问:如果日后遇到非常规的情况该如何应对呢?其实,对于这类特殊情况,我们可以在后续的实践与学习过程中逐步深入研究。当下,我们首要的任务是扎实掌握常规知识,为今后的深入探索奠定坚实的基础。而操作系统这部分知识的学习,对于后期开展内网渗透工作具有极为关键的铺垫作用。
接下来详细介绍一下操作系统中的一些重要组成部分。
注册表,这是 Windows 操作系统中一个至关重要的数据库。它犹如一个庞大的信息仓库,专门用于存储与系统配置、应用程序设置以及用户首选项等相关的各类信息。在这个数据库中,详细记录了关于硬件设备的详细参数、操作系统运行所必需的各类参数、文件与特定应用程序之间的关联信息,以及各种软件在运行过程中的详细设置等内容。注册表对于确保计算机系统能够稳定、正常地运行起着不可或缺的作用。这是因为在计算机的日常使用中,众多程序在安装或者运行时,都会习惯性地向注册表中写入特定的数据,这些数据将直接影响程序的运行效果以及系统的整体性能。
注册表具有独特的结构体系。它由多个被称为“键”(Keys)的元素所组成,每个键又可以进一步包含子键(Subkeys)以及值(Values)。我们可以将键形象地类比为文件夹,而值则类似于存储在文件夹中的文件,这些值恰恰是存储具体配置信息的载体。例如,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 就是一个典型的键,在这个键下面,可能会包含大量有关当前版本 Windows 操作系统的各种关键设置信息,这些信息涵盖了从系统功能的启用与禁用,到各种软件与系统组件之间的交互配置等多个方面。
注册表主要包含以下几个重要的根键:
HKEY_CLASSES_ROOT (HKCR):这个根键中包含了所有在系统中已注册的文件类型、OLE 对象以及 ActiveX 控件的详细信息。它就像是一个文件类型与相关对象的索引目录,当系统需要处理某种特定类型的文件或者对象时,就会首先在这个根键所对应的信息库中查找相关的处理规则与关联信息。
HKEY_CURRENT_USER (HKCU):主要用于存储当前登录用户的特定设置信息。比如我们日常所熟悉的桌面背景设置、屏幕保护程序的选择与配置、用户个性化的快捷键设置以及各种应用程序针对当前用户的特定配置等,都存储在这个根键之下。这使得每个用户在登录到系统后,都能够享受到符合自己个性化需求的操作环境。
HKEY_LOCAL_MACHINE (HKLM):此根键所包含的信息对整个计算机系统的运行有着全局性的影响。其中涵盖了硬件驱动程序的详细配置信息,这些信息决定了硬件设备在系统中的运行方式与性能表现;同时还包括操作系统自身的各种核心设置,例如系统启动参数、内存管理策略以及安全策略等方面的设置信息。
HKEY_USERS (HKU):这个根键存储了所有用户账户的默认设置信息,并且也包含了当前登录用户的详细设置内容。它可以看作是一个用户设置信息的汇总库,无论是新创建的用户账户所采用的默认设置,还是已有用户在使用过程中所修改和定制的个性化设置,都可以在这里找到对应的记录。
HKEY_CURRENT_CONFIG (HKCC):它主要负责存储当前硬件配置文件的相关设置信息。这些设置信息在系统启动时起着关键的作用,它们决定了系统将依据何种硬件配置来启动和运行。例如,当计算机连接了不同的外部设备或者在不同的硬件环境下启动时,系统会根据这个根键中的配置信息来调整自身的运行参数,以确保能够与当前的硬件配置完美匹配,实现稳定高效的运行。
在对注册表进行编辑操作时,我们必须格外谨慎。因为一旦操作失误,很可能会导致系统出现不稳定甚至无法启动的严重后果。通常情况下,我们可以通过以下两种常见的方式来编辑注册表:
一是使用注册表编辑器。具体操作步骤如下:首先,按下 Win + R 组合键,这将打开“运行”对话框。然后,在对话框中输入“regedit”并按下回车键,此时系统将会打开注册表编辑器。在注册表编辑器中,我们可以像浏览文件夹一样,逐步找到需要修改的键或值所在的位置,之后便可以针对这些键值进行相应的更改操作。
二是借助命令行来编辑注册表。Windows 系统提供了“reg”命令,通过这个命令,我们可以方便地添加、删除或者修改注册表项。例如,使用“reg add”命令就能够在注册表中添加新的键或者值。但无论是使用注册表编辑器还是命令行方式,在进行任何修改之前,强烈建议先创建一个系统还原点或者对注册表进行备份操作。这样一来,一旦在修改过程中出现问题,我们就能够利用之前创建的还原点或者备份文件将注册表恢复到原始状态,从而避免因误操作而导致系统陷入困境。
防火墙也是操作系统中极为重要的安全防护组件。防火墙本质上是一种专门用于监控和控制进出网络流量的网络安全系统。它依据预先设定的一系列安全规则,对每一个试图通过网络边界的数据包进行严格的检查与筛选,从而决定是否允许这些数据包顺利通过。防火墙的核心使命在于全力保护网络免受未授权访问的威胁,同时确保合法的通信能够毫无阻碍地进行。值得注意的是,防火墙并不仅仅局限于硬件设备的形式,它也可以是软件应用程序,或者是硬件与软件相结合的综合解决方案。
防火墙主要有以下几种类型:
包过滤防火墙:这是防火墙家族中最基础、最简单的一种类型。它的工作原理主要是对每个流经的数据包进行仔细检查,检查的依据则是预先定义好的一系列规则,这些规则通常涵盖了数据包的源地址、目的地址、端口号等关键信息。通过对这些信息的比对与判断,包过滤防火墙决定是否允许该数据包通过。这种类型的防火墙具有简单高效的特点,在网络流量较小且安全需求相对简单的环境中能够发挥一定的作用。然而,由于其仅仅基于数据包的基本信息进行判断,缺乏更为复杂的决策能力,因此在面对一些较为复杂的攻击手段时,其防护能力可能会显得捉襟见肘。
状态检测防火墙:相较于包过滤防火墙,状态检测防火墙在功能上有了显著的提升。它不仅会检查数据包的基本信息,如源地址、目的地址和端口号等,还会对连接的状态进行跟踪与记录。只有那些属于已建立连接的数据包才会被允许通过。这种工作方式使得状态检测防火墙能够有效地防止某些类型的攻击,例如 SYN 洪水攻击。在 SYN 洪水攻击中,攻击者会发送大量的 SYN 数据包来试图耗尽目标系统的资源,而状态检测防火墙能够通过对连接状态的监测,识别出这些恶意的半连接请求,并将其拦截,从而保护目标系统的安全。
应用网关防火墙:也被称为代理防火墙,这种防火墙在网络通信中扮演着客户端与服务器之间的中间人的角色。所有的网络流量都必须经过防火墙的中转与处理,这样一来,内部网络的真实结构就能够被有效地隐藏起来,避免被外部攻击者轻易探测到。应用网关防火墙的优势在于它能够对应用层协议,如 HTTP、FTP 等进行更为精细粒度的控制。它可以深入到应用层协议的内容中,根据具体的应用需求和安全策略,对数据进行过滤、审查和修改,从而提供更为高级的安全功能。例如,它可以限制特定用户对某些网站的访问,或者对上传下载的文件类型进行严格的限制,有效防止恶意文件的传播。
下一代防火墙 (NGFW):这是一种融合了传统防火墙功能并在此基础上进行了全面升级的新型防火墙。它不仅具备了传统防火墙的包过滤、状态检测等基本功能,还集成了入侵防御系统 (IPS)、反病毒、反恶意软件、URL 过滤等多种先进的安全功能。NGFW 能够智能地识别和管理基于应用的威胁,通过对应用程序的深度识别与分析,它可以精准地判断出哪些应用流量可能存在安全风险,并及时采取相应的防护措施。例如,当检测到某个应用程序正在进行恶意的数据窃取行为时,NGFW 可以立即阻断该应用的网络连接,并向管理员发出警报,从而为网络提供全方位的安全保护。
防火墙的主要功能包括以下几个方面:
访问控制:这是防火墙最基本也是最核心的功能之一。它根据预先设定的规则,对特定类型的网络流量进行精准的允许或拒绝操作。例如,企业可以根据自身的安全策略,设置防火墙允许内部员工访问特定的外部网站,如工作相关的业务网站,同时禁止访问一些与工作无关或者存在安全风险的网站,如某些娱乐网站或者恶意软件传播频繁的网站。
日志记录:防火墙会详细记录所有通过它的网络流量信息。这些日志记录对于网络管理员来说具有极高的价值,它们可以用于网络活动的审计与分析。通过对日志的深入研究,管理员可以了解网络中各个设备的通信行为,发现潜在的安全隐患或者异常流量模式。例如,如果发现某个设备在短时间内向大量不同的外部 IP 地址发送数据,这可能暗示着该设备存在被恶意控制并用于数据泄露的风险,管理员可以根据日志信息及时采取措施进行调查与处理。
入侵检测和预防:防火墙具备检测潜在攻击行为的能力,并能够在检测到攻击时及时采取措施进行预防。它通过对网络流量的实时监测与分析,运用各种先进的检测算法和技术,识别出那些符合攻击特征的流量模式。例如,当检测到大量来自同一源 IP 地址的异常连接请求,或者发现数据包中包含特定的恶意代码或攻击指令时,防火墙会立即采取相应的防御措施,如阻断连接、发送警报等,从而有效地保护网络免受攻击。
应用控制:防火墙可以对特定应用程序的网络流量进行管理与控制。它能够识别不同的应用程序,并根据设定的策略限制或允许其使用网络资源。例如,在企业网络中,管理员可以设置防火墙禁止某些非必要的应用程序,如在线游戏、视频直播等消耗大量网络带宽的应用在工作时间内使用,以确保网络资源能够优先分配给关键业务应用,提高网络的整体性能和工作效率。
身份验证:防火墙还可以对用户身份进行验证,确保只有经过授权的用户才能够访问网络资源。这通常通过用户名和密码、数字证书、生物识别等多种身份验证方式来实现。例如,在企业内部网络中,员工需要输入正确的用户名和密码才能通过防火墙访问内部资源,这样可以有效地防止外部非法用户的入侵,同时也能够对内部用户的访问权限进行精细化管理,根据不同用户的角色和职责,限制其对特定资源的访问。
带宽管理:防火墙能够对某些类型的网络流量进行带宽使用限制。在网络资源有限的情况下,合理地分配带宽对于保障关键业务应用的正常运行至关重要。例如,企业可以设置防火墙对 P2P 下载、视频流媒体等占用大量带宽的应用进行限速,确保其他重要业务应用,如企业资源规划 (ERP) 系统、客户关系管理 (CRM) 系统等能够获得足够的带宽支持,从而优化网络的整体性能,提高业务的运行效率。
自启动功能也是操作系统中的一个重要特性。在计算机启动的过程中,会有部分程序自动启动并运行,这一过程被称为“自启动”或者“开机启动”。这些自启动程序的类型多种多样,它们可以是系统服务,这些服务在后台默默地运行,为系统的各种功能提供支持,如网络服务、打印服务等;也可以是应用程序,例如一些常用的即时通讯软件、杀毒软件等;还可以是用户根据自身需求指定的实用工具。合理地管理自启动程序对于提高系统性能和保障系统安全具有重要意义。
在 Windows 操作系统中,实现自启动功能主要有以下几种常见的方式:
启动文件夹:对于当前用户,自启动程序可以放置在“C:\Users\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”文件夹中。当用户登录系统时,该文件夹中的程序会自动启动。而对于所有用户,相应的启动文件夹为“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup”。这种方式简单直观,用户可以方便地将自己希望自启动的程序快捷方式放入对应的启动文件夹中。
注册表:通过在注册表中的特定位置添加键值,也可以实现程序的自启动。例如,在“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run”和“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”这两个注册表项中添加相应的程序路径信息,系统在启动时就会自动运行这些程序。这种方式相对较为隐蔽,但也需要用户对注册表有一定的了解,否则容易因误操作而导致系统问题。
任务计划程序:Windows 的任务计划程序提供了一种更为灵活的自启动设置方式。通过任务计划程序,用户可以设置程序在特定的时间或者特定的事件触发时启动。例如,可以设置某个程序在每天的固定时间启动,或者在系统空闲一段时间后启动,或者在某个特定的系统事件发生后启动,如网络连接成功后启动某个网络相关的程序等。这种方式能够满足用户对于自启动程序在时间和触发条件上更为精细的控制需求。
服务:在 Windows 操作系统中,许多系统服务在系统启动时会自动运行。用户可以通过“服务”管理器来查看和管理这些系统服务。在“服务”管理器中,可以看到所有已安装的服务及其当前的状态,如正在运行、已停止、手动启动等。右键点击某个服务,可以选择“启动”、“停止”、“重启”或“属性”等操作来管理服务。在服务的“属性”窗口中,还可以设置服务的启动类型,包括自动、手动、禁用等选项,从而控制服务在系统启动时的行为。
组策略:在企业网络环境中,管理员通常会通过组策略来统一控制自启动程序。组策略是一种强大的集中管理工具,它可以对域内的所有计算机进行统一的配置和管理。管理员可以通过组策略设置特定的程序在域内所有计算机的系统启动时自动运行,或者禁止某些程序的自启动,从而确保企业网络环境的一致性和安全性。
计划任务是操作系统提供的一种强大功能,它允许用户设置程序或脚本在特定的时间或者特定的事件触发时自动执行。不同的操作系统在计划任务的管理和配置方法上存在一定的差异。
在 Windows 操作系统中,我们可以通过任务计划程序来实现计划任务的创建与管理。具体操作步骤如下:
首先,打开任务计划程序。可以按下 Win + S 组合键打开搜索栏,在搜索栏中输入“任务计划程序”并按下回车键,即可打开任务计划程序窗口。另外,也可以通过控制面板来打开任务计划程序,依次点击控制面板 > 系统和安全 > 管理工具 > 任务计划程序。
创建基本任务时,在任务计划程序窗口中,点击右侧的“创建基本任务...”按钮。随后,按照向导的提示逐步填写任务名称、任务描述、任务的触发器(即何时运行任务)以及任务的操作(即要执行的操作,如启动某个程序、发送电子邮件等)。通过这种简单的向导式操作,用户可以快速创建一个基本的计划任务。
如果需要创建更为复杂的高级任务,则可以在任务计划程序窗口中点击右侧的“创建任务...”按钮。在“常规”选项卡中,填写任务名称和任务描述。在“触发器”选项卡中,详细设置任务的触发条件,例如可以设置任务在每天的特定时间、每周的特定日期、每月的特定日期或者特定的系统事件发生时触发。在“操作”选项卡中,设置任务要执行的具体操作,如启动某个特定的程序或脚本,并可以设置相关的参数。在“条件”和“设置”选项卡中,还可以进一步设置更多的高级选项,例如可以设置任务