Take a list of domains and probe for working HTTP and HTTPS servers

Related tags

Networkinghttprobe
Overview

httprobe

Take a list of domains and probe for working http and https servers.

Install

▶ go get -u github.com/tomnomnom/httprobe

Basic Usage

httprobe accepts line-delimited domains on stdin:

▶ cat recon/example/domains.txt
example.com
example.edu
example.net
▶ cat recon/example/domains.txt | httprobe
http://example.com
http://example.net
http://example.edu
https://example.com
https://example.edu
https://example.net

Extra Probes

By default httprobe checks for HTTP on port 80 and HTTPS on port 443. You can add additional probes with the -p flag by specifying a protocol and port pair:

▶ cat domains.txt | httprobe -p http:81 -p https:8443

Concurrency

You can set the concurrency level with the -c flag:

▶ cat domains.txt | httprobe -c 50

Timeout

You can change the timeout by using the -t flag and specifying a timeout in milliseconds:

▶ cat domains.txt | httprobe -t 20000

Skipping Default Probes

If you don't want to probe for HTTP on port 80 or HTTPS on port 443, you can use the -s flag. You'll need to specify the probes you do want using the -p flag:

▶ cat domains.txt | httprobe -s -p https:8443

Prefer HTTPS

Sometimes you don't care about checking HTTP if HTTPS is working. You can do that with the --prefer-https flag:

▶ cat domains.txt | httprobe --prefer-https

Docker

Build the docker container:

▶ docker build -t httprobe .

Run the container, passing the contents of a file into stdin of the process inside the container. -i is required to correctly map stdin into the container and to the httprobe binary.

▶ cat domains.txt | docker run -i httprobe 
   

   
Comments
  • Install command not work for macOS Mojave

    Install command not work for macOS Mojave

    I re-install go both from official and with brew installer. But there is no difference.

    After command : go get -u github.com/tomnomnom/httprobe execute nothing is change. There is no output in terminal also.

    opened by cyb3rsalih 8
  • Not download httprobe

    Not download httprobe

    Hi,

    i have a problem with the Httprobe because not download..

    sorry for my english XD

    order for install..

    Apt install golang (working done) now go get -u github.com/tomnomnom/httprobe (not error message, but dont download anything..)

    attached screenshots.

    https://ibb.co/c19P9Gb

    https://ibb.co/QQYXKfF

    upload photos from ImgBB.

    opened by densdiego 3
  • Max concurrency?

    Max concurrency?

    Hello tomnomnom!

    I have a short question, does httprobe have a max value for concurrency?

    i am running it against +200k subdomains and sometimes even more, and it is a little bit slow with -c 50 provided. Is there a max value for the -c flag? any other method to speed this up without breaking everything?

    Have a good day.

    opened by marcelo321 2
  • Httprobe installation issue

    Httprobe installation issue

    go version go1.6.2 linux/amd64

    PATH is set as follows:

    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    
    ~/go$ go get -u github.com/tomnomnom/httprobe
    # github.com/tomnomnom/httprobe
    src/github.com/tomnomnom/httprobe/main.go:57: unknown http.Transport field 'MaxIdleConns' in struct literal
    src/github.com/tomnomnom/httprobe/main.go:58: unknown http.Transport field 'IdleConnTimeout' in struct literal
    src/github.com/tomnomnom/httprobe/main.go:64: unknown http.Transport field 'DialContext' in struct literal
    src/github.com/tomnomnom/httprobe/main.go:68: undefined: http.ErrUseLastResponse
    
    opened by tacticthreat 2
  • Adding port templates

    Adding port templates

    Currently, if you want to use httprobe and scan additional ports you have to use -p http:<PORT> which is fine for a few ports but for heavy scanning could become tedious.

    I added two port templates to allow scanning for non-standard HTTP ports more easily. The idea is taken from aquatone.

    The templates I implemented are:

    • xlarge for 80, 81, 300, 443, 591, 593, 832, 981, 1010, 1311, 2082, 2087, 2095, 2096, 2480, 3000, 3128, 3333, 4243, 4567, 4711, 4712, 4993, 5000, 5104, 5108, 5800, 6543, 7000, 7396, 7474, 8000, 8001, 8008, 8014, 8042, 8069, 8080, 8081, 8088, 8090, 8091, 8118, 8123, 8172, 8222, 8243, 8280, 8281, 8333, 8443, 8500, 8834, 8880, 8888, 8983, 9000, 9043, 9060, 9080, 9090, 9091, 9200, 9443, 9800, 9981, 12443, 16080, 18091, 18092, 20720, 28017
    • large for 80, 81, 443, 591, 2082, 2087, 2095, 2096, 3000, 8000, 8001, 8008, 8080, 8083, 8443, 8834, 8888

    So if you want to use the xlarge template for example:

    echo api.twitter.com | ./httprobe -p xlarge
    http://api.twitter.com
    https://api.twitter.com
    
    opened by RiccardoAncarani 2
  • Unable to run httprobe from script

    Unable to run httprobe from script

    Hello,

    I have been using httprobe for a while and everything is working fine so I decided to add it to my script, when I run the script I get an httprobe command not found. error. Every other tool in the script ( amass, nmap etc) is working fine and I can still use httprobe perfectly from the terminal in any directory (including the directory the script is in). Any thoughts? Thank you.

    opened by MathematicsUnicorn 1
  • [Feature Request] Additional argument for printing hosts which weren't alive/responded

    [Feature Request] Additional argument for printing hosts which weren't alive/responded

    Hi @tomnomnom,

    Thanks for the amazing tool, It really helps in HTTP probing.

    As mentioned in the title, can we please have an additional argument if a user wants to print out the hosts which didn't respond or were down during the probing? Would help out in domains that point to a STALE record which is terminated etc.

    opened by Anon-Exploiter 1
  • cannot run --prefer-https

    cannot run --prefer-https

    cat abc.txt | httprobe --prefer-https -c 50

    the above command is showing error

    cat abc.txt | httprobe
    #this command works fine though

    I want the result to be either http or https and not both and if https is available I dont want http

    opened by juniorhero 1
  • Read Full Response and Remove Defer Statement

    Read Full Response and Remove Defer Statement

    The isListening function does not reads http bodies which may & do lead to error saying Too many open file descriptors as the connection does not gets closed. Adding an io.Copy to copy the response to ioutil.Discard solves the problem.

    The second thing i did was remove the usage of defer from that code path as calling defer is more expensive than a simple statement.

    opened by Ice3man543 1
  • Automatically figure out whether to prepend http protocol to url or not

    Automatically figure out whether to prepend http protocol to url or not

    Currently, the input url must be in the format:

    google.com
    xyz.com
    

    Pushing code to automatically prepend the HTTP protocol if it is not present, or if its present don't error out, continue with that url.

    All the below URL's are valid input now

    http://google.com
    google.com
    https://google.com
    
    opened by adwaithks 0
  • Better -p Option Formatting

    Better -p Option Formatting

    Hi Tom,

    This pull request addresses the issue that you proposed about specifying a large number of ports being inconvenient given how values passed to the -p option are formatted (#3). The modifications that I made to httprobe allow the following to work:

    $ cat domains.txt | httprobe -p 1234
    $ cat domains.txt | httprobe -p 1234,4321
    $ cat domains.txt | httprobe -p large
    $ cat domains.txt | httprobe -p large,1234
    $ cat domains.txt | httprobe -p http:1234 -p https:1234,4321
    $ cat domains.txt | httprobe -p http:large -p https:xlarge,1234
    

    Determining which ports to probe on each of HTTP and HTTPS now happens only once (when the flags are parsed). Prior to this, httprobe would run a switch case for each host which is a waste of a few CPU cycles (I say this sarcastically :D).

    Also note that I made the relevant changes to the README.md file (including what's mentioned in #23).

    Best Regards, Adam

    opened by NULLHE4D 0
  • add status code filter and follow redirects

    add status code filter and follow redirects

    To avoid getting massive 404 pages on large scopes I added two new flags:

    • -f: Filter the given status code
    • - --follow-redirect Use the default redirection policy, following up to a maximum of 10 times
    opened by itasahobby 0
  • go get: installing executables with 'go get' in module mode is deprecated. 	Use 'go install pkg@version' instead.

    go get: installing executables with 'go get' in module mode is deprecated. Use 'go install [email protected]' instead.

    Help on how to install because even after using the command: go install github.com/tomnomnom/[email protected]

    The is no response from the httprobe in terminal returns: httprobe: command not found

    opened by ZedTechInfo 3
  • Update README.md

    Update README.md

    Installing executables with "go get" in module mode is deprecated. "go install [email protected]" should be used instead. For more information, see https://golang.org/doc/go-get-install-deprecation

    opened by adilsoybali 1
Owner
Tom Hudson
Open-source tool maker, trainer, talker, fixer, eater, not really a sheep. He/him.
Tom Hudson
simple subdomain finder

Subdomain-finder Simple SubDomain finder using python which is easy to use just download and run it Wordlist you can use your own wordlist but here i

AsjadOwO 5 Sep 24, 2021
Send files to your friends over network! (100mb max)

PyServed v2.0.1 Made by Shaurya Pratap Singh Installation Using pip(for stable releases.) - $ pip install pyserved Using Git (for latest updates) -

Sblip.dev 4 Mar 22, 2022
A live streaming chatroom involving multiple modalities, such as voice, gesture, and facial expression

HiLive A live streaming chatroom involving multiple modalities, such as voice, gesture, and facial expression. Introduction We focus on demonstrating

Ryan Yen 2 Dec 02, 2021
A Python tool used to automate the execution of the following tools : Nmap , Nikto and Dirsearch but also to automate the report generation during a Web Penetration Testing

📡 WebMap A Python tool used to automate the execution of the following tools : Nmap , Nikto and Dirsearch but also to automate the report generation

Iliass Alami Qammouri 274 Jan 01, 2023
JF⚡can - Super fast port scanning & service discovery using Masscan and Nmap. Scan large networks with Masscan and use Nmap's scripting abilities to discover information about services. Generate report.

Description Killing features Perform a large-scale scans using Nmap! Allows you to use Masscan to scan targets and execute Nmap on detected ports with

377 Jan 03, 2023
A Python Packages to make own chat room

Chathon A Python packages for make own chat room Install PyPI pip install chathon

1 Dec 10, 2021
tradingview socket api for fetching real time prices.

tradingView-API tradingview socket api for fetching real time prices. How to run git clone https://github.com/mohamadkhalaj/tradingView-API.git cd tra

MohammadKhalaj 35 Dec 31, 2022
ASC - Api Server Controller

ASC - Api Server Controller

Uriel Alves 1 Jan 03, 2022
An ftp syncing python package that I use to sync pokemon saves between my hacked 3ds running ftpd and my server

Sync file pairs over ftp and apply patches to them. Useful for using ftpd to transfer ROM save files to and from your DS if you also play on an emulator. Setup a cron job to check for your DS's ftp s

17 Jan 04, 2023
GitHub action for sspanel automatically checks in to get free traffic quota

SSPanel_Checkin This is a dish chicken script for automatic check-in of sspanel for GitHub action, It is only applicable when there is no verification

FeedCatWithFish 7 Apr 28, 2022
Tool to transfer credential files from Firefox to your local machine to decrypt offline.

Firefox-Dumper Firefox Dumper identifies the current user's Firefox profile directory and exfiltrates the credential files to the attacker's FTP serve

Joe Helle 22 Sep 10, 2022
A web-based app that allows easy, simple - and if desired high-throughput - analysis of qPCR data

qpcr-Analyser A web-based GUI for the qpcr package that allows easy, simple and high-throughput analysis of qPCR data. As is described in more detail

1 Sep 13, 2022
The can package provides controller area network support for Python developers

python-can The Controller Area Network is a bus standard designed to allow microcontrollers and devices to communicate with each other. It has priorit

Brian Thorne 904 Dec 29, 2022
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

gRPC - An RPC library and framework gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC

grpc 36.6k Dec 30, 2022
Tiny JSON RPC via HTTP library.

jrpc Simplest ever possible Asynchronous JSON RPC via HTTP library for Python, backed by httpx. Installation pip install async-jrpc Usage Import JRPC

Onigiri Team 2 Jan 31, 2022
Mass querying whois records using whois tool

Mass querying whois records using whois tool

Mohamed Elbadry 24 Nov 10, 2022
Nyx-Net: Network Fuzzing with Incremental Snapshots

Nyx-Net: Network Fuzzing with Incremental Snapshots Nyx-Net is fast full-VM snapshot fuzzer for complex network based targets. It's built upon kAFL, R

Chair for Sys­tems Se­cu­ri­ty 146 Dec 16, 2022
基于多线程快速端口扫描脚本,支持目标批量导入、结果导出。

JWS_portscan 基于多线程快速端口扫描脚本,支持目标批量导入、结果导出。如果扫描公网资产,为了提升扫描的精准性,建议放到服务器运行。 用法 依赖安装:pip3 install -r requriement.txt 支持参数:python3 JWS_portscan.py --help 脚本

jammny 5 Apr 12, 2022
Nautobot is a Network Source of Truth and Network Automation Platform.

Nautobot is a Network Source of Truth and Network Automation Platform. Nautobot was initially developed as a fork of NetBox (v2.10.4). Nautobot runs as a web application atop the Django Python framew

Nautobot 549 Dec 31, 2022
PcapConverter - A project for generating 15min frames out of a .pcap file containing network traffic

CMB Assignment 02 code + notebooks This is a project for containing code for the

Yannik S 2 Jan 24, 2022