SMB后门文件读取利用

admin 2022年3月10日01:34:30评论147 views字数 2315阅读7分43秒阅读模式

简介:

Samba是linux和unix系统上实现smb协议的一个免费软件,由客户机和服务器构成。SMB是一种在局域网上实现共享文件和打印机的协议。存在一个服务器,客户机通过该协议可以服务器上的共享文件系统和打印机以及其他的资源。通过设置,还可以和全世界的电脑分享资源。

 

攻击者利用漏洞可以进行远程代码执行,具体执行条件如下:

1.服务器打开了文件/打印机共享端口445,让其能够在网络上访问;

2.共享文件拥有写入权限;

3.攻击者需猜解Samba服务端共享目录的物理路径。

这里使用hack the box的环境进行复现。

SMB后门文件读取利用

 

1.由namp扫描结果可见,该操作系统正运行这Samba3.x服务,该服务当配置为文件权限可写同时"wide links" 被允许(默认就是允许),同样可以被作为后门而不仅仅是文件共享。


 

SMB后门文件读取利用

SMB后门文件读取利用


2.加载Samba后门的攻击模块auxiliary/admin/smb/samba_symlink_traversal

1)使用show optation查看配置选项

SMB后门文件读取利用

2)从show option输出的结果来看,还需要设置RHOST(目标)ip地址和SMBSHARE(共享的文件夹)。

SMB后门文件读取利用

3.验证后门

提示协议升级失败:NT_STATUS_CONNECTION_DISCONNECTED“错误

SMB后门文件读取利用

经查这个问题是因为smbclient从4.11开始协议取消了nt1,使用smbv2,因此导致协议无法解决,解决方法如下:

因为是直接连接服务器,服务器是Linux平台构建的samba,所以,直接客户端访问的时候添加option ='client min protocol = nt1'

也就是smbclient -L \ 10.129.120.243 --option ='client min protocol = nt1'

1)测试连接成功

SMB后门文件读取利用

2)smbclient  //10.129.120.243/tmp --option ='client min protocol = nt1'

成功利用后门


SMB后门文件读取利用 


3)在后门成功执行命令。

SMB后门文件读取利用

rootfs ---> Root File System

系统启动时,Uinx要在内存中开辟出一块特殊的文件系统rootfs来帮助真实的文件系统成功挂载上。

 

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操作和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

 

根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。

 

展开来细说就是,根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。我们要明白文件系统和内核是完全独立的两个部分。在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误。

 

根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。

 

根文件系统包含系统启动时所必须的目录和关键性的文件,以及使其他文件系统得以挂载(mount)所必要的文件。例如:

 

1、init进程的应用程序必须运行在根文件系统上;

2、根文件系统提供了根目录“/”;

3、linux挂载分区时所依赖的信息存放于根文件系统/etc/fstab这个文件中;

4、shell命令程序必须运行在根文件系统上,譬如ls、cd等命令;

 

总之:一套linux体系,只有内核本身是不能工作的,必须要rootfs(上的etc目录下的配置文件、/bin /sbin等目录下的shell命令,还有/lib目录下的库文件等···)相配合才能工作。

 

Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂载(mount)。使用 mount 命令将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。根文件系统被挂载到根目录下“/”上后,在根目录下就有根文件系统的各个目录,文件:/bin /sbin /mnt等,再将其他分区挂接到/mnt目录上,/mnt目录下就有这个分区的各个目录和文件。

 

正常来说,根文件系统至少包括以下目录:

 

/etc/:存储重要的配置文件。

/bin/:存储常用且开机时必须用到的执行文件。

/sbin/:存储着开机过程中所需的系统执行文件。

/lib/:存储/bin/及/sbin/的执行文件所需的链接库,以及Linux的内核模块。

/dev/:存储设备文件。


原文始发于微信公众号(Matrix1024):SMB后门文件读取利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月10日01:34:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SMB后门文件读取利用http://cn-sec.com/archives/822502.html

发表评论

匿名网友 填写信息