• 20199308 2019-2020-2 《网络攻防实践》第8周作业


    (:」∠)_

    一、实践内容

    1、Linux操作系统基本框架

    1.1 Linux的优势

    • 代码开源
    • 跨平台硬件支持
    • 丰富的软件支持
    • 多用户多服务
    • 可靠的安全性
    • 良好的稳定性
    • 完善的网络功能

    1.2 Linux系统结构

    • Linux操作系统内核:宏内核结构
    • 进程与线程管理机制:抢占式多用户多进程模式
    • 内存管理机制:允许多个进程安全地共享物理内存区域。
    • 文件系统管理机制:虚拟文件管理VFS机制,支持数十种不同类型的逻辑文件系统。
    • 设备控制机制:设备驱动程序处理或管理硬件控制器的软件,本质是特权的、驻留内存的低级的硬件控制例程的共享库。
    • 网络机制:内核中网络模块提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议栈和网络驱动程序。
    • 系统调用机制:系统调用接口,允许应用程序透过这层接口来访问硬件设备和其他系统资源。系统调用通过软中断实现。

    2、Linux操作系统安全机制

    2.1 Linux身份认证机制

    通过创建多种角色类型的用户及用户组来实施用户身份管理,来确保多个用户安全的使用Linux操作系统。

    • 用户:以用户作为执行进程完成特定操作任务的主体,用户具有不同的角色类型。包括:
      • Root根用户
      • 普通用户
      • 系统用户
    • 用户组:具有相同特征的用户账号集合,用于简化整个系统的用户权限管理。
      • 用户组信息保存再系统的/etc/group文件中,包括用户组名称、gid及用户组所包含的用户名列表,用户组加密口令保存在/etc/gshadow文件中。
      • id -a 命令可以查询和显示当前用户所属组,并通过 groupadd 命令添加用户组,使用 usermod -G group_name user_name 向特定组来添加用户。
    • 本地登录用户认证机制:最基本的用户认证机制。
    • 远程登陆用户认证机制:使用SSH服务来进行远程用户登录与网路访问,SSH提供两种方式的用户认证机制:
      • 1、基于口令
      • 2、基于非对称密钥
    • 统一身份认证中间件——PAM:给不同的应用软件、网络服务提供统一的身份认证机制。
      • 认证管理:接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。
      • 账户管理:检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间段的限制等。
      • 密码管理:用来修改用户的密码。
      • 会话管理:提供会话的管理和审计。

    2.2 Linux授权与访问控制机制

    Linux通过VFS虚拟文件系统来实现对不同类别文件系统格式的支持,并同时通过设备文件类型来统一集成对其他类型系统的管理。

    • 文件的所有者
    • 文件的访问权限
      • R:读取
      • W:写入
      • X:执行
    • 文件的特殊执行权限:再系统文件访问权限执行位上,有一类“特权”。
      • SUID:允许可执行文件在运行时刻从运行者身份提升至文件所有者权限
      • SGID:执行时是以所有者的组的权限进行运行,该程序就可以任意存取整个用户组能够使用的系统资源。

    2.3 Linux安全审计机制

    主要通过三个主要的日志子系统来实现,包括:

    • 连接实践日志:由多个程序执行
    • 进程统计日志:由系统内核执行
    • 错误日志记录:由通用的日志记录服务syslogd(8)执行

    除这些事件日志外,Linux内核还集成了审计守护进程,来帮助管理员检测系统用户对某些安全措施的违背,在最基本的层次上,审计守护进程还可以与SELinux配合,对潍坊SELinux策略的事件进行审计记录。

    3、Linux系统远程攻防技术

    3.1 远程网络入侵Linux系统的主要方法:

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

    3.2 Linux远程口令字猜测攻击

    Linux系统主要支持telnet、rlogin、rsh和SSH协议的网络远程控制,这些协议使用了Linux系统内置的用户名和口令来对远程用户进行身份认证。攻击者如果能够通过这些网络协议远程猜测成功一组用户名和口令,那么就可以用这些信息远程登录到Linux系统上,获得本地的访问权。

    • 支持攻击者进行自动化的远程口令猜测工具,包括:
      • Brutus
      • THC Hydra
      • Cain and Abel

    3.3 Linux网络服务远程渗透攻击

    对监听网络服务安全漏洞的渗透利用。

    3.4 攻击Linux客户端程序和用户

    • 攻击Linux平台上的客户端程序
    • 攻击Linux系统用户:常见的包括电子邮件、即时通信中设计一些应用社会工程学技巧的欺骗场景,来诱骗用户点击执行电子邮件附件或通过即时通信软件传输中的可执行程序或恶意文档,访问某些恶意地址,以及不经意间泄漏某些关于服务器配置的敏感信息,使得攻击者能够在服务器上获得恶意程序执行、引导客户端软件访问渗透攻击代码的机会,从而在管理员眼皮底下拿到系统的访问权,

    4、Linux系统本地安全攻防技术

    4.1 Linux本地特权提升

    • 破解出root用户的口令,然后执行su或sudo命令进行提升
    • 发掘并利用su或sudo程序中的安全漏洞
    • 攻击用户态sudo特权提升漏洞以及攻击Linux内核代码特权提升漏洞
    • 从系统中搜索全局可写的敏感文件与目录位置并加以利用

    4.2 Linux系统上消踪灭迹

    抹除Linux系统行为记录日志:

    • 改变当前活动的日志,以防止系统管理员注意到攻击者当前的登录活动
    • 清理自己在shell程序中所输入的命令历史记录
    • 删除自己执行过的命令历史记录

    4.3 Linux系统远程控制后门

    Linux系统上植入远程控制后门程序的类型主要有:

    • 特洛伊木马化的系统程序
    • 命令行后门工具
    • 图形化后门工具

    二、实践过程

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

    使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
    1、启动Metasploit渗透测试软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一。
    ​2、使用exploit:exploit//multi/samba/usermap_script渗透攻击模块;
    ​3、选择攻击PAYLOAD为远程Shell,
    ​4、设置渗透攻击参数;
    ​5、执行渗透攻击;
    ​6、查看是否正确得到远程Shell,并查看获得的权限。


    过程如下:

    • 准备虚拟机
    虚拟机 IP地址
    kali 192.168.200.2
    metasploit 192.168.200.125
    • 打开msfconsole,查询usermap漏洞:
    • 选择模块,查看payloads:
    • 为了控制shell,选择18,设置靶机攻击机IP:
    • 进行攻击:
    • 攻击成功后,直接输入命令 whoami 可以看到是root权限。(命令行前面没有字符,看起来不太方便)

    实践作业:攻防对抗实践

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

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

    过程如下 :

    • 攻击如上一个实验,在攻击前打开wireshark监听,攻击时可以抓到数据包:
    • 可以看到收到的回复,shellcode是密文:

    三、实验总结

    1、Samba服务的username map script的漏洞相关信息
    https://blog.csdn.net/aleenlee/article/details/78868675
    2、Metasploit靶机漏洞实践检验
    https://blog.csdn.net/Birldlee/article/details/78914506

  • 相关阅读:
    fiddler 保存请求数据并发送到自己的服务器接口
    入门chrome插件开发教程和经验总结,一篇就搞掂!
    文件图标SVG
    银行开发平台
    银联号
    数学好玩 沛沛猜想
    Jenkins安装 maven插件
    jQuery的on绑定click和直接绑定click区别
    PC与移动端都可以使用的横向导航,可点击可滑动
    layui加载层(有文字提示版)跳出iframe父级
  • 原文地址:https://www.cnblogs.com/hsj910/p/12735324.html
Copyright © 2020-2023  润新知