Tag: security
No need to bypass security with a boot disk – 17 year old Windows exploit found
by Derek on Feb.18, 2010, under Security
The problem has been discovered in the Virtual DOS Machine (VDM) introduced in 1993 to support 16-bit applications (real mode applications for 8086). VDM is based on the Virtual 8086 Mode (VM86) in 80386 processors and, among other things, intercepts hardware routines such as BIOS calls. Google security team member Tavis Ormandy has found several vulnerabilities in this implementation that allow an unprivileged 16-bit program to manipulate the kernel stack of each process via a number of tricks. This potentially enables attackers to execute code at system privilege level.
In addition to the unpatched hole in Internet Explorer, a now published hole in Windows allows users with restricted access to escalate their privileges to system level – and this is believed to be possible on all 32-bit versions of Windows from Windows NT 3.1 up to, and including Windows 7. While the vulnerability is likely to affect home users in only a minor way, the administrators of corporate networks will probably have their hands full this week.
The problem is caused by flaws in the Virtual DOS Machine (VDM) introduced in 1993 to support 16-bit applications (real mode applications for 8086). VDM is based on the Virtual 8086 Mode (VM86) in 80386 processors and, among other things, intercepts hardware routines such as BIOS calls. Google security team member Tavis Ormandy has found several vulnerabilities in this implementation that allow an unprivileged 16-bit program to manipulate the kernel stack of each process via a number of tricks. This potentially enables attackers to execute code at system privilege level.
Ormandy has also published a suitable exploit which functions under Windows XP, Windows Server 2003 and 2008, Windows Vista and Windows 7. When tested by the The H’s associates at heise Security, the exploit opened a command prompt in the system context, which has the highest privilege level, under Windows XP and Windows 7. No patch has become available, although Ormandy reports that Microsoft was already informed of the hole in mid 2009. The developer decided to publish the information regardless because, in his opinion, there is a simple workaround: to disable the MS-DOS subsystem.
The workaround requires users to start the group policy editor and enable the “Prevent access to 16-bit applications” option in the Computer Configuration\Administrative Templates\Windows Components\Application Compatibility section. When tested with these settings by the heise Security team, the exploit no longer functioned. The settings reportedly don’t cause any major compatibility problems for most users while no 16-bit applications are being used.
Update – The above option is only available through the group policy editor on Windows 2003 systems. Some versions of Windows do not include a group policy editor. As an alternative, users can also create a registry key under \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat with a D-Word value of VDMDissallowed = 1. Under Windows XP, to prevent the system from being vulnerable to the exploit, users can place the following text:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
“VDMDisallowed”=dword:00000001
into a file called vdmdisallow.reg and double click the file. Windows will then automatically import the key (admin rights are required to perform this action).
Update 2 -Â Microsoft has now confirmed the privilege escalation hole in Windows. The company says that it wants to complete its investigation of the vulnerability and will then decide whether, how and when to close it.
See Also:
- Microsoft Windows NT #GP Trap Handler Allows Users to Switch Kernel Stack, security advisory from Travis Ormandy.
REDMOND — When it rains, it pours. Especially in the Seattle area. Tavis Ormandy has published full details on a privilege escalation hack of all versions of Windows including Windows 7.
The exploit takes advantage of a bug in the Windows implementation of the ‘virtual DOS machine’ used to run legacy 16-bit programs. The exploit can be avoided by turning the VDM ‘feature’ off but the danger of course is that enough Windows lusers won’t know about the bug and/or bother turning the ‘feature’ off.
16-bit applications need BIOS support; the Windows kernel supports virtual BIOS interrupts in its ‘Virtual-8086′ mode monitor code. The code is implemented in two stages. The #GP trap handler transitions to the second stage when CS:EIP faults with specific ‘magic’ values.
The transition requires (subsequent to authentication) restoring the context and the call stack from the faulting trap frame. But the authentication process is flawed, relying as it does on three incorrect assumptions.
- Setting up a VDM context requires SeTcbPrivilege.The barrier to getting a VDM context can be subverted by requesting the NT VDM subsystem and then using CreateRemoteThread() to run code in the context of the VDM subsystem. The VDM subsystem already has the necessary flag set.
- Ring 3 (unprivileged) code cannot install arbitrary code segment selectors.Using the two least significant bits of CS/SS to calculate the privilege of a task doesn’t work when it comes to Virtual-8086 mode. The 20-bit addressing (by adding CS << 4 to the 16-bit IP) is also used to map onto the protected linear Virtual-8086 address space. If CS can be set to an arbitrary value, then the privilege calculation can be circumvented.
- Ring 3 (unprivileged) code cannot forge a trap frame.Returns to user mode are through IRET. An invalid context can cause IRET to fail pre-commit, which in turn forges a trap frame. And even with address randomisation it’s trivial to use NtQuerySystemInformation() to obtain the address of the second stage BIOS handler.
Affected Systems
This bug dates back 17 years and affects all systems released since 27 July 1993 – Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, and Windows 7. See the links below for further details.
See Also
MITRE: CVE-2010-0232
Windows plagued by 17-year-old privilege escalation bug
NEOPHASIS: Trap Handler Allows Users to Switch Kernel Stack
SCADA Security Presentation
by Derek on Nov.08, 2009, under SCADA
This is a presentation I gave on SCADA security some time ago. It was originally set for about 2 hrs, although I broke it into 2 halves so if time permitted (or the partisipants wanted more inforamation), the backend of the presentation has many more areas and guidence relaing to SCADA, devices, environment security, etc.
I defined the following outcomes for the presentation:
- Broaden the awareness and necessity of security within the SCADA environment.
- Understanding of business role in the governance/risk identification process.
- Heighten the understanding of technology risks.
I hope people find the material interesting and useful.
Hacking SCADA/SAS Systems Used Techniques, Known Incidents and Possible Mitigations
by Derek on Nov.05, 2009, under SCADA
I have been working in the SCADA engineering, network design, project governance and security area for lots of years.
As a result I have many documents and techniques I will be sharing here. This is the first of many documents which I hope others will find informative and help others to understand and shape their approach to these environments.
Next Generation SCADA Security: Best Practices and Client Puzzles
by Derek on Nov.05, 2009, under SCADA
A cool document I thought I would share. It shows some good understanding and presents some good ideas.
SCADA General Audit Questions
by Derek on Nov.05, 2009, under SCADA
General Questions
- How can users gain access to the SCADA application?
- Objective to consolidate access to all information sources – i.e. to make access available to all users via a single interface
- Are any RAS modems utilised within the SCADA environment?
- Is the RAS call back feature utilised?
- Is the mandatory RAS encryption feature used?
- Are users allowed multiple attempts at authentication on the RAS?
- Has the RAS auditing feature been enabled?
- How is access between the business / corporate network and SCADA network controlled?
- How is the administrator password controlled?
- How is vendor access to the SCADA network controlled – i.e. password changes after contract has been completed?
- Are SLA’s for outsourced support agreements reviewed on a periodic basis?
- Are critical components of the SCADA Network supported by a UPS and are these batteries tested on a regular basis to ensure that they are reliable?
- What capacity management and monitoring of critical SCADA network systems is performed (i.e. CPU utilisation and hard disk drive space)?
- Are legal captions utilised during the login process to the SCADA application and associated infrastructure / devices?
- Has an intrusion detection system (IDS) been deployed within the SCADA environment?
- Has security been a focus within the development and deployment of the SCADA network?
- Is there additional staff screenings performed when staff are hired to work within the SCADA environment (inclusive of vendors etc)?
Policies & Procedures
- Is there a defined security strategy for the SCADA environment?
- Who is responsible / accountable for security management within SCADA environment? Has the ownership of this responsibility been clearly defined and/or stated in any documentation?
- Are there any periodic security reviews of the SCADA network performed?
- What procedures are in place to handle the disposal of SCADA network media and devices? Additionally, is there a process in place for the disposal of confidential information / documentation?
- Are there any policies or procedures covering the introduction of new devices to the SCADA environment?
- What formal change control procedures exist for the SCADA environment?
- Does a formal disaster recovery plan exist for the SCADA environment?
- Does a formal business continuity plan exist for the SCADA environment?
- Do physical and logical security standards differ significantly between SCADA sites?
- Has a standard operating environment (SOE) minimum baseline standard been developed for systems being introduced into the SCADA environment?
- What security logs are maintained for critical computer equipment and how often are the logs reviewed?
- Who is responsible for the reviewing of security logs?
- Has access to event logs been restricted?
- Upon commencement of employment, are users provided with IT security information as part of the induction process? Additionally, are users provided with further information on security issues on a periodic basis?
- What procedures exist to monitor dial-in access?
- Is there a formally defined backup and recovery procedure?
- Are encryption techniques and/or passwords applied to backup tapes?
Physical Access
- How is physical access to SCADA terminals controlled?
- Are SCADA control rooms segregated from other rooms?
- What building security exists at remote sites to prevent unauthorised access?
- What authentication methods are used at remote sites to allow access – i.e. swipe cards?
- Are external windows at remotes sites barred?
- What alarm systems have been employed at remote sites?
Network Security
- Have all deployed routers been configured to ensure the filtering of communications that are unauthorised or not required?
- What traffic control and monitoring capabilities have been deployed – i.e. all communication travels to a central point before traversing further on the network.
- How are dial-in facilities to the SCADA environment secured?
- How is suspicious or unusual activity on the SCADA WAN detected?
- What firewall configurations have been set up to segregate the SCADA WAN from the United Water corporate network?
- Are all key filtering devices on the network (such as routers and firewalls) configured to log all attempts to access the network? If so are they reviewed on a regular basis?
- Have the auditing features of all routers and firewalls been enabled?
- Has access to event logs been restricted?
- How is the management of patches / hot fixes controlled in regards to firewalls and routers?
- What backup and recovery measures are in place for network resources – firewalls and routers?
- Has SNMP been implemented on core infrastructure?
- Has any wireless equipment been deployed within the SCADA environment – has this been configured to a secure state?
- Are all default passwords removed from SCADA devices after implementation?
- Does a development environment exist to test changes prior to deployment into the SCADA network production environment?
Workstation Security
- What operating systems (version) are installed on SCADA terminals?
- Have operating system level passwords been activated on all SCADA terminals?
- Do passwords have an indefinite expiry date?
- What file and directory permission controls have been implemented on SCADA terminals to restrict unauthorised access by general users?
- What logs are generated at the operating system level?
- Has access to event logs been restricted?
- What tools and services at the operating system level have been restricted for general users?
- Who is responsible for patch management of SCADA terminals?
- Has an audit feature been enabled for all SCADA terminals?
- Are default services available with the operating system restricted?
- Is virus protection implemented? Is this software manually or automatically updated?
- Are shares enabled on SCADA terminals / workstations?
- Are SCADA terminals backed up on a regular basis?
- Is registry auditing of SCADA terminals performed?
- Are user reviews and associated access rights performed on a regular basis?
SCADA Application Security
- What are the username and password requirements of SCADA application?
- Are session time out features activated?
- Are complex passwords enforced to access the SCADA application?
- Are user reviews and associated access rights performed on a regular basis?
System Penetration Testing
- Internal penetration testing
- External penetration testing
- Password strength tests
Changes to the SCADA network
- Please provide / list all potential changes being considered to the SCADA network.
SCADA considerations
by Derek on Nov.04, 2009, under SCADA
Procedures
- Corporate Information Protection
- Security Management
- Information Classification
- Physical (and Environmental) Security
- Personnel Security
- Security Awareness Training
- Security Incident Response
- Security Monitoring
- Network Security
- PC/Workstation Security
- Support and Operational Security Related
- Encryption and Information Confidentiality
- Authorization Controls
- Identification and Authentication Mechanisms
- Systems Life Cycle Security
- Business Continuity Planning
- Media Security
- Third Party Services
Typical concerns and points discussion:
- Inbound and out Bound FTP
- Suggest use of DMZ
- Suggest use of Secure FTP
- Suggest use of restricted secure IP addresses / tunnelling
- Suggest use of private feeds
Modem issues used with dial in services
- No dial back
- No Authentication
- No Secure ID
- Possibly automated scripts used, so hard coded usernames and passwords used.
- Internet sharing may be turned on, allowing routing via workstations.
Increased data security and integrity considerations
- Data backups
- System redundancy
- Site and content filtering
- Virus protection
- Standard system procurement (discounts and spares)
- Network and services redundancy
- Network monitoring
- Service availability monitoring
- Internal controls
- Vendor / external service supplier
- Capacity management
- Change management system
- Asset management system
- Telecommunication and telephony bulk cost discounting
- Etc.
Use and support for corporate application considerations
- Intranet
- Internet
- Corporate virus protection
- Asset management
- Change management
- Project management
- Performance / capacity management
- Reduction of Cost
- Use of corporate applications
- Reduction of manual processes
Other things to keep in mind:
- SCADA monitoring system must be isolated from network errors and systems events. This will prevent SCADA operational systems being effected by network or corporate system issues / outages.
- Review Network topology to ensure internal and external vulnerabilities are not currently being and cannot be abused.
- Review of router configurations
- Use of change management system
- Review remote dial in systems
- Firewall SCADA systems off from corporate applications
- Uncontrolled networks and systems within the SCADA environment will compromise the corporate environments integrity and security.
- Determine if systems used within SCADA are built to a standard operating environment.
Trojan software has been found in ATMs located in Eastern Europe
by Derek on Jun.25, 2009, under Banking and EFTPoS
This is Great, I want one of these cards and a list of ATM’s.
http://www.sophos.com/blogs/gc/g/2009/03/18/details-diebold-atm-trojan-horse-case/
http://www.theregister.co.uk/2009/03/17/trojan_targets_diebold_atms/
From the Security Now Podcast http://www.grc.com/sn/sn-200.htm
| Steve: It’s like, oh, goodness, yeah. It’s quite something. So the big news, though, I just sort of had to kind of smile because I told all of our listeners this was going to happen. I said just wait, this is a bad idea, we’re going to see how bad it is. Trojans have – Trojan software has been found in ATMs located in Eastern Europe. |
| Leo: Oh. Oh. |
| Steve: From many different vendors. |
| Leo: Oh, dear. |
| Steve: But what one thing do all of the trojan-infected ATMs have in common, Leo? |
| Leo: Let me guess. |
| Steve: Mm-hmm. |
| Leo: Windows? |
| Steve: Windows XP. |
| Leo: Ai yi yi. |
| Steve: The LSASS service is the manager of protected content in the system. It’s not quite the right acronym. I can’t think of what it is right now. But it’s like the main security service. And fake ones have been found in the Windows directory. The LSASS EXE normally lives in the Windows System32 directory. They were written in Borland’s Delphi. |
| Leo: You’re kidding. |
| Steve: No. |
| Leo: Well, that’s kind of sophisticated for a hacker. Wow. |
| Steve: And it’s considered, I mean, it’s commercial-grade code. It’s good code. |
| Leo: Oh, boy. |
| Steve: These are not remote installation Trojans. It’s believed that somebody had to have access to the machines. |
| Leo: Oh, even worse. |
| Steve: But they have special credit cards. When they swipe the special credit card in the infected machine, it accesses the trojan software, which among other things allows them to dump out all the cash from the machine. But in the meantime it’s logging all of the users’ information and PINs, which it’s able to dump out encrypted with DES encryption from the printer, from the ATM printer in the front of the machine. |
| Leo: Wow. |
| Steve: So the – and anyway, so it’s interesting to me. Again, it’s, you know, people defended the idea of implementing these things that I contend should never have been written in Windows. They say, well, but it’s easier to write them. And it’s like, yes. |
DUKPT Overview and Transaction notes
by Derek on Jun.22, 2009, under Banking and EFTPoS
Hi,
Recently I a questing was asked on another post relating to DUKPT. Given I have lots of material on the subject I thought I would create this thread. Link
I will come back at some stage and expand on this when I get time.
Transaction Process narrative:
The diagram describes a mobile terminal/ATM is described using the a AS2805 (’2805′) message type and 3DES DUKPT and dual direction auth SSL from the terminal to the aquirer (transaction switch).
A good explanation of DUKPT can also be found at Wikipedia.

DUKPT transaction flow - terminal to bank
Background notes:
- The terminal or ATM firstly encrypts the user entered pin (may be a unique DUKPT key or static, depending on the design and banks involved) prior to incorporating it into the AS 2805 transaction message.
- the message is then encrypted again using the DUKPT key which has been established through the merchant logon process within the aquirer Host Security Module (HSM) i.e. the user entered pin is encrypted separately and encapsulated within the DUKPT encrypted 2805 message to provide full message encryption.
- In the diagram a separate dual authenticating SSL session is also used between the terminal/ATM and the aquirers infrastructure. This allowing the transaction including the pin to traverse the external Wired/GPRS/LAN within 2 primary independent layers of encryption, with a 3rd protecting the PIN.
- When the transaction enters the aquirer environment the message encapsulation layer provided by SSL is removed. This leaving the DUKPT’ed 2805 message which also encapsulates the separately encrypted PIN.
- This encrypted message is passed to the aquirer switch engine through to the aquirer’s HSM for decryption of the 2805 message excluding the user entered pin.
- This is when transactional information necessary for aquirer’s merchant reporting (truncated card number, transaction amount, transaction type, etc.) and fraud management data is collected.
- The aquirer switch then passes the encrypted PIN to the aquirer HSM requesting that the PIN be decrypted using the aquirer’s PIN encryption and translated to the next banks (Bank 1)Â PIN Encryption Key (Pin translation only occurs within the aquirer HSM) This is then sent back to the aquirer Switch engine as the Bank 1 encrypted PIN.
- The aquirer switch engine then send the decrypted 2805 message with the newly encrypted PIN back to aquirer HSM to be encrypted with the Bank 1 MAC key.
- The resultant Bank 1 key encrypted message is then sent to Bank 1 for processing and/or passing to the card issuer (using a similar process as described above).
- When the result is received back from the issuing bank it is encrypted with the Bank 1 MAC key (the pin will not be present in the result message).
- This is then decrypted by the aquirer HSM, the transaction fate result stored into the aquirer merchant reporting system and the transaction fate re-encrypted with the original aquirer DUKPT key (should be different per terminal/merchant instance) and the result sent back to the terminal through the original established SSL encrypted terminal connection.
The aquirer may terminate the the SSL connection on a hardware device such as a CISCO Content Service Switch (CSS), or equivalent instead of the design described in the diagram which terminates onto a SSL session server/gateway (Possibly including a Certificate Authority) or on the aquirer transaction switch.
When PIN blocks are received by the aquirer processing centre, the PIN encryption is translated from the terminal key to the Local Master Key (LMK) by the Host Security Modules (HSM).
When the message is sent on the upstream bank interchange link to the issuer or gateway , the aquirer HSM translates the encrypted PIN block from the LMK to the Zone Master Key (ZMK) of the aquirer interchange link. The PIN block is always encrypted using DEA3 (3DES) whenever outside of the Terminal or ATM.

SQL Injection Cheat Sheets
by Derek on Dec.26, 2008, under Security
From Pentestmonkey.net, this is a great list of SQL Injection cheat sheets.
Some more Links:
SQL Injection Attacks by Example
Pangolin – Automatic SQL Injection Tool
Secure Application Development links
by Derek on Oct.14, 2008, under Security
Hi,
I have been putting some secure application development documents together recently and have found some good general tutorials and guidelines which I thought I would post here.
Best Practices
- The Ten Most Critical Web Application Security Vulnerabilities, 2004 Update, The Open Web Application Security Project. URL: http://www.owasp.org/documentation/topten
- A Guide to Building Secure Web Applications, The Open Web Application Security Project. URL: http://www.owasp.org/documentation/guide
- Improving Web Application Security: Threats and Countermeasures, Microsoft MSDN. URL: http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnnetsec/html/ThreatCounter.asp
- Authentication in ASP.NET: .NET Security Guidance, Microsoft MSDN. URL: http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnbda/html/authaspdotnet.asp
- Session Fixation Vulnerability in Web-Based Applications, ACROS Security. http://www.acros.si/papers/session_fixation.pdf
- Writing Secure Code, Michael Howard and David LeBlanc, Microsoft Press.
- Threat Modelling, Window Snyder, Microsoft Press.
- 10 Things You Shouldn’t Do with SQL Server (Data Access Developer “Don’ts”) http://www.dotnetjunkies.ddj.com/Article/86F0988E-FED4-414F-BA2E-D01D953C11BE.dcik
- Ten dos and don’ts for secure coding http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1172049,00.html
- Cross Site Scripting http://www.cert.org/archive/pdf/cross_site_scripting.pdf http://www.acunetix.com/websitesecurity/cross-site-scripting.htm
- The Cross Site Scripting (XSS) FAQ http://www.cgisecurity.com/articles/xss-faq.shtml
- XSS (Cross Site Scripting) Cheat Sheet http://ha.ckers.org/xss.html
- SQL Injection Cheat Sheet http://ha.ckers.org/blog/20070315/sql-injection-cheat-sheet/
Other Resources
- AusCERT is the national Computer Emergency Response Team for Australia http://www.auscert.org.au/
- SANS Institute http://www.sans.org/free_resources.php
EFT Syetms and Device Considerations
by Derek on Aug.05, 2008, under Banking and EFTPoS, Security
EFT devices and systems differ depending on hardware vendor, country and bank / payment aggregator.
Below is a list of things you may like to consider. This list is off the top of my head so it is probably not complete.
Looking at the products and relationships us usually a good start.
Things to consider:
- Card skimming methods
- Some EFT POS devices restrict the connection of a skimmer
- Review levels of associated fraud
- Review devices and EFT methods
- Review terminal identification (merchant and customer)
- Manual processing. (internal and external)
- eCommerce products
- PC based software
- Dedicated server services (Nobil, etc.)
- Web based engine (Custom objects, Web pop-ups, etc)
- Authorisation / identification methods (Merchant and customer)
- TCPIP session hijacking / session spoofing
- Direct Debit as well as Credit Cards.
- Swift (methods and controls)
- Telegraphic transfer (methods and controls)
- Payment aggregator relationships (eg. Payment Tech, manual processing, cheque scanning, etc.)
- Internet banking facilities (attack / penetration, Certificate registration / management, ISP SLA’s, etc.)
- Implementation of Smart Card and / or alternative customer recognition devices.
- Outsourcing and associated risks / service level agreements
- Payment processing
- Payment clearance
- Payment switching
- Reporting (segregation of merchant / customers / aggregators / partners / local / international)
- Fraud detection and reporting
- 3rd party acquiring risks
- Single merchant ID many businesses
- Allows moneys to be laundered if the payment aggregator does not place appropriate controls on the merchant.
- Encryption used
- Internet / trusted partner / inter-bank / extranet
- Private and / or public certificates
- Single use certificates
- Client side certificates
- Remittance advice processes and controls.
- EFT disaster recovery and manual fall back procedures (associated security and reconciliation risks)
- Trusted partner relationships, SLA’s, liabilities and risks.
- EFT regulatory / legal requirements (inter-bank and government)
- Refund processing / authorisation. (policies, procedures, controls, etc.)
- CVV, CVV-2 / CVC-2 processing and management. (http://www.atlanticpayment.com/CVV.htm)
- Fraud detection mechanism (neural networks, inter-bank / department customer checks, etc)
- Supported card schemes (AMEX/Visa/Mastercard/Discover/etc )
- Review EFT floor limits (corporate and SME merchants)
- Review the ability to withhold merchant settlement until the presence of fraud has been determined.
- Review customer identification details. Such as (This varies around the world depending on local regulations / privacy laws)
- Review real-time and batched processing methods and controls (sequence numbers, access to raw data, etc.)
- Review processing with and without expiry dates. (exception controls and policies)
- Review exception / fraud reports.
- Review payment store and forward policies and procedures.
- Review Pre-Auth and Completion controls.
- Token based payment (eCash, etc)
- Merchant reconciliation, reporting methods and controls (paper, Internet, email, PDF, Fax, etc.) and associated security.
- Real time gross settlement policies, procedures and controls. (IT and amounts)
- Card issuing policies and procedures. (customer ID checks, etc)
- Banking infrastructure (ingress / egress) controls and security. (Web, partner, payment switches, outsourced infrastructure, monitoring / reporting.)
- Use of Internet technologies for inter-bank transfers and remote equipment.
- Physical security and controls of devices, ATM,s, line encryptors, etc.
Internet Banking Security Assessment Considerations
by Derek on Aug.05, 2008, under Banking and EFTPoS, Security
I was asked some time ago what sort of things may be considered when looking at Internet Banking.
Below is a list of things which could be considered. It was just a brain dump and as such may not be complete.
Don’t underestimate the value of standard for your infrastructure, website configuration, database engine configuration/architecture,staging environment and development/QA environments.
Some thoughts:
- Many don’t lock accounts after X failed logins, this is normally done for good customer service, but leaves the system vulnerable.
- And all the other things expected for a remote login session (forced password changes, aging, etc))
- Tools such as Brutus may be use to brute force hack authenticated sessions.
- Many allow session sequence numbers to be incremented, allowing an authenticated user to view other customer session.
- These may be server side, client side, cookie based, etc.
- Get someone to check the development methodologies and the code being used.
- Database query strings can be placed into test entry fields, allowing table dumps to browser.
- Check all pages served are secure and contain user authentication flags.
- Customer data may not be segregated, this needs to be checked.
- Customer data should not reside on the Web Server.
- Authentication databases / system data should not reside on the webserver.
- The databases should reside on a private/semi-private network.
- A different segment to the main banking system.
- Webserver should be dual homed or equivalent (some VLAN techniques are good)
- Separate private and public network cards, monitoring/backup/administration
- Infrastructure set-up to explicitly deny inbound/outbound ports, private IP & monitoring escaping from the network.
- At all data segregation points ensure rules are in place which appreciates the traffic though that point.
- All customer data where possible should be sourced from a secure back-end database.
- This may be a staging environment. i.e. no the main banking system.
- This usually allows for transactions to appear real time to the customer.
- Many transactions may be batched in reality. (internal or external to the bank)
- Ensure suitable rules have been set-up on firewalls.
- There should be inbound and outbound rules on firewalls and filtering routers.
- Don’t allow any infrastructure on the front end to allow remote administrative connections. (telnet, etc.)
- Use the serial console port to connect to a server or back-end terminal server.
- Look for the segregation / staging of online customer content from main banking systems
- Ensure that a separate development / QA / production environment system and suitable process is in place.
- Services not used by the system are active
- These should be disabled.
- Port scan of the supporting infrastructure (routers /switches) and server(s).
- Investigate the reasons for all open ports.
- Don’t use the main gateway for trusted partner access (clearing / RAS / etc.)
- Do all that standard IIS checks and NT checks (Sample scripts, change management, patching methodologies, etc.)
- Ensure denial of service precaution have been taken into account for all infrastructure and server equipment.
- Check the adequacy of the escalation procedures used.
- Look for real-time monitoring and alerting.
- Look for responsibility matrix.
- Look for ownership of issues.
- Consider upstream carrier(s) vulnerability (denial of service, IP spoofing, DNS hacking, etc)
- Consider social engineering of customer, administrative, partner accounts / systems / infrastructure.
- Helpdesk procedures and policies and/or alternate technologies (Caller ID, Gateway IP, etc.).
- Use dynamic passwords where possible (SecureID, TACACS, etc.).
- Use encrypted tunnelling where needed (IPSec, Firewall 1, etc)
- Consider looking at other customer authentication methods to enhance existing methods.
- Digital cert, IP address locked to account, etc.
- Consider use of CVV or CVN for bank issued cards.
- Consider how passwords are distributed /changed for customers.
- Plain text email, telephone, etc.
- Can passwords be changed online?
- Is additional authentication used between sections of the services once authenticated?
- Consider what the customer has access to once authenticated.
- Look at SWIFT, RTGS, inter-bank transfers, access to credit cards, etc.
- If an attacker does get in, what can the do?
- Use techniques to ensure pages, customer details are not cached at ISP, or client system.
- These are flags that can be set within pages.
- Normally SSL is cached, but some proxy vendors have been playing with techniques to do so.
- Caching of SSL pages on the client system can be turned on on some browsers.
- May banks use a Java (or similar) applet for all customer interaction, restricting all caching issues.
- Ensure paper based and on-line liability clauses are available are address all effected areas.
- Ensure within the customer sign-up process banking liability is reduced.
- I’ve seen statements like “use this system at your own risk, responsibility for any liability or claim will NOT……”
- Not very customer focused, but that’s what their legal department recommended.
All of the above can effect the security and/or operation of an on-line banking system.
Other things to consider:
- External development and support of the application.
- Ownership and management of the hardware/applications
- Publishing points for new content (internal/private/trusted network or Internet)
- Topology of front end. i.e. Security Architecture document should be in place and managed appropriately.
- Are limited AP tests performed whenever changes are made to the environment? i.e. integrated AP into Change management process.
- Database access. Is it buffered or is it live to the core banking systems.
- What facilities are provided? Direct debit + Credit Card + SWIFT + ……. Consider different scenarios for your attack depending on the feature.
- What other services are shared within the network segment that the Internet Banking service is running. Can this be used to compromise the Internet Banking site. eg. different support/business/development organisations with differing security strategies/profiles.
- Consider all external supporting services within you AP. Look at internal/external DNS poisoning opportunities, mail relay, etc. What IPS’s do they use has the ISP any opportunity to access systems or supporting services which may affect Internet Banking.
- Depending on the size of the Bank, many organisation do not use the same support groups for infrastructure and the application. As a result external connections to the infrastructure may be provided for an external support organisation to administer the infrastructure.
- Look at the business and user authentication methods and paths (client side certs, secure ID, SMART Card, etc). Consider two factor authentication and modern user identification methods. eg. what is your favourite food in addition to normal usernames and passwords. Do system administration staff use dynamic passwords (secureID, etc)?
- See if the Internet Banking application sends email to users which may contain interesting information.
- Better access to the application can generally be gained after access to the system. i.e. get an legitimate account on the system. I have found that some sample/administration screens have been restricted to authenticated users only.
- Consider social engineering the Help desk to have an account password reset.
Mobile Banking Security and Risk Assessment Considerations
by Derek on Aug.05, 2008, under Banking and EFTPoS, Security
When considering Mobile Banking security and the associated risk, the an assessment approach depends greatly on the solution being created or provided.
Generally the approach is based on layered standards supporting and surrounding the technologies and techniques used.
Here are some things to consider.
Security assessments generally focuses on two main things.
1/ Sensitivity of the data
What is being sent. eg. Pin, credit card numbers, account balance, home address, bank account number, etc.
Data may not be sensitive to the bank, but may be considered by the client as sensitive.
etc……….
2/ Opportunity to access the data.
What medium is being used?
Is it easy to hack?
What encryption is being used?
Are all data paths secure (client and back end)?
Is there a 3rd party involved in the switching of the transactions?
etc………
Things to consider:
- Pin resets sent via SMS to client, should not be used as the only method of accessing accounts. An additional client specific (possibly static) pass word/phrase should be used in addition to a dynamically generated pin. SMS can be sniffed (depending on mode and location).
- If WAP is used, are all devices capable of encryption? If devices are not capable of encryption, do we deny access to these devices? If client side JAVA or intelligent device (win CE, etc), ensure this can not be compromised by a Trojan’s and other key logging techniques.
- Has the organisation considered client side certificates to verify the device prior to transactions being accepted? Consider multiple device and user identification methods (very solution dependant).
- Most mobile POS terminals encrypt the client entered Pin number, but do not encrypt everything within the transaction. If the transmission medium is compromised, we should consider if the encryption can be cracked and if unencrypted data is sensitive. Consider additional data encryption encapsulation i.e. use of all of message encryption (SSL, IPSEC) or use a terminal that utilises Derived Unique Key Per Transaction (DUKPT).
- Many banking applications have been affected by typical hacks such as session hijacking, SQL injection, non random session keys (client side and server side), etc… These typical hacks should be considered in your Secure SDLC and QA Processes once you are aware of the technology used and/or deployed.
- PBX systems and cabling distribution frames can have devices connected to collect transactions. Wireless devices are now being connected to these systems. The attacker sits in their car in the car park outside. This is often done in super markets.
- Wireless transaction gateways if not encrypted are easily collected by anyone within wireless range. 802.11 and other wireless/infra-red mediums are being used (assess the technology and medium being used).
- Has the organisation considered dynamic keys for mobile users? There are some very low cost SecureID type solutions available today, but customers need to have these devices on them when they want to do a transaction.
Cisco Command Cheat Sheet
by Derek on Jul.04, 2008, under Infrastructure
I found a list of useful Cisco commands which I though I would post here.
ROUTER COMMANDS :
- Config# terminal editing – allows for enhanced editing commands
- Config# terminal monitor – shows output on telnet session
- Config# terminal ip netmask-format hexadecimal|bit-count|decimal – changes the format of subnet masks
HOST NAME:
- Config# hostname ROUTER_NAME
BANNER:
- Config# banner motd # TYPE MESSAGE HERE # – # can be substituted for any character, must start and finish the message
DESCRIPTIONS:
- Config# description THIS IS THE SOUTH ROUTER – can be entered at the Config-if level
CLOCK:
- Config# clock timezone Central -6
# clock set hh:mm:ss dd month yyyy – Example: clock set 14:13:00 25 August 2003
CHANGING THE REGISTER:
- Config# config-register 0×2100 – ROM Monitor Mode
- Config# config-register 0×2101 – ROM boot
- Config# config-register 0×2102 – Boot from NVRAM
BOOT SYSTEM:
- Config# boot system tftp FILENAME SERVER_IP – Example: boot system tftp 2600_ios.bin 192.168.14.2
- Config# boot system ROM
- Config# boot system flash – Then – Config# reload
CDP:
- Config# cdp run – Turns CDP on
- Config# cdp holdtime 180 – Sets the time that a device remains. Default is 180
- Config# cdp timer 30 – Sets the update timer.The default is 60
- Config# int Ethernet 0
- Config-if# cdp enable – Enables cdp on the interface
- Config-if# no cdp enable – Disables CDP on the interface
- Config# no cdp run – Turns CDP off
HOST TABLE:
- Config# ip host ROUTER_NAME INT_Address – Example: ip host lab-a 192.168.5.1
-or- - Config# ip host RTR_NAME INT_ADD1 INT_ADD2 INT_ADD3 – Example: ip host lab-a 192.168.5.1 203.23.4.2 199.2.3.2 – (for e0, s0, s1)
DOMAIN NAME SERVICES:
- Config# ip domain-lookup – Tell router to lookup domain names
- Config# ip name-server 122.22.2.2 – Location of DNS server
- Config# ip domain-name cisco.com – Domain to append to end of names
CLEARING COUNTERS:
- # clear interface Ethernet 0 – Clears counters on the specified interface
- # clear counters – Clears all interface counters
- # clear cdp counters – Clears CDP counters
STATIC ROUTES:
- Config# ip route Net_Add SN_Mask Next_Hop_Add – Example: ip route 192.168.15.0 255.255.255.0 205.5.5.2
- Config# ip route 0.0.0.0 0.0.0.0 Next_Hop_Add – Default route
-or- - Config# ip default-network Net_Add – Gateway LAN network
IP ROUTING:
- Config# ip routing – Enabled by default
- Config# router rip
-or- - Config# router igrp 100
- Config# interface Ethernet 0
- Config-if# ip address 122.2.3.2 255.255.255.0
- Config-if# no shutdown
IPX ROUTING:
- Config# ipx routing
- Config# interface Ethernet 0
- Config# ipx maximum-paths 2 – Maximum equal metric paths used
- Config-if# ipx network 222 encapsulation sap – Also Novell-Ether, SNAP, ARPA on Ethernet. Encapsulation HDLC on serial
- Config-if# no shutdown
ACCESS LISTS:
| IP Standard | 1-99 |
| IP Extended | 100-199 |
| IPX Standard | 800-899 |
| IPX Extended | 900-999 |
| IPX SAP Filters | 1000-1099 |
IP STANDARD:
- Config# access-list 10 permit 133.2.2.0 0.0.0.255 – allow all src ip’s on network 133.2.2.0
-or- - Config# access-list 10 permit host 133.2.2.2 – specifies a specific host
-or- - Config# access-list 10 permit any – allows any address
- Config# int Ethernet 0
- Config-if# ip access-group 10 in – also available: out
IP EXTENDED:
- Config# access-list 101 permit tcp 133.12.0.0 0.0.255.255 122.3.2.0 0.0.0.255 eq telnet
-protocols: tcp, udp, icmp, ip (no sockets then), among others
-source then destination address
-eq, gt, lt for comparison
-sockets can be numeric or name (23 or telnet, 21 or ftp, etc)
-or- - Config# access-list 101 deny tcp any host 133.2.23.3 eq www
-or-
- Config# access-list 101 permit ip any any
- Config# interface Ethernet 0
- Config-if# ip access-group 101 outIPX STANDARD:
- Config# access-list 801 permit 233 AA3 – source network/host then destination network/host
-or-
- Config# access-list 801 permit -1 -1 – “-1″ is the same as “any” with network/host addresses
- Config# interface Ethernet 0
- Config-if# ipx access-group 801 outIPX EXTENDED:
- Config# access-list 901 permit sap 4AA all 4BB all
– Permit protocol src_add socket dest_add socket
-”all” includes all sockets, or can use socket numbers
-or-
- Config# access-list 901 permit any any all any all
-Permits any protocol with any address on any socket to go anywhere - Config# interface Ethernet 0
- Config-if# ipx access-group 901 inIPX SAP FILTER:
- Config# access-list 1000 permit 4aa 3 – “3″ is the service type
-or-
- Config# access-list 1000 permit 4aa 0 – service type of “0″ matches all services
- Config# interface Ethernet 0
- Config-if# ipx input-sap-filter 1000 – filter applied to incoming packets
-or-
- Config-if# ipx output-sap-filter 1000 – filter applied to outgoing packets
NAMED ACCESS LISTS:
- Config# ip access-list standard LISTNAME
-can be ip or ipx, standard or extended
-followed by the permit or deny list - Config# permit any
- Config-if# ip access-group LISTNAME in
-use the list name instead of a list number
-allows for a larger amount of access-lists
PPP SETUP:
- Config-if# encapsulation ppp
- Config-if# ppp authentication chap pap
-order in which they will be used
-only attempted with the authentification listed
-if one fails, then connection is terminated - Config-if# exit
- Config# username Lab-b password 123456
-username is the router that will be connecting to this one
-only specified routers can connect
-or-
- Config-if# ppp chap hostname ROUTER
- Config-if# ppp chap password 123456
-if this is set on all routers, then any of them can connect to any other
-set same on all for easy configuration
ISDN SETUP:
- Config# isdn switch-type basic-5ess – determined by telecom
- Config# interface serial 0
- Config-if# isdn spid1 2705554564 – isdn “phonenumber” of line 1
- Config-if# isdn spid2 2705554565 – isdn “phonenumber” of line 2
- Config-if# encapsulation PPP – or HDLC, LAPD
DDR – 4 Steps to setting up ISDN with DDR Configure switch type
1. Config# isdn switch-type basic-5ess – can be done at interface config
2. Configure static routes
Config# ip route 123.4.35.0 255.255.255.0 192.3.5.5 – sends traffic destined for 123.4.35.0 to 192.3.5.5
Config# ip route 192.3.5.5 255.255.255.255 bri0 – specifies how to get to network 192.3.5.5 (through bri0)
3. Configure Interface
Config-if# ip address 192.3.5.5 255.255.255.0
Config-if# no shutdown
Config-if# encapsulation ppp
Config-if# dialer-group 1 – applies dialer-list to this interface
Config-if# dialer map ip 192.3.5.6 name Lab-b 5551212
connect to lab-b at 5551212 with ip 192.3.5.6 if there is interesting traffic
can also use “dialer string 5551212″ instead if there is only one router to connect to
4. Specify interesting traffic
Config# dialer-list 1 ip permit any
-or-
Config# dialer-list 1 ip list 101 – use the access-list 101 as the dialer list
5. Other Options
Config-if# hold-queue 75 – queue 75 packets before dialing
Config-if# dialer load-threshold 125 either
-load needed before second line is brought up
-”125″ is any number 1-255, where % load is x/255 (ie 125/255 is about 50%)
-can check by in, out, or either
Config-if# dialer idle-timeout 180
-determines how long to stay idle before terminating the session
-default is 120
FRAME RELAY SETUP:
- Config# interface serial 0
- Config-if# encapsulation frame-relay – cisco by default, can change to ietf
- Config-if# frame-relay lmi-type cisco – cisco by default, also ansi, q933a
- Config-if# bandwidth 56
- Config-if# interface serial 0.100 point-to-point – subinterface
- Config-if# ip address 122.1.1.1 255.255.255.0
- Config-if# frame-relay interface-dlci 100
-maps the dlci to the interface
-can add BROADCAST and/or IETF at the end - Config-if# interface serial 1.100 multipoint
- Config-if# no inverse-arp – turns IARP off; good to do
- Config-if# frame-relay map ip 122.1.1.2 48 ietf broadcast
-maps an IP to a dlci (48 in this case)
-required if IARP is turned off
-ietf and broadcast are optional - Config-if# frame-relay map ip 122.1.1.3 54 broadcast
SHOW COMMANDS
- Show access-lists – all access lists on the router
- Show cdp – cdp timer and holdtime frequency
- Show cdp entry * – same as next
- Show cdp neighbors detail – details of neighbor with ip add and ios version
- Show cdp neighbors – id, local interface, holdtime, capability, platform portid
- Show cdp interface – int’s running cdp and their encapsulation
- Show cdp traffic – cdp packets sent and received
- Show controllers serial 0 – DTE or DCE status
- Show dialer – number of times dialer string has been reached, other stats
- Show flash – files in flash
- Show frame-relay lmi – lmi stats
- Show frame-relay map – static and dynamic maps for PVC’s
- Show frame-relay pvc – pvc’s and dlci’s
- Show history – commands entered
- Show hosts – contents of host table
- Show int f0/26 – stats of f0/26
- Show interface Ethernet 0 – show stats of Ethernet 0
- Show ip – ip config of switch
- Show ip access-lists – ip access-lists on switch
- Show ip interface – ip config of interface
- Show ip protocols – routing protocols and timers
- Show ip route – Displays IP routing table
- Show ipx access-lists – same, only ipx
- Show ipx interfaces – RIP and SAP info being sent and received, IPX addresses
- Show ipx route – ipx routes in the table
- Show ipx servers – SAP table
- Show ipx traffic – RIP and SAP info
- Show isdn active – number with active status
- Show isdn status – shows if SPIDs are valid, if connected
- Show mac-address-table – contents of the dynamic table
- Show protocols – routed protocols and net_addresses of interfaces
- Show running-config – dram config file
- Show sessions – connections via telnet to remote device
- Show startup-config – nvram config file
- Show terminal – shows history size
- Show trunk a/b – trunk stat of port 26/27
- Show version – ios info, uptime, address of switch
- Show vlan – all configured vlan’s
- Show vlan-membership – vlan assignments
- Show vtp – vtp configs
CATALYST COMMANDS
For Native IOS – Not CatOS
SWITCH ADDRESS:
- Config# ip address 192.168.10.2 255.255.255.0
- Config# ip default-gateway 192.168.10.1DUPLEX MODE:
- Config# interface Ethernet 0/5 – “fastethernet” for 100 Mbps ports
- Config-if# duplex full – also, half | auto | full-flow-control
SWITCHING MODE:
- Config# switching-mode store-and-forward – also, fragment-free
MAC ADDRESS CONFIGS:
- Config# mac-address-table permanent aaab.000f.ffef e0/2 – only this mac will work on this port
- Config# mac-address-table restricted static aaab.000f.ffef e0/2 e0/3
-port 3 can only send data out port 2 with that mac
-very restrictive security - Config-if# port secure max-mac-count 5 – allows only 5 mac addresses mapped to this port
VLANS:
- Config# vlan 10 name FINANCE
- Config# interface Ethernet 0/3
- Config-if# vlan-membership static 10TRUNK LINKS:
- Config-if# trunk on – also, off | auto | desirable | nonegotiate
- Config-if# no trunk-vlan 2
-removes vlan 2 from the trunk port
-by default, all vlans are set on a trunk portCONFIGURING VTP:
- Config# delete vtp – should be done prior to adding to a network
- Config# vtp server – the default is server, also client and transparent
- Config# vtp domain Camp – name doesn’t matter, just so all switches use the same
- Config# vtp password 1234 – limited security
- Config# vtp pruning enable – limits vtp broadcasts to only switches affected
- Config# vtp pruning disableFLASH UPGRADE:
- Config# copy tftp://192.168.5.5/configname.ios opcode – “opcode” for ios upgrade, “nvram” for startup config
DELETE STARTUP CONFIG:
- Config# delete nvram
BGP:
- show ip bgp – Displays entries in the BGP routing table.
- show ip bgp injected-paths – Displays paths in the BGP routing table that were conditionally injected.
- show ip bgp neighbors – Displays information about the TCP and BGP connections to neighbors.
BGP Conditional Route Injection:
Step 1 Router(config)# router bgp as-number
-Â Places the router in router configuration mode, and configures the router to run a BGP process.
Step 2 Router(config-router)# bgp inject-map ORIGINATE exist-map LEARNED_PATH
-Â Configures the inject-map named ORIGINATE and the exist-map named LEARNED_PATH for conditional route injection.
Step 3 Router(config-router)# exit
-Exits router configuration mode, and enters global configuration mode.
Step 4 Router(config)# route-map LEARNED_PATH permit sequence-number
– Configures the route map named LEARNED_PATH.
Step 5 Router(config-route-map)# match ip address prefix-list ROUTE
– Specifies the aggregate route to which a more specific route will be injected.
Step 6 Router(config-route-map# match ip route-source prefix-list ROUTE_SOURCE
– Configures the prefix list named ROUTE_SOURCE to redistribute the source of the route.
Note The route source is the neighbor address that is configured with the neighbor remote-as command. The tracked prefix must come from this neighbor in order for conditional route injection to occur.
Step 7 Router(config-route-map)# exit
– Exits route-map configuration mode, and enters global configuration mode.
Step 8 Router(config)# route-map ORIGINATE permit 10
– Configures the route map named ORIGINATE.
Step 9 Router(config-route-map)# set ip address prefix-list ORIGINATED_ROUTES
– Specifies the routes to be injected.
Step 10 Router(config-route-map)# set community community-attribute additive
– Configures the community attribute of the injected routes.
Step 11 Router(config-route-map)# exit
– Exits route-map configuration mode, and enters global configuration mode.
Step 12 Router(config)# ip prefix-list ROUTE permit 10.1.1.0/24
– Configures the prefix list named ROUTE to permit routes from network 10.1.1.0/24.
Step 13 Router(config)# ip prefix-list ORIGINATED_ROUTES permit 10.1.1.0/25
– Configures the prefix list named ORIGINATED_ROUTES to permit routes from network 10.1.1.0/25.
Step 14 Router(config)# ip prefix-list ORIGINATED_ROUTES permit 10.1.1.128/25
– Configures the prefix list named ORIGINATED_ROUTES to permit routes from network 10.1.1.0/25.
Step 15 Router(config)# ip prefix-list ROUTE_SOURCE permit 10.2.1.1/32
– Configures the prefix list named ROUTE_SOURCE to permit routes from network 10.2.1.1/32.
Note The route source prefix list must be configured with a /32 mask in order for conditional route injection to occur.
DHCP
Step 1 (config)# interface ethernet0/0
(config-if)#ip address 1.1.1.1 255.0.0.0
(config-if)# no shutdown
– Configure an IP address on the router’s Ethernet port, and bring up the interface. (On an existing router, you would have already done this.)
Step 2 (config)# ip dhcp pool mypool
– Create a DHCP IP address pool for the IP addresses you want to use.
Step 3 (dhcp-config)# network 1.1.1.0 /8
– Specify the network and subnet for the addresses you want to use from the pool.
Step 4 (dhcp-config)#domain-name mydomain.com
– Specify the DNS domain name for the clients.
Step 5 (dhcp-config)#dns-server 1.1.1.10 1.1.1.11
– Specify the primary and secondary DNS servers.
Step 6 (dhcp-config)#default-router 1.1.1.1
– Specify the default router (i.e., default gateway).
Step 7 (dhcp-config)#lease 7
– Specify the lease duration for the addresses you’re using from the pool.
Step 8 (dhcp-config)#exit
– Exit Pool Configuration Mode.
This takes you back to the global configuration prompt.
Next, exclude any addresses in the pool range that you don’t want to hand out.
For example, let’s say that you’ve decided that all IP addresses up to .100 will be for static IP devices such as servers and printers. All IP addresses above .100 will be available in the pool for DHCP clients.
Here’s an example of how to exclude IP addresses .100 and below:
Optional (config)#ip dhcp excluded-address 1.1.1.0 1.1.1.100
The full DHCP reference can be found on the CISCO site.
Common Commands and Troubleshooting
- Set a password on the console line:
- configure terminal
- line console 0
- password ‘cisco’
- login
- Passwords are case sensitive.
- You must configure a password on the VTY lines, without one no one will be able to telnet to the switch/router.
- The default mode when logging into a switch/router via telnet or SSH is user exec mode, which is indicated by the ‘>’ prompt.
- To configure the switch/router you need to use the privileged EXEC mode. To do this you enter the enable command in user EXEC mode. The prompt is indicated with ‘#’.
- If both enable secret and enable password are set, the enable secret will be used.
- The enable secret is encrypted (by default) where as the enable password is in clear text.
- In a config containing an enable secret 5 ‘hash’ the 5 refers to the level of encryption being used.
- If no enable password/secret has been set when someone telnets to the device, they will get a ‘%No password set’ message. Someone with physical access must set the password.
- To place all telnet users directly into enable mode:
- configure terminal
- line vty 0 4
- privilege level 15
- To put a specific user directly into privileged EXEC mode (enable mode)
- username superman privilege 15 password louise
- Telnet sends all data including passwords in clear text which can be intercepted.
- SSH encrypts all data preventing an attacker from intercepting it.
- Setting up a local user/password login database for use with telnet:
- configure terminal
- line vty 0 4
- login local
- exit
- username telnetuser1 password secretpass
- To set up SSH you need to create the local user database, the domain name must be specified with the ip domain-name command and a crypto key must be created with the crypto key generate rsa command. To enable SSH on the VTY lines, use the command transport input ssh.
- If you connect two Cisco switches together and the lights don’t go amber then green, but instead stays off. A straight through cable has been used instead of a crossover cable.
- The term ‘a switches management interface’ normally refers to VLAN1.
- Assign a default gateway using the ip default-gateway ipaddress command.
- You can use the command interface range fasterthernet 0/1 – 12 to select a range of interfaces to configure at once.
- MOTD banner appears before login prompt.
- The login banner appears before the login prompt but after the MOTD banner.
- The banner exec appears after a successful logon.
- line con 0 – configuring the logging synchronous on the console port stops the router from displaying messages (like an interface state change) until it detects no input from the keyboard and not other output from the router, such as a show commands output.
- exec-timeout x y (x=minutes, y=seconds) – the default is 5 minutes. Can be disabled by setting x=0 y=0
- Shortcut commands
- Up Arrow – will show you the last command you entered. Control+P does the same thing.
- Down Arrow – will bring you one command up in the command history. Control+N does the same thing.
- CTRL+A takes the cursor to the start of the current command.
- CTRL+E takes the cursor to the end of the current command.
- Left arrow or CTRL+B moves backwards (towards the start) of the command one character at a time.
- Right arrow or CTRL+P moves forwards (towards the end) of the command one character at a time.
- CTRL+D deletes one character (the same as backspace).
- ESC+B moves back one word in the current command.
- ESC+F moves forward one word in the current command.
- show history command will show the last 10 commands run by default.
- the history size can be increased individually on the console port and on the VTY lines with the history size x command.
- Config modes
- config t R1<config> is the global configuration mode.
- line vty 0 4 R1<config-line> is the line config mode.
- interface fastethernet 0/1 R1<config-if> interface config mode.
- Cisco Discovery Protocol (CDP) runs by default on Cisco routers and switches. It runs globally and on a per-interface level.
- CDP discovers basic information about neighboring switches and routers.
- On media that supports multicasts at the data link layer, CDP uses multicast frames. on other media, CDP sends a copy of the CDP update to any known data-link addresses.
- The show cdp command shows CDP settings.
- CDP can be disabled globally using the command no cdp run and re-enable using cdp run.
- CDP can be disabled at an interface level using the no cdp enable command at the sub-interface level.
- The command show cdp neighbor - lists one summary line of information about each neighbor. Including:
- Device ID – the remote devices hostname.
- Local Interface – the local switch/router interface connected to the remote host.
- Holdtime – is the number of seconds the local device will retain the contents of the last CDP advertisement received from the remote host.
- Capability – shows you the type of device the remote host is.
- Platform – is the remote devices hardware platform.
- Port ID – is the remote interface on the direct connection.
- The command show cdp neighbor detail – lists one large set (approx 15 lines) of information, one set for every neighbor. Including:
- The IOS version.
- VTP management domain.
- Management addresses.
- show cdp entry name - lists the same information as the show cdp neighbors detail command, but only for the named neighbor (case sensitive).
- show cdp – states whether CDP is enabled globally, and lists the default update and holdtime timers.
- show cdp traffic – lists global statistics for the number of CDP advertisements sent and received.
- show cdp interface type number - states whether CDP is enabled on each interface or a single interface if the interface is listed, and states the update and holdtime timers on those interfaces.
- CDP should be disabled on interfaces it is not needed to limit risk of an attacker learning details about each switch or router. Use the no cdp enable interface subcommand to disable CDP and the cdp enable interface subcommand to re-enable it.
- The command show cdp interface shows the CDP settings for every interface.
- Interface status messages:
- Interface status is down/down – this indicates a physical problem, most likely a loose or unplugged cable.
- Line protocol is down, up/down – this indicates a problem at the logical level, most likely an encapsulation mismatch or a missing clock rate.
- Administratively down – this indicates the interface has been shutdown and needs to be manually opened with the sub interface command no shutdown.
- The command show mac-address-table shows the mac address table. show mac-address-table dynamic sows the dynamically learned entries only.
- Most problems on a switch are caused by human error – misconfiguration.
- The command show debugging shows all the currently running debugs.
- undebug all – will turn all debugging off.
- The command show vlan brief shows a switches VLAN configuration.
- If pinging 127.0.0.1 fails on a pc, there is a problem with the local PC, most likely a bad install of TCP/IP.
- On a pc the command netstat -rn shows the pc’s routing table.
- Additional Telnet commands:
- show sessions shows information about each telnet session, the where command does the same thing.
- resume x, x being the session number is used to resume a telnet session.
- To suspend a session use the command CTRL+ALT+6.
- To disconnect an open session use the command disconnect x, x being the session number.
- Ping result codes:
- !!!!! – IP connectivity to the destination is ok.
- ….. – IP connectivity to the destination does not exist.
- U.U.U – the local router has a route to the destination, but a downstream router does not.
- debug ip packet – can help troubleshooting the above ping results.
- When using traceroute or extended ping the Escape Sequence is: CTRL+SHIFT+6.
- Extended ping can only be run from enable mode.
- If a routing table contains multiple routes to the same destination with multiple next hops and the prefixes are different, the most specific (longest) prefix route will be used. If all of the prefix lengths are the same the Administrative Distance will be used. [AD/Metric].
- Administrative Distance is a measure of a routes believability, with a lower AD being more believable than a route with a higher AD. AD only comes into play if the prefix lengths are the same.
- You can set the Administrative Distance on a static route with the command ip route 55.55.55.0 255.255.255.0 192.168.1.2 150, you would do this to set a backup route if a dynamic route fails/is not available in the routing table.
Cisco NX-OS/IOS BGP (Advanced) Comparison
These may also assist: Undocumented Cisco Commands
Breaking VISA PIN
by Derek on Jul.02, 2008, under Banking and EFTPoS
Below is an article I found recently. This one of the most comprehensive descriptions of PIN Verification Value (PVV) hacking.
I thought I would replicate it here for my local reference.
As comments have been made regarding the grammar used in the original text, I have corrected some of the obvious errors whilst maintaining the context of the original material.
http://69.46.26.132/~biggold1/fastget2you/tutorial.php
——– Original Text ———-
Foreword
Have you ever wonder what would happen if you lose your credit or debit card and someone finds it. Would this person be able to withdraw cash from an ATM guessing, somehow, your PIN? Moreover, if you were who finds someone’s card would you try to guess the PIN and take the chance to get some easy money? Of course the answer to both questions should be “no”. This work does not deal with the second question, it is a matter of personal ethics. Herewith I try to answer the first question.
All the information used for this work is public and can be freely found in Internet. The rest is a matter of mathematics and programming, thus we can learn something and have some fun. I reveal no secrets. Furthermore, the aim (and final conclusion) of this work is to demonstrate that PIN algorithms are still strong enough to provide sufficient security. We all know technology is not the weak point.
This work analyses one of the most common PIN algorithms, VISA PVV, used by many ATM cards (credit and debit cards) and tries to find out how resistant is to PIN guessing attacks. By “guessing” I do not mean choosing a random PIN and trying it in an ATM. It is well known that generally we are given three consecutive trials to enter the right PIN, if we fail ATM keeps the card. As VISA PIN is four digit long it’s easy to deduce that the chance for a random PIN guessing is 3/10000 = 0.0003, it seems low enough to be safe; it means you need to lose your card more than three thousand times (or losing more than three thousand cards at the same time
until there is a reasonable chance of losing money.
What I really meant by “guessing” was breaking the PIN algorithm so that given any card you can immediately know the associated PIN. Therefore this document studies that possibility, analyzing the algorithm and proposing a method for the attack. Finally we give a tool which implements the attack and present results about the estimated chance to break the system. Note that as long as other banking security related algorithms (other PIN formats such as IBM PIN or card validation signatures such as CVV or CVC) are similar to VISA PIN, the same analysis can be done yielding nearly the same results and conclusions.
VISA PVV algorithm
One of the most common PIN algorithms is the VISA PIN Verification Value (PVV). The customer is given a PIN and a magnetic stripe card. Encoded in the magnetic stripe is a four digit number, called PVV. This number is a cryptographic signature of the PIN and other data related to the card. When a user enters his/her PIN the ATM reads the magnetic stripe, encrypts and sends all this information to a central computer. There a trial PVV is computed using the customer entered PIN and the card information with a cryptographic algorithm. The trial PVV is compared with the PVV stored in the card, if they match the central computer returns to the ATM authorization for the transaction. See in more detail.
The description of the PVV algorithm can be found in two documents linked in the previous page. In summary it consists in the encryption of a 8 byte (64 bit) string of data, called Transformed Security Parameter (TSP), with DES algorithm (DEA) in Electronic Code Book mode (ECB) using a secret 64 bit key. The PVV is derived from the output of the encryption process, which is a 8 byte string. The four digits of the PVV (from left to right) correspond to the first four decimal digits (from left to right) of the output from DES when considered as a 16 hexadecimal character (16 x 4 bit = 64 bit) string. If there are no four decimal digits among the 16 hexadecimal characters then the PVV is completed taken (from left to right) non decimal characters and decimalizing them by using the conversion A->0, B->1, C->2, D->3, E->4, F->5. Here is an example:
Output from DES: 0FAB9CDEFFE7DCBA
PVV: 0975
The strategy of avoiding decimalization by skipping characters until four decimal digits are found (which happens to be nearly all the times as we will see below) is very clever because it avoids an important bias in the distribution of digits which has been proven to be fatal for other systems, although the impact on this system would be much lower. See also a related problem not applying to VISA PVV.
The TSP, seen as a 16 hexadecimal character (64 bit) string, is formed (from left to right) with the 11 rightmost digits of the PAN (card number) excluding the last digit (check digit), one digit from 1 to 6 which selects the secret encrypting key and finally the four digits of the PIN. Here is an example:
PAN: 1234 5678 9012 3445
Key selector: 1
PIN: 2468
TSP: 5678901234412468
Obviously the problem of breaking VISA PIN consists in finding the secret encrypting key for DES. The method for that is to do a brute force search of the key space. Note that this is not the only method, one could try to find a weakness in DEA, many tried, but this old standard is still in wide use (now been replaced by AES and RSA, though). This demonstrates it is robust enough so that brute force is the only viable method (there are some better attacks but not practical in our case, for a summary see LASEC memo and for the dirty details see Biham & Shamir 1990, Biham & Shamir 1991, Matsui 1993, Biham & Biryukov 1994 and Heys 2001).
The key selector digit was very likely introduced to cover the possibility of a key compromise. In that case they just have to issue new cards using another key selector. Older cards can be substituted with new ones or simply the ATM can transparently write a new PVV (corresponding to the new key and keeping the same PIN) next time the customer uses his/her card. For the shake of security all users should be asked to change their PINs, however it would be embarrassing for the bank to explain the reason, so very likely they would not make such request.
Preparing the attack
A brute force attack consists in encrypting a TSP with known PVV using all possible encrypting keys and compare each obtained PVV with the known PVV. When a match is found we have a candidate key. But how many keys we have to try? As we said above the key is 64 bit long, this would mean we have to try 2^64 keys. However this is not true. Actually only 56 bits are effective in DES keys because one bit (the least significant) out of each octet was historically reserved as a checksum for the others; in practice those 8 bits (one for each of the 8 octets) are ignored.
Therefore the DES key space consists of 2^56 keys. If we try all these keys will we find one and only one match, corresponding to the bank secret key? Certainly not. We will obtain many matching keys. This is because the PVV is only a small part (one fourth) of the DES output. Furthermore the PVV is degenerated because some of the digits (those between 0 and 5 after the last, seen from left to right, digit between 6 and 9) may come from a decimal digit or from a decimalized hexadecimal digit of the DES output. Thus many keys will produce a DES output which yields to the same matching PVV.
Then what can we do to find the real key among those other false positive keys? Simply we have to encrypt a second different TSP, also with known PVV, but using only the candidate keys which gave a positive matching with the first TSP-PVV pair. However there is no guarantee we won’t get again many false positives along with the true key. If so, we will need a third TSP-PVV pair, repeat the process and so on.
Before we start our attack we have to know how many TSP-PVV pairs we will need. For that we have to calculate the probability for a random DES output to yield a matching PVV just by chance. There are several ways to calculate this number and here I will use a simple approach easy to understand but which requires some background in mathematics of probability.
A probability can always be seen as the ratio of favorable cases to possible cases. In our problem the number of possible cases is given by the permutation of 16 elements (the 0 to F hexadecimal digits) in a group of 16 of them (the 16 hexadecimal digits of the DES output). This is given by 16^16 ~ 1.8 * 10^19 which of course coincides with 2^64 (different numbers of 64 bits). This set of numbers can be separated into five categories:
Those with at least four decimal digits (0 to 9) among the 16 hexadecimal digits (0 to F) of the DES output.
Those with exactly only three decimal digits.
Those with exactly only two decimal digits.
Those with exactly only one decimal digit.
Those with no decimal digits (all between A and F).
Let’s calculate how many numbers fall in each category. If we label the 16 hexadecimal digits of the DES output as X1 to X16 then we can label the first four decimal digits of any given number of the first category as Xi, Xj, Xk and Xl. The number of different combinations with this profile is given by the product 6 i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 6 l-k-1 * 10 * 1616-l where the 6′s come from the number of possibilities for an A to F digit, the 10′s come from the possibilities for a 0 to 9 digit, and the 16 comes from the possibilities for a 0 to F digit. Now the total numbers in the first category is simply given by the summation of this product over i, j, k, l from 1 to 16 but with i < j < k < l. If you do some math work you will see this equals to the product of 104/6 with the summation over i from 4 to 16 of (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1.8 * 1019.
Analogously the number of cases in the second category is given by the summation over i, j, k from 1 to 16 with i < j < k of the product 6i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 616-k which you can work it out to be 16!/(3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14/(3 * 2) * 103 * 613 = 56 * 104 * 613 ~ 7.3 * 1015. Similarly for the third category we have the summation over i, j from 1 to 16 with i < j of 6 i-1 * 10 * 6j-i-1 * 10 * 616-j which equals to 16!/(2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9.4 * 1014. Again, for the fourth category we have the summation over i from 1 to 16 of 6i-1 * 10 * 616-i = 160 * 615 ~ 7.5 * 1013. And finally the amount of cases in the fifth category is given by the permutation of six elements (A to F digits) in a group of 16, that is, 616 ~ 2.8 * 1012.
I hope you followed the calculations up to this point, the hard part is done. Now as a proof that everything is right you can sum the number of cases in the 5 categories and see it equals the total number of possible cases we calculated before. Do the operations using 64 bit numbers or rounding (for floats) or overflow (for integers) errors won’t let you get the exact result.
Up to now we have calculated the number of possible cases in each of the five categories, but we are interested in obtaining the number of favorable cases instead. It is very easy to derive the latter from the former as this is just fixing the combination of the four decimal digits (or the required hexadecimal digits if there are no four decimal digits) of the PVV instead of letting them free. In practice this means turning the 10′s in the formula above into 1′s and the required amount of 6′s into 1′s if there are no four decimal digits. That is, we have to divide the first result by 104, the second one by 103 * 6, the third one by 102 * 62 , the fourth one by 10 * 63 and the fifth one by 64 . Then the number of favorable cases in the five categories are approximately 1.8 * 1015, 1.2 * 1012, 2.6 * 1011 , 3.5 * 1010, 2.2 * 109 respectively.
Now we are able to obtain what is the probability for a DES output to match a PVV by chance. We just have to add the five numbers of favorable cases and divide it by the total number of possible cases. Doing this we obtain that the probability is very approximately 0.0001 or one out of ten thousand. Is it strange this well rounded result? Not at all, just have a look at the numbers we calculated above. The first category dominates by several orders of magnitude the number of favorable and possible cases. This is rather intuitive as it seems clear that it is very unlikely not having four decimal digits (10 chances out of 16 per digit) among 16 hexadecimal digits. We saw previously that the relationship between the number of possible and favorable cases in the first category was a division by 10^4, that’s where our result p = 0.0001 comes from.
Our aim for all these calculations was to find out how many TSP-PVV pairs we need to carry a successful brute force attack. Now we are able to calculate the expected number of false positives in a first search: it will be the number of trials times the probability for a single random false positive, i.e. t * p where t = 2^56, the size of the key space. This amounts to approximately 7.2 * 10^12, a rather big number. The expected number of false positives in the second search (restricted to the positive keys found in the first search) will be (t * p) * p, for a third search will be ((t * p) * p) * p and so on. Thus for n searches the expected number of false positives will be t * p^n.
We can obtain the number of searches required to expect just one false positive by expressing the equation t * p^n = 1 and solving for n. So n equals to the logarithm in base p of 1/t, which by properties of logarithms it yields n = log(1/t)/log(p) ~ 4.2. Since we cannot do a fractional search it is convenient to round up this number. Therefore what is the expected number of false positives if we perform five searches? It is t * p^5 ~ 0.0007 or approximately 1 out of 1400. Thus using five TSP-PVV pairs is safe to obtain the true secret key with no false positives.
The attack
Once we know we need five TSP-PVV pairs, how do we get them? Of course we need at least one card with known PIN, and due to the nature of the PVV algorithm, that’s the only thing we need. With other PIN systems, such as IBM, we would need five cards, however this is not necessary with VISA PVV algorithm. We just have to read the magnetic stripe and then change the PIN four times but reading the card after each change.
It is necessary to read the magnetic stripe of the card to get the PVV and the encrypting key selector. You can buy a commercial magnetic stripe reader or make one yourself following the instructions you can find in the previous page and links therein. Once you have a reader see this description of standard magnetic tracks to find out how to get the PVV from the data read. In that document the PVV field in tracks 1 and 2 is said to be five character long, but actually the true PVV consists of the last four digits. The first of the five digits is the key selector. I have only seen cards with a value of 1 in this digit, which is consistent with the standard and with the secret key never being compromised (and therefore they did not need to move to another key changing the selector).
I did a simple C program, getpvvkey.c, to perform the attack. It consists of a loop to try all possible keys to encrypt the first TSP, if the derived PVV matches the true PVV a new TSP is tried, and so on until there is a mismatch, in which case the key is discarded and a new one is tried, or the five derived PVVs match the corresponding true PVVs, in which case we can assume we got the bank secret key, however the loop goes on until it exhausts the key space. This is done to assure we find the true key because there is a chance (although very low) the first key found is a false positive.
It is expected the program would take a very long time to finish and to minimize the risks of a power cut, computer hang out, etc. it does checkpoints into the file getpvvkey.dat from time to time (the exact time depends on the speed of the computer, it’s around one hour for the fastest computers now in use). For the same reason if a positive key is found it is written on the file getpvvkey.key. The program only displays one message at the beginning, the starting position taken from the checkpoint file if any, after that nothing more is displayed.
The DES algorithm is a key point in the program, it is therefore very important to optimize its speed. I tested several implementations: libdes, SSLeay, openssl, cryptlib, nss, libgcrypt, catacomb, libtomcrypt, cryptopp, ufc-crypt. The DES functions of the first four are based on the same code by Eric Young and is the one which performed best (includes optimized C and x86 assembler code). Thus I chose libdes which was the original implementation and condensed all relevant code in the files encrypt.c (C version) and x86encrypt.s (x86 assembler version). The code is slightly modified to achieve some enhancements in a brute force attack: the initial permutation is a fixed common steep in each TSP encryption and therefore can be made just one time at the beginning. Another improvement is that I wrote a completely new setkey function (I called it nextkey) which is optimum for a brute force loop.
To get the program working you just have to type in the corresponding place five TSPs and their PVVs and then compile it. I have tested it only in UNIX platforms, using the makefile Makegetpvvkey to compile (use the command “make -f Makegetpvvkey”). It may compile on other systems but you may need to fix some things. Be sure that the definition of the type long64 corresponds to a 64 bit integer. In principle there is no dependence on the endianness of the processor. I have successfully compiled and run it on Pentium-Linux, Alpha-Tru64, Mips-Irix and Sparc-Solaris. If you do not have and do not want to install Linux (you don’t know what you are missing
you still have the choice to run Linux on CD and use my program, see my page running Linux without installing it.
Once you have found the secret bank key if you want to find the PIN of an arbitrary card you just have to write a similar program (sorry I have not written it, I’m too lazy
that would try all 10^4 PINs by generating the corresponding TSP, encrypting it with the (no longer) secret key, deriving the PVV and comparing it with the PVV in the magnetic stripe of the card. You will get one match for the true PIN. Only one match? Remember what we saw above, we have a chance of 0.0001 that a random encryption matches the PVV. We are trying 10000 PINs (and therefore TSPs) thus we expect 10000 * 0.0001 = 1 false positive on average.
This is a very interesting result, it means that, on average, each card has two valid PINs: the customer PIN and the expected false positive. I call it “false” but note that as long as it generates the true PVV it is a PIN as valid as the customer’s one. Furthermore, there is no way to know which is which, even for the ATM; only customer knows. Even if the false positive were not valid as PIN, you still have three trials at the ATM anyway, enough on average. Therefore the probability we calculated at the beginning of this document about random guessing of the PIN has to be corrected. Actually it is twice that value, i.e., it is 0.0006 or one out of more than 1600, still safely low.
Results
It is important to optimize the compilation of the program and to run it in the fastest possible processor due to the long expected run time. I found that the compiler optimization flag -O gets the better performance, thought some improvement is achieved adding the -fomit-frame-pointer flag on Pentium-Linux, the -spike flag on Alpha-Tru64, the -IPA flag on Mips-Irix and the -fast flag on Sparc-Solaris. Special flags (-DDES_PTR -DDES_RISC1 -DDES_RISC2 -DDES_UNROLL -DASM) for the DES code have generally benefits as well. All these flags have already been tested and I chose the best combination for each processor (see makefile) but you can try to fine tune other flags.
According to my tests the best performance is achieved with the AMD Athlon 1600 MHz processor, exceeding 3.4 million keys per second. Interestingly it gets better results than Intel Pentium IV 1800 MHz and 2000 MHz (see figures below, click on them to enlarge). I believe this is due to some I/O saturation, surely cache or memory access, that the AMD processor (which has half the cache of the Pentium) or the motherboard in which it is running, manages to avoid. In the first figure below you can see that the DES breaking speed of all processors has more or less a linear relationship with the processor speed, except for the two Intel Pentium I mentioned before. This is logical, it means that for a double processor speed you’ll get double breaking speed, but watch out for saturation effects, in this case it is better the AMD Athlon 1600 MHz, which will be even cheaper than the Intel Pentium 1800 MHz or 2000 MHz.
In the second figure we can see in more detail what we would call intrinsic DES break power of the processor. I get this value simply dividing the break speed by the processor speed, that is, we get the number of DES keys tried per second and per MHz. This is a measure of the performance of the processor type independently of its speed. The results show that the best processor for this task is the AMD Athlon, then comes the Alpha and very close after it is the Intel Pentium (except for the higher speed ones which perform very poor due to the saturation effect). Next is the Mips processor and in the last place is the Sparc. Some Alpha and Mips processors are located at bottom of scale because they are early releases not including enhancements of late versions. Note that I included the performance of x86 processors for C and assembler code as there is a big difference. It seems that gcc is not a good generator of optimized machine code, but of course we don’t know whether a manual optimization of assembler code for the other processors (Alpha, Mips, Sparc) would boost their results compared to the native C compilers (I did not use gcc for these other platforms) as it happens with the x86 processor.
Update
Here is an article where these techniques may have been used.
Financial Transaction Processing
by Derek on Jul.02, 2008, under Banking and EFTPoS
I have been recently working inside one of the larger Banks in Australia.
Through this work I have been looking at the controls and mechanisms surrounding the processing of credit and debit cards around the Asia Pacific.
I get perform many security architecture and payment systems assessments.
Over the years I have always considered the protection of the card data as one of the key considerations.
Until yesterday I had never seen an CVV or PVV decryption tools. I think some scripted use of these tools could be very interesting.
The site hziggurat29.com
Many of the other tools on this site are also very unique and worth a look.
Big thanks to ziggurat29 for providing such awesome tools.
As many of these sites are of this nature are difficult to find and often seem to vanish over the years, I have chosen to replicate the the text from this page and provide local copies on the files.
It is worth periodically visiting the ziggurat29 site every now and again to see if any additional tools have been posted.
One of the more extraordinary files is the Atalla Hardware Security Module (HSM)Â and BogoAtalla for Linksys emulation (simulation) tools. So I wonder if Eracom and Thales are shaking in their boots. Some how I don’t think so.
——– ziggurat29 Text ———
These are all Windows command-line utilities (except where noted); execute with the -help option
to determine usage.
DUKPT Decrypt (<- the actual file to download)
This is a utility that will decrypt Encrypted PIN Blocks that have been produced via the DUKPT triple-DES method. I used this for testing the output of some PIN Pad software I had created, but is also handy for other debugging purposes.
VISA PVV Calculator (<- the actual
file to download)
This is a utility that will compute and verify PIN Verification Values that have been produced using the VISA PVV technique. It has a bunch of auxiliary functions, such as verifying and fixing a PAN (Luhn computations), creating and encrypting PIN blocks, decrypting and extracting PINs from encrypted PIN blocks, etc.
VISA CVV Calculator (<- the actual file to download)
This is a utility that will compute Card Verification Values that have been produced using the VISA CVV technique. MasterCard CVC uses the CVV algorithm, so it will work for that as well. It will compute CVV, CVV2, CVV3, iCVV, CAVV, since these are just variations on service code and the
format of the expiration date. Verification is simply comparing the computed value with what you have received, so there is no explicit verification function.
Atalla AKB Calculator (<- the actual file to download)
This is a utility that will both generate and decrypt Atalla AKB cryptograms. You will need the plaintext MFK to perform these operations. When decrypting, the MAC will also be checked and the results shown.
BogoAtalla (<- the actual file to
download)
This is an Atalla emulator (or simulator). This software emulation (simulation) of the well-known Atalla Hardware Security Module (HSM) that is used by banks and processors for cryptographic operations, such as verifying/translating PIN blocks, authorising transactions by verifying
CVV/CSC numbers, and performing key exchange procedures, was produced for testing purposes. This implementation is not of the complete HP Atalla command set, but rather the just
portions that I myself needed. That being said, it is complete enough if you are performing acquiring and/or issuing processing functions, and are using more modern schemes such as Visa PVV and DUKPT, and need to do generation, verification, and translation.
This runs as a listening socket server and handles the native Atalla command set. I have taken some liberties with the error return values and have not striven for high-fidelity there (i.e., you may get a different error response from native hardware), but definitely should get identical positive
responses. Some features implemented here would normally require purchasing premium commands, but all commands here implemented are available. Examples are generating PVV values and encrypting/decrypting plaintext PIN values.
BogoAtalla for Linksys (<- the actual file to download)
This is the Atalla emulator ported to Linux and build for installation on an OpenWRT system. Makes for a really cheap ($60 USD) development/test device.
Local Files
bogoatalla002
atallaakbcalc
bogoatalla_10-1_mipsel
dukptdecrypt
visacvvcalc
visapvvcalc
E-Commerce Glossary
by Derek on Jun.18, 2008, under Banking and EFTPoS
Acquiring Institution
The Financial Institution which holds the Merchant Account partaking in a financial transaction, typically the first bank involved in the processing of a payment.
Applet
A small computer program which facilitates the performance of particular tasks.
Bandwidth
The capacity of a server to carry or process information. The higher the bandwidth the faster graphics-laden web pages will download.
Browser
Short for Web browser, a software application used to locate and display Web pages. The two most popular browsers are Netscape Navigator and Microsoft Internet Explorer. Both of these are graphical browsers, which means that they can display graphics as well as text. In addition, most modern browsers can present multimedia information, including sound and video, though they require plug-ins for some formats.
Caching
The automatic copying and storage of frequently used information onto a computer system – Typically caching is seen whilst surfing the internet (graphics, etc.) and used by Internet Services Providers (ISP’s) to reduce the amount of data requested from the user onto the internet.
Issuer
The Financial Institution which issued the cardholder’s account and card.
Cardholder
The individual participating in the financial transaction whose card is being credited or debited.
Card Verification Data
The additional information printed on the card to be processed. This is used to verify if the card was present when the transaction was initiated. This is the additional digits imprinted on the card usually on the reverse side for VISA & Mastercard and on the front for AMEX.
Certificate
An x.509 certificate used to authenticate entities such as Merchants and Payment Gateways. Certificates can be used to identify and/or encrypt sensitive data such as card numbers and personal cardholder information.
CGI
Common Gateway Interface: A protocol that allows a Web page to run a program on a Web server. Forms, counters, and guest books are common examples of CGI programs.
Any piece of software can be a CGI program if it handles input and output according to the CGI standard. Usually a CGI program is a small program that takes data from a web server and does something with it, like putting the content of a form into an e-mail message, or turning the data into a database query. CGI “scripts” are just scripts which use CGI. CGI is often confused with Perl, which is a programming language, while CGI is an interface to the server from a particular program.
Client
A computer or software that requests a service of another computer system or process (a “server”). For example, a workstation requesting the contents of a file from a file server is a client of the file server. A web browser is commonly referred to as a client.
Clients and Servers
In general, all of the machines on the Internet can be categorised as two types: servers and clients. Those machines that provide services (like Web servers or FTP servers) to other machines are servers. And the machines that are used to connect to those services are clients.
When you connect to Yahoo at www.google.com to read a page, Google is providing a machine (probably a cluster of very large machines), for use on the Internet, to service your request. Google is providing a server. Your machine, on the other hand, is probably providing no services to anyone else on the Internet. Therefore, it is a user machine, also known as a client. It is possible and common for a machine to be both a server and a client !
Cookie
A file sent by some web servers to your computer’s hard drive to enable you to quickly and easily return to particular sites. Cookies give rise to privacy concerns as they are often used to store information used for marketing purposes.
The main purpose of cookies is to identify users and possibly prepare customised Web pages for them. When you enter a Web site using cookies, you may be asked to fill out a form providing such information as your name and interests. This information is packaged into a cookie and sent to your Web browser which stores it for later use. The next time you go to the same Web site, your browser will send the cookie to the Web server. The server can use this information to present you with custom Web pages. So, for example, instead of seeing just a generic welcome page you might see a welcome page with your name on it.
CRN
The Customer Receipt Number (CRN) is used to assist the card holder, the payment gateway and the transaction acquirer to confirm the transaction has been processed and to track the transaction throughout the end-to-end transaction process. This is often used when making enquiries about a transaction or for transaction tracking.
Cybersquatting
Bad faith, abusive domain name registration. Cybersquatters register company and product names as domain names with a view to selling them at inflated prices to the “rightful†owners.
/CVC
The additional information printed on the card to be processed. This is used to verify if the card was present when the transaction was initiated. This is the additional digits imprinted on the card usually on the reverse side for VISA & Mastercard and on the front for AMEX.
Database
A collection of data: part numbers, product codes, customer information, etc. It usually refers to data organised and stored on a computer that can be searched and retrieved by a computer program.
Deep link
A hypertext link directly to a web page, often bypassing home pages or other identifying pages.
Digital Certificate
A pop up window that allows you to identify the level of encryption used to secure a particular web site.
Digital Signature
A complex numeric “signature” designed to be used, in conjunction with special software, to authenticate the sender of a message and guarantee that the contents of the message have not been altered during transmission to the recipient. The EU has adopted legislation which makes electronic signatures legally valid. The Electronic Transaction Bill (Cth) 1999 has the same effect in Australia.
Domain Name
The plain English name given to a host destination on the Internet, for example, www.madrock.net. The suffix, dot.com is known as the generic top level domain, the prefix madrock. The domain name forms part of the Internet Address or URL.
A name that identifies one or more IP addresses. For example, the domain name microsoft.com represents about a dozen IP addresses. Domain names are used in URLs to identify particular Web pages. For example, in the URL http://www.madrock.net, the domain name is madrock.net.
Download
To transfer information from one computer to your computer.
Dynamic web page
A web document that is created from a database in real-time or “on the fly” at the same time it is being viewed, providing a continuous flow of new information and giving visitors a new experience each time they visit the web site.
Dynamic web sites offer the user the ability to interact with the web site. This interaction can take place in the form of a search for products, a questionnaire that automatically posts results or online polls. Basically, dynamic web pages and content are generated from the input of the user.
EC
Electronic Commerce.
Often referred to as simply e-commerce, business that is conducted over the Internet using any of the applications that rely on the Internet, such as e-mail, instant messaging, shopping carts, Web services, and FTP, among others. Electronic commerce can be between two businesses transmitting funds, goods, services and/or data or between a business and a customer.
ECI
The Electronic Commerce Indicator (ECI), is used to determine the source of the original transaction request. This is a program that the banks have developed and have mandated it’s use.
Electronic Data Interchange (EDI)
Systems set up by businesses, which facilitate the electronic exchange of information.
Encryption
The process of scrambling data to prevent it being viewed by unauthorized persons.
Expiry Date
The date printed on the card indicating when the card will expire. Not to be confused with the card issue date found on some cards.
Firewall
An electronic security barrier and/or traffic filter.
Forms
Forms are web pages comprised of text and “fields” for a user to fill in with information. They are an excellent way of collecting and processing information from people visiting a web site, as well as allowing them to interact with web pages. Forms are written in HTML and processed by CGI programs.
Frame
A means of dividing a web screen into a number of compartments. Frames may give rise to legal disputes if web sites created by third parties are framed as your own.
FTP servers
One of the oldest of the Internet services, File Transfer Protocol makes it possible to move one or more files securely between computers while providing file security and organisation as well as transfer control.
Fulfilment
1. Process of supplying goods after an order has been received.
2. Process of reacting to a customer’s request, covering everything that has to happen from the time the customer places an order until they are completely satisfied.
Host
Any computer on a network that provides services or information to other computers on the network. A host is also called a server.
Integration
The software and/or business processes which combine the Merchant’s (website, back office, etc.) order processing system with the EFT Network Electronic Payment System.
IP address
Every computer connected to the Internet is assigned a unique number known as an Internet Protocol (IP) address. Since these numbers are usually assigned in country-based blocks, an IP address can often be used to identify the country from which a computer is connecting to the Internet.
Gateway
A system allowing incompatible computer networks to send and receive information.
HTML (Hypertext Markup Language)
Language used to translate text documents into a form which can be sent over the web.
Hyperlink
A highlighted phrase in a document which permits linking to another document or part of a document.
Internet Content Host (ICH)
Those who host or propose to host content on the Internet. Anybody who is responsible for a web site, news group or bulletin board that contains articles, graphics or other internet content provided by others. The host may/may not also produce their own content and/or provide access to the Internet through a carriage service, ie they may also be an ISP.
Internet Service Provider (ISP)
A company that provides an Internet connection through some kind of Internet carriage service, for example Sprint, Chello Broadband, Telstra Bigpond, Adam Internet, Internode. ISP’s may/may not also be ICHs.
Mail servers
Almost as ubiquitous and crucial as Web servers, mail servers move and store mail over corporate networks (via LANs and WANs) and across the Internet.
Merchant account
This is an account set up with a bank to process credit card orders from customers.
Merchant
The entity receiving payments for goods and/or services.
Merchant Account
The merchant’s account into which transactions are credited or debited.
Merchant Server
The software installed on the Merchant’s web sites or back office system to enable real-time or batched processing of financial transactions.
Merchant Server Administrator
The individual(s) responsible for the maintenance of the Merchant Server, including issuing and importing merchant certificates.
MTL
Merchant Transaction Layer (MTL)
PAN
Primary Account Number (PAN) is the number printed on the customers card to reference the cardholder’s financial account. This is typically the card number.
Payment Gateway
The Payment Gateway provides a central point of contact/transaction switching with the banking network for the Merchant Server software or devices. The EFT Networks Payment gateway provides advanced integrated reporting, merchant integration services (Mainframe, Mini, Windows, UNIX, OS400, Desktop/Server, EFT PoS Terminals. Loyalty systems, etc.) and Merchant/Bank customised solutions not offered by regional or global banking institutions.
An online system for real-time charging of credit cards when a customer places an order. Normally requires a merchant account.
A common question from merchants is “Do we have to change banks to use payment gateways?”
The answer is NO! – All you need to do is open a merchant facility with one of the supported banks, EFT Networks can ensure you open the correct one for your transaction needs. The merchant facility is then linked to a nominated bank account for example: Bank of New Zealand, ANZ, St George Bank, NAB, Commonwealth, Westpac, Bank of America, Bank of Scotland, Barclay’s, Bank of Queensland, etc. The money is then transferred at the end of each day from your merchant account to your nominated account.
“Pretty Good Privacy”
A type of encryption program used to scramble data.
Portal
A site that gathers together many sites under a common branding, for example, Yahoo and Excite.
Private key
The password which permits information to be decoded in a public key encryption system.
Public key
The password which is used to send a secure message in a public key encryption system.
Secure Certificate
A document that is used to certify that a user or organisation is who they say they are. They contain information about who it belongs to, who it was issued by, expiry date and information that can be used to check out the contents of the certificate. It is as an important part of the SSL system for establishing secure connections.
Server
A computer that provides a service to other computers (known as clients) on a network.
Shopping cart
A shopping cart is a piece of software that acts as an online store’s catalogue and ordering process. Typically, a shopping cart is the interface between a company’s Web site and its deeper infrastructure, allowing consumers to select merchandise; review what they have selected; make necessary modifications or additions; and purchase the merchandise.
Shopping carts can be sold as independent pieces of software so companies can integrate them into their own unique online solution, or they can be offered as a feature from a service that will create and host a company’s e-commerce site.
Spam
The use of email or newsgroups to send unsolicited information.
SSL
Short for Secure Sockets Layer, a protocol developed by Netscape for transmitting private documents via the Internet. SSL works by using a private key to encrypt data that’s transferred over the SSL connection. Both Netscape Navigator and Internet Explorer support SSL, and many Web sites use the protocol to obtain confidential user information, such as credit card numbers. By convention, URLs that require an SSL connection start with https: instead of http:.
Letting your customers know that you have SSL protection gives your site credibility and may encourage customers to deal with you in confidence.
A security protocol used to protect information – typically used between the cardholder’s web browser and the merchant’s webserver and throughout the transaction processing process. 128bit SSL is typical used as a minimum level within the Payment & Financial industries.
A Secure Server uses an SSL certificate. It is generally a piece of web space that can only be dealt with by using SSL ensuring that data transferred between the web space and the browser is encrypted.
Static web page
In web site terms, static means web pages that are not interactive. Because the web site visitor does not have any control over the information provided, the pages and information do not change with each visit. There is not a two-way communication between the user (client) and the web site (server) in a static page.
Uniform Resource Locator (URL)
An Internet address.
Web page
A specific group of related files on the web, which is usually viewed as a single document.
Web servers
At its core, a Web server serves static content to a Web browser by loading a file from a hard disk and serving it across the network to a user’s Web browser. This entire exchange is mediated by the browser and server talking to each other using HTTP.
Web site
A collection of web pages stored on a file server.
Technology is always being challenged
by Derek on Jun.18, 2008, under RFID
I read a very interesting paper created by the University of Massachusetts, RSA Laboratories and Innealta, Inc.<<
This paper primarily relates to the compromise of contact less payment technologies (RFID) if the RFID and/or reader have not been implemented correctly or the solution provider has used an inappropriate type of RFID and discusses the challenges around Chip and Pin with respect to financial transactions e.g. EMV standards and compliance.
Additionally, the paper describes a RFID relay method which is being discussed within many forums around the world and we have now begun to see equipment being produced for the RFID skimmers/clonners to use for malicious means.
The overarching point of this paper is to use an appropriate RFID & Chip solutions which supports the security/privacy of the user and purpose of the transaction (financial or non financial)<<
The paper can be found at http://prisms.cs.umass.edu/~kevinfu/papers/RFID-CC-manuscript.pdf
In modern payment RFID & Chip solutions, newer devices can be used which possess a high degree of processing power and are therefore able to execute strong cryptographic methods (such as digital signatures) to protect the identification and payment information whilst the transaction is occurring.
These systems often utilise bidirectional authentication between the RFID/Chip scanner and the RFID tag/Chip prior to performing the transaction. These methods and cryptographic algorithms are accepted and proven to work within the traditional payment markets.
As mentioned in the paper, some solution store static digitally signed and/or encrypted data which is provided to the RFID/Chip reader when queried, but this data never changes from one transaction to another. This may allow a malicious individual to capture and re-inject the data into the reader at a later stage. The alternative to storing static digitally signed and/or encrypted data is to negotiate a key exchange at the time of the transaction in which the card/value information is encrypted and subsequently transmitted. With this method the transmitted data
changes on every transaction and therefore even if a malicious individual was to capture the encrypted transaction data from one transaction, this would not be accepted by the reader if re-injected at a later stage.
Although this is the case today, older RFID/Chip solutions often use technologies which are not appropriate for financial transactions and therefore may be compromised easily and in some cases without the knowledge of the card holder, merchant or acquirer.
I find this interesting how some of these less secure solution have been approved for use by acquiring banks and the card schemes around the world (if they were told) in recent years, where it has been seen that these solutions have utilised techniques or deployment methods which can be compromised. These technologies and techniques would never be approved within the Point of Sale (PoS) or traditional banking markets.
It can only be assumed that the need to get product to market quickly at the expense of proper testing, understanding and with due consideration to industry lessons learnt has succeeded again.
ISO 14443 contactless card
by admin on Mar.24, 2008, under RFID
An international standard for proximity or contactless smart card communication
ISO 14443 contactless card
ISO 14443 is an international standard which describes how contactless cards and terminals should work to ensure industry-wide compatibility, for example in identity, security, payment, mass-transit and access control applications.
ISO standards are developed by the ISO, the International Organization for Standardization. Technical committees comprising experts from the industrial, technical and business sectors develop the standards to increase levels of quality, reliability and interoperability on a global scale.
Gemplus has always had a strong involvement in ISO definition of the chip card standards, and has been represented in the development of this international standard. The ISO 14443 is divided into 4 separate parts outlining physical characteristics, radio frequency power and signal interface, initialization and anti-collision and transmission protocol.
Gemplus has developed a wide range of contactless payment solutions based on the ISO 14443 international standard. The speed and convenience of contactless technology has created a significant demand for this sort of solution in environments such as fast food restaurants, gas stations, public transport services, banks and many others.
How to Build a Low-Cost, Extended-Range RFID Skimmer Filed under: RFID
by admin on Mar.24, 2008, under RFID
http://www.eng.tau.ac.il/~yash/kw-usenix06/index.html </a>
Check it Out…
How to Build a Low-Cost, Extended-Range RFID Skimmer
Also some of the supporting documents.
A Practical Relay Attack on ISO 14443 Proximity Cards
S4100 Multi-Function Reader Module Data Sheet
Security Analysis of a Cryptographically-Enabled RFID’s














































