
Wie finde ich heraus, mit welcher Version von OpenSSL ein Wget kompiliert wurde? Wenn ich das tue, wget --version
bekomme ich nur
$ wget --version
GNU Wget 1.21.2 built on linux-gnu.
-cares +digest -gpgme +https +ipv6 +iri +large-file -metalink +nls
+ntlm +opie +psl +ssl/openssl
Wgetrc:
/etc/wgetrc (system)
Locale:
/usr/share/locale
Compile:
gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/etc/wgetrc"
-DLOCALEDIR="/usr/share/locale" -I. -I../../src -I../lib
-I../../lib -Wdate-time -D_FORTIFY_SOURCE=2 -DHAVE_LIBSSL -DNDEBUG
-g -O2 -ffile-prefix-map=/build/wget-8g5eYO/wget-1.21.2=.
-flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects
-fstack-protector-strong -Wformat -Werror=format-security
-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -g -Wall
Link:
gcc -DHAVE_LIBSSL -DNDEBUG -g -O2
-ffile-prefix-map=/build/wget-8g5eYO/wget-1.21.2=. -flto=auto
-ffat-lto-objects -flto=auto -ffat-lto-objects
-fstack-protector-strong -Wformat -Werror=format-security
-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -g -Wall -Wl,-Bsymbolic-functions
-flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -Wl,-z,now
-lpcre2-8 -luuid -lidn2 -lssl -lcrypto -lz -lpsl ftp-opie.o
openssl.o http-ntlm.o ../lib/libgnu.a
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Originally written by Hrvoje Niksic <[email protected]>.
Please send bug reports and questions to <[email protected]>.
Antwort1
Meine erste Antwort ist ähnlich wie @hanshenrik, aber etwas verfeinert -
strings /usr/bin/wget | grep -i "OPENSSL" | less
Dadurch wird in wget nach beliebigen Textzeichenfolgen gesucht (standardmäßig länger als 4 lesbare Zeichen) und anschließend in diesen Zeichenfolgen nach OpenSSL gesucht. Das zurückgegebene Ergebnis war:
OPENSSL_init_ssl
OPENSSL_sk_num
OPENSSL_sk_value
OPENSSL_sk_pop_free
OPENSSL_3.0.0
+ssl/openssl
gcc -DHAVE_LIBSSL -DNDEBUG -g -O2 -ffile-prefix-map=/build/wget-8g5eYO/wget-1.21.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -g -Wall -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -Wl,-z,now -lpcre2-8 -luuid -lidn2 -lssl -lcrypto -lz -lpsl ftp-opie.o openssl.o http-ntlm.o ../lib/libgnu.a
--ciphers=STR Set the priority string (GnuTLS) or cipher list string (OpenSSL) directly.
OpenSSL: unimplemented 'secure-protocol' option value %d
OpenSSL: Invalid cipher list: %s
OpenSSL: Failed set trust to partial chain
OpenSSL: Failed to allocate verification param
OpenSSL: %s
../../src/openssl.c
Eine wahrscheinlich korrektere, aber auch chaotischere Möglichkeit, dies zu tun, ist die Verwendung von strace (strace verfolgt Systemaufrufe und Signale und zeigt daher an, was während der Ausführung des Programms tatsächlich aufgerufen wird) -
strace wget -q https://www.google.com 2> /dev/null | egrep --color -i "ssl"
Habe das Programm ausgeführt, um eine https-Site zu erhalten, und eine Ausgabe des laufenden Programms bereitgestellt - die genauer zeigt, was im Betriebssystem verlinkt/aufgerufen wurde - in meinem Fall
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libssl.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/ssl/openssl.cnf", O_RDONLY) = 3
read(3, "#\n# OpenSSL example configuratio"..., 4096) = 4096
read(3, "ertout # insta.cert.pem\n\n[ssl_se"..., 4096) = 131
openat(AT_FDCWD, "/usr/lib/ssl/cert.pem", O_RDONLY) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/ssl/certs/c06d5c68.0", 0x7ffe52097df0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/ssl/certs", {st_mode=S_IFDIR|0755, st_size=16384, ...}, 0) = 0
openat(AT_FDCWD, "/usr/lib/ssl/certs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 4
newfstatat(AT_FDCWD, "/usr/lib/ssl/certs/1001acf7.0", {st_mode=S_IFREG|0644, st_size=1915, ...}, 0) = 0
openat(AT_FDCWD, "/usr/lib/ssl/certs/1001acf7.0", O_RDONLY) = 4
newfstatat(AT_FDCWD, "/usr/lib/ssl/certs/1001acf7.1", 0x7ffe52097df0, 0) = -1 ENOENT (No such file or directory)
Das --color
Bit ist nicht notwendig, aber es hebt die SSL-Zeichenfolge hervor. Ich glaube, das zeigt, welche "DLL" es liest, d. h. es scheint verknüpft zu sein mit/unter Verwendung von/usr/lib/x86_64-linux-gnu/libssl.so.3
Antwort2
das ist NICHT die richtige Art, es zu prüfen, aber ich habe eine super-hackige Möglichkeit gefunden, es vielleicht zu bekommen:
$ cat /usr/bin/wget | grep -i openssl_ --text
Erträge
F"j�g��<_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTable__cxa_finalize__libc_start_mainstrcmpfputsfwrite__snprintf_chk__stack_chk_failstrlenstrncmpstrcasecmpdcgettextstrncasecmp__ctype_b_locstrndupabortgetpeernamegetsockname__errno_locationsocketsetsockoptbindmemcpystrpbrkstrduplocaltimestrftimecalloc__memcpy_chk__isoc99_sscanfpsl_str_to_utf8lowerstrrchrpsl_is _cookie_domain_acceptablepsl_lateststrchrqsortfopen64__fprintf_chkferrorfclosefputc__getdelimunlinkfgetcrewindstrtokstrtolmktime__strncat_chkstrptimestrtolllstat64strcpy__sprintf_chkacceptfnmatchstrstrsymlinkreallocchmodreadlinkmemcmpstderrexitstdinstdoutclearerrfreadmunmaprenamegetaddrinfogmtimeftello64fdopenmemsetinet_ntopfreeaddrinfogai_strerrorfilenoflockftruncate64str spnstrcspnmemchr__fdelt_chkselectmemmovememrchrfeof__vsnprintf_chk__vfprintf_chkisattytcgetpgrpsignal__printf_chkiswprintwcwidthmbrtowcmbsinitiswcntrlsprintfsetlocaletimegmgetpidsrandomstrchrnulclock_gettimesysconfclock_getresbindtextdomaingetopt_longoptargopterroptindfstat64dcngettextforkgetpassgetuidgetpwuidsetsidfreopen64strtok_rnl_langinfoperrorrecvinflateEndusleepinf lateinflateInit2_secure_getenvmkostemp64fread_entsperrtfsetxattr__vasprintf_chkutimeiconv_openiconviconv_close__longjmp_chkpcre2_compile_8__ctype_get_mb_cur_maxpthread_mutex_initpthread_mutex_destroybtowcpcre2_match_data_create_from_pattern_8pcre2_match_8pcre2_match_data_free_8pthread_mutex_lockpthread_mutex_enlockmmap64__sigsetjmpsetitimergroup_memberiswalnumiswctypefcntl6 4fseeko64lseek64__freadingfflushtowupperwcrtomb__ctype_toupper_loc__ctype_tolower_loctowlowerioctlpipeposix_spawn_file_actions_initposix_spawn_file_actions_adddup2__environposix_spawnppathconflistengzwritegzclosegzdopenmkdiruuid_unparseuuid_generatelocale_charsetidn2_lookup_u8idn2_strerroridn2_freeSSL_get_verify_resultSSL_CTX_use_certificate_fileSSL_writeSSL_set_connect_s tateSSL_shutdownSSL_get_sessionSSL_CTX_newSSL_set_fdSSL_is_init_finishedSSL_CTX_set1_paramSSL_CTX_get_cert_storeSSL_readOPENSSL_init_sslSSL_CTX_set_optionsSSL_get_errorSSL_pendingSSL_CTX_set_post_handshake_authTLS_client_methodSSL_peekSSL_connectSSL_CTX_freeSSL_CTX_ctrlSSL_CTX_set_default_verify_pathsSSL_CTX_use_PrivateKey_fileSSL_CTX_set_cipher_listSSL_get1_peer_certifica teSSL_set_sessionSSL_CTX_set_verifySSL_newSSL_CTX_load_verify_locationsSSL_freeSSL_ctrlRAND_statusGENERAL_NAME_freeERR_peek_last_errorX509_LOOKUP_fileASN1_OCTET_STRING_freeOPENSSL_sk_numBIO_readERR_get_errori2d_X509_PUBKEYCRYPTO_mallocX509_STORE_set_flagsX509_NAME_ENTRY_get_dataa2i_IPADDRESSMD4_InitX509_verify_cert_error_stringBIO_s_memX509_get_subject_nameX509_freeBIO_fre eASN1_STRING_auf_UTF8DES_Schlüssel_festlegenMD4_UpdateX509_NAME_Text_von_NI_abrufenDX509_Name_des_Ausstellers_abrufenERR_Grund_FehlerzeichenfolgeBIO_Nummer_geschriebenMD4_EndgültigASN1_STRING_cmpX509_CRL_Datei_ladenBIO_neuX509_PARAM_neu_VERIFYX509_abrufen_X509_PUBKEYDES_ungerade_Parität_festlegenOPENSSL_sk_WertDES_ecb_verschlüsselnRAND_Datei_ladenOPENSSL_sk_pop_freeX509_STORE_Lookup_hinzufügenERR_Fehler_löschenX509_PARAM_Flags_festlegenASN1_STRING_lengthX509_VERIFY_PARAM_freiX509_NAME_print_exERR_error_stringX509_NAME_get_index_by_NIDCRYPTO_freiX509_NAME_get_entryX509_get_ext_d2iRAND_file_namelibpcre2-8.so.0libuuid.so.1libidn2.so.0libssl.so.3li bcrypto.so.3libz.so.1libpsl.so.5libc.so.6UUID_1.0IDN2_0.0.0OPENSSL_3.0.0GLIBC_2.8GLIBC_2.28GLIBC_2.15GLIBC_2.33GLIBC_2.4GLIBC_2.17GLIBC_2.7GLIBC_2.14GLIBC_2.34GLIBC_2.11GLIBC_2.3GLIBC_2.2.5GLIBC_2.3.4
und am Ende findet man den String, OPENSSL_3.0.0
daher kann ich VERMUTEN, dass dieser wget kompiliert wurde mitOpenSSL 3.0.0
... aber ich hoffe, dass es eine bessere Möglichkeit zur Überprüfung gibt