Protocal
首先,用户会使用 POP3 默认端口 110 连接到 POP3 服务器;
访问电子邮件消息需要身份验证,用户通过提供用户名USER frank
和密码PASS D2xc9CgD
来进行身份验证;(手动输入)
完成验证之后,使用命令 STAT
,我们能得到回复 +OK 1 179
;
根据
使用命令LIST
会获得服务器上的新消息列表,使用命令RETR 1
可以检索新消息列表中的第一条消息。
IMAP
在下面的控制台输出中,我们使用 Telnet 连接到 IMAP 服务器的默认端口143,然后使用LOGIN username password
进行身份验证;IMAP 要求每个命令前面都有一个随机字符串,以便能够跟踪回复,所以我们可以在每个命令开头添加c1,然后添加c2,以此类推;我们可以使用LIST "" "*"
列出我们的邮件文件夹,接着使用EXAMINE INBOX
检查收件箱中是否有任何新邮件。
c1 LOGIN frank D2xc9CgD
c2 LIST "" "*"
c3 EXAMINE INBOX
c4 LOGOUT
在上面的示例中,我们先输入命令ssh mark@MACHINE_IP
,一旦我们输入了正确的密码,我们就可以访问远程系统的终端。SSH协议用于远程管理比较安全可靠,因为我们的用户名和密码都是通过加密发送的;此外,我们在远程系统上执行的所有命令也都将通过加密通道进行发送。
我们可以使用基于 SSH 协议的 SCP(安全复制协议)来通过 SSH连接 进行文件传输操作。
SCP的语法示例是scp mark@MACHINE_IP:/home/mark/archive.tar.gz ~
,该命令将复制远程系统上 位于/home/mark
目录下的archive.tar.gz
文件到本地机的~
目录下,~
代表本地机当前登录用户的用户目录(如:home/user1或者/root)。
SCP的另一个示例语法是scp backup.tar.bz2 mark@MACHINE_IP:/home/mark/
,此命令会将文件backup.tar.bz2
从本地系统复制到远程系统上的/home/mark/
目录下。
Hydra
Hydra的一般语法是hydra -l username -P wordlist.txt server service
,每个参数的含义是:
-
-l username
:-l
应该在username
之前,表示目标的登录(login)名。 -
-P wordlist.txt
:-P
在wordlist.txt
文件之前,该文件是一个文本文件,其中包含你要尝试进行匹配的密码列表。 -
server
是目标服务器的主机名或 IP 地址。 -
service
表示你试图发起密码字典攻击的对应服务。
以下为一些具体示例:
-
hydra -l mark -P /usr/share/wordlists/rockyou.txt MACHINE_IP ftp
将mark用作用户名,在 FTP 服务器上迭代匹配密码字典所提供的密码; -
hydra -l mark -P /usr/share/wordlists/rockyou.txt ftp://MACHINE_IP
与上一个示例相同,MACHINE_IP ftp
=ftp://MACHINE_IP
; -
hydra -l frank -P /usr/share/wordlists/rockyou.txt MACHINE_IP ssh
将用frank
作用户名,因为它尝试使用不同的密码通过 SSH 登录。
你还可以添加一些额外的可选参数:
-
-s PORT
为相关的服务指定非默认端口; -
-V
或者-vV
显示详细信息,让 Hydra 显示正在进行尝试的用户名和密码组合。这种详细程度非常便于查看进度,尤其是在你对语法没有信心的情况下; -
-t n
其中 n 代表与目标的并行连接数,如-t 16
表示将创建 16 个线程用于连接到目标; -
-d
用于调试,以获取有关正在发生的事情的更多详细信息。调试输出可以为你省去很多麻烦,例如,如果 Hydra 尝试连接到关闭的端口并超时,如果使用了-d
则会立即显示这一信息。
成功破解密码后,你可以使用CTRL-C
结束密码攻击过程。在实际情况下,密码攻击通常需要较长的时间,如果你希望 Hydra 能够实时更新密码攻击的进度,选择使用详细信息选项或者调试选项会非常有用。