0x02 Network Services
Task1、引言
这个房间将探讨常见的网络服务漏洞和错误配置。
Task2、了解SMB
什么是SMB?
SMB - 服务器消息块协议 - 是一种客户端-服务器通信协议,用于共享对网络上的文件、打印机、串行端口和其他资源的访问。source
SMB 协议被称为响应请求协议,这意味着它在客户端和服务器之间传输多个消息以建立连接。
SMB如何运作?
建立连接后,客户端可以向服务器发送命令 (SMB),从而允许它们访问共享、打开文件、读取和写入文件,以及通常执行您想要对文件系统执行的所有操作。
SMB 运行在哪?
自Windows 95以来的Microsoft Windows操作系统都包含客户端和服务器SMB协议支持。Samba是一个支持SMB协议的开源服务器,针对Unix系统发布。
Task3、枚举SMB
枚举是收集目标信息的过程,以找到潜在的攻击向量并帮助利用。枚举可用于收集用户名、密码、网络信息、主机名、应用程序数据、服务或对攻击者可能有价值的任何其他信息。
通常,服务器上有可连接并用于查看或传输文件的 SMB 共享驱动器。对于想要发现敏感信息的攻击者来说,SMB 通常是一个很好的起点。
step1:端口扫描
找出目标机器的服务、应用程序、结构和操作系统的信息。
step2:利用枚举工具
Enum4linux 是一个用于枚举 Windows 和 Linux 系统上的 SMB 共享的工具。【github】
语法:enum4linux [options] ip
Task4、利用SMB
①SMB 漏洞利用的类型
CVE-2017-7494 ,允许远程执行代码。
②枚举后应该知道以下内容
- SMB共享位置
- SMB共享的名称
③远程访问SMB共享
语法:
接下来是标签: -U [名称] : 指定用户 -p [端口] : 指定端口
step1:获取共享文件【enum4linux -S $ip】
step2:远程匿名登录
step3:查看内容
step4:进入.shh文件进行私钥下载
step5:本地登录
Task5、Understanding Telnet
什么是telnet?
Telnet 是一种应用程序协议,允许您使用 telnet 客户端连接到托管 telnet 服务器的远程计算机并在其上执行命令。由于其以明文形式发送所有消息,并且没有特定的安全机制。因此,在许多应用程序和服务中,Telnet 在大多数实现中已被 SSH 取代。
语法:"telnet [ip] [port]"
Task6、枚举
step1:nmap端口扫描
step2:尝试远程登录
Task7、利用Telnet
反弹shell?
“shell”可以简单地描述为一段代码或程序,可用于在设备上执行代码或命令。反向 shell 是目标机器与攻击机器进行通信的一种 shell。攻击机器有一个侦听端口,在该端口上接收连接,从而实现代码或命令执行。
Task8、了解FTP
首先,文件传输协议 (FTP) 是一种用于允许通过网络远程传输文件的协议,它使用客户端-服务器模型来完成此操作。
其会话中包含两个通道,一个是命令通道,一个是数据通道。顾名思义,命令通道用于传输命令以及对这些命令的回复,而数据通道则用于传输数据。
除此之外,FTP服务器还支持主动连接和被动连接:
- 在主动 FTP 连接中,客户端打开端口并侦听。服务器需要主动连接到它。【服务器连客户端】
- 在被动 FTP 连接中,服务器打开一个端口并侦听(被动),然后客户端连接到该端口。【客户端连服务器】
Question1:What communications model does FTP use?
从文中很容易找到答案,FTP的交流模式使用的是C/S模式,也就是client-server。
Question2:What's the standard FTP port?
显然,FTP的端口号是21。文中虽未提及,可自行搜索。
Question3:How many modes of FTP connection are there?
问题问的是FTP的连接方式有几种,可从文中找到答案,有两种连接方式,一种是主动连接,一种是被动连接。
Task9、利用FTP
帮助工具:
- tool [-h / -help / --help]
- man [tool]
让我们开始吧!!!
Q1:How many ports are open on the target machine?
题目问的是目标主机有多少端口是打开的,我们使用nmap -vv -sT -p- 对目标主机IP地址进行扫描,结果如下图所示:
可以看出,有两个端口是打开的,一个ftp的21号端口,一个是http的80端口,所有答案是2。
Q2:What port is ftp running on?
从第一问的扫描结果可以看出,FTP运行在21号端口上。
Q3:What variant of FTP is running on it?
问题问的是FTP的变体是什么,想到去查看FTP的版本信息,为了得到更详细的输出结果,我们需要重新利用nmap进行枚举:nmap -vv -A 目标IP地址
Q4:What is the name of the file in the anonymous FTP directory?
显然,从第三问的输出结果可以看出,匿名登录的FTP目录中的文件名称是PUBLIC_NOTICE.txt。
Q5:What do we think a possible username could be?
首先,我们使用mget 文件名命令将文件“PUBLIC_NOTICE.txt”下载到本地,然后打开,就会发现用户名。
step1:下载到本地
step2:本地查看
Task10、利用FTP
该任务的重点是使用Hydra进行密码暴力破解。here
语法:
Q1:What is the password for the user "mike"?
已知用户名为mike,尝试使用命令hydra -t 4 -l mike -P /usr/share/wordlists/rockyou.txt -vV 目标主机IP地址 协议,结果如下图所示:
得到Mike的密码,为password。
Q2:没有给出具体的问题,我们就尝试登录一下吧
Q3:What is ftp.txt?
step1:利用get命令将ftp.txt下载到本地。
step2:利用cat命令查看内容。
Task11、拓展资源
提供了一些额外的资源,点击完成即可,我们就完成了这一个room!!!
-------------------------------------------
个性签名:纸上学来终觉浅,绝知此事要躬行。
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通