1.实践内容
Linux操作系统基本框架概述
linux系统的优势
- 跨平台的硬件支持
- 丰富的软件支持
- 多用户多任务
- 可靠的安全性
- 良好的稳定性
- 完善的网络功能
Linux系统结构
-
Linux进程与线程管理机制:内核采用抢占式多用户多进程模式,由内核schedule进程调度函数来依据进程优先级和CPU等资源情况来选择进程来执行。
-
Linux的内存管理机制:内存管理虚拟内存
-
Linux系统的文件管理机制:使用了虚拟文件管理VFS机制,可以支持数十种不同类型的逻辑文件系统,包括ext2/ext3/ext4、vfat、ntfs等,通过设备驱动程序访问特定硬件设备。
-
Linux的设备控制机制:linux抽象了设备的处理,所有的硬件设备像常规文件一样看待
-
Linux的网络机制:网络接口可分为网络协议栈和网络驱动程序。
-
Linux的系统调用机制:系统调用通过软中断实现。
Linux操作系统安全机制
Linux身份认证机制
- Linux用户:root根用户、普通用户、系统用户
- Linux用户组:具有相同特征的用户账号集合,用于简化系统的用户权限管理
- Linux的本地登陆用户认证机制
- Linux的远程登录用户认证机制
- Linxu的统一身份认证中间件——PAM:PAM支持的四种管理界面:认证管理、账户管理、密码管理、会话管理
Linux授权访问控制机制
Linux虚拟文件系统安全模型中,主要通过文件所有者、文件访问权限和一些特殊权限位来尽心系统的授权与访问控制。
Linux安全审计机制
该机制通过三个主要的日志子系统实现:
- 连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等用户登 录程序负责更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
- 进程统计日志:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个纪录。 进程统计的目的是为系统中的基本服务提供命令使用统计。
- 错误日志记录:由通用的日志记录服务syslogd(8)执行,各种系统守护进程、用户程序和内核通 过syslog向文件/var/log/messages报告值得注意的事件。
Linux系统远程攻防技术
- Linux远程口令字猜测攻击
- Linux网络服务远程渗透攻击
- 攻击Linux客户端程序和用户
- 攻击Linux路由器和监听器
Linux系统本地安全攻防技术
- 本地特权提升:破解Root用户的口令、发掘su和sudo程序中的安全漏洞以及攻击用户态SUID特权提升漏洞和攻击Linux内核代码特权提升漏洞。
- Linux口令字破解:通过/etc/shadow文件中纪录的口令的哈希值,用户使用login进程登陆时系统将进行相同的哈希运算,然后对比,判断。
2.实践过程
动手实践:使用Metaploit进行Linux远程渗透攻击
使用Metaspolit作为渗透测试软件,攻击Linux靶机上的Samba服务usermap_script安全漏洞,获取Linux靶机的主机访问权限。实践步骤如下:
启动Metasploit渗透测试软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一。
使用exploit:exploit//multi/samba/usermap_script渗透攻击模块;
选择攻击PAYLOAD为远程Shell,
设置渗透攻击参数;
执行渗透攻击;
查看是否正确得到远程Shell,并查看获得的权限。
关于usermap_script安全漏洞参考了网上的介绍https://www.cnblogs.com/maplelyt/p/12350509.html
首先打开msfconsole
搜索查询我们需要使用的usermap漏洞
查看可以使用的payloads
因为远程控制,我选择了5号,即使用netcat工具在渗透攻击成功后执行Shell,并通过netcat绑定在一个监听端口。
设置靶机IP:
输入whoami,发现获取了root权限:
攻防对抗实践:
攻击方使用Metasploit渗透软件针对Linux Metasploitable靶机实施网络攻击,防御方则在Metasploitable上使用tcpdump或wireshark或snort工具捕获攻击流,并分析出攻击者利用了哪个安全漏洞进行攻击,从官方网站上下载该安全漏洞补丁进行系统修复,双方合作给出攻防过程报告
攻击方:使用Metasploit,选择Metasploitable靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步 获得root权限。
防守方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过 程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode,以及成功之后 在本地执行命令输入等信息。
实验步骤如上一个实践,不同的是在攻击之前打开wireshark
可以看到攻击机192.168.200.4给靶机192.168.200.5发送了一个tcp连接请求这是最开始的时候,攻击发起时间应该就是第一个TCP,攻击的目标端口是139( 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)),攻击发起时间应该是下图的arrival time
攻击时发送shellcode,nc -l是临时监听tcp端口,
本地输入命令时监测的shell命令
3.学习中遇到的问题及解决
- 问题1:实践中出现了一些小问题,浪费了时间,对于wireshark的shellcode的分析不太懂。
4.实践总结
实践和第七周的类似,实践过程中的原理的理解