👣 看似简单的东西也要动手实践一下,一步一个脚印👣
ps:填空答案已在文中标出
SMB 简介
smb 协议,全称 Server Message Block [1] ,是一种在局域网中用于共享文件、打印机和串口的协议
使用 nmap -A 扫描目标主机,查看开放端口,共有 3 个服务, 服务是具体的功能,而协议是规则,注意区分
┌──(root💀kali)-[~]
└─# nmap -A 10.129.107.28
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
-
135 端口是远程过程调用 (RPC) 端口 ,Client-Server Model(客户端-服务器应用程序)
-
139 端口是 netbios-ssn,NetBIOS 是在所有当前版本 Windows 下用于文件和打印共享的协议,默认情况下,启用文件和打印共享后,会绑定到所有内容,包括 TCP/IP ,这意味着除非配置不当的情况下,可以在互联网上访问本地的共享资源
-
445 [2] 端口 microsoft-ds [4] 服务,也是 Client-Server Model [3],用于直接 TCP/IP MS 网络访问,无需 NetBIOS 层,SMB 协议用于 Windows NT/2K/XP 和更高版本中的文件共享
在 Windows NT 中,它运行在 NetBT(基于 TCP/IP 的 NetBIOS,端口 137、139 和 138/udp)之上,在 Windows 2K/XP 及更高版本中,可以通过 TCP/IP 在 445 端口运行 SMB 服务
如何使用?
在 linux 中,可以使用命令行工具 smbclient [5] 进行连接,使用 -L [6] 命令显示服务器端分享的资源
┌──(root💀kali)-[~]
└─# smbclient -L 10.129.107.28/WorkShares
Enter WORKGROUP\root's password:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
IPC$ IPC Remote IPC
WorkShares Disk
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 10.129.107.28 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available
Remote Admin 是一款远程控制软件,猜测 ADMIN$ 是它的连接目录,密码为空,无权访问
┌──(root💀kali)-[~]
└─# smbclient //10.129.107.28/ADMIN$ 1 ⨯
Enter WORKGROUP\root's password:
tree connect failed: NT_STATUS_ACCESS_DENIED
同样,C$
和 IPC$
也不能访问,或者无权查看,连接 WorkShares [7]
┌──(root💀kali)-[~]
└─# smbclient //10.129.107.28/WorkShares
Enter WORKGROUP\root's password:
Try "help" to get a list of possible commands.
smb: \> ?
可以使用问号查看当前支持的命令,我们使用 ls 列出当前目录文件,两个文件夹,cd 进入 James.P 后同样使用 get [8] 命令下载 flag 文件, ctrl+c 退出
smb: \James.P\> get flag.txt
getting file \James.P\flag.txt of size 32 as flag.txt (0.0 KiloBytes/sec) (average 0.1 KiloBytes/sec)
smb: \James.P\> ^C
填入 flag ,至此,第三个靶机完成!