
sslscan v2.2.3
तेज़ SSL/TLS स्कैनर जो समर्थित सिफ़र सूट, प्रोटोकॉल और कमजोरियों (Heartbleed, POODLE, CRIME) की खोज करता है, जिसमें प्रमाणपत्र श्रृंखला विश्लेषण और कुंजी विनिमय गणना शामिल है।
sslscan2
sslscan संस्करण 2 अब जारी किया गया है। इसमें बैकएंड स्कैनिंग कोड का एक बड़ा पुनर्लेखन शामिल है, जिसका अर्थ है कि यह कई जाँचों के लिए OpenSSL के संस्करण पर निर्भर नहीं है। इसका मतलब है कि लीगेसी प्रोटोकॉल (SSLv2 और SSLv3) का समर्थन करना संभव है, साथ ही TLSv1.3 का भी समर्थन करना - भले ही इसे किस OpenSSL संस्करण के विरुद्ध संकलित किया गया हो।
यह मुख्य रूप से jtesta के काम के कारण संभव हुआ है, जो अधिकांश बैकएंड पुनर्लेखन के लिए जिम्मेदार रहे हैं।
अन्य प्रमुख परिवर्तनों में शामिल हैं:
- सर्वर कुंजी विनिमय समूहों की गणना।
- सर्वर हस्ताक्षर एल्गोरिदम की गणना।
- SSLv2 और SSLv3 प्रोटोकॉल समर्थन स्कैन किया जाता है, लेकिन व्यक्तिगत सिफ़र नहीं।
- Docker का उपयोग करके एक परीक्षण सूट शामिल किया गया है, यह सत्यापित करने के लिए कि sslscan सही ढंग से कार्य करता है।
--httpविकल्प हटा दिया गया, क्योंकि यह टूटा हुआ था और शुरू में इसका बहुत कम उपयोग था।- नए पोस्ट-क्वांटम समूहों के लिए समर्थन।
XML आउटपुट परिवर्तन
संस्करण 2.0.0-beta4 में XML आउटपुट में एक संभावित रूप से ब्रेकिंग परिवर्तन किया गया है। पहले, कई <certificate> तत्व लौटाए जा सकते थे (एक डिफ़ॉल्ट रूप से, और दूसरा यदि --show-certificate का उपयोग किया गया था)।
प्रमुख परिवर्तन हैं:
- एक नया पैरेंट
<certificates>तत्व जिसमें<certificate>तत्व होंगे। <certificate>तत्वों में एक नयाtypeविशेषता है, जो या तो हो सकता है:- डिफ़ॉल्ट आउटपुट के लिए
short। - जब
--show-certificateका उपयोग किया जाता है तोfull।
- डिफ़ॉल्ट आउटपुट के लिए
- ऐसे सर्वरों पर जिनमें विभिन्न हस्ताक्षर एल्गोरिदम वाले कई प्रमाणपत्र हैं, संभावित रूप से प्रत्येक प्रकार का एक से अधिक प्रमाणपत्र लौटाया जाएगा (चर्चा के लिए मुद्दा #208 देखें)।
<certificate>में<signature-algorithm>तत्व में अब "Signature Algorithm:" उपसर्ग, या स्पेसिंग और नई पंक्ति शामिल नहीं है।
यदि आप XML आउटपुट का उपयोग कर रहे हैं, तो आपको अपने पार्सर में बदलाव करने की आवश्यकता हो सकती है।
README
यह rbsec ([email protected]) द्वारा ioerror के sslscan संस्करण का एक फोर्क है (जिसका मूल रीडमी नीचे शामिल है)।
प्रमुख परिवर्तन इस प्रकार हैं:
- आउटपुट में SSLv2 और SSLv3 सिफ़र को हाइलाइट करें।
- SSLv3 पर CBC सिफ़र को हाइलाइट करें (POODLE)।
- आउटपुट में 3DES और RC4 सिफ़र को हाइलाइट करें।
- आउटपुट में PFS+GCM सिफ़र को अच्छे के रूप में हाइलाइट करें।
- आउटपुट में NULL (0 बिट), कमजोर (<40 बिट) और मध्यम (40 < n <= 56) सिफ़र को हाइलाइट करें।
- आउटपुट में अनाम (ADH और AECDH) सिफ़र को हाइलाइट करें (बैंगनी)।
- डिफ़ॉल्ट रूप से प्रमाणपत्र जानकारी छुपाएं (
--show-certificateके साथ प्रदर्शित करें)। - डिफ़ॉल्ट रूप से अस्वीकृत सिफ़र छुपाएं (
--failedके साथ प्रदर्शित करें)। - TLSv1.1, TLSv1.2 और TLSv1.3 समर्थन जोड़ा गया।
- IPv6 का समर्थन करता है (
--ipv6के साथ बल दिया जा सकता है)। - TLS संपीड़न की जाँच करें (CRIME,
--no-compressionसे अक्षम करें)। - सिफ़र सूट जाँच अक्षम करें
--no-ciphersuites। - रंगीन आउटपुट अक्षम करें
--no-colour। - अनिर्दिष्ट -p आउटपुट विकल्प हटा दिया गया।
- OpenSSL HeartBleed (CVE-2014-0160) के लिए जाँच जोड़ी गई (
--no-heartbleedसे अक्षम करें)। - MD5 या SHA-1 से हस्ताक्षरित, या छोटी (<2048 बिट) RSA कुंजियों वाले प्रमाणपत्रों को फ़्लैग करें।
--rdpके साथ RDP सर्वरों को स्कैन करने का समर्थन (श्रेय skettler)।- सॉकेट टाइमआउट निर्दिष्ट करने का विकल्प जोड़ा गया।
- स्टैटिक कंपाइलेशन का विकल्प जोड़ा गया (श्रेय dmke)।
- अनुरोधों के बीच रुकने के लिए
--sleepविकल्प जोड़ा गया। - निर्दिष्ट जाँचों के अलावा किसी भी चीज़ के लिए आउटपुट अक्षम करें
--no-preferred। - क्लाइंट प्रमाणपत्रों के लिए स्वीकार्य CAs की सूची निर्धारित करें
--show-client-cas। - OS X पर प्रायोगिक बिल्ड समर्थन (श्रेय MikeSchroll)।
- कुछ स्व-हस्ताक्षरित SSL प्रमाणपत्रों को फ़्लैग करें।
- प्रायोगिक Windows समर्थन (श्रेय jtesta)।
- OpenSSL >= 1.0.2 के साथ EC वक्र नाम और DHE कुंजी लंबाई प्रदर्शित करें
--no-cipher-details। - OpenSSL >= 1.0.2 के साथ कमजोर DHE कुंजियों को फ़्लैग करें
--cipher-details। - समाप्त हो चुके प्रमाणपत्रों को फ़्लैग करें।
- आउटपुट में TLSv1.0 और TLSv1.1 प्रोटोकॉल को कमजोर के रूप में फ़्लैग करें।
- प्रायोगिक OS X समर्थन (केवल स्टैटिक बिल्डिंग)।
- PostgreSQL सर्वरों को स्कैन करने का समर्थन (श्रेय nuxi)।
- TLS फ़ॉलबैक SCSV समर्थन की जाँच करें।
- LDAP के लिए StartTLS समर्थन जोड़ा गया
--starttls-ldap। - SNI समर्थन जोड़ा गया
--sni-name(श्रेय Ken)। - MySQL के लिए STARTTLS समर्थन (श्रेय bk2017)।
- समर्थित कुंजी विनिमय समूहों की जाँच करें।
- समर्थित सर्वर हस्ताक्षर एल्गोरिदम की जाँच करें।
- IANA/RFC सिफ़र नाम प्रदर्शित करें
--iana-names - पूर्ण प्रमाणपत्र श्रृंखला प्रदर्शित करें
--show-certificates
Linux पर बनाना
यह अनुशंसा की जाती है कि OpenSSL सिस्टम इंस्टॉलेशन को अनदेखा करें और अपने स्वयं के संस्करण के विरुद्ध स्थिर रूप से बनाएं। हालाँकि इसके परिणामस्वरूप अधिक संसाधन-भारी sslscan बाइनरी (फ़ाइल आकार, मेमोरी खपत, आदि) होती है, यह TLS संपीड़न जैसी कुछ अतिरिक्त जाँचों की अनुमति देता है। ध्यान दें कि sslscan संस्करण 2.2.0 के अनुसार, sslscan के लिए आवश्यक न्यूनतम OpenSSL संस्करण 3.5.0 (LTS) है, इसलिए यदि आपका डिस्ट्रो पुराना संस्करण भेजता है तो इसके विरुद्ध बनाना काम नहीं करेगा, और आपको स्थिर बिल्ड करना होगा।
अपना स्वयं का OpenSSL संस्करण संकलित करने के लिए, आपको शायद OpenSSL बिल्ड निर्भरताएँ स्थापित करने की आवश्यकता होगी। नीचे दिए गए आदेशों का उपयोग Debian पर ऐसा करने के लिए किया जा सकता है।
apt install git zlib1g-dev make gcc
फिर चलाएँ
make static
यह OpenSSL रिपॉजिटरी को क्लोन करेगा, और sslscan को संकलित करने से पहले OpenSSL को कॉन्फ़िगर/कंपाइल/टेस्ट करेगा।
कृपया ध्यान दें: डिफ़ॉल्ट रूप से, OpenSSL को आगे के अनुकूलन के बिना gcc के साथ संकलित किया जाता है। clang के साथ संकलित करने के लिए, नीचे दिए गए आदेशों का उपयोग करके बिल्ड निर्भरताएँ स्थापित करें।
apt install git zlib1g-dev make clang
फिर चलाएँ
make static CC=clang
आप यह सत्यापित कर सकते हैं कि क्या आपके पास स्थिर रूप से लिंक किया गया OpenSSL संस्करण है, यह जाँच कर कि sslscan --version द्वारा सूचीबद्ध संस्करण में -static प्रत्यय है या नहीं।
Docker के साथ बनाना
सुनिश्चित करें कि आपकी स्थानीय Docker स्थापना कार्यात्मक है, और कंटेनर को इसके साथ बनाएँ:
make docker
या मैन्युअल रूप से:
docker build -t sslscan:sslscan .
फिर आप sslscan को इसके साथ चला सकते हैं:
docker run --rm -ti sslscan:sslscan --help
Windows पर बनाना
jtesta द्वारा एक पैच के लिए धन्यवाद, sslscan को अब Windows पर संकलित किया जा सकता है। यह मूल रूप से या Linux से क्रॉस-कंपाइल करके किया जा सकता है। निर्देशों के लिए INSTALL देखें।
ध्यान दें कि sslscan मूल रूप से Linux के लिए लिखा गया था, और इसका Windows पर व्यापक रूप से परीक्षण नहीं किया गया है। इस प्रकार, Windows संस्करण को प्रायोगिक माना जाना चाहिए।
पूर्व-निर्मित क्रॉस-कंपाइल किए गए Windows बाइनरी GitHub रिलीज़ पेज पर उपलब्ध हैं।
macOS (पहले OS X नाम से जाना जाता था) पर बनाना
macOS (पहले OS X नाम से जाना जाता था) पर स्थिर रूप से बनाने के लिए प्रायोगिक समर्थन है, हालाँकि इसे असमर्थित माना जाना चाहिए। macOS (पहले OS X नाम से जाना जाता था) पर स्रोत से OpenSSL को संकलित करने के लिए आवश्यक किसी भी निर्भरता को स्थापित करने की आवश्यकता हो सकती है। एक बार जब आप कर लें, तो बस चलाएँ:
make static
मूल (ioerror) README
यह STARTTLS को बेहतर समर्थन देने के लिए sslscan.c का एक फोर्क है।
sslscan का मूल होम पेज है:
http://www.titania.co.uk
sslscan मूल रूप से इसके द्वारा लिखा गया था:
Ian Ventura-Whiting
इस फोर्क का वर्तमान होम पेज (जब तक अपस्ट्रीम एक समाप्त पैच को मर्ज नहीं करता) है:
http://www.github.com/ioerror/sslscan
अधिकांश प्री-TLS प्रोटोकॉल सेटअप OpenSSL s_client.c प्रोग्राम से प्रेरित था। इस फोर्क का लक्ष्य STARTTLS सेटअप को पॉलिश करने के बाद अंततः मूल परियोजना के साथ विलय करना है।
OpenSSL सेटअप कोड का कुछ हिस्सा The Tor Project के Tor प्रोग्राम से उधार लिया गया था। इस प्रकार BSD लाइसेंस का अनुपालन करने के लिए यह कहना उचित है:
Copyright (c) 2007-2010, The Tor Project, Inc.