HR-Hacking–bugs-in

Report
Invest in security
to secure investments
HR Hacking – bugs in PeopleSoft
Alexey Tyurin
Director of consulting department in ERPScan
Alexey Tyurin
• Director of consulting in ERPScan
• XML/WEB/Win/Network security fun
• Hacked a lot of online banking systems
• Co-Organizer of Defcon Russia Group
• Editor of “EasyHack” column for the “Xakep” magazine
@antyurin
erpscan.com
ERPScan — invest in security to secure investments
2
What is it?
•
•
•
Oracle PeopleSoft Apps: HRMS, FMS, SCM, CRM, EPM
Can work as one big portal or separately
Many implementations
erpscan.com
ERPScan — invest in security to secure investments
3
PeopleSoft Internet Architecture
•
•
Many applications, but they have one architecture
PeopleSoft Internet Architecture
–
•
Internet oriented since version 8
Based on several special core technologies
erpscan.com
ERPScan — invest in security to secure investments
4
PeopleSoft Internet Architecture
PeopleTools:
• Technology
• Developer tools
• Framework
• PeopleCode
All of the applications are created using PeopleTools.
erpscan.com
ERPScan — invest in security to secure investments
5
PeopleSoft Internet Architecture
erpscan.com
ERPScan — invest in security to secure investments
6
PeopleSoft Internet Architecture
•
Web server
 WebLogic /WebSphere
 PS Servlets
 Forwards request from a browser to an App Server
•
Application server
– PS Services + Tuxedo + Jolt
– Business logic, SQL transaction management, Transport
•
Database server
– System Tables, PeopleTools metadata , PeopleSoft application data
erpscan.com
ERPScan — invest in security to secure investments
7
PeopleSoft Internet Architecture
Another view:
erpscan.com
ERPScan — invest in security to secure investments
8
PeopleSoft Internet Architecture
•
Users (web browser)
– All common web technologies
– A single escalation point for common and administrative goals
•
Developers (PeopleTools)
– 2-Tier – direct connection to DBMS
– 3-Tier – connection through Application Server. Special ports WSH, WSL.
Essentially, basic SQL requests which are forwarded to DBMS by
Application Server
•
External systems
– Different web services (SOAP, XML) for a cross-system integration
erpscan.com
ERPScan — invest in security to secure investments
9
PeopleSoft Internet Architecture
erpscan.com
ERPScan — invest in security to secure investments
10
PeopleSoft Internet Architecture
Authentication process and terms:
•
User logs in with their User ID and password.
•
Application Server uses Connect ID to connect to DBMS.
–
•
•
•
*
This account has limited rights in DBMS. It is used to retrieve the
u=User ID and password, which are then compared to the user’s input
If successful, the system takes Symbolic ID (associated with)
User ID.
The system uses Symbolic ID to find in PSACCESSPRFL the
necessary Access ID and the password. This account is
privileged.
The system reconnects to DBMS using Access ID.
Passwords are encrypted.
erpscan.com
ERPScan — invest in security to secure investments
11
PeopleSoft Vulns
Some vulns every year, some talks about,
but no info for pentesting…
erpscan.com
ERPScan — invest in security to secure investments
12
Google Dorks
• filetype:GBL peoplesoft
• peoplesoft inurl:cmd=login
• intitle:"PeopleSoft Enterprise Sign-in"
• intitle:"WebLogic Server" intitle:"Console Login" inurl:console
• "Welcome to Weblogic Application Server" PeopleSoft
erpscan.com
ERPScan — invest in security to secure investments
13
Google Dorks
erpscan.com
ERPScan — invest in security to secure investments
14
Detect
•
PS can be “hidden” very well and look totally unlike itself
– Filetype: GBL
– A lot of JavaScripts with version information
– Cookie with PORTAL-PSJSESSIONID
– Cookie PSTOKEN
– Cookie PSLOGINLIST
erpscan.com
ERPScan — invest in security to secure investments
15
Ports
erpscan.com
ERPScan — invest in security to secure investments
16
Default ports
•
•
•
•
•
•
•
•
•
80, 443 – both ports – WebLogic / PeopleSoft
3050 – Tuxedo (not used in PS)
7000 – WSL – distributes connections on WSH
7001-7005 – WSH – a port on the application server for
developers (3-tier)
7180, 7143 – PS REN server (Real-time EventNotification)
9000 – JSL – distributes connections on JSH (jolt)
9001-9005 – a port on the application server for Jolt
connections from the web server
9500 – PS Debugging port – a port on the application server
(non default)
9100 – Jolt relay (non default)
erpscan.com
ERPScan — invest in security to secure investments
17
Default inputs
• A lot of input spots. Scan them!
erpscan.com
ERPScan — invest in security to secure investments
18
Default accounts
Some of them:
•
people:peop1e – DB
•
PS:PS – super PS user (also VP1:VP1)
•
“password” for many web services
•
“dayoff” for a Portal servlet
Ex: psp/[site]/?cmd=viewconfig&pwd=dayoff – to see configs
Different way: non-standard Weblogic accounts:
•
system: Passw0rd (password) – main administrator
•
operator: password – operator role
•
monitor: password – monitor role
* The password of “system” is often changed to that of “PS”
erpscan.com
ERPScan — invest in security to secure investments
19
WebLogic
•
•
•
WebLogic admin “/console”
On the same port with PeopleSoft application by default
Anyone can try to access the inside with default accounts
erpscan.com
ERPScan — invest in security to secure investments
20
Default inf disclosure
• Some of them:
erpscan.com
ERPScan — invest in security to secure investments
21
Another classic attack
• Most administrative tasks are fulfilled by administrators through
the portal. XSS is a beautiful attack!
• Ex. 1 (until PT 8.51).
PSOL Full Text Search: XSS in every entry field
erpscan.com
ERPScan — invest in security to secure investments
22
Another classic attack
• Ex. 2 (PT 8.53): CVE-2013-3818
Patched in CPU 16 July 2013 (cpujul2013)
http://172.16.0.79/CfgOCIReturn.html?&debug=true&domain=aaa
%27%3Cimg%20src%3D%22zz%22%20onerror%3Dalert%28%22XS
S%22%29%3E
erpscan.com
ERPScan — invest in security to secure investments
23
Strange UDDI explorer
One of input spots:
• We can scan internal network via SSRF (time-based)
• We can steal the password of administrator
* But who uses this strange thing?
erpscan.com
ERPScan — invest in security to secure investments
24
DEMO
erpscan.com
ERPScan — invest in security to secure investments
25
PeopleSoft DoS
•
•
•
•
old research
buffer overflow in login process!!!
we can control the return address
but stack cookie… so only DoS
* Do you think it is secure Java? No, there are too many crashes 
erpscan.com
ERPScan — invest in security to secure investments
26
True DoS
• One of input points is Business Interlink
• No authentication
• Simple request
• PeopleSoft сrashes (Java, to be precise ;))
erpscan.com
ERPScan — invest in security to secure investments
27
DEMO
erpscan.com
ERPScan — invest in security to secure investments
28
XXEs
• Some of input points: PSIGW/*, Business Interlink, SyncServ
• !!!No authentication !!!
• Common XXE injection impact:
– We can read plain text files (not all)
– SSRF
– SSRF+gopher (if JDK <= 1.6)
– SSRF+grab NTLM hashes/SMBRelay (if JDK <= 1.6 and OS = Windows)
– Classic entities DoS?
+ we can list directories and read XML files! (no binary)
CVE-2013-3800, CVE-2013-3819, CVE-2013-3821
Patched in CPU on the 16th July 2013 (cpujul2013)
erpscan.com
ERPScan — invest in security to secure investments
29
Encryption
Encryption of password in config files:
•
Some passwords of PeopleSoft are stored in plaintext
•
Some – DES
•
Some – 3DES
•
Some – AES (Weblogic)
DES
•
The key for DES is hardcoded
•
Was used for encryption in the older systems
•
Has no ID at the beginning (such as “{V1.1}”)
erpscan.com
ERPScan — invest in security to secure investments
30
Encryption
3DES
•
The key for 3DES is standard by default.
•
You can check it. The string “{V1.1}” before an encrypted
password shows the key is default.
•
After each key regeneration, the number is changed (1.2,
1.3…).
•
Do you regenerate it?
AES
•
If you want to decrypt with AES, you need
SerializedSystemIni.dat.
•
You can understand that it is AES by the “{AES}” string in the
beginning of an encrypted password.
erpscan.com
ERPScan — invest in security to secure investments
31
Whatever do we read?
• Configuration files that can store plaintext passwords:
hcmss.dms, create_accessid.sql , connect_2005.sql,
psprcs.cfg, hcengl.log, dbsetup.xml, psappsrv.cfg,
resetpswd.dms, hcora.dms, connect.sql, pswinclt.cfg
* They mostly belong to Connection ID. But there are some PS too.
• Configuration files that can store encrypted passwords
(DES, 3DES, AES):
configuration.properties, gatewayUserProfile.xml,
integrationGateway.properties, config.xml,
security.xml, DefaultAuthenticatorInit.ldif,
boot.properties, nm_password.properties
* They mostly belong to web service. But they can fit forPS too.
erpscan.com
ERPScan — invest in security to secure investments
32
Whatever do we read? Issues
• Not all of the listed files can be read by reading data from the
web server
• Passwords from WebLogic accounts are AES-encrypted, the key
is in the binary file
• If the administrator re-generated keys to 3DES ({V1.2},{V1.3 …),
the key is also in a binary file which cannot be read through XXE
• Theoretically, the private SSL key can be read and used for
MitM attacks, but it has to be stored in plain-text. By default, it
is stored in Java storage (binary)
erpscan.com
ERPScan — invest in security to secure investments
33
Attack!
1) Read Connection ID and attack through the database. It is
possible to download user hashes and bruteforce them, for
example.
2) From the multitude of configuration files, we can retrieve
various accounts (in the case of v. 1.1 or an old PT version with
DES) and use it to find the password for the PS acount in Portal.
3) We can read the file nm_password.properties of WebLogic,
which stores the hash of the node manager password (similar
to the password of the user “system” in WebLogic by default).
erpscan.com
ERPScan — invest in security to secure investments
34
DEMO
erpscan.com
ERPScan — invest in security to secure investments
35
Greetz to our crew who helped

similar documents