piątek, 27 kwietnia 2012

Tworzenie certyfikatów dla managera kolejek WebSphere MQ

Wymagane aplikacje: Ikeyman, OpenSSL, WebSphereMQ W pliku "openssl.[cnf|cfg]" powinno być ustawione:
basicConstraints=CA:true
Utworzenie centrum certyfikacji:
perl CA.pl -newca
(...)
A challenge password []: <hasło> ENTER
An optional company name [] <hasło> ENTER
Opcjonalnie - wydłużenie terminu ważnosci certyfikatu:
cd demoCA
openssl x509 -in cacert.pem -days 1024 -out newca.pem -signkey private/cakey.pem
mv newca.pem cacert.pem
Utworzenie certyfikatu dla klienta kanału:
perl CA.pl -newreq
(...)
Common Name (eg, YOUR name) []: QMGR NAME
Koniecznie wpisujemy nazwę managera kolejek!
(...)
A challenge password []: – ENTER
An optional company name [] – ENTER
Podpisanie certyfikatu klienta:
perl CA.pl -signreq
Eksport pary certyfikatow (centrum certyfikacji i klient kanału) do formatu PKCS12:
perl CA.pl -pkcs12 CHANNELNAME
Certyfikat centrum certyfikacji jest także w pliku demoCA/cacert.pem. Utworzenie pliku z hasłem do repozytorium CMS (Ikeyman):
runmqckm -keydb -stashpw -db QMGRNAME.kdb
Wygenerowane pliki (QMGRNAME.crl, QMGRNAME.kdb, QMGRNAME.rdb, QMGRNAME.sth) należy wgrać do katalogu "qmgrs/QMGRNAME/ssl".

Konwersja repozytorium kluczy PKCS12 na JKS:

java -classpath jetty-6.1.3/lib/jetty-6.1.3.jar org.mortbay.jetty.security.PKCS12Import PKCS12.p12 JKS.jks

czwartek, 26 kwietnia 2012

Dekodowanie hasła w pliku *.sth w managerze MQ

#!/usr/bin/perl -w
#
# unstash.pl - "decrypt" IBM HTTP server stash files. No, really. They *are* this pathetic.
#
# sploit (BoByRiTe) 1999, Major Malfunction, code by Ben Laurie, cos I dudn't dud perly thing.

use strict;

die "Usage: $0 <stash file>\n" if $#ARGV != 0;

my $file=$ARGV[0];
open(F,$file) || die "Can't open $file: $!";

my $stash;
read F,$stash,1024;

my @unstash=map { $_^0xf5 } unpack("C*",$stash);

foreach my $c (@unstash) {
    last if $c eq 0;
    printf "%c",$c;
}
printf "\n";
Wywołanie:
perl unstash.pl PLIK.sth
źródło