Package: dsms_cli
DSMS CLI tool--------------------dsms_cli is a command line interface for exporting reports from a DSMSsystem.============Installation============``pip install dsms-cli``========Setup========Before you'll begin, you'll need several settings set as environment variables:* DSMS_SERVER    (e.g. https://mydsmsserver)* DSMS_USER      (e.g. tom)* DSMS_PASS      (e.g. ThisIsMyPassword)* DSMS_SERVER_CERT (optional: e.g. /usr/share/ca-certificates/dsmserver.crt)=========Adding targets=========To add targets, you'll firstly need the ID numbers of the schedules, profilesand severities you wish to add. You can do this with::dsms_cli list schedulesdsms_cli list profilesdsms_cli list severitiesThen, you're ready to add targets. For example::dsms_cli add location --profile=1 --schedule=1 http://example.comdsms_cli add file --profile=2 --schedule=1 mysample.exeFor file types, the local file path you specify will be uploaded to DSMS.=========Running reports=========You can also run searches of DSMS results using the same filter syntax as theweb application. For example, to get all active phishing targets, run::dsms_cli export --query="status:Active type:Phishing"You can also redact potentially sensitive information in target informationby supplying the --redact switch. This will replace URLs likehttp://example.com/?id=me@example.com withhttp://example.com/?id=REDACTED@REDACTED.=========Report formats=========DSMS has a simple build-in report template, but you may create templates in anyformat you like. Reports are generated by the Jinja2 template engine. Seehttp://jinja.pocoo.org/docs/dev/templates/ for details of the format.If you'd like to add report formats:1) Create a directory to house your templates, e.g. $HOME/dsms_templates.2) Create your template using the .j2 extension, e.g.$HOME/dsms_templates/my_format.j2.3) Templates must adhere to Jinja2 format. You can find a simple example ofthe DSMS standard template athttps://gist.github.com/chorsley/d52f8e8bf3c6df4901b38ed316af5889.4) Variable names map to the API fields for "Target filter report" underthe "results" key. Please seehttps://bitbucket.org/irtools/dsms/wiki/UsingDSMSAPI for more information.5) Finally, run the report. Using our example values:``dsms_cli export --template_dir=$HOME/dsms_templates --template=my_format``.Naturally, you can combine this with --query, --redact etc to filter thetargets that will appear in the report.=========SSL errors=========If you're using DSMS with a self-signed SSL certificate, you may run into thefollowing error::RuntimeError: Error during login: bad handshake: Error([('SSL routines','SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)There are two options to avoid this.1) You can specify the path to a trusted SSL certificate using theDSMS_SERVER_CERT environment setting. To get this cert, you can run::openssl s_client -showcerts -connect [YOUR DSMS HOST]:443 </dev/null \2>/dev/null|openssl x509 -outform PEM >dsms_server_cert.crtThen, set the cert path to the file you downloaded::export DSMS_SERVER_CERT=dsms_server_cert.crt2) While not recommended, you can also ignore all SSL errors by appending--ignore_ssl_errs to your dsms_cli command.=========Further help=========To see all command line switches, you can run::dsms_cli --help