كيف يمكن أتمتة telnet المنفذ 25 الاختبار ؟

StackOverflow https://stackoverflow.com/questions/613508

  •  03-07-2019
  •  | 
  •  

سؤال

أنا بحاجة إلى جعل مجموعة كبيرة من الاختبارات في telnet.أنا أعمل على بعض الطرق لصناعة السيارات الكشف عن هجمات القاموس على خادم البريد الإلكتروني ، ثم خنق لهم مرة أخرى ، أو القائمة السوداء لهم.... الخ

أنا الآن على استعداد لإجراء بعض الفحوصات ومعرفة ما إذا كان عملي يؤتي ثماره.فكنت أود أن مجرد تحميل برنامج طفولي التطبيق لتشغيل الاختبارات.أنا لا يمكن العثور على أي وأولئك يمكنني سيئة أو الثنائية وعدم شكلي.

سوف يكون لديك قائمة عناوين لقد تولد في حلقة.

أريد أن تأخذ $العنوان حجة و لا هذا:

telnet myserver.com 25 هيلو some-string.com البريد من:me@me.com rcpt to:$العنوان الإقلاع

في غضون ذلك, أنا في حاجة إلى اختبار عدد قليل من الأشياء, مثل, إذا كنت تمكين greylisting أريد أن تفشل النصي ، كما أن أول مضاد.أعتقد في هذه الحالة ، سوف يكون مجرد telnet مهلة?

  • helo يجب إرجاع رمز السلسلة بدءا من 220 ، وهذا هو حوالي دقيقة كما أنا بحاجة لإجراء هذا الاختبار.

  • mail from يجب أن تعود 250, أو تبحث عن طيب تكفي

  • rctp to يجب أن تعود 250 أو موافق في بعض الأحيان, عندما أرسل في صالح المستخدم ، ولكن معظم الوقت سوف ترسل سيئة العنوان لذا ابحث عن غياب 250 أو موافق.

  • أخيرا سوف ترسل في quit.

أنا لست قادرا على الحصول على شروط التسجيل أن يحدث في حالة تفاعلية.نظرت expect ولكن لا يمكن الحصول على عمل.

قانون بلدي حتى الآن:

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

هذا لا تنفيذ كما هو متوقع.

ماذا يمكنني أن أفعل من أجل تحقيق هدفي ؟

هل كانت مفيدة؟

المحلول

أنا مندهش أن أتوقع لم تفعل ذلك بالنسبة لك لأنه مكتوب فقط هذه الأنواع من الأشياء.

بيرل هو أبسط في بعض طرق و يمكن الحصول على وظيفة مثل هذا الأمر.ولكن مع بيرل ، لن يكلف نفسه عناء مع Telnet, بدلا من ذلك يمكنك فتح المنفذ 25 مباشرة.

إذا كنت تريد حقا أن ممارسة الخادم الخاص بك الحصول على مصدر الحصار وتعديله الحديث SMTP بدلا من HTTP.التي كانت المفضلة أداة اختبار أباتشي الأداء وأنا متأكد من أنه لن يكون من الصعب جدا أن تجعل من اختبار Sendmail.

نصائح أخرى

محاولة netcat: http://netcat.sourceforge.net/

هذا سوف تتيح لك إرسال واستقبال البيانات على مأخذ توصيل.telnet ليس ما تريد - يفعل التفاعلية استخدام.

نتوقع ملفوفة حول netcat (بدلا من telnet) هو على الارجح أفضل الرهان الأولي.ولكن إذا كنت حقا بحاجة إلى هذا, وأود أن استخدام بيرل.هناك SMTP مكتبات العميل لذلك.

يمكنك استخدام باش الجملة من أجل ذلك ، على سبيل المثال

exec {stream}<>/dev/tcp/example.com/80
printf "GET / HTTP/1.1\nHost: example.com\nConnection: close\n\n" >&${stream}
grep Example <&${stream}

هنا هو آخر جملة الأمثلة التي مقالب قائمة من مفاتيح أعطها:

exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top