Git Product home page Git Product logo

gosecure / xfsc Goto Github PK

View Code? Open in Web Editor NEW
49.0 10.0 23.0 2.48 MB

eXtensions for Financial Services (XFS) proof of concept client to explore and issue commands directly to the devices that support the protocol. Force ATMs to dispense cash if you have code execution on them.

Home Page: https://gosecure.net/blog/

License: MIT License

C++ 42.78% C 57.22%
xfs cash-dispenser atm pentest

xfsc's Introduction

XFSC - An Interactive XFS exploration Tool

eXtensions for Financial Services is an open protocol used for abstracting away the functionality of various peripherals and hardware used for cash registers, point of sales and ATMs.

This tool was designed as a proof of concept to explore and issue commands directly to the devices that support the protocol. Among other things, it can be used to force ATMs to dispense cash if you have code execution on them.

The tool doesn't fully implement XFS yet, but a general skeleton is in place that should make it easy to add support for additional commands and features.

Open Protocol Specification:

The standard is specified as CWA 15748. All PDFs can be viewed online for free without registration and are extremely detailed.

Header files are available in the appendix of each part of the standard documents.

Usage

The help function is not fully implemented yet, here is a general idea of the commands:

// base commands
static cmd_t top_commands[] = {
    { "open",     "Establish a connection with a service provider.\nUsage: open <logical_name>", open_svc, NULL },
    { "close",    "Close an existing service connection.\nUsage: close <id>", close_svc, NULL },
    { "list",     "List active services.", list_svc, NULL },
    { "scan",     "Scans the computer for XFS services.", scan_svc, NULL},
    // ----
    { "cdm",      "Control a cash dispenser module.", cdm_dispatch, NULL},
    { "quit",     "Disconnect from the XFS manager.", do_quit, NULL },
    { "exit",     "See quit.", do_quit, NULL },
};

// cash dispenser commands
static cmd_t cdm_commands[] = {
    { "info",     "Queries information about the cash dispenser.\nUsage: cdm info <id>", cdm_info, NULL },
    { "caps",     "Queries capabilities of the cash dispenser.\nUsage: cdm caps <id>", cdm_caps, NULL },
    { "mix",      "Displays supported mixing algorithms\nUsage: cdm mix <id>", cdm_mixes, NULL },
    { "dispense", "Dispense cash\nUsage: cdm dispense <id> <amount> [currency=USD] [mix=1]", cdm_dispense, NULL },
};

Exercising a Cash Dispenser:

open CashDispenser_1
list
cdm info 1
cdm dispense 1 100 USD
close 1
quit

See output.txt for example output.

Scripting

The tool supports rudimentary scripting mode where it will process a list of commands from the command line to run unconditionally.

There is no logic supported in by the scripting engine for now.

xfsc.exe -c "open CashDispenser_1;info 1;close 1"

Building

You will need Visual Studio Community. You can build from the IDE or by running

msbuild xfsc.sln /p:Configuration=Release

xfsc's People

Contributors

alxbl avatar obilodeau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xfsc's Issues

Unable to build using Visual Studio 2019

I have imported the source to my Visual Studio 2019 and installed the "Desktop development with C++" but during build it says "E1574 static assertion failed with "Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined"

Is there any specific package or the version of Visual Studio to be installed inorder to build?

anydesk00001

The header link is not redirecting to the correct page now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.