

渗透技巧——通过命令行开启Windows系统的匿名访问共享
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.

渗透技巧——通过命令行开启Windows系统的匿名访问共享
01 Jul 20210x00 前言
在渗透测试中,尤其是内网渗透,通常需要在内网开启一个支持匿名访问的文件共享,配合漏洞利用。
所以我们需要一种通用的方法,不仅需要使用便捷,还需要能够在命令行下运行。
0x01 简介
本文将要介绍以下内容:
- 通过界面开启可匿名访问的文件共享服务器
- 通过命令行开启可匿名访问的文件共享服务器
0x02 利用场景
开启支持匿名访问的文件共享后,其他用户不需要输入用户名和口令,可以直接访问文件服务器的共享文件
通常有以下两种用法:
- 作为数据传输的通道
- 配合漏洞利用,作为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。
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
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