5 Stimmen

Wie kann ich die Prüfung von Telnet-Port 25 automatisieren?

Ich muss eine große Anzahl von Tests in Telnet durchführen. Ich arbeite an einigen Möglichkeiten zur automatischen Erkennung von Wörterbuchangriffen auf unseren E-Mail-Server, um sie dann zu drosseln oder auf eine schwarze Liste zu setzen usw.

Ich bin jetzt bereit, einige Tests durchzuführen und zu sehen, ob sich meine Arbeit auszahlt. Ich dachte, ich würde einfach ein Skript kiddy app herunterladen, um die Tests auszuführen. Ich kann keine finden und diejenigen, die ich kann, sind schlecht oder binär und nicht konfigurierbar.

Ich werde eine Liste von Adressen haben, die ich in einer Schleife generiere.

Ich möchte $address als Argument nehmen und dies tun:

telnet mein-server.de 25 helo some-string.com Mail von: me@me.com rcpt an: $Adresse quit

In diesem Zusammenhang muss ich einige Dinge testen, z. B. möchte ich, dass das Skript fehlschlägt, wenn ich Greylisting aktiviere, da dies meine erste Gegenmaßnahme ist. Ich nehme an, in diesem Fall würde ich einfach telnet timeout haben?

  • helo sollte eine Zeichenkette zurückgeben, die mit 220 beginnt, das ist ungefähr so genau, wie ich für diesen Test brauche.

  • mail from sollte 250 zurückgeben, oder die Suche nach OK würde ausreichen

  • rctp to sollte manchmal 250 oder Ok zurückgeben, wenn ich einen gültigen Benutzer sende, aber die meiste Zeit werde ich eine falsche Adresse senden, also suche ich nach dem Fehlen von 250 oder OK.

  • Schließlich werde ich eine quit .

Ich bin nicht in der Lage, Bedingungen und Protokollierung in einer interaktiven Situation zu erreichen. Ich habe mir angesehen expect konnte es aber nicht zum Laufen bringen.

Mein bisheriger Code:

echo -e "helo foo\nmail from: foo.... | telnet example.com 25 | grep -i blah 

Dies hat nicht wie erwartet funktioniert.

Was kann ich tun, um mein Ziel zu erreichen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X