All Projects → glebarez → cero

glebarez / cero

Licence: MIT license
Scrape domain names from SSL certificates of arbitrary hosts

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to cero

Swiddler
TCP/UDP debugging tool.
Stars: ✭ 56 (-82.28%)
Mutual labels:  tls, ssl
TLS-Redirection
TLS Redirection
Stars: ✭ 109 (-65.51%)
Mutual labels:  tls, ssl
terraform-aws-acm-request-certificate
Terraform module to request an ACM certificate for a domain name and create a CNAME record in the DNS zone to complete certificate validation
Stars: ✭ 83 (-73.73%)
Mutual labels:  tls, ssl
RabbitSSL
Example Java, Spring-Boot and Python RabbitMQ SSL configuration
Stars: ✭ 21 (-93.35%)
Mutual labels:  tls, ssl
wolfssl-py
Python wrapper for wolfSSL embedded SSL/TLS library.
Stars: ✭ 30 (-90.51%)
Mutual labels:  tls, ssl
XAsyncSockets
XAsyncSockets is an efficient Python/MicroPython library of managed asynchronous sockets.
Stars: ✭ 28 (-91.14%)
Mutual labels:  tls, ssl
tlstools
🔐 CLI tool to analyze, troubleshoot or inspect SSL certificates, requests or keys.
Stars: ✭ 45 (-85.76%)
Mutual labels:  tls, ssl
vault-pki-monitor-venafi
Venafi PKI Monitoring Secrets Engine for HashiCorp Vault that enforces security policy and provides certificate visiblity to the enterprise.
Stars: ✭ 18 (-94.3%)
Mutual labels:  tls, ssl
ssl-handshake
A command-line tool for testing SSL/TLS handshake latency, written in Go.
Stars: ✭ 41 (-87.03%)
Mutual labels:  tls, ssl
httpsbook
《深入浅出HTTPS:从原理到实战》代码示例、勘误、反馈、讨论
Stars: ✭ 77 (-75.63%)
Mutual labels:  tls, ssl
sslcli
Pretty awesome command-line client for public SSLLabs API
Stars: ✭ 17 (-94.62%)
Mutual labels:  tls, ssl
sslcontext-kickstart
🔐 A lightweight high level library for configuring a http client or server based on SSLContext or other properties such as TrustManager, KeyManager or Trusted Certificates to communicate over SSL TLS for one way authentication or two way authentication provided by the SSLFactory. Support for Java, Scala and Kotlin based clients with examples. Av…
Stars: ✭ 295 (-6.65%)
Mutual labels:  tls, ssl
safeminer
全网第一款本地连接矿池加密软件,隐藏本地ip、加密数据包、流量混淆,可实现防止被监管的目的
Stars: ✭ 8 (-97.47%)
Mutual labels:  tls, ssl
jruby-openssl
JRuby's OpenSSL gem
Stars: ✭ 39 (-87.66%)
Mutual labels:  tls, ssl
hyper-proxy
A proxy connector for Hyper-based crates
Stars: ✭ 73 (-76.9%)
Mutual labels:  tls, ssl
ptw
Pooling TLS Wrapper
Stars: ✭ 20 (-93.67%)
Mutual labels:  tls, ssl
SimpleSockets
Asynchronous TCP .NET library with reliable transmission and receipt of data, with an ssl implementation.
Stars: ✭ 74 (-76.58%)
Mutual labels:  tls, ssl
Chromium-Gost
Chromium с поддержкой алгоритмов ГОСТ
Stars: ✭ 286 (-9.49%)
Mutual labels:  tls, ssl
boost-wintls
Native Windows TLS stream wrapper for use with boost::asio
Stars: ✭ 24 (-92.41%)
Mutual labels:  tls, ssl
cie-cns-apache-docker
L'obiettivo di questo progetto è quello di fornire un template pronto all'uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d'Identità Elettronica) basato su Apache HTTP. Ognuno può poi modificare o specializzare questo progetto sulla base delle proprie esigenze Si tratta di un progetto docker per…
Stars: ✭ 48 (-84.81%)
Mutual labels:  tls, ssl

build

cero

Cero will connect to remote hosts, and read domain names from the certificates provided during TLS handshake.
It is not limited to only HTTPS, and will scrape certificates from any protocol that works over TLS (e.g. SMTPS) - just give it the right ports to connect to.
Cero allows flexible specification of targets, including domain names, IP addresses, and CIDR ranges, with full support for IPv6.

Installation / Update

  • Download pre-compiled binary for your OS from Latest release
  • alternatively, compile from source:
go get -u github.com/glebarez/cero

Usage examples

Connect to remote host using its domain name and default port (443)

▶ cero yahoo.com
*.www.yahoo.com
*.yahoo.com
yahoo.com
*.amp.yimg.com
mbp.yimg.com
*.att.yahoo.com
add.my.yahoo.com
ca.my.yahoo.com
ca.rogers.yahoo.com
ddl.fp.yahoo.com
fr-ca.rogers.yahoo.com
hk.rd.yahoo.com
tw.rd.yahoo.com

NOTE: You might want to use the -d option to automatically strip invalid domain names (e.g. wildcards, bare IPs and usual gibberish) to integrate this tool more smoothly into your recon pipelines.

Cero is fast and concurrent, you can pipe your inputs into it. The concurrency level can be set with -c flag:

cat myTargets.txt | cero -c 1000

you can define list of default ports to connect to, with -p option:

cat myTargets.txt | cero -p 443,8443

Cero will accept bare IP as input:

cero 10.0.0.1

Or a CIDR range

cero 10.0.0.1/22

IPv6 is fully supported

cero 2a00:b4c0::/102

you can use specific port for every target

cero 10.0.0.1:8443 [2a00:b4c0::1]:10443

Port specification is even supported on CIDR ranges:

cero 192.1.1.1/16:8443
cero 2a00:b4c0::/102:8443

Here is mass-scraping example for popular TLS ports across entire CIDR range:

cero -p 443,4443,8443,10443 -c 1000 192.0.0.1/16

Output control

By default, cero will only output successfully scraped domain names as simple list (to standard output), and the errors (if any) will be suppressed.
If you want to see detailed output for every host, use the -v flag. This will format output a little differently, and also write error messages to standard error.

▶ cero -v example.com example.com:80
example.com:80 -- tls: first record does not look like a TLS handshake
example.com:443 -- [www.example.org example.com example.edu example.net example.org www.example.com www.example.edu www.example.net]

For precise controls, use shell redirects:

▶ cero -v example.com example.com:80 2>/dev/null
example.com:443 -- [www.example.org example.com example.edu example.net example.org www.example.com www.example.edu www.example.net]

Note on port specification in IPv6 addresses

Text representation of IPv6 address by design contains semicolons (see RFC4291), thus to specify the port you must enclose the host address in square brackets, e.g.:

[ff:23::43:1]:443

Though this is not mandatory (at least for cero)
In unambiguous cases cero will correctly split the host and port, even when square brackets are not used.
In truly ambiguous cases, cero will parse the whole input as IPv6 address.

Full option list

usage: cero [options] [targets]
if [targets] not provided in commandline arguments, will read from stdin

options:
  -c int
        Concurrency level (default 100)
  -d    Output only valid domain names (e.g. strip IPs, wildcard domains and gibberish)
  -p string
        TLS ports to use, if not specified explicitly in host address. Use comma-separated list (default "443")
  -t int
        TLS Connection timeout in seconds (default 4)
  -v    Be verbose: Output results as 'addr -- [result list]', output errors to stderr as 'addr -- error message'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].