我正在尝试创建一个 bash 脚本来模拟对我们的邮件服务器的邮件攻击。出于这个原因,我想创建一个 bash 脚本来向我们的服务器发送数百封邮件,但是当我启动命令时:
$telnet 192.168.12.1 25
<-- 其中 192.168.12.1 是我们服务器的 ip
telnet session 开始,我稍后编写的所有命令都没有执行。 我还尝试创建第二个脚本以在创建此脚本后在 telnet session 上启动命令,但是当我从第二个脚本编写时:
$echo -ne "EHLO domain.com\r\f"
它打印命令但不执行 ENTER,因此不执行命令。
有什么想法吗?
最佳答案
SMTP 的行尾是\r\n
,而不是\r\f
,但我不认为这是你的问题。当你做这样的事情时:
telnet mailhost 25 < commands.txt
文本文件中的数据会立即发送到邮件服务器,然后关闭连接,这样就不会看到邮件服务器的响应。您可能会发现:
{ cat commands.txt; sleep 1; } | telnet mailhost.25
让您看到回复。 (我同意 nc
(netcat) 比 telnet
更适合这类工作的评论)。
这可能不是测试邮件炸弹的最佳方法,但它可能会让您入门。
注意:ESMTP(即以 EHLO
而不是 HELO
开始的 session )可能会使用“流水线”,如果服务器表明它将通过响应250-PIPELINING
到 EHLO
,但您仍然需要等待服务器响应 250 OK
到 DATA
。参见 RFC 2920了解详情。
关于linux - 从 bash 脚本发送 "ENTER",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24083844/