<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"
}