20211921李楚涵 实践七 Linux操作系统攻防

一、Linux操作系统基本框架概述

  • Linux系统进程和线程管理机制
    Linux 是一个多进程的操作系统, 所以其他的进程必须等到系统将处理器使用权分配给自己之后才能运行。 当正在运行的进程等待其他的系统资源时, Linux 内核将取得处理器的控制权, 并将处理器分配给其他正在等待的进程, 它按照内核中的调度算法决定将处理器分配给哪一个进程。
  • Linux系统内存管理机制
    内存管理:是Linux内核中最重要的子系统,它主要提供对内存资源的访问控制。从系统中每个进程的角度看,地址空间中只有自身一个进程,无法感知到其他进程的存在。Linux将虚拟地址空间划分为两个部分,分别为内核空间和用户空间
  • Linux系统的设备处理机制
    设备驱动程序:Linux内核中处理或者管理硬件控制器的软件。
    基本特点是:抽象了设备的处理。
    Linux支持三类硬件设备:字符设备、块设备和网络设备。
  • Linux系统的网络机制
  • Linux系统的调用机制
    系统调用:程序透过访问接口来访问硬件设备和其他系统资源。
    Linux系统的系统调用通过软中断来实现
    二、Linux系统远程攻防技术
  • 远程口令字猜测攻击
    通过前面提到的服务嗅探用户账户名或者使用缺省内件账户的用户名进行密码猜测。
    口令字猜测攻击通常针对使用弱口令的的账户破解。
    除了SSH网络服务之外,还可以通过对HTTP/HTTPS、FTP等用于自己账户体系和身份认证机制的网络服务进行猜测。
    口令猜测的常用工具如下:Brutus、THC Hydra、Cain and Abel等工具。
  • 防御远程口令猜测技术
    确保每个用户都有自己的有效账户和口令字,而不是使用一个账户。
    特权账户应避免远程直接登录,只能在本地登录。
    口令长度至少达到8位,包含字母、数字和标点符号。
    对多次认证失败进行纪录,并在多次无效登录之后断掉连接
    不要再自己登录的所有系统上都使用相同的口令字
    并要笔录自己的口令字
    使用基于公开密钥证书的身份认证机制。
    修改网络服务的默认端口。
    三、Linux系统本地安全攻防技术
  • Linux本地特权提升
    本地特权提升的三种常用方式:破解Root用户的口令、发掘su和sudo程序中的安全漏洞以及攻击用户态SUID特权提升漏洞和攻击Linux内核代码特权提升漏洞。
    Linux口令字破解:通过/etc/shadow文件中纪录的口令的hash值,获取口令的加密值,后通过已知密文暴力猜测明文。
    sudo缺陷进行特权提升:通过sudo程序的漏洞,绕过程序的身份认证机制,获取权限
    利用用户态SUID程序:主要包括利用程序漏洞进行特权提升、本地缓冲区溢出攻击、符号连接攻击、竞争条件攻击、共享函数库攻击等
  • 本地特权提升的防范措施
    在安装软甲的过程中评估风险
    及时对服务器进行升级维护
    安全的配置系统,设置强口令字,
    使用SELinux等安全增强模块
    1、使用Metasploit进行Linux远程渗透攻击
    任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:
    ①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
    ②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
    ③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
    ④设置渗透攻击参数(RHOST,LHOST,TARGET等);
    ⑤执行渗透攻击;
    ⑥查看是否正确得到远程Shell,并查看获得的权限。
    实验环境:kali(IP:192.168.200.4) Metasploitable_Ubuntu(IP:192.168.200.20)
    打开 kali 并使用 nmap 进行扫描

    输入 msfconsole 打开 MSF命令行操作界面

    找到usermap_script漏洞对应的攻击模块

    使用模块

    找到其拥有的攻击载荷(本次使用 bind_netcat载荷)

    set payload 载荷位置 使用该攻击载荷(shellcode)

    show options 查看配置参数

    set RHOST 192.168.200.20 配置载荷参数的IP为目标主机ip,set LHOST 192.168.200.4 配置载荷参数的IP为源主机ip

    exploit/run 启动攻击,成功拿到靶机权限

    2、实践作业:攻防对抗实践
    攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
    防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
    攻击方和防守方同实验一,kali(IP:192.168.200.4) Metasploitable_Ubuntu(IP:192.168.200.20)
    用wireshark抓包后,查看第一个数据包,可看到是一个ARP请求报文。接着往下看,攻击机kali(192.168.200.4)向靶机(192.168.200.20)发起的TCP连接请求,这应该是正式发起攻击的时间;

    使用的shellcode(其中,nohup的意思是忽略SIGHUP信号,相当于守护进程的感觉(“守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务)
    mkfifo 使用指定的文件名创建FIFO(也称为"命名管道"),允许独立的进程通讯
    nc 可反弹shell命令,详见Linux下NC反弹shell命令(推荐)
    根据以上信息,可以猜测这是攻击者所使用的shellcode)

    3.学习中遇到的问题及解决
    一开始kali和Metasploitable无法ping通,最后发现不在一个网段,所以改了Metasploitable的IP地址。https://blog.csdn.net/buside/article/details/94405835
    根据这个网站教程更改的。
    4.实践总结
    遇到问题一定要及时解决……
posted @ 2022-04-25 22:58  LWE1225826  阅读(167)  评论(0编辑  收藏  举报