All Projects → trailofbits → Twa

trailofbits / Twa

Licence: mit
A tiny web auditor with strong opinions.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Twa

WDIR
Good resources about web security that I have read.
Stars: ✭ 14 (-97.45%)
Mutual labels:  web-security
Audit
For auditing what collaborators, hooks, and deploy keys you have added on all your GitHub repositories.
Stars: ✭ 335 (-38.98%)
Mutual labels:  auditing
Otseca
Open source security auditing tool to search and dump system configuration. It allows you to generate reports in HTML or RAW-HTML formats.
Stars: ✭ 416 (-24.23%)
Mutual labels:  auditing
Shell Backdoor List
🎯 PHP / ASP - Shell Backdoor List 🎯
Stars: ✭ 288 (-47.54%)
Mutual labels:  web-security
Awesome Web Hacking
A list of web application security
Stars: ✭ 3,760 (+584.88%)
Mutual labels:  web-security
Ssrf vulnerable lab
This Lab contain the sample codes which are vulnerable to Server-Side Request Forgery attack
Stars: ✭ 361 (-34.24%)
Mutual labels:  web-security
UltimateCMSWordlists
📚 An ultimate collection wordlists of the best-known CMS
Stars: ✭ 54 (-90.16%)
Mutual labels:  web-security
Ssh Auditor
The best way to scan for weak ssh passwords on your network
Stars: ✭ 516 (-6.01%)
Mutual labels:  auditing
Javaid
java source code static code analysis and danger function identify prog
Stars: ✭ 327 (-40.44%)
Mutual labels:  web-security
Django Auditlog
A Django app that keeps a log of changes made to an object.
Stars: ✭ 412 (-24.95%)
Mutual labels:  auditing
Django Easy Audit
Yet another Django audit log app, hopefully the simplest one.
Stars: ✭ 289 (-47.36%)
Mutual labels:  auditing
Rudder
Continuous Auditing & Configuration
Stars: ✭ 314 (-42.81%)
Mutual labels:  auditing
Taipan
Web application vulnerability scanner
Stars: ✭ 359 (-34.61%)
Mutual labels:  web-security
Scoutsuite
Multi-Cloud Security Auditing Tool
Stars: ✭ 3,803 (+592.71%)
Mutual labels:  auditing
Burpa
Burp-Automator: A Burp Suite Automation Tool with Slack Integration. It can be used with Jenkins and Selenium to automate Dynamic Application Security Testing (DAST).
Stars: ✭ 427 (-22.22%)
Mutual labels:  web-security
Raven-Storm
Raven-Storm is a powerful DDoS toolkit for penetration tests, including attacks for several protocols written in python. Takedown many connections using several exotic and classic protocols.
Stars: ✭ 235 (-57.19%)
Mutual labels:  web-security
Commit Watcher
Find interesting and potentially hazardous commits in git projects
Stars: ✭ 345 (-37.16%)
Mutual labels:  auditing
Githacker
🕷️ A Git source leak exploit tool that restores the entire Git repository, including data from stash, for white-box auditing and analysis of developers' mind
Stars: ✭ 524 (-4.55%)
Mutual labels:  web-security
Sshpiper
The missing reverse proxy for ssh scp
Stars: ✭ 489 (-10.93%)
Mutual labels:  auditing
Lookyloo
Lookyloo is a web interface that allows users to capture a website page and then display a tree of domains that call each other.
Stars: ✭ 381 (-30.6%)
Mutual labels:  web-security

twa

Build Status Docker Build Status Repology - Repositories

A tiny web auditor with strong opinions.

Usage

Dependencies

You'll need bash 4, curl, dig, jq, and nc, along with a fairly POSIX system.

testssl.sh is an optional dependency.

Auditing

# Audit a site.
$ twa google.com
> FAIL(google.com): TWA-0102: HTTP redirects to HTTP (not secure)
> FAIL(google.com): TWA-0205: Strict-Transport-Security missing
> MEH(google.com): TWA-0206: X-Frame-Options is 'sameorigin', consider 'deny'
> FAIL(google.com): TWA-0209: X-Content-Type-Options missing
> PASS(google.com): X-XSS-Protection specifies mode=block
> FAIL(google.com): TWA-0214: Referrer-Policy missing
> FAIL(google.com): TWA-0219: Content-Security-Policy missing
> FAIL(google.com): TWA-0220: Feature-Policy missing
> PASS(google.com): Site sends 'Server', but probably only a vendor ID: gws
> PASS(google.com): Site doesn't send 'X-Powered-By'
> PASS(google.com): Site doesn't send 'Via'
> PASS(google.com): Site doesn't send 'X-AspNet-Version'
> PASS(google.com): Site doesn't send 'X-AspNetMvc-Version'
> PASS(google.com): No SCM repository at: http://google.com/.git/HEAD
> PASS(google.com): No SCM repository at: http://google.com/.hg/store/00manifest.i
> PASS(google.com): No SCM repository at: http://google.com/.svn/entries
> PASS(google.com): No environment file at: http://google.com/.env
> PASS(google.com): No environment file at: http://google.com/.dockerenv

# Audit a site, and be verbose (on stderr)
$ twa -v example.com

# Audit a site and emit results in CSV
$ twa -c example.com

# Audit a site and its www subdomain
$ twa -w example.com

# Audit a site and include testssl
# Requires either `testssl` or `testssl.sh` on your $PATH
$ twa -s example.com

# Audit a site without scanning common development ports
$ twa -d example.com

twa takes one domain at a time, and only audits more than one domain at once in the -w case. If you need to audit multiple domains, run it multiple times.

Each result line comprises a test result, and looks like this:

TYPE(domain): explanation

where TYPE is one of PASS, MEH, FAIL, UNK, SKIP, and FATAL:

  • PASS: The test passed with flying colors.
  • MEH: The test passed, but with one or more things that could be improved.
  • FAIL: The test failed, and should be fixed.
  • UNK: The server gave us something we didn't understand.
  • SKIP: The server gave us something we understood, but that we don't handle yet.
  • FATAL: A really important test failed, and should be fixed immediately.

If the TYPE is negative (i.e. MEH, FAIL, or FATAL), the explanation will be prefixed with a reference code with the format TWA-XXYY, where XX is the stage that the result occurred in and YY is a unique identifier for the result.

Scoring

twa can be used alongside tscore, which provides a basic scoring mechanism:

$ twa google.com | tscore
> 35 9 1 6 0 0 0

The score format is score npasses nmehs nfailures nunknowns nskips totally_screwed, so you can do:

$ read -r score npasses nmehs nfailures nunknowns nskips totally_screwed < <(twa google.com | tscore)
$ echo "score: ${score}"

Like twa, tscore is opinionated. You can change its opinions (i.e., its score weights) by editing it.

Docker

twa can be used from a lightweight (29MB) Alpine Docker container.

To run it from a Docker container:

$ docker run --rm -t trailofbits/twa -vw google.com

or, to build it manually:

$ git clone https://github.com/trailofbits/twa.git
$ cd twa
$ docker build -t trailofbits/twa .
$ docker run --rm -t trailofbits/twa -vw google.com

Contributing

Check out the contributing guidelines.

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].