Skip to content

Latest commit

 

History

History
84 lines (74 loc) · 3 KB

File metadata and controls

84 lines (74 loc) · 3 KB

scscanner_py

scscanner_py is tool to read website status code response from the lists. This tool is reworked from bash version of scscanner.

Requirements

  • requests
  • urllib3
  • datetime
  • argparse

Tested on Debian with Python 3.10.8

Features

  • Multi-threading for fast scanning.
  • Filter status code from target list.
  • Save to file option.

How to use

Help menu.

nino@nakano:~$ python3 scscanner.py --help

┏━━┳━━┳━━┳━━┳━━┳━┓┏━┓┏━━┳━┓
┃━━┫┏━┫━━┫┏━┫┏┓┃┏┓┫┏┓┫┃━┫┏┛
┣━━┃┗━╋━━┃┗━┫┏┓┃┃┃┃┃┃┃┃━┫┃
┗━━┻━━┻━━┻━━┻┛┗┻┛┗┻┛┗┻━━┻┛
    scscanner - Massive HTTP Status Code Scanner
    
usage: scscanner.py [-h] [-T list.txt] [-w [15]] [-t google.com] [-f 200] [-s] [-o result.txt]

options:
  -h, --help            show this help message and exit
  -T list.txt           File contain lists of domain
  -w [15], --workers [15]
                        Thread value. Default value is 4
  -t google.com, --target google.com
                        Single domain check
  -f 200, --filter 200  Status code filter
  -s, --silent          Silent mode option. Don't print status code output
  -o result.txt, --output result.txt
                        Save the results to file

Scan domain lists.

python3 scscanner.py -T lists.txt --workers 20

Scan single domain.

python3 scscanner.py -t https://blog.linuxsec.org

Scan domain list with status code filtering. Example: filter only '200' response.

python3 scscanner.py -T lists.txt -w 20 -f 200

Silent option, just print url with match status code filter.

python3 scscanner.py -T lists.txt -s --filter 200 --workers 20

With save to file options.

python3 scscanner.py -T list.txt --workers 20 --output asuka.txt

Print debug output

To avoid this tool "look hang" when caught KeyboardInterrupt (Example: Ctrl+C), we provide debug logging for current pool process before canceling future process. Example:

.........
[404] - https://baliuagu.edu.ph/sss
[200] - https://blog.linuxsec.org
[200] - https://randomsarl.com
^C
Terminate program. Please wait for current task pool finished...
DEBUG: https://website.informer.com:443 "GET /linuxsec.org HTTP/1.1" 200 None
DEBUG: https://www.accessify.com:443 "GET /l/linuxsec.org HTTP/1.1" 200 None
DEBUG: https://www.webtools.link:443 "GET / HTTP/1.1" 302 None

2022-11-26 22:54:36 - Run complete

Screenshot

scscanner

Disclaimer

I am just learning ThreadPoolExecutor so maybe this tool is dirty implementation of python threading. Feel free to contribute for better code quality.