ropoly

command module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2018 License: MIT Imports: 7 Imported by: 0

README

Current Status

CircleCI

polyverse/ropoly

Build Instructions for Ubuntu with Docker

From the project directory, run the following: $ docker run --rm -it -v $PWD:/go/src/github.com/polyverse/ropoly golang bash $ cd /go/src/github.com/polyverse/ropoly $ go build

Run Instructions for Docker

The container must be run with --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --privileged Port 8008 must be mapped to a port on the host with -p in order to view output.

Build Instructions for Alpine with Docker

docker run --rm -it -v $PWD:/go/src/github.com/polyverse/ropoly golang:1.8-alpine /bin/ash cd /go/src/github.com/polyverse/ropoly apk add --no-cache make build-base go build

Command Line Options

server

Runs as a server exposing the API described under "Ropoly API Endpoints." Use this option, "scan", or both.

scan

Runs as a daemon that repeatedly scans the server's file system and the libraries of its running processes to check for Polyverse signatures. Use this option, "server", or both.

log

Use only with "scan". Logs the results of scanning for signatures.

prometheus

Use only with "scan". Not yet implemented, and doesn't do anything useful.

ROPoly API Endpoints

/api/v1/pids

Return list of all visible process ids and information about each process.

/api/v1/pid/<pid>/libraries[?signatures=<[true]>]

Return list of loaded libraries for the given pid. If pid is 0, pid refers to the ROPoly process itself. If signature is true, list whether or not each library has a Polyverse signature.

/api/v1/pid/<pid>/memory[?mode=<regions|search|disasm|gadget|fingerprint>][&start=start][&end=end][&instructions=instructions][&octets=octets][&limit=limit][?access=<[R][W][X][F]|None>][?<string|regexp>=target]

Return information about the memory of the given pid according to the option provided in mode.

regions

Return list of memory regions of the given pid subject to at least access permissions (default R). Any combination of R, W, X and F (Windows only) is permitted as well as the token None which will return all regions. (Case is not significant.)

Search executable memory of the given pid between start and end and return up to limit instances. If string is used, target is the literal string. If regexp is used, target is the regular expression.

disasm

Disassemble executable memory of the given pid between start and end and return up to limit instructions.

gadget

Search executable memory of the given pid between start and end and return up to limit gadgets size limited to instructions and octets.

/api/v1/files/<path>

View information about the files and directories in the given directory on the server according to the option provided in mode.

directory

View the contents of the given directory. Fails if given a file.

signature

Looks for the Polyverse signature, "-PV-", in the given file, and returns based on whether or not it is found. Fails if given a directory.

disasm

Disassembles the .text section of the given ELF binary. Fails if given a directory, or if the given file is not an ELF binary.

gadget

Search executable memory of the given ELF binary and return up to limit gadgets size limited to instructions and octets.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL