2009. július 9., csütörtök

ssl checker

Írtam egy sslchecker-t. ssl szerver ellenőrzéséhez. man-in-the-middle beépülés kizárására.(Mivel a gagyi szoftveres megoldások miatt lehetőség van egy hiba kihasználására)

Az ssl1.bat eltárolja a webhely fontosabb adatait egy webhely.orig fájlba.
Az ssl2.bat pedig összeveti a korábban eltárolt tartalmat az új eredménnyel.
(a két program szinte ugyanaz - megoldhattam volna egy programmal is egy paraméter beadásával, hogy mit kell csinálni ellenőrizni vagy létrehozni, de most nem volt kedvem többet tökölődni vele :-)

ssl1.bat:

@echo off

echo QUIT | openssl s_client -connect %1:443 2>NULL | perl -w szuro.pl > %1.cer
openssl x509 -inform PEM -in %1.cer -text | perl -w szuro2.pl > %1.dat
ren %1.dat %1.orig


ssl2.bat:

@echo off

echo QUIT | openssl s_client -connect %1:443 2>NULL | perl -w szuro.pl > %1.cer
openssl x509 -inform PEM -in %1.cer -text | perl -w szuro2.pl > %1.dat
diff %1.dat %1.orig


szuro.pl:

use strict;
use warnings;

while () {
print if (/-----BEGIN CERTIFICATE-----/ .. /-----END CERTIFICATE-----/);

}


szuro2.pl:

use strict;
use warnings;

while () {
print if (/Serial Number:/ .. /Signature/);
print if (/Issuer:/ .. /Subject:/);
print if (/Modulus/ .. /Exponent:/);

}


A .bat file paramétere a webhely neve (pl: mail.google.com - gmailnél, vagy www.hushmail.com - hushmailnál, stb)
Tehát ssl1 mail.google.com -> létrehozza a mail.google.com.orig fájlt
ssl2 mail.google.com pedig összeveti a jelenlegi állapotot egy előzővel.
Ha nincs eltérés, akkor nem ír ki semmit, ha pedig van, akkor kiírja, hogy mi az.
(Eltéréskor megnézhetjük, hogy csak egy új kulcsot adott ki a tanúsító a szerverre, vagy pedig valaki megpróbál beékelődni.)

Egy másik batch-el "for" alkalmazásával egy egész sor szervert le lehet így ellenőrizni egy listából és csak az eltéréseket fogja kiírni.

Ha lesz kedvem összerakok egy olyan batch-et, ami leellenőrzi az ssl-el védett csatornákat amiket használunk,(az adatokat egy listából fogja venni) egy másik módszert meg kieszelek, hogy hogyan lehet összegyűjteni (egy listába), hogy netezés közben milyen helyeket látogattunk meg, ahol gond lehet az ssl kapcsolat sérülése.

(openssl, perl, unxutils, stb kellenek hozzá, de ezek nélkül az ember nem is megy sehova :-)

Nincsenek megjegyzések:

Megjegyzés küldése

Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.