Hacking

DPE: the Structured enumeration of Default Credentials and Passwords

NJ Ouchn
March 6, 2013 by
NJ Ouchn

I have designed the DPE Default Password Enumeration Concept as an effort to provide structured enumeration of default logons and passwords of network devices, applications and Operating Systems.

The main goal is to increase the "password auditing scanners" interoperability potential. Any kind of tool integrating the XML DPE scheme will be able to identify and report default access configurations on specific devices, software or operating systems.

FREE role-guided training plans

FREE role-guided training plans

Get 12 cybersecurity training plans — one for each of the most common roles requested by employers.

Taking into account the benefits of SecurityMetrics standards principles, DPE integrates CPE naming scheme (http://cpe.mitre.org) to describe information technology systems, platforms and packages and CVE (http://cve.mitre.org) to describe the vulnerability

DPE provides the default usernames and passwords information for the following:

  • Operating Systems : Unix, Linux, Windows, iSeries AS/400 ...
  • Network devices : Routers, firewalls, switches, printers
  • Databases : Oracle, MySQL, MS SQL and more
  • Web applications : WebSphere, Apache ...
  • Administrative Web Based solutions
  • Telephony devices and SIP systems
  • Other: specific applicances.

Why DPE ?

During a security evaluation process, auditors do not have a fast and simple way to identify at a glance the default access parameters of targeted device. In fact, most of them use a simple brute force utility to try every couple of Logons and passwords. In one hand, this could be a time-consuming stage and in the other it may causes indirect denial of service (accounts lockout, IP banning, alarms rising ...)

I got the idea and solved by the way my problem (during a pentesting) by creating the DPE (Default Password Enumeration). Now every piece of software that integrates the DPE scheme along with the latest passwords Database can test the appropriate default logon/password.

DPE has been added to the Making Security Measurable Initiative. (http://measurablesecurity.mitre.org/directory/organizations/index.html)

Examples of use

  • Using automated XML parser software to read and test default entries. Note, that the software should able to handle the protocol communications (HTTP, HTTPS, SNMP, SSH, TELNET, FTP..)
  • Using extra Metasploit module. The module should consume the DPE xml database format.
  • Integrated with Password cracking tools

Benefits of the DPE efforts

  • Unifying the passwords database information.
  • Standardization of the default accesses testing.
  • Reducing the process of passwords testing.
  • Minimizing the risks of lockouts and denial of service during the security assessment.

Submission Guides

DPE xml entries, changes, modification or any comment could be emailed to me (dpe at toolswatch dot org). The entries will be reviewed prior to being posted on the repository.

To submit DPE entries, the following requirements should be accepted:

  • CSV file
  • format : [vendor ; cpe (if possible); description; type ; CVE (if possible) ; protocol ; port ; username ; password]


The duplicate entries will not be taken into account.

Any direct or particular request, feel free to drop an email to info at dpe at toolswatch dot org

Download (Beta release)

To demonstrate the added value of the concept and to facilitate the understanding of the DPE basics, I have developed a simple program called 'DPEparser '. DPEparser is written in python and allows consuming the xml based database. The database itself is the core of the DPE concept. It is based on a wide amount of data found on renowned sites that have done a great job by keeping and sharing with us the information.

And to stand out from the others, DPE incorporates some missing information such as CPE (Common Platform Enumeration) and CVE. The main goals are to unify and to facilitate the search for default passwords during security assessments or penetration testing.

As a result, my ultimate objective is the creation of a unique and consolidated database for default credentials aligned with open standards such as CVE and CPE.

For this first beta release, I generated a list of average 1920 passwords and 225 vendors. I added several entries CVE and CPE based on the official NVD dictionary v2.2 (http://nvd.nist.gov/cpe.cfm ) whenever it is possible to do so. The database should grow very quickly. DPEparser is open source. So feel free to debug/modify the code as long as you keep.... you know the drill ;)

Parser & Database

DPEparser.py
MD5 (dpeparser.py) = 37d3b698dd178a0446b6378216c61e42

dpe_db.xml (mandatory. It could be downloaded using ./dpeparser --update or -u )

Beta features

  • Integrated information
    • Vendor name
    • Device Description,
    • Type
    • CPE (if any)
    • CVE (if any)
    • Protocol used
    • Default tcp/udp port
    • default username
    • default password
  • Search for credentials by CPE Common Platform Enumeration v2.2 (cpe:/h:cisco:building_broadband_service_manager:5.0)
  • Search for credentials by Type (available keywords: router, switch, firewall, voip, software, operating system, telephony, database, printer)
  • Search for credentials by vendor (cisco, alcatel ....)
  • Export and save automatically results to a comma-separated. It can be supplied to your favorite password bruteforcer.
  • Update DPE xml database from the official DPE repository (www.toolswatch.org/dpe)

usage

Usage: dpeparser.py [Options]

Options:

--version show program's version number and exit

-h, --help show this help message and exit

-c SEARCHCPE, --cpe=SEARCHCPE

Search for CPE default passwords

ex:cpe:/h:cisco:router_4000

-v SEARCHVENDOR, --vendor=SEARCHVENDOR

Search for Vendors default passwords (ex: cisco,

apple...)

-t SEARCHTYPE, --type=SEARCHTYPE

Search for Type default passwords (ex:router, switch,

hub...)

-d SEARCHDESC, --description=SEARCHDESC

Search for description (ex:cisco router 2600...)

-u, --update update DPE xml content

Usage: dpeparser.py [Options] filename

dpeparser.py: error: [!]- You must supply a pattern to search for.

Download latest DPE xml Database (mandatory)

$ ./dpeparser.py -u

[+] Updating from official location http://www.toolswatch.org/dpe/dpe_db.xml

[*] Downloading: dpe_db.xml Bytes: 60940

60940 [100.00%]

Listing Default Credentials using a CPE

$ ./dpeparser.py -c cpe:/a:cisco:wireless_lan_solution_engine

[+] Searching default credentials for cpe:/a:cisco:wireless_lan_solution_engine

[+] Creating output file passlist.txt

-------

vendor: cisco

model: cisco wireless lan solution engine (rev from 2.0 to 2.5)

type: software

cpe: cpe:/a:cisco:wireless_lan_solution_engine

username: root

password: blender

protocol: multi on tcp/udp port:

-------

vendor: cisco

model: cisco wireless lan solution engine (rev from 2.0 to 2.5)

type: software

cpe: cpe:/a:cisco:wireless_lan_solution_engine

username: wlse

password: wlsedb

protocol: multi on tcp/udp port:

--------------------------------------------------

[+] Exporting passwords in cpe:/a:cisco:wireless_lan_solution_engine to file passlist.txt

[+] Exiting program.

Listing Default Credentials by a device type

$ ./dpeparser.py -t printer

[+] Searching default credentials for printer

[+] Creating output file passlist.txt

-------

vendor: ricoh

model: aficio 2020d

type: printer

cpe:

username: admin

password: password

protocol: http on tcp/udp port:

-------

vendor: ricoh

model: aficio 2228c

type: printer

cpe:

username: sysadmin

password: password

protocol: multi on tcp/udp port:

-------

vendor: ricoh

model: aficio 2232c

type: printer

cpe:

username: n/a

password: password

protocol: telnet on tcp/udp port:

-------

vendor: ricoh

model: aficio ap3800c rev. 2.17

type: printer

cpe:

username: (none)

password: password

protocol: http on tcp/udp port:

-------

vendor: ricoh

model: aficio rev. ap3800c

type: printer

cpe:

username: sysadmin

password: password

protocol: http on tcp/udp port:

-------

vendor: ricoh

model: ap410n rev. 1.13

type: printer

cpe:

username: admin

password: (none)

protocol: http on tcp/udp port:

--------------------------------------------------

[+] Exporting passwords in printer to file passlist.txt

Listing Default Credentials by vendor

$ ./dpeparser.py -v cisco

[+] Searching default credentials for cisco

[+] Creating output file passlist.txt

-------

vendor: cisco

model: bbsd msde client rev. 5.0 and 5.1

type: access

cpe: cpe:/h:cisco:building_broadband_service_manager:5.0

username: bbsd-client

password: NULL

protocol: telnet or named pipes on tcp/udp port:23

-------

vendor: cisco

model: bbsm administrator rev. 5.0 and 5.1

type: access

cpe: cpe:/h:cisco:building_broadband_service_manager:5.0

username: Administrator

password: changeme

protocol: multi on tcp/udp port:

-------

vendor: cisco

model: bbsm msde administrator rev. 5.0 and 5.1

type: access

cpe: cpe:/h:cisco:building_broadband_service_manager:5.0

username: sa

password: (none)

protocol: ip and named pipes on tcp/udp port:

---------- CUT

Listing Default Credentials by description

$ ./dpeparser.py -d "OFFICE Rev. 4.1"

[+] Searching default credentials for OFFICE Rev. 4.1

[+] Creating output file passlist.txt

-------

vendor: alcatel

model: omnipcx office rev. 4.1

type: software

cpe: cpe:/a:alcatel-lucent:omnipcx:014.001

username: ftp_inst

password: pbxk1064

protocol: ftp on tcp/udp port:21

-------

vendor: alcatel

model: omnipcx office rev. 4.1

type: software

cpe: cpe:/a:alcatel-lucent:omnipcx:014.001

username: ftp_admi

password: kilo1987

protocol: ftp on tcp/udp port:21

-------

vendor: alcatel

model: omnipcx office rev. 4.1

type: software

cpe: cpe:/a:alcatel-lucent:omnipcx:014.001

username: ftp_oper

password: help1954

protocol: ftp on tcp/udp port:21

-------

vendor: alcatel

model: omnipcx office rev. 4.1

type: software

cpe: cpe:/a:alcatel-lucent:omnipcx:014.001

username: ftp_nmc

password: tuxalize

protocol: ftp on tcp/udp port:21

The output file

# Password list for OFFICE Rev. 4.1

# Generated by DPE Default Passwords Enumeration Parser

ftp_inst,pbxk1064

ftp_admi,kilo1987

ftp_oper,help1954

What should you learn next?

What should you learn next?

From SOC Analyst to Secure Coder to Security Manager — our team of experts has 12 free training plans to help you hit your goals. Get your free copy now.

ftp_nmc,tuxalize

NJ Ouchn
NJ Ouchn

NJ OUCHN has an Engineer/Master Electronics diploma from a Prestigious French Engineering School. A security expert with over 15 years experience in vulnerability management, compliance assessment and pentesting. Prior to be a security freelancer, NJ was CTO and Co-Founder of an innovative SaaS Multi-Engines Threats Scanning Solution. As part of his research, he is focusing into maintaining many projects as the DPE (Default Password Enumeration), vFeed® the open source correlated & cross-linked vulnerability database and FireCAT the Firefox Catalog of Auditing exTensions.

Today, he is the organizer of the major event Blackhat Arsenal Tools (US and Europe) since 2011 and the founder and main maintainer of the most reliable service for tools watch and track www.toolswatch.org

He goes by the handle of @toolswatch on Twitter and he is a nice guy always willing to share and to communicate with people.