Encrytion | Complexity is the enemy of Security http://blog.lifeoverip.net Life (Over) IP, Sun, 02 Jan 2011 18:14:31 +0000 en-US hourly 1 John The Ripper Kullanarak iPhone Parolalarının Kırılması http://blog.lifeoverip.net/2011/01/02/john-the-ripper-kullanarak-iphone-parolalarinin-kirilmasi/ http://blog.lifeoverip.net/2011/01/02/john-the-ripper-kullanarak-iphone-parolalarinin-kirilmasi/#respond Sun, 02 Jan 2011 18:14:31 +0000 http://blog.lifeoverip.net/?p=3129 iPhone temelinde OS X işletim sistemi yatmaktadır, OS X işletim sistemi de BSD tabanlı olduğu için parola formatı JTR(John The Ripper) tarafından desteklenmektedir. Herhangi ek bir yama/parametre kullanmadan iPhone parolalarına güvenlik denetimi gerçekleştirilebilir. Örnek bir iPhone parola dosyası: /etc/master.passwd nobody:*:-2:-2::0:0:Unprivileged … Continue reading

The post John The Ripper Kullanarak iPhone Parolalarının Kırılması first appeared on Complexity is the enemy of Security.

]]>
iPhone temelinde OS X işletim sistemi yatmaktadır, OS X işletim sistemi de BSD tabanlı olduğu için parola formatı JTR(John The Ripper) tarafından desteklenmektedir.

Herhangi ek bir yama/parametre kullanmadan iPhone parolalarına güvenlik denetimi gerçekleştirilebilir.


Örnek bir iPhone parola dosyası: /etc/master.passwd

nobody:*:-2:-2::0:0:Unprivileged User:/var/empty:/usr/bin/false
root:/smx7MYTQIi2M:0:0::0:0:System Administrator:/var/root:/bin/sh
mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1::0:0:System Services:/var/root:/usr/bin/false
_wireless:*:25:25::0:0:Wireless Services:/var/wireless:/usr/bin/false
_securityd:*:64:64::0:0:securityd:/var/empty:/usr/bin/false
_mdnsresponder:*:65:65::0:0:mDNSResponder:/var/empty:/usr/bin/false
_sshd:*:75:75::0:0:sshd Privilege separation:/var/empty:/usr/bin/false
_unknown:*:99:99::0:0:Unknown User:/var/empty:/usr/bin/false

iPhone üzerinden elde edilecek master.passwd dosyası JTR’e parametre olarak verilir.  JTR aktif durumda olan kullanıcılara ait parolaları varsayılan sözlük dosyasından okuyarak bulmaya çalışacaktır.

#john master.passwd

Loaded 2 password hashes with no different salts (Traditional DES [128/128 BS SSE2-16])
alpine           (mobile)
alpine           (root)
guesses: 2  time: 0:00:00:00 100.00% (2) (ETA: Sun Jan  2 18:27:32 2011)  c/s: 915456  trying: adam – daniel1

Eğer parola kırma işleminde sözlük saldırısı kullanılmak istenirse –w:dozluk_dosyasi parametresi ile istenilen sözlük dosyası kullanılabilir.

The post John The Ripper Kullanarak iPhone Parolalarının Kırılması first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2011/01/02/john-the-ripper-kullanarak-iphone-parolalarinin-kirilmasi/feed/ 0
Sertifika ve SSL Kavramları http://blog.lifeoverip.net/2010/09/23/sertifika-ve-ssl-kavramlari-2/ http://blog.lifeoverip.net/2010/09/23/sertifika-ve-ssl-kavramlari-2/#respond Thu, 23 Sep 2010 17:30:32 +0000 http://blog.lifeoverip.net/?p=2780 SSL sertifikaları ve SSL kavramına özet olarak giriş yapan “Sertifika ve SSL Kavramları” dokümanı Bilgi Güvenliği AKADEMİSİ Kütüphanesine eklenmiştir.Bilgi Güvenliği AKADEMİSİ eğitmeni Huzeyfe ÖNAL ve Çağatay IŞIKÇI tarafından hazırlanan dokümanda SSL ve sertifika kavramına genel bakışı bulacaksınız. Dokümanı indirmek için … Continue reading

The post Sertifika ve SSL Kavramları first appeared on Complexity is the enemy of Security.

]]>
SSL sertifikaları ve SSL kavramına özet olarak giriş yapan “Sertifika ve SSL Kavramları” dokümanı Bilgi Güvenliği AKADEMİSİ Kütüphanesine eklenmiştir.Bilgi Güvenliği AKADEMİSİ eğitmeni Huzeyfe ÖNAL ve Çağatay IŞIKÇI tarafından hazırlanan dokümanda SSL ve sertifika kavramına genel bakışı bulacaksınız. Dokümanı indirmek için aşağıdaki linki kullanabilirsiniz.

http://blog.bga.com.tr/wp-content/uploads/2010/09/SSL_Kavrami.pdf

The post Sertifika ve SSL Kavramları first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2010/09/23/sertifika-ve-ssl-kavramlari-2/feed/ 0
SSLdump Kullanarak HTTPS Trafiği Analizi http://blog.lifeoverip.net/2010/09/22/ssldump-kullanarak-https-trafigi-analizi/ http://blog.lifeoverip.net/2010/09/22/ssldump-kullanarak-https-trafigi-analizi/#respond Wed, 22 Sep 2010 19:36:28 +0000 http://blog.lifeoverip.net/?p=2757 SSLdump SSL/TLS kullanılarak şifrelenmiş trafikler için geliştirilmiş trafik analizi ve şifre çözümleme aracıdır. SSLdump kullanarak -sunucuya ait gizli anahtarın elimizde olduğu varsayılıyor-HTPS ve benzeri şifreli trafiklerin içerisinde geçen bilgiler okunabilir. SSldump akan trafikten analiz/şifre çözme yapabileceği gibi daha önce pcap … Continue reading

The post SSLdump Kullanarak HTTPS Trafiği Analizi first appeared on Complexity is the enemy of Security.

]]>
SSLdump SSL/TLS kullanılarak şifrelenmiş trafikler için geliştirilmiş trafik analizi ve şifre çözümleme aracıdır. SSLdump kullanarak -sunucuya ait gizli anahtarın elimizde olduğu varsayılıyor-HTPS ve benzeri şifreli trafiklerin içerisinde geçen bilgiler okunabilir.

SSldump akan trafikten analiz/şifre çözme yapabileceği gibi daha önce pcap formatında kaydedilmiş trafikden de analiz/şifre çözme işlemleri gerçekleştirebilir.

SSLdump Kullanım Parametreleri

Canlı trafikte analiz için

#ssldump -i ağ_arabirimi (ssldump -i eth0 gibi)

Daha önce kaydedilmiş pcap formatındaki dosyadan okutmak için

#ssldump -r

SSL trafiği içerisinde geçen verileri açığa çıkarmak için gerekli parametreler

ssldump -i eth0 -k gizlianahtar -d

-d uygulama seviyesi trafik bilgilerini göstermek için kullanılır.

SSL verilerini çözebilmesi için ssldump’ın openssl destekli kurulmuş olması gerekir. Openssl desteğini öğrenmek için -v parametresi kullanılabilir.

[root@labs ~]# ssldump -v
ssldump 0.9b3
Copyright (C) 1998-2001 RTFM, Inc.
All rights reserved.
Compiled with OpenSSL: decryption enabled

Örnek kullanım:

#ssldump -i rl0 tcp port 443

New TCP connection #1: dsl7.16-3229.ttnet.net.tr(4318) <-> labs.lifeoverip.net(443)
1 1 0.0638 (0.0638) C>S Handshake
ClientHello
Version 3.1
resume [32]=
24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f
61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc
cipher suites
Unknown value 0xff
Unknown value 0xc00a
Unknown value 0xc014
Unknown value 0×88
Unknown value 0×87
Unknown value 0×39
Unknown value 0×38
Unknown value 0xc00f
Unknown value 0xc005
Unknown value 0×84
Unknown value 0×35
Unknown value 0xc007
Unknown value 0xc009
Unknown value 0xc011
Unknown value 0xc013
Unknown value 0×45
Unknown value 0×44
Unknown value 0×33
Unknown value 0×32
Unknown value 0xc00c
Unknown value 0xc00e
Unknown value 0xc002
Unknown value 0xc004
Unknown value 0×96
Unknown value 0×41
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
Unknown value 0x2f
Unknown value 0xc008
Unknown value 0xc012
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Unknown value 0xc00d
Unknown value 0xc003
Unknown value 0xfeff
TLS_RSA_WITH_3DES_EDE_CBC_SHA
compression methods
NULL
1 2 0.0643 (0.0004) S>C Handshake
ServerHello
Version 3.1
session_id[32]=
24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f
61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc
cipherSuite Unknown value 0×88
compressionMethod NULL
1 3 0.0643 (0.0000) S>C ChangeCipherSpec
1 4 0.0643 (0.0000) S>C Handshake
1 5 0.1088 (0.0445) C>S ChangeCipherSpec
1 6 0.1088 (0.0000) C>S Handshake
1 7 0.1088 (0.0000) C>S application_data
1 8 0.1124 (0.0035) S>C application_data
1 9 0.1124 (0.0000) S>C application_data
1 10 0.1796 (0.0672) C>S application_data
1 11 0.1832 (0.0035) S>C application_data
1 12 0.1832 (0.0000) S>C application_data

Bir SSL bağlantısına ait tüm adımlar ssldump’da ayrı trafik numarasıyla belirtilir ve ilgili ssl bağlantısına ait tüm paketler o numarayı takip eder. yukardaki çıktıda bir adet ssl bağlantısı vardır ve 1, 1 1, 1 2, 1, 3 ….1 12 şeklinde giden satırlar tek bir SSL bağlantısına aittir.

Yukardaki ssl bağlantısında veriler şifreli olduğu için gözükmeyecektir. SSldump’a bağlantı yapılan adresin gizli anahtarını -k parametresi ile tanıtırsak 1 12 0.1832 (0.0000) S>C application_data yazan kısımda aşağıdaki gibi açık HTTP başlık bilgileri gözükecektir.

#ssldump -i rl0 -d -H -k /usr/local/etc/apache22/extra/blog.key tcp port 443

New TCP connection #1: dsl7.16-3229.ttnet.net.tr(4318) <-> labs.lifeoverip.net(443)
1 1 0.0638 (0.0638) C>S Handshake
ClientHello
Version 3.1
resume [32]=
24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f
61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc
cipher suites
Unknown value 0xff
Unknown value 0xc00a
Unknown value 0xc014
Unknown value 0×88
Unknown value 0×87
Unknown value 0×39
Unknown value 0×38
Unknown value 0xc00f
Unknown value 0xc005
Unknown value 0×84
Unknown value 0×35
Unknown value 0xc007
Unknown value 0xc009
Unknown value 0xc011
Unknown value 0xc013
Unknown value 0×45
Unknown value 0×44
Unknown value 0×33
Unknown value 0×32
Unknown value 0xc00c
Unknown value 0xc00e
Unknown value 0xc002
Unknown value 0xc004
Unknown value 0×96
Unknown value 0×41
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
Unknown value 0x2f
Unknown value 0xc008
Unknown value 0xc012
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Unknown value 0xc00d
Unknown value 0xc003
Unknown value 0xfeff
TLS_RSA_WITH_3DES_EDE_CBC_SHA
compression methods
NULL
1 2 0.0643 (0.0004) S>C Handshake
ServerHello
Version 3.1
session_id[32]=
24 fc 17 ee f2 b4 c5 e9 96 51 51 f3 38 e6 b9 7f
61 18 6c d0 68 3d 64 1c 8d bf 05 da 28 62 7a fc
cipherSuite Unknown value 0×88
compressionMethod NULL
1 3 0.0643 (0.0000) S>C ChangeCipherSpec
1 4 0.0643 (0.0000) S>C Handshake
1 5 0.1088 (0.0445) C>S ChangeCipherSpec
1 6 0.1088 (0.0000) C>S Handshake
1 7 0.1088 (0.0000) C>S application_data

GET /network_pentest HTTP/1.1
Host: www.bga.com.tr
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

1 8 0.1124 (0.0035) S>C application_data

HTTP/1.1 404 Not Found

Date: Tue, 29 Jun 2010 13:24:17 GMT
Server: Apache/2.2.13
Content-Length: 213
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

1 12 0.1832 (0.0000) S>C application_data

SSldump hakkında detay bilgi için http://www.rtfm.com/ssldump/documentation.html

The post SSLdump Kullanarak HTTPS Trafiği Analizi first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2010/09/22/ssldump-kullanarak-https-trafigi-analizi/feed/ 0
Apache İçin SSL Sertifikası Oluşturma http://blog.lifeoverip.net/2010/06/22/apache-icin-ssl-sertifikasi-olusturma/ http://blog.lifeoverip.net/2010/06/22/apache-icin-ssl-sertifikasi-olusturma/#respond Tue, 22 Jun 2010 19:37:19 +0000 http://blog.lifeoverip.net/?p=2761 SSL sertifikası kullanımı için iki yol vardır. Bunlardan biri sertifika isteği oluşturarak bunu geçerli bir sertifika otoritesi(CA) göndermek, diğeri de kendi sertifika otoritemizi oluşturarak sertifika taleplerini onaylamak. Sertifika işlemleri için komut satırından openssl, grafik arabirim tercih ediyorsanız XCA kullanabilirsiniz. Adım … Continue reading

The post Apache İçin SSL Sertifikası Oluşturma first appeared on Complexity is the enemy of Security.

]]>
SSL sertifikası kullanımı için iki yol vardır. Bunlardan biri sertifika isteği oluşturarak bunu geçerli bir sertifika otoritesi(CA) göndermek, diğeri de kendi sertifika otoritemizi oluşturarak sertifika taleplerini onaylamak.

Sertifika işlemleri için komut satırından openssl, grafik arabirim tercih ediyorsanız XCA kullanabilirsiniz.

Adım adım sertifika oluşturma ve kendi CA’miz tarafından sertifikanın onaylanması

1- Sertifika OTORİTESİ Oluşturma

1.1 Gizli anahtar oluşturma

# openssl genrsa -des3 -out ca.key 2048

1.2 CA için sertifika oluşturma

# openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:TR
State or Province Name (full name) [Some-State]:Istanbul
Locality Name (eg, city) []:Istanbul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bilgi Guvenligi AKADEMISI
Organizational Unit Name (eg, section) []:Training
Common Name (eg, YOUR name) []:www.bga.com.tr
Email Address []:[email protected]
You have new mail in /var/mail/root

Web sunucu için gizli anahtarın oluşturulması
# openssl genrsa -des3 -out sunucu.key 2048
Generating RSA private key, 2048 bit long modulus
………………………………………………………………+++
………..+++
e is 65537 (0×10001)
Enter pass phrase for sunucu.key:
Verifying – Enter pass phrase for sunucu.key:

2. Sunucu için certificate imzalama isteği

# openssl req -new -key sunucu.key -out sunucu.csr

Enter pass phrase for sunucu.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:TR
State or Province Name (full name) [Some-State]:Istanbul
Locality Name (eg, city) []:Istanbul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bilgi Guvenligi AKADEMISI
Organizational Unit Name (eg, section) []:Egitim
Common Name (eg, YOUR name) []:www.bga.com.tr
Email Address []:[email protected]

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
You have new mail in /var/mail/root

[root@labs ~/CA]# ls -ltr
total 8
-rw-r–r– 1 root wheel 0 Jun 15 08:17 my-ca.key
-rw-r–r– 1 root wheel 1751 Jun 15 08:17 ca.key
-rw-r–r– 1 root wheel 1740 Jun 15 08:19 ca.crt
-rw-r–r– 1 root wheel 1743 Jun 15 08:22 sunucu.key
-rw-r–r– 1 root wheel 1082 Jun 15 08:25 sunucu.csr

3. CA(Sertifika Otoritesi) kullanarak CSR’i onaylama

# openssl x509 -req -in sunucu.csr -out sunucu.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 730
Signature ok
subject=/C=TR/ST=Istanbul/L=Istanbul/O=Bilgi Guvenligi AKADEMISI/OU=Egitim/CN=www.bga.com.tr/[email protected]
Getting CA Private Key
Enter pass phrase for ca.key:
You have new mail in /var/mail/root

#chmod 400 *.key

4. Apache’i SSL ile başlatma

# apachectl start

Apache/2.2.13 mod_ssl/2.2.13 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server www.bga.com.tr:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.

The post Apache İçin SSL Sertifikası Oluşturma first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2010/06/22/apache-icin-ssl-sertifikasi-olusturma/feed/ 0
Pratik OpenSSL Kullanımı http://blog.lifeoverip.net/2009/03/01/pratik-openssl-kullanimi/ http://blog.lifeoverip.net/2009/03/01/pratik-openssl-kullanimi/#respond Sun, 01 Mar 2009 12:29:44 +0000 http://blog.lifeoverip.net/?p=985 12:17 01.03.2009 Hemen her gün çeşitli işlerim için openssl’i kullanıyorum. Ara ara da arkadaşlardan bunu openssl’le nasil yaparim, openssl’in şu komutu ne işe yarardı gibisinden sorular aliyorum. Uzun zaman once bu konuda birseyler yazmistim ama usb diskimi Izmir’de kaybetmem sonrasi … Continue reading

The post Pratik OpenSSL Kullanımı first appeared on Complexity is the enemy of Security.

]]>
12:17 01.03.2009

Hemen her gün çeşitli işlerim için openssl’i kullanıyorum. Ara ara da arkadaşlardan bunu openssl’le nasil yaparim, openssl’in şu komutu ne işe yarardı gibisinden sorular aliyorum. Uzun zaman once bu konuda birseyler yazmistim ama usb diskimi Izmir’de kaybetmem sonrasi yayınlayamadım. Sonra tekrar hazırladım ve tekrar usb diskimi kaybettim. Pazar gunu biraz vakit bulunca hem egitim notlarina ekleyeceklerimi gozden gecirdim hem de bu konuda sık karşılaştığım soruları içeren openssl mini howto’sunu yazmaya oturdum. Eger yazı yayınlanırsa bilin ki bu sefer usb diskimi kaybetmedim:)

Yazı hazırlarken benim için  en zor bölümü giriş kısmıdır. Üzerine yazdığım konu ile ilgili temel ifadeleri yazmakta o kadar zorlanırım ki bazen sırf bunu aşamadığım için yazıyı bırakırım. Masaüstümde adı konulmuş içeriği doldurulmuş ama giriş bölümü hazırlanmamış onca belge var. bu sefer de aynı akibete ugramamak icin dogrudan icerige giriyorum. Temel seyleri merak edenler konu hakkında daha fazla bilgi bulabilecekleri arama motorlarına danışmalı.

Ilk Not: Openssl kullanarak aklınza gelebilecek her tür şifreleme/encoding(turkcesi ne ola ki?) ve tersi işlemler yapılabilir.

OpenSSL Yardım Menüsü

Openssl kullanımı aslında oldukça kolaydır fakat sunduğu seçenek sayısı fazla olduğu için genelde hangi paramnetrenin hangi sırada kullanılacağı şaşırılır. Bunun için openssl’in help özelliği kullanıabilir.

# openssl -h
openssl:Error: '-h' is an invalid command.
Standard commands
asn1parse      ca             ciphers        crl            crl2pkcs7
dgst           dh             dhparam        dsa            dsaparam
ec             ecparam        enc            engine         errstr
gendh          gendsa         genrsa         nseq           ocsp
passwd         pkcs12         pkcs7          pkcs8          prime
rand           req            rsa            rsautl         s_client
s_server       s_time         sess_id        smime          speed
spkac          verify         version        x509
Message Digest commands (see the `dgst' command for more details)
md2            md4            md5            rmd160         sha
sha1
Cipher commands (see the `enc' command for more details)
aes-128-cbc    aes-128-ecb    aes-192-cbc    aes-192-ecb    aes-256-cbc
aes-256-ecb    base64         bf             bf-cbc         bf-cfb
bf-ecb         bf-ofb         cast           cast-cbc       cast5-cbc
cast5-cfb      cast5-ecb      cast5-ofb      des            des-cbc
des-cfb        des-ecb        des-ede        des-ede-cbc    des-ede-cfb
des-ede-ofb    des-ede3       des-ede3-cbc   des-ede3-cfb   des-ede3-ofb
des-ofb        des3           desx           rc2            rc2-40-cbc
rc2-64-cbc     rc2-cbc        rc2-cfb        rc2-ecb        rc2-ofb
rc4            rc4-40

Buradan alt komutlara ait kullanım bilgisi için de openssl alt_komt -h parametresi kullanılır.

Mesela Openssl’in passwd altkomutunun kullanımı ile ilgili bilgi almak için

# openssl passwd -h
Usage: passwd [options] [passwords]
where options are
-crypt             standard Unix password algorithm (default)
-1                 MD5-based password algorithm
-apr1              MD5-based password algorithm, Apache variant
-salt string       use provided salt
-in file           read passwords from file
-stdin             read passwords from stdin
-noverify          never verify when reading password from terminal
-quiet             no warnings
-table             format output as table
-reverse           switch table columns

Base64 Encode/Decode İşlemleri

İçerisinde HuzeyfeOnal yazılı bir dosyanın base64 ile encoding yapılması sonucu oluşan çıktı.

root@home-labs:~# openssl enc -base64 -in test -out test1
SHV6ZXlmZU9uYWwK

decoding için

openssl enc -d -base64 …

komutu kullanılır.

SSL üzerinden çalışan bir servise bağlanma

SSL/TLS üzerinden çalışmayan servislere kontrol amaçlı bağlanırken dogrudan telnet ip port ya da nc ip port komutlarını kullanırız fakat servis ssl çalıştırıyorsa bu iki bilinen  komut istediğimiz sonucu vermeyecektir. Bunun yerine Openssl ile birlitke gelen s_client parametresini kullanabiliriz.

# telnet vpn.lifeoverip.net 443
Trying 80.93.212.86...
Connected to vpn.lifeoverip.net.
Escape character is '^]'.
root@home-labs:~# openssl s_client -connect www.lifeoverip.net:443
CONNECTED(00000003)
depth=0 /C=TR/ST=Istanbul/L=Basaksehir/O=Lifeoverip/CN=mail.lifeoverip.net/[email protected]
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=TR/ST=Istanbul/L=Basaksehir/O=Lifeoverip/CN=mail.lifeoverip.net/[email protected]
verify return:1
---
Certificate chain
 0 s:/C=TR/ST=Istanbul/L=Basaksehir/O=Lifeoverip/CN=mail.lifeoverip.net/[email protected]
   i:/C=TR/ST=Istanbul/L=Basaksehir/O=Lifeoverip/CN=mail.lifeoverip.net/[email protected]
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDljCCAv+gAwIBAgIJAOZtLpQBRe+5MA0GCSqGSIb3DQEBBAUAMIGPMQswCQYD
VQQGEwJUUjERMA8GA1UECBMISXN0YW5idWwxEzARBgNVBAcTCkJhc2Frc2VoaXIx
EzARBgNVBAoTCkxpZmVvdmVyaXAxHDAaBgNVBAMTE21haWwubGlmZW92ZXJpcC5u
ZXQxJTAjBgkqhkiG9w0BCQEWFmh1emV5ZmVAbGlmZW92ZXJpcC5uZXQwHhcNMDgw
NDIwMTgzNzMxWhcNMTEwMTE1MTgzNzMxWjCBjzELMAkGA1UEBhMCVFIxETAPBgNV
BAgTCElzdGFuYnVsMRMwEQYDVQQHEwpCYXNha3NlaGlyMRMwEQYDVQQKEwpMaWZl
b3ZlcmlwMRwwGgYDVQQDExNtYWlsLmxpZmVvdmVyaXAubmV0MSUwIwYJKoZIhvcN
AQkBFhZodXpleWZlQGxpZmVvdmVyaXAubmV0MIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCqqYPSzpC1ldtTc4o1/iQqN18C89lZg4jHqRplppkwHRhyCW/6ua3S
ssUFPxm6rYVxjY+1hG13CHgJXhX22Agnr2PBicJrv1xvjWP571YZhVoof6UNpPDG
WUe/3J4mVOXD7J2KvsOcW4zoTOCZauE5z0oeUu+77glvqOiF2pu3LQIDAQABo4H3
MIH0MB0GA1UdDgQWBBSEhZEvLn4PMLo+UravLekmt+RL7zCBxAYDVR0jBIG8MIG5
gBSEhZEvLn4PMLo+UravLekmt+RL76GBlaSBkjCBjzELMAkGA1UEBhMCVFIxETAP
BgNVBAgTCElzdGFuYnVsMRMwEQYDVQQHEwpCYXNha3NlaGlyMRMwEQYDVQQKEwpM
aWZlb3ZlcmlwMRwwGgYDVQQDExNtYWlsLmxpZmVvdmVyaXAubmV0MSUwIwYJKoZI
hvcNAQkBFhZodXpleWZlQGxpZmVvdmVyaXAubmV0ggkA5m0ulAFF77kwDAYDVR0T
BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBttymnjSI8Q1WcwuJH6bpz0OyWEU6w
QCACvidVTbmtg9kWebXWolE9JDgp6n1tuU571qIu+HzkL8btsvBV2jl0JOmYmcFN
bH0nyElWOU9+je92O1JnGeARcB2n6OLnRFO4KrgeNeVZLtPX3uyu68BEWl4ub/tg
yMIXGPUwgSYnag==
-----END CERTIFICATE-----
subject=/C=TR/ST=Istanbul/L=Basaksehir/O=Lifeoverip/CN=mail.lifeoverip.net/[email protected]
issuer=/C=TR/ST=Istanbul/L=Basaksehir/O=Lifeoverip/CN=mail.lifeoverip.net/[email protected]
---
No client certificate CA names sent
---
SSL handshake has read 1486 bytes and written 316 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: DA3CB24F96F6843BD4C66E23F8862EFB3EFF61CC706C379A5ED75753C8D6B4DE
    Session-ID-ctx:
    Master-Key: BD2985CDA790CDDE2D2BA27C66EC8C0210F1BEAA31906A6760A1B2560C7F318BCF3039EF0894CB0198759968DFFEAF39
    Key-Arg   : None
    Start Time: 1235905711
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
GET / HTTP/1.1
Host:www.lifeoverip.net
HTTP/1.1 302 Found
Date: Sun, 01 Mar 2009 10:59:01 GMT
Server: Apache/5.2.0 (Fedora)
Location: src/login.php
Content-Length: 0
Content-Type: text/html

SSL Destekli Web Sunucu Simulasyonu

Openssl kullanarak SSL destekli bir web sunucu simulasyonu gerçekleştirebiliriz. Kullanıcılar belirttiğimiz adrese bağlanarak normal bir ssl sitesine bağlanmış gibi işlem yapabilirler. Openssl’le yapılacak bu tip bir çalışmada web sunucu dogrudan çalıştırıldığı dizini gösterecektir.

# openssl s_server -accept 444 -cert mycert.pem -WWW
Using default temp DH parameters
Using default temp ECDH parameters
ACCEPT
bad gethostbyaddr
ACCEPT
bad gethostbyaddr
ACCEPT
bad gethostbyaddr
FILE:log/messages
ACCEPT

openssl_server <ekran görüntüsü>

Hash Fonksiyonlarını Kullanma

Openssl’inhangi hash fonksiyonlarını desteklediğini bulmak için openssl dgst -h komutu kullanılabilir.

...
-md5            to use the md5 message digest algorithm (default)
-md4            to use the md4 message digest algorithm
-md2            to use the md2 message digest algorithm
-sha1           to use the sha1 message digest algorithm
-sha            to use the sha message digest algorithm
-sha224         to use the sha224 message digest algorithm
-sha256         to use the sha256 message digest algorithm
-sha384         to use the sha384 message digest algorithm
-sha512         to use the sha512 message digest algorithm
-mdc2           to use the mdc2 message digest algorithm
-ripemd160      to use the ripemd160 message digest algorithm

Bir dosyanın hash’ini alma

Md5 için;

root@home-labs:~# openssl dgst -md5 /etc/passwd
MD5(/etc/passwd)= 8edec48e1ba2784977bfd127474ce2c7

SHA512 için;

root@home-labs:~# openssl dgst -sha512 /etc/passwd
SHA512(/etc/passwd)= cf7626685b2a31be1d43338a48740a1297a2837b4b7c3638eab8174300650136907a1961fe8063cd9657cd9c120e3a24cdd979b4ba42c4255fbf3a1d42c59786

Komut satırından herhangi bir stringin hash değerini bulmak için

~# echo "huzeyfe" |openssl dgst -md5
cc33aa30e69ff51055dd3fb12e148f35

Simetrik Şifreleme ile Dosya Güvenliği

Herhangi bir dosyayı des3 ile şifreleme

root@home-labs:~# openssl enc -e -des3 -in /tmp/gizli_bilgi -out gizli_bilgi.des3
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:

yeni oluşturulan gizli_bilgi.des3 dosyasının içeriği okunmak istenirse anlamsız karekterler gözükecektir.

# more gizli_bilgi.des3
Salted__æÛéA´µt(?äÇ°EÆ!

Bu şekilde bir dosyayı şifreleyerek  kullanabilirsiniz.

Oluşturulan dosyanın içeriğinin binary yerine text(Ascii-Armour) olması istenirse -a parametresi kullanılmalıdır.

root@home-labs:~# openssl enc -a -e -des3  -in /etc/hosts -out hosts.des3
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
root@home-labs:~# cat hosts.des3
U2FsdGVkX19F9/5/iH2jgjWlBCaw80hq2WsQ06KdKlimLdnXmoZLMTf9rtgwxM+L
oN7nqMwFycIiR/2+K0IL/wID8xzkuC/VcrMnf6xumHS8T955yVhkrj80t3lHvKBY
UTz0KsttNsgxN+X84b+VEg8YGwV8hks7nbDS/6c7lTD1XM9PhOTFTV7mEfM4vIaJ
LMVKU4g4jla0igLzCRkF+2K028f4cHixxlIE5ol1C0x9t3butjmztzHnVrMyddZz
SNXUCe/544epItIZtZWsaTBN4q/uRfZHwA/oo9b6tSP3LOwWvhmO7uuKfmMF8q3Q
iL3JeTpEpuZU3bIyFOU2FRJdKvCW+rEHRY/+gfJFSdE=

Şifreli dosyayı açmak için

#openssl enc -d -des3 -in gizli_bilgi.des3 -out gizli_bilgi

komutu kullanılır.

Linux/UNIX Sistemlerin Parola Güvenliği

UNIX/Linux sistemlerde kullanıcıların parola bilgileri /etc/shadow ya da /etc/master.passwd gibi dosyalarda şifrelenmiş olarak saklanır. Şifreleme için genelde kullanılan yöntem Md5 olmakla birlikte bazı dağıtımlar SHA256/512 kullanır. Linux/UNIX sistemlerde parolaların güvenliği sadece şifrelenmekle sağlanmaz, parolanın hash’ini ele geçiren birinin aynı zamanda bu şifrelemeyi karmaşıklaştırmak için kullanılan salt değerini ve tipini de ele geçirmesi gerekir.

Mesela aşağıdaki gibi bir bilgi saldırganın işine yaramaz

huzeyfe: mqTpXxm7ygQ9DD/pVIw7MLE444/PuNnAsRLy96SWJudCjvwQaD/.wPfA/AW7rnsRMkjeuIXFqP0RK0gEc6NFi

Sebebi ise bu hashlenmiş parola bilgisinin bruteforce ya da rainbowtable larla çözülebilmesi için bunu hashlemek için kullanılan algoritmaya ve salt değerine ihtiyaç duyulmasıdır.

Klasik bir UNIX/Linux Parola kontrol işlemi şu şekilde yapılır.

Kullanıcı parola bilgisini girer–>Sistem bu parola bilgisi için otomatik bir salt değeri üretir ve yapılan ayara göre MD5 ya da başka bir algoritma ile hash değerini alır base64 encoding işlemine sokar –>/etc/shadow’a yazar.

Aynı kullanıcı aynı parolayı bir kere daha girse sistemde oluşacak hash değeri farklı olacaktır.

huzeyfe:$6$rqPzY.iD$mqTpXxm7ygQ9DD/pVIw7MLE444/PuNnAsRLy96SWJudCjvwQaD/.wPfA/AW7rnsRMkjeuIXFqP0RK0gEc6NFi.:14304:0:99999:7:::
# passwd huzeyfe
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Her ikisi de aynı parola da aynı  olmasına rağmen yeni oluşan parola hash değeri  öncekinden farklı çıkacaktır.

huzeyfe:$6$YKT3ptRg$JJWYIM5XF184QneNMk9qJTaCt.ESMlt2rOYCdJsW1alUBdCbaLAiFl/Zy8tMedjXAfPkuZIoIe4BSHYg7.1Cg/:14304:0:99999:7:::

Bunun sebebi yeni bir şifre oluşturulurken seçilen salt değerlerinin farklı olmasıdır.

Parolanın hash değerindeki önemli alanlar

huzeyfe: kullanıcı ismi
$6$ parolanın SHA512 algoritması kullanılarak hashlendiği
$....$ Rastgele seçilen salt değeri.
JJWYIM5XF184QneNMk9qJTaCt.ESMlt2rOYCdJsW1alUBdCbaLAiFl/Zy8tMedjXAfPkuZIoIe4BSHYg7.1Cg  parolanın salt(tuz?) katılmış halinin hash değeri.

Openssl ile Linux/UNIX benzeri parolalar oluşturmak

Openssl’in passwd altkomutu ile md5, apr1 tipi algoritmalar kullanılarak oluşturulmuş  ve salt eklenmiş hash değerleri oluşturulabilir.

openssl passwd -1 -salt xyz  parola gibi.

Mesela passwd komutu kullanarak erhan kullanicisinin parolasini test1234 olarak degistirelim.

Sonra bu değişikliği shadow dosyasından okuyalım.

#passwd erhan
...
#grep erhan /etc/shadow
erhan:$1$vJbpReZd$/T7fZLwSquIMe.yLMsd9U/

Aynı değeri openssl passwd -1 komutu ile ede edebiliriz.

# openssl passwd -1 -salt vJbpReZd test1234
$1$vJbpReZd$/T7fZLwSquIMe.yLMsd9U/

Cisco IOS type 5   Parola Güvenliği

Cisco enable  parolası kaydedilirken Linux sistemlerdekine benzer mantık  işler bunun sebebi Cisco IOS’un FreeBSD şifreleme kütüphanesini kullanmasıdır. Aşağıdaki çıktı bize daha fazla fikir verecektir.

Router(config)#enable secret HL_R12

en parolasini HL_R12 yaptık sonra sistemde bunun nasıl gözüktüğüne bakalım.

Router#sh run | include secret
enable secret 5 $1$RK5L$05G045n5XVlENtyo04PBT1

görüleceği üzere Linux/UNIX sistemlerdekine benzer/aynı bir çıktı.

$1$ :Md5 kullanılmış
RK5L :Salt değeri
05G045n5XVlENtyo04PBT1: Hash değeri.

Salt değeri ve parolayı kullanarak aynı çıktıyı Openssl ile elde edebiliriz.

~# openssl passwd -1 -table -salt "RK5L" "HL_R12"
HL_R12  $1$RK5L$05G045n5XVlENtyo04PBT1

OpenSSL ile sertifika işlemleri vs için http://csirt.ulakbim.gov.tr/dokumanlar/ssl_sayisal_sertifikalar.pdf adresindeki yazı işinize yarayacaktır.

The post Pratik OpenSSL Kullanımı first appeared on Complexity is the enemy of Security.

]]>
http://blog.lifeoverip.net/2009/03/01/pratik-openssl-kullanimi/feed/ 0