zoukankan      html  css  js  c++  java
  • 20199326 2019-2020-2 《网络攻防实践》第八周作业

    实践内容

    8.1 Linux操作系统基本框架概述

    Linux操作系统在服务器、安全敏感部门以及移动终端市场(Android)上占据重要地位,在桌面操作系统上的市场占有率较低。
    Linux的优势:

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

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

    8.2 Linux操作系统安全机制

    Linux os的核心安全机制也主要是身份认证、授权与访问控制、安全审计这三个部分。
    Linux是一个多用户多任务的OS,通过创建多种角色类型的用户以及用户组来实施用户身份管理,来确保多个用户安全地使用Linux OS。

    graph LR A[Linux用户] -->B[Root根用户 权限最大] A[Linux用户] -->C[普通用户 受限] A[Linux用户] -->D[系统用户 不能登陆系统]

    Linux用户信息保存在系统的/etc/passwd文件中,加密口令字则存放在/etc/shadow文件中,只对Root可读。
    目前的Linux系统普遍采用SSH服务进行远程用户登录与网络访问,SSH提供两种方式的用户身份认证机制:

    1. 基于口令的身份认证,就是用户名密码这种
    2. 基于非对称密钥的身份认证,简单来说,公钥在服务器上,私钥在本地,你想要访问远程服务器,就需要以证书方式进行认证。服务器用公钥加密个东西发给你,你需要用私钥解密下发给服务器

    为了能够给不同的应用软件,网络服务提供统一的身份认证机制,Linux系统中提供了PAM(可插入身份认证模块),作为一种验证用户身份的灵活与标准方法。
    PAM支持四种管理界面:

    • 认证管理
    • 账户管理
    • 密码管理
    • 会话管理

    一切皆是文件

    通过以下三个主要的日志子系统来实现

    • 连接时间日志:管理员能跟踪谁在何时登陆了系统
    • 进程统计日志:为系统中的基本服务提供命令使用统计
    • 错误日志记录:报告一些值得注意的事件

    常用的日志文件如下:

    8.3 Linux系统远程攻防技术
    • Linux远程口令字猜测攻击
      工具软件:

    • Brutus

    • THC HYDRA

    • Cain and Abel

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

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

    • 攻击Linux路由器和监听器

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

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

    /etc/shadow文件中的记录行是与/etc/passwd文件一一对应的,每一行都记录着Linux系统中一个用户账户的登录凭证密文信息,字段之间用“:”隔开,如下图

    破解软件:John the Ripper

    实践过程

    前置准备
    机子 ip
    kali 192.168.200.3
    metasploitable linux 192.168.200.125

    实践1要求

    实践一

    漏洞简介:SambaMS-RPC Shell命令注入漏洞

    Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
    1:打开msfconsole,然后搜一下usermap这个漏洞,如下图

    2:设置负载模块为18(设置哪个都可以,目的都是为了获取shell)

    3:设置攻击机ip和靶机ip

    4:攻击

    5:输入whoami查看你是谁,看到是root,说明我们获取了root权限,无所不能了。

    6:查看一下所在组(可有可无的操作)

    实践二

    实践2要求

    搜索metasploitable的漏洞,本来在nessus上扫描,发现扫描出来的都用不了,在网上各种查资料,最后找到了一个叫做distcc的漏洞。这个漏洞是干啥的呢。
    Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是XCode1.5版本及其他版本的distcc2.x版本配置对于服务器端口的访问不限制。
    下面开始实验。

    攻击方

    1:先搜一下这个漏洞

    2:设置一下靶机IP(无需设置负载模块)

    3:渗透攻击

    4:攻击成功,输入whoami看看自己是谁,发现是daemon,

    5:然后看一下存用户的那个文件,看一下daemon的信息,不是root,需要提权(暂时不会提权,先搁着)

    防守方

    1:打开wireshark开始抓包,从下图可以看出源IP,目的IP,端口等信息

    2:从包类型可以看出来,除了3个distcc包,剩下的都是tcp包。

    3:那我们就看一下这三个distcc包里都有哪些信息。打开这三个包,可以看到明文shell,这个应该就是shellcode了。


    4:在后面找一段连续的tcp包跟踪,发现了我输入过的命令等

    实验结束。

    学习感想和体会

    这次实验总体跟上次是一样的,不过需要提权,有点难,暂时还不会提权,需要学习学习。

    学习中遇到的问题及解决

    问题1:找不到nessus在哪
    查了资料后发现,nessus在 /opt/nessus/sbin目录

    参考文献

    大神总结的metaspolitable的漏洞列表
    Linux who命令详解

  • 相关阅读:
    oracle查询表最后的操作时间
    设置tomcat开机自启
    jmeter 连接mysql
    ubuntu卸载软件
    转 ubuntu 安装chrome 和chromedriver
    转 ps -ef ps -aux 区别
    ubuntu 20 jenkins 开机启动
    Ubuntu20.04安装JDK
    ubuntu 安装指定版本gitlab
    Gitlab备份和恢复操作记录 转
  • 原文地址:https://www.cnblogs.com/funmary/p/12728849.html
Copyright © 2011-2022 走看看