The post John The Ripper Kullanarak iPhone Parolalarının Kırılması first appeared on Complexity is the enemy of Security.
]]>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.
]]>The post Sertifika ve SSL Kavramları first appeared on Complexity is the enemy of Security.
]]>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.
]]>The post SSLdump Kullanarak HTTPS Trafiği Analizi first appeared on Complexity is the enemy of Security.
]]>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.
]]>The post Apache İçin SSL Sertifikası Oluşturma first appeared on Complexity is the enemy of Security.
]]>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.
]]>The post Pratik OpenSSL Kullanımı first appeared on Complexity is the enemy of Security.
]]>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 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
İç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/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
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
<ekran görüntüsü>
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
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.
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’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 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.
]]>