Saker


NameSaker JSON
Version 1.0.11 PyPI version JSON
download
home_pagehttps://github.com/LyleMi/Saker
SummaryTool For Fuzz Web Applications
upload_time2023-08-02 04:36:51
maintainer
docs_urlNone
authorLyle
requires_python
licenseGPLv3 Licence
keywords web security fuzz
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <a href="" target="_blank" rel="noopener noreferrer">
    <img width="200" src="https://raw.githubusercontent.com/LyleMi/Saker/master/logo.jpg" alt="Saker logo">
  </a>
</p>

<h4 align="center">Penetrate Testing Auxiliary Suite</h4>

<p align="center">
  <img src="https://img.shields.io/badge/Python-3.6-blue.svg">
  <img src="https://img.shields.io/github/issues/lylemi/saker.svg">
  <img src="https://img.shields.io/github/stars/lylemi/saker.svg">
  <img src="https://img.shields.io/github/forks/lylemi/saker.svg">
  <img src="https://img.shields.io/github/license/lylemi/saker.svg">
  <img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat&label=Contributions&colorA=red&colorB=black" />
</p>

[中文版本(Chinese version)](README.zh-cn.md)

Saker is a flexible penetrate testing auxiliary suite. 

## Table of contents

- [Features](#features)
- [Quick Setup](#quick-setup)
- [Example Cases](#example-cases)
- [Contributing](#contributing)
- [Disclaimer](#disclaimer)
- [License](#license)

## Features

brief introduction for support features:

- scan website
  - infomation gathering
  - framework fingerprint
- fuzz web request
  - XSS
  - SQL injection
  - SSRF
  - XXE
  - ...
- subdomain gathering
- port scanner
- bruteforce
  - web dir
  - zip password
  - domain
  - ...
- auxiliary servers
  - dns rebinding
  - ssrf
  - xss
- third party api integration
  - censys
  - crtsh
  - fofa
  - github
  - shodan
  - sqlmap
  - threadcrowd
  - ...

## Quick Setup

### latest version

```bash
pip install -U git+https://github.com/lylemi/saker
```

```bash
git clone https://github.com/LyleMi/Saker.git
pip install -r requirements.txt
python setup.py install
```

### stable version

```bash
pip install Saker
```

### develop install

add /path/to/saker to PYTHONPATH

```bash
export PYTHONPATH=/path/to/saker:$PYTHONPATH
```

## Example Cases

### Scan Website

```python
from saker.core.scaner import Scanner
s = Scanner("http://127.0.0.1")
s.scan(filename="index.php", ext="php")
```

or by shell

```bash
python -m saker scan

usage: main.py [options]

Saker Scanner

optional arguments:
  -h, --help            show this help message and exit
  -s, --scan            run with list model
  -f file, --file file  scan specific file
  -e ext, --ext ext     scan specific ext
  -i, --info            get site info
  -u URL, --url URL     define specific url
  -p PROXY, --proxy PROXY
                        proxy url
  -t INTERVAL, --timeinterval INTERVAL
                        scan time interval, random sleep by default
```

### Fuzz Website

```python
from saker.core.mutator import Mutator
options = {
    "url": "http://127.0.0.1:7777/",
    "params": {
        "test": "test"
    }
}
m = Mutator(options)
m.fuzz('url')
m.fuzz('params', 'test')
```

or by shell

```bash
python -m saker fuzz

usage: [options]

Saker Fuzzer

optional arguments:
  -h, --help            show this help message and exit
  -u URL, --url URL     define specific url
  -m METHOD, --method METHOD
                        request method, use get as default
  -p PARAMS, --params PARAMS
                        request params, use empty string as default
  -d DATA, --data DATA  request data, use empty string as default
  -H HEADERS, --headers HEADERS
                        request headers, use empty string as default
  -c COOKIES, --cookies COOKIES
                        request cookies, use empty string as default
  -P PART, --part PART  fuzz part, could be url / params / data / ...
  -k KEY, --key KEY     key to be fuzzed
  -v VULN, --vuln VULN  Vulnarability type to be fuzzed
  -t INTERVAL, --timeinterval INTERVAL
                        scan time interval, random sleep by default
```

### Port Scanner

```bash
python -m saker port

usage: [options]

Saker Port Scanner

optional arguments:
  -h, --help            show this help message and exit
  -t TARGET, --target TARGET
                        define scan target
  -b, --background      run port scanner in background with unix daemon, only
                        support unix platform
```

### Generate fuzz payload

#### Unicode Fuzz

```python
from saker.fuzzer.code import Code
payload = Code.fuzzErrorUnicode(payload)
```

#### Fuzz SSI

```python
from saker.fuzzers.ssi import SSI
payloads = [i for i in SSI.fuzz()]
```

### Brute password or others

```python
from saker.brute.dir import DirBrute
dirBrute = DirBrute("php", "index.php")
paths = dirBrute.weakfiles()
```

now support brute http basic auth, ftp, mysql, ssh, telnet, zipfile...

### Call Third Party API

#### Crt.sh

```python
from saker.api.crtsh import crtsh
crtsh("github.com")
```

#### DNSDumper

```python
from saker.api.dnsdumper import DNSdumpster
DNSdumpster("github.com")
```

#### Github API

```python
from saker.api.githubapi import GithubAPI
g = GithubAPI()
g.gatherByEmail("@github.com")
```

#### SQLMap API

```python
from saker.api.sqlmap import SQLMap
options = {"url": "https://github.com"}
SQLMap().scan(options)
```

### Handle HTML

```python
import requests
from saker.handler.htmlHandler import HTMLHandler
r = requests.get("https://github.com")
h = HTMLHandler(r.text)
print(h.title)
The world’s leading software development platform · GitHub
print(h.subdomains("github.com"))
['enterprise.github.com', 'resources.github.com', 'developer.github.com', 'partner.github.com', 'desktop.github.com', 'api.github.com', 'help.github.com', 'customer-stories-feed.github.com', 'live-stream.github.com', 'services.github.com', 'lab.github.com', 'shop.github.com', 'education.github.com']
```

### Special Server

```python
from saker.servers.socket.dnsrebinding import RebindingServer
values = {
    'result': ['8.8.8.8', '127.0.0.1'],
    'index': 0
}
dnsServer = RebindingServer(values)
dnsServer.serve_forever()
```

## Todo

APK analyze

## Contributing

Contributions, issues and feature requests are welcome.

Feel free to check [issues page](https://github.com/lylemi/saker/issues) if you want to contribute.

## Disclaimer

This project is for educational purposes only. Do not test or attack any system with this tool unless you have explicit permission to do so.

## Show your support

Please star this repository if this project helped you.

## Issues

If you face any issue, you can create a new issue in the [Issues Tab](https://github.com/lylemi/saker/issues) and I will be glad to help you out.

## License

Copyright © 2019-2021 [Lyle](https://github.com/lylemi).

This project is [GPLv3](https://github.com/lylemi/saker/blob/master/LICENSE) licensed.
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/LyleMi/Saker",
    "name": "Saker",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Web Security,Fuzz",
    "author": "Lyle",
    "author_email": "lylemi@126.com",
    "download_url": "https://files.pythonhosted.org/packages/60/29/50f293e14bf8a29e0b000623d9112d3cb91ef64684bd672d30de149a80b7/Saker-1.0.11.tar.gz",
    "platform": "any",
    "description": "<p align=\"center\">\n  <a href=\"\" target=\"_blank\" rel=\"noopener noreferrer\">\n    <img width=\"200\" src=\"https://raw.githubusercontent.com/LyleMi/Saker/master/logo.jpg\" alt=\"Saker logo\">\n  </a>\n</p>\n\n<h4 align=\"center\">Penetrate Testing Auxiliary Suite</h4>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/Python-3.6-blue.svg\">\n  <img src=\"https://img.shields.io/github/issues/lylemi/saker.svg\">\n  <img src=\"https://img.shields.io/github/stars/lylemi/saker.svg\">\n  <img src=\"https://img.shields.io/github/forks/lylemi/saker.svg\">\n  <img src=\"https://img.shields.io/github/license/lylemi/saker.svg\">\n  <img src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat&label=Contributions&colorA=red&colorB=black\" />\n</p>\n\n[\u4e2d\u6587\u7248\u672c(Chinese version)](README.zh-cn.md)\n\nSaker is a flexible penetrate testing auxiliary suite. \n\n## Table of contents\n\n- [Features](#features)\n- [Quick Setup](#quick-setup)\n- [Example Cases](#example-cases)\n- [Contributing](#contributing)\n- [Disclaimer](#disclaimer)\n- [License](#license)\n\n## Features\n\nbrief introduction for support features:\n\n- scan website\n  - infomation gathering\n  - framework fingerprint\n- fuzz web request\n  - XSS\n  - SQL injection\n  - SSRF\n  - XXE\n  - ...\n- subdomain gathering\n- port scanner\n- bruteforce\n  - web dir\n  - zip password\n  - domain\n  - ...\n- auxiliary servers\n  - dns rebinding\n  - ssrf\n  - xss\n- third party api integration\n  - censys\n  - crtsh\n  - fofa\n  - github\n  - shodan\n  - sqlmap\n  - threadcrowd\n  - ...\n\n## Quick Setup\n\n### latest version\n\n```bash\npip install -U git+https://github.com/lylemi/saker\n```\n\n```bash\ngit clone https://github.com/LyleMi/Saker.git\npip install -r requirements.txt\npython setup.py install\n```\n\n### stable version\n\n```bash\npip install Saker\n```\n\n### develop install\n\nadd /path/to/saker to PYTHONPATH\n\n```bash\nexport PYTHONPATH=/path/to/saker:$PYTHONPATH\n```\n\n## Example Cases\n\n### Scan Website\n\n```python\nfrom saker.core.scaner import Scanner\ns = Scanner(\"http://127.0.0.1\")\ns.scan(filename=\"index.php\", ext=\"php\")\n```\n\nor by shell\n\n```bash\npython -m saker scan\n\nusage: main.py [options]\n\nSaker Scanner\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -s, --scan            run with list model\n  -f file, --file file  scan specific file\n  -e ext, --ext ext     scan specific ext\n  -i, --info            get site info\n  -u URL, --url URL     define specific url\n  -p PROXY, --proxy PROXY\n                        proxy url\n  -t INTERVAL, --timeinterval INTERVAL\n                        scan time interval, random sleep by default\n```\n\n### Fuzz Website\n\n```python\nfrom saker.core.mutator import Mutator\noptions = {\n    \"url\": \"http://127.0.0.1:7777/\",\n    \"params\": {\n        \"test\": \"test\"\n    }\n}\nm = Mutator(options)\nm.fuzz('url')\nm.fuzz('params', 'test')\n```\n\nor by shell\n\n```bash\npython -m saker fuzz\n\nusage: [options]\n\nSaker Fuzzer\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -u URL, --url URL     define specific url\n  -m METHOD, --method METHOD\n                        request method, use get as default\n  -p PARAMS, --params PARAMS\n                        request params, use empty string as default\n  -d DATA, --data DATA  request data, use empty string as default\n  -H HEADERS, --headers HEADERS\n                        request headers, use empty string as default\n  -c COOKIES, --cookies COOKIES\n                        request cookies, use empty string as default\n  -P PART, --part PART  fuzz part, could be url / params / data / ...\n  -k KEY, --key KEY     key to be fuzzed\n  -v VULN, --vuln VULN  Vulnarability type to be fuzzed\n  -t INTERVAL, --timeinterval INTERVAL\n                        scan time interval, random sleep by default\n```\n\n### Port Scanner\n\n```bash\npython -m saker port\n\nusage: [options]\n\nSaker Port Scanner\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -t TARGET, --target TARGET\n                        define scan target\n  -b, --background      run port scanner in background with unix daemon, only\n                        support unix platform\n```\n\n### Generate fuzz payload\n\n#### Unicode Fuzz\n\n```python\nfrom saker.fuzzer.code import Code\npayload = Code.fuzzErrorUnicode(payload)\n```\n\n#### Fuzz SSI\n\n```python\nfrom saker.fuzzers.ssi import SSI\npayloads = [i for i in SSI.fuzz()]\n```\n\n### Brute password or others\n\n```python\nfrom saker.brute.dir import DirBrute\ndirBrute = DirBrute(\"php\", \"index.php\")\npaths = dirBrute.weakfiles()\n```\n\nnow support brute http basic auth, ftp, mysql, ssh, telnet, zipfile...\n\n### Call Third Party API\n\n#### Crt.sh\n\n```python\nfrom saker.api.crtsh import crtsh\ncrtsh(\"github.com\")\n```\n\n#### DNSDumper\n\n```python\nfrom saker.api.dnsdumper import DNSdumpster\nDNSdumpster(\"github.com\")\n```\n\n#### Github API\n\n```python\nfrom saker.api.githubapi import GithubAPI\ng = GithubAPI()\ng.gatherByEmail(\"@github.com\")\n```\n\n#### SQLMap API\n\n```python\nfrom saker.api.sqlmap import SQLMap\noptions = {\"url\": \"https://github.com\"}\nSQLMap().scan(options)\n```\n\n### Handle HTML\n\n```python\nimport requests\nfrom saker.handler.htmlHandler import HTMLHandler\nr = requests.get(\"https://github.com\")\nh = HTMLHandler(r.text)\nprint(h.title)\nThe world\u2019s leading software development platform \u00b7 GitHub\nprint(h.subdomains(\"github.com\"))\n['enterprise.github.com', 'resources.github.com', 'developer.github.com', 'partner.github.com', 'desktop.github.com', 'api.github.com', 'help.github.com', 'customer-stories-feed.github.com', 'live-stream.github.com', 'services.github.com', 'lab.github.com', 'shop.github.com', 'education.github.com']\n```\n\n### Special Server\n\n```python\nfrom saker.servers.socket.dnsrebinding import RebindingServer\nvalues = {\n    'result': ['8.8.8.8', '127.0.0.1'],\n    'index': 0\n}\ndnsServer = RebindingServer(values)\ndnsServer.serve_forever()\n```\n\n## Todo\n\nAPK analyze\n\n## Contributing\n\nContributions, issues and feature requests are welcome.\n\nFeel free to check [issues page](https://github.com/lylemi/saker/issues) if you want to contribute.\n\n## Disclaimer\n\nThis project is for educational purposes only. Do not test or attack any system with this tool unless you have explicit permission to do so.\n\n## Show your support\n\nPlease star this repository if this project helped you.\n\n## Issues\n\nIf you face any issue, you can create a new issue in the [Issues Tab](https://github.com/lylemi/saker/issues) and I will be glad to help you out.\n\n## License\n\nCopyright \u00a9 2019-2021 [Lyle](https://github.com/lylemi).\n\nThis project is [GPLv3](https://github.com/lylemi/saker/blob/master/LICENSE) licensed.",
    "bugtrack_url": null,
    "license": "GPLv3 Licence",
    "summary": "Tool For Fuzz Web Applications",
    "version": "1.0.11",
    "project_urls": {
        "Homepage": "https://github.com/LyleMi/Saker"
    },
    "split_keywords": [
        "web security",
        "fuzz"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "602950f293e14bf8a29e0b000623d9112d3cb91ef64684bd672d30de149a80b7",
                "md5": "81a1f5c00d0cc73ece9f4e5d5f05613a",
                "sha256": "f2c00d3643b3bd036957883f63c8c38fbb4693d335b6c64fd75c5f789d05a494"
            },
            "downloads": -1,
            "filename": "Saker-1.0.11.tar.gz",
            "has_sig": false,
            "md5_digest": "81a1f5c00d0cc73ece9f4e5d5f05613a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 77256,
            "upload_time": "2023-08-02T04:36:51",
            "upload_time_iso_8601": "2023-08-02T04:36:51.363396Z",
            "url": "https://files.pythonhosted.org/packages/60/29/50f293e14bf8a29e0b000623d9112d3cb91ef64684bd672d30de149a80b7/Saker-1.0.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-02 04:36:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "LyleMi",
    "github_project": "Saker",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "saker"
}
        
Elapsed time: 0.10828s