Skip to main content

Protect your Linux PC from viruses using a safer alternative to `curl ... | sh` or `wget ... | sh`

Project description

cursh

Protect your Linux PC from viruses using a safer alternative to curl ... | sh or wget ... | sh

Installation

cursh is only available on linux.

  1. Download the binary:
wget -O cursh https://github.com/itzmetanjim/cursh/raw/refs/heads/main/exec/cursh
  1. Make it executable
sudo chmod +x cursh
  1. Copy it to /usr/bin/local/:
sudo cp ./cursh /usr/local/bin/
sudo chmod +x /usr/local/bin/cursh

How it works

It will use multiple verification steps. At any of these steps, if HTTPS/TLS auth fails, it will immediately abort. Also, if it has root priveleges, it will ALWAYS ask the user before executing, even if it determined it as safe. When asking the user, these are the options the user has:

  • Check the script, maybe edit it, then run it.
  • Save the script.
  • Do nothing (dont run)
  • Run anyway (not recommended)
  1. Check if the patterm matches trusted.json (hosted here and updated). If so,
    • Check the version list. If the version also matches, then its trusted.
    • If version does not match, ask the user first.
  2. If its not in trusted.json,
    1. Check for the first line containing SHA256:. If found, check the URL for an SHA256 sum. If it matches, save the result to a variable.
    2. Check for the first line containing PGP/GPG signature:. If found, check the URL and see if the PGP is valid and matches the file. If so, save that to another variable.
    3. Check what the domain is and look it up in some trusted domains API (unless its something like Github)
    4. Request the URL with different user agents. Check if they are the same as the result with the curl user agent.
    5. Display all these results to the user and let the user decide one of four options.

Files

  • trusted.json: database of trusted scripts
  • check.py: check if all the URLs are valid.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cursh-1.0.6.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cursh-1.0.6-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file cursh-1.0.6.tar.gz.

File metadata

  • Download URL: cursh-1.0.6.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for cursh-1.0.6.tar.gz
Algorithm Hash digest
SHA256 da42adfd9092eca2e349c274fa7b84e4e86b9088c6ca8621422177c1cd666874
MD5 a46fa78e1c92c9966dc5e5e2efbfc4a8
BLAKE2b-256 f101d0e05ca10c49677c1c656656e2a524d447d8d0c8307f170797c13ff13d26

See more details on using hashes here.

File details

Details for the file cursh-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: cursh-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for cursh-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ca2dac67718c9d234a1e33e4c43cc84df6998a9544da700d227fff7871af58f8
MD5 ffce32b2373b9ba16dcb124b15363637
BLAKE2b-256 ed8239328644d57fe626e5404506b4d6a419f3d1af17b2bdb152646338b74a42

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page