Scrie un scanner de port simplu

Destul de des puteți găsi o situație reală care avea nevoie de mașini statisticile de siguranță. Cu un astfel s-au ciocnit și eu, și dacă mai specific, am fost interesat în porturile deschise telnet (standard este de 23 de minute de port, care are nevoie de detalii - vezi RFC 1060.). Ei bine, nu sunt de gând să vă, ardei, statisticile de utilizare fac din ziare 🙂 - Este în cazul în care a fost nevoie de un pic. Asa ca m-am mutat la mai multe măsuri drastice.

La mâna a fost serverul, care a lucrat în jurul valorii de ceas, cu program instalat și configurat Linux. Desigur, puteți utiliza scanere gata făcute - bun în ele în vrac on-line. Cu toate acestea, mai interesante și mai utile în ceea ce privește competențele dobândite pentru a scrie, deși un scaner simplu, dar încă el însuși.

Alegerea de limbaje de programare a fost destul de bun, dar, ținând cont de faptul că simplitatea - cheia succesului, am ales să scrie o grămadă de Perl + Asteptati. Justifică un pic pentru neinițiați: Perl - cel mai puternic lucru în procesarea textului și în același timp foarte convenabil, dar se așteaptă - produsul finit pentru a automatiza o varietate de sarcini cu date de intrare / ieșire cunoscute. Cred că este clar :).

Pentru puțin pentru a face față cu limba utilizată, efectuați următoarele: Asteptati-va pentru că există un utilitar, cum ar fi autoexpect. Cu el puteți script simplu cu ușurință navayal, din care puteți înțelege principiile de bază stabilite în Asteptati. Să presupunem că dorim să ne asigurăm că script-ul este „descărcat“ de pe server FTP orice fișier. Pentru a face acest lucru, executați comanda: autoexpect ftp ftp.our_ftp_server.com.

Apoi am doar Konekt la server, descărcați fișierul și închideți sesiunea. Sper să lucreze cu toate ftp-client poate :) deja. Rezultatul este un script gata, implicit este creat fișierul script.exp, dar puteți seta doar numele fișierului - autoexpect -f my_script_name ftp ftp.our_ftp_server.com, ceea ce face ceea ce am făcut manual în prealabil. Desigur, în autoexpect au o grămadă de alte chips-uri utile, dar aveți de gând să studieze pe cont propriu. Pentru mai multe informații vă sfătuiesc să vă uitați în manualul - om autoexpect.

  • set - setați valoarea variabilei;
  • se așteaptă - așteptați valoare cunoscută în prealabil (este posibil să se stabilească masca);
  • trimite - trimite valoare;
  • spawn - proces miceliu;
  • aproape - pentru a finaliza procesul;
  • exit - ieși din script-ul.

Deci, înarmat cu sfatul meu și creierele lor proprii, puteți încerca să scrie propriul script. De exemplu, puteți încerca să se conecteze la propria mașină prin telnet și trimite un mesaj la el însuși pe săpun, desigur :). Nu orice imediat s-au grabit sa scrie scenariul - în acest caz, aduce versiunea finit a scenariului scris de:

Verificați - ar trebui să funcționeze. Acum ușor complica skriptik și va ține un jurnal de fișier. În acest moment nu am de gând să ajute - scrie-te;). Pentru acest yuzaem log_file - restul, vezi paginile man :). După primele experimente de succes poate începe scrierea efectivă a scanerului. Aici există unele capcane: Ei bine, în primul rând ar trebui să acorde o atenție pentru a da naștere unei comenzi - un produs al noului proces. Ce se poate acest lucru?

Concluzie - este necesară pentru script-ul atunci când începe scanarea în sine a continuat după cădere linia. Toate acestea am realizat cât mai devreme de 2 script-uri - aici e la îndemână Perl. Și așa totul a lucrat, desigur, am folosit cron (care nu știu. - a se vedea om cron). Cu toate acestea, cred că va fi mult mai util pentru a scrie toate script-urile ei înșiși;). În plus, acestea pot fi puse în aplicare și mult mai ușor. Și eu sunt în nici un caz nu suna pe nimeni pentru a scana rețeaua altor oameni folosind acest script - ar putea ajunge destul de lamentabil :).

Arată acest articol unui prieten:

articole similare