7

渗透技巧——通过命令行开启Windows系统的匿名访问共享

 3 years ago
source link: https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%BC%80%E5%90%AFWindows%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%8C%BF%E5%90%8D%E8%AE%BF%E9%97%AE%E5%85%B1%E4%BA%AB
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

渗透技巧——通过命令行开启Windows系统的匿名访问共享

01 Jul 2021

0x00 前言


在渗透测试中,尤其是内网渗透,通常需要在内网开启一个支持匿名访问的文件共享,配合漏洞利用。

所以我们需要一种通用的方法,不仅需要使用便捷,还需要能够在命令行下运行。

0x01 简介


本文将要介绍以下内容:

  • 通过界面开启可匿名访问的文件共享服务器
  • 通过命令行开启可匿名访问的文件共享服务器

0x02 利用场景


开启支持匿名访问的文件共享后,其他用户不需要输入用户名和口令,可以直接访问文件服务器的共享文件

通常有以下两种用法:

  1. 作为数据传输的通道
  2. 配合漏洞利用,作为Payload的下载地址

文件共享服务器需要能够在不同操作系统上搭建

对于Linux系统,可借助Samba服务搭建可匿名访问的文件共享服务器

这里给出Kali系统下的使用方法:

修改文件/etc/samba/smb.conf,内容如下:

[global]
    map to guest = test1
    server role = standalone server
    usershare allow guests = yes
    idmap config * : backend = tdb
    smb ports = 445

[smb]
    comment = Samba
    path = /tmp/
    guest ok = yes
    read only = no
    browsable = yes

开启服务:

service smbd start 
service nmbd start 

对于Windows系统,需要考虑域环境和工作组环境。为了支持匿名访问,需要开启Guest用户,允许Guest用户访问文件共享服务器的内容

0x03 通过界面开启可匿名访问的文件共享服务器


具体方法如下:

1.启用Guest用户

运行gpedit.msc,打开组策略

位置:Computer Configuration->Windows Settings->Security Settings->Local Policies->Security Options

选择策略Accounts: Guest account status,设置为Enabled

2.将Everyone权限应用于匿名用户

位置:Computer Configuration->Windows Settings->Security Settings->Local Policies->Security Options

选择策略Network access:Let Everyone permissions apply to anonymous users,设置为Enabled

3.指定匿名共享文件的位置

位置:Computer Configuration->Windows Settings->Security Settings->Local Policies->Security Options

选择策略Network access:Shares that can be accessed anonymously,设置名称,这里可以填入smb

4.将Guest用户从策略“拒绝从网络访问这台计算机”中移除

位置:Computer Configuration->Windows Settings->Security Settings->Local Policies->User Rights Assignment

选择策略Deny access to this computer from the network,移除用户Guest

5.设置文件共享

选择要共享的文件夹,设置高级共享,共享名为smb,共享权限组或用户名为Everyone

至此,可匿名访问的文件共享服务器开启成功,访问的地址为//<ip>/smb

0x04 通过命令行开启可匿名访问的文件共享服务器


具体方法对应的命令如下:

1.启用Guest用户

net user guest /active:yes

2.将Everyone权限应用于匿名用户

REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f

3.指定匿名共享文件的位置

REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d smb /f

4.将Guest用户从策略“拒绝从网络访问这台计算机”中移除

导出组策略:

secedit /export /cfg gp.inf /quiet

修改文件gp.inf,将SeDenyNetworkLogonRight = Guest修改为SeDenyNetworkLogonRight =,保存

重新导入组策略:

secedit /configure /db gp.sdb /cfg gp.inf /quiet

强制刷新组策略,立即生效(否则,重启后生效):

gpupdate/force

5.设置文件共享

icacls C:\share\ /T /grant Everyone:r
net share share=c:\share /grant:everyone,full

至此,可匿名访问的文件共享服务器开启成功,访问的地址为//<ip>/smb

0x05 开源代码


完整的Powershell代码已开源,地址如下:

https://github.com/3gstudent/Invoke-BuildAnonymousSMBServer

代码在以下操作系统测试成功:

  • Windows 7
  • Windows 8
  • Windows 10
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016

支持域环境和工作组环境的Windows操作系统

需要本地管理员权限执行

开启可匿名访问的文件共享服务器:

Invoke-BuildAnonymousSMBServer -Path c:\share -Mode Enable

关闭可匿名访问的文件共享服务器:

Invoke-BuildAnonymousSMBServer -Path c:\share -Mode Disable

注:

关闭可匿名访问的文件共享服务器实现了以下操作:

  • 关闭指定目录的共享权限
  • 禁用Guest用户
  • 禁用将Everyone权限应用于匿名用户
  • 删除组策略中指定的匿名共享文件位置
  • 将Guest用户添加至策略“拒绝从网络访问这台计算机”

在导出组策略时,如果策略“拒绝从网络访问这台计算机”中的内容为空,那么不会有这一选项,当我们需要添加这个策略时,需要手动添加一行内容SeDenyNetworkLogonRight = Guest

在代码实现上,我采用了以下方法:

SeDenyInteractiveLogonRight = Guest

SeDenyNetworkLogonRight = Guest
SeDenyInteractiveLogonRight = Guest

对应的Powershell示例代码:

(Get-Content a.txt) -replace "SeDenyInteractiveLogonRight = Guest","SeDenyNetworkLogonRight = Guest`r`nSeDenyInteractiveLogonRight = Guest" | Set-Content "a.txt"

0x06 小结


本文实现了命令行下对匿名访问共享的开启和关闭,开源代码,可用于测试CVE-2021-1675和CVE-2021-34527。


LEAVE A REPLY


Recommend

  • 14

    渗透技巧——通过CredSSP导出用户的明文口令 0x00 前言 在渗透测试中,为了获得Windows系统中的用户口令,通常会选择读取lsass进程的内存。这种方法不仅需要获得系统的管理员权限,而且在更多情况下需要绕过系统对lsass进程...

  • 13

    渗透技巧——通过Exchange ActiveSync访问内部文件共享 0x00 前言 Exchange ActiveSync是一种Microsoft Exchange同步协议,用于在邮件服务器和移动设备之间同步邮件资源。 Adam Rutherford和David Chismon在他们的...

  • 18

    渗透技巧——通过Kerberos pre-auth进行用户枚举和口令爆破 0x00 前言 在之前的文章

  • 18

    0x00 前言 站在渗透的角度,当获得了一台Windows主机的权限后,需要全面了解这台Windows主机的信息,文件执行记录是重要的部分。 而站在防御的角度,文件执行记录包含系统的重要信息,对其进行针对性的清除很有必要。 所以本文...

  • 14

    0x00 前言 在渗透测试中,文件的恢复和删除好比矛与盾。 文件恢复是指恢复目标系统已删除的文件,而文件删除是指删除在目标系统上使用过的工具,避免被恢复。 0x01 简介 本文将要介绍以下内容: 文...

  • 14

    0x00 前言 在渗透测试中,远程桌面连接的历史记录不可忽视,根据历史记录往往能定位出关键的服务器。 前几天有一篇文章介绍了如何清除记录,那么这篇文章就来介绍一下如何导出历史记录。 清除记录的文章地址如下: http...

  • 19

    0x00前言 对于Windows系统,用户的加密数据大都采用DPAPI进行存储,而想要解密这些数据解,必须要获得DPAPI对应的MasterKey。本文将会介绍在获得了Windows系统的权限后获得MasterKey的方法,同时分析Preferred文件格式,延长MasterKey的有效期

  • 23
    • 3gstudent.github.io 4 years ago
    • Cache

    渗透技巧——Windows系统的帐户隐藏

    0x00 前言 在之前的文章

  • 12

    0x00 前言 在渗透测试中,经常会接触Windows服务器的远程桌面服务,通过界面对服务器进行管理。而对于普通的Windows系统,在某些条件下也需要进行界面操作。 虽然我们可以通过编写程序来实现界面操作(捕获桌面信息,压缩传输,发送鼠标...

  • 12

    0x00 前言 Outlook Web Access的缩写是OWA,是Exchange用于Web方式收发邮件的界面,默认对所有邮箱用户开启。 通常,我们会使用浏览器访问OWA并读取邮件。但站在渗透测试的角度,我们需要通过命令行实现相同的功能。 目前我没有...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK