安全见闻(四)
声明:该笔记为up主 泷羽的课程笔记,本节链接指路。
警告:本教程仅作学习用途,若有用于非法行为的,概不负责。
本文主要介绍了操作系统和驱动程序相关内容。
操作系统概述
定义:负责管理计算机硬件和软件资源,并为其他软件提供服务的重要软件。
渗透技术:掌握一种操作系统,可以学习相应的渗透技术,如Windows的内网渗透和域渗透,逆向分析,以及识别潜在的漏洞点。
逆向分析与内网渗透
逆向分析:通过分析软件的内部工作机制,了解其功能和弱点。
内网渗透:利用操作系统的漏洞和配置缺陷,获取内部网络的访问权限。
自启动
所有操作系统都具备自启动功能,允许程序在系统启动时自动运行。
Linux自启动:
修改 /etc/rc.d/rc.local 文件:将需要自启动的脚本路径添加到该文件中,但需先确认有运行此文件的权限,如chmod +x /etc/rc.d/rc.local。
使用 init.d 脚本:在/etc/init.d/目录创建启动脚本,并使用update-rc.d命令将其添加到启动序列,如sudo cp my_service /etc/init.d/、sudo chmod +x /etc/init.d/my_service、sudo update-rc.d my_service defaults。
使用 systemd 服务:创建一个后缀为.service的文件放置在/etc/systemd/system/目录下,通过systemctl命令管理和配置服务,如sudo cp my_service.service /etc/systemd/system/、sudo systemctl enable my_service.service、sudo systemctl start my_service.service 。
用户级自启动:在用户主目录下创建.config/autostart目录,并将程序的.desktop文件放置其中,此文件需按特定格式编写,如指定程序名称、执行路径等信息。
能否通过计划任务添加自启动及操作方式:可以,使用crontab -e命令编辑计划任务,添加@reboot /path/to/command这样的任务,即可在系统重启后自动运行指定脚本。
计划任务
定义:操作系统功能,允许在特定时间或条件下自动执行程序或脚本。
Linux计划任务
crontab 命令:是 Linux 系统中用于设置周期性执行任务的工具。用户可以通过crontab -e命令编辑自己的计划任务列表,格式为分 时 日 月 周 命令,每个字段代表不同的时间单位,取值范围和含义如下:
分:0-59,表示分钟。
时:0-23,表示小时。
日:1-31,表示日期。
月:1-12,表示月份。
周:0-6,其中 0 和 7 都表示星期日,表示星期几。
命令:要执行的命令或脚本的路径。
例如,0 0 * * * /usr/local/bin/daily_backup.sh表示每天凌晨 0 点 0 分执行/usr/local/bin/daily_backup.sh脚本。
at 命令:用于在指定的时间执行一次任务。使用at命令后,会进入一个交互界面,输入要执行的命令,最后按Ctrl + D组合键结束输入,任务就会在指定的时间执行。例如,at 10:30 tomorrow表示明天上午 10 点 30 分执行输入的任务。
systemd 定时器:是 systemd 系统和服务管理器的一部分,用于取代传统的 cron 任务。它通过.timer和.service文件组合来定义定时任务和对应的服务。可以实现更精确的时间控制和依赖管理,以及更好的日志记录和错误处理。例如,创建一个名为my_task.timer的定时器文件,配置其定时触发时间,并关联一个对应的my_task.service服务文件来执行具体的任务逻辑。
事件日志
定义:记录系统、应用程序和安全事件的机制,有助于故障排查、性能监控和安全审计。
linux事件日志
/var/log/messages:记录系统的常规信息,包括系统启动、服务启动与停止、内核消息等。例如,硬件设备的检测和初始化信息会记录在此文件中,如磁盘设备的识别和挂载情况。
/var/log/syslog:与/var/log/messages类似,不同的 Linux 发行版和系统配置可能会将一些系统事件记录到这个文件中,是系统日志的一个常见存储位置。
/var/log/auth.log 或 /var/log/secure:主要记录系统的认证相关信息,如用户登录、注销,sudo 操作,以及与认证相关的错误信息等。
/var/log/cron:用于记录 cron 任务的执行情况,包括计划任务的启动时间、执行结果等。
/var/log/dmesg:包含内核启动时的打印信息,如内核检测到的硬件信息、内存初始化情况、驱动加载信息等。
/var/log/audit/audit.log:是 Linux 审计系统的日志文件,记录了与系统安全相关的各种事件,如文件访问、进程执行、用户操作等,可用于检测和分析潜在的安全威胁。
注册表
Windows注册表:Windows特有的数据库,存储系统设置和配置信息。
Linux类似功能:Linux使用配置文件和系统服务管理器(如systemd)实现类似功能。
Linux配置:使用文本文件存储配置,通常位于/etc目录下。
防火墙
定义:监控和控制网络流量的网络安全系统,根据安全规则决定数据包的传输。
windows防火墙
Windows防火墙:监控所有进出电脑的网络流量,根据预设规则允许或阻止数据包。
规则设置:可以基于IP地址、端口号等条件设置。
linux防火墙
Netfilter:是 Linux 2.4 内核引入的包过滤引擎,位于内核中的包过滤功能体系,基于内核控制实现防火墙策略。它设有 5 个控制关卡,对应 5 个规则链,分别是 prerouting、input、forward、output、postrouting。数据包经过本机时,必然经过这 5 个链中的某个或某几个,链中的规则会对数据包进行检查和处理 。
Iptables:是管理防火墙的工具,通过调用 Netfilter 来进行防火墙管理。它有和 Netfilter 中一模一样的 5 种规则链,还多了 4 个规则表,常用的是 filter 表,最常用的链是 input 和 output 链 。基本语法为iptables [-t表名] 选项 链名 条件 [-j控制类型],常见的控制类型有 accept 允许通过、drop 直接丢弃、reject 拒绝通过并给出提示、log 记录日志信息 。
Firewalld:是 Linux 系统中用于管理防火墙规则的守护进程和工具,它提供了一个动态的防火墙管理界面,支持运行时配置和持久化存储防火墙规则。相比 Iptables,Firewalld 更加直观和易于使用,尤其是在处理复杂的网络环境和频繁变化的防火墙规则时。
计划任务与事件日志
计划任务:操作系统功能,允许任务在预定时间或触发条件下自动执行。
事件日志:记录系统操作和错误信息,对系统监控和故障排查至关重要。
内核驱动
驱动程序:运行在系统底层的程序,直接控制硬件设备。
内核驱动:与操作系统内核交互的驱动,具有高权限。
系统服务
定义:操作系统提供给用户和应用程序的功能,如进程管理、内存管理等。
进程与线程
进程:正在执行的程序实例,包括代码、状态、堆栈、数据段等。
线程:进程中的执行单元,共享进程资源,提高并发性和响应能力。
系统编程
定义:与操作系统紧密相关的软件开发过程。
驱动程序
潜在漏洞:内网渗透、逆向工程、病毒分析、安全对抗、外挂保护(游戏)。
内核驱动:运行在操作系统内核模式下,直接与硬件和系统内核交互。
设备驱动:允许操作系统与硬件设备通信的程序,每个硬件设备通常都需要相应的设备驱动。
安全相关应用
内网渗透:利用操作系统特性进行网络攻击和数据窃取。
逆向工程:分析操作系统和软件以了解其工作原理。
病毒分析:研究病毒行为,开发防御措施。
安全对抗:保护系统免受恶意软件和攻击。
外挂保护:防止非法修改和作弊软件。
内核驱动安全
驱动程序:运行在操作系统核心层,对系统安全至关重要。
权限:驱动程序具有高权限,可直接影响硬件和系统操作。
安全风险:恶意驱动程序可用于高级持续性威胁(APT)和其他复杂攻击。