Questo pazzo pazzo Nobel
Candida anche tu il tuo premio Nobel per la Pace!
Tutto al costo di un francobollo da lettera per la Norvegia!
Puoi scegliere chi vuoi!
Lex Lutor, il Dottor Destino, Goblin, Ignazio La Russa... tutti sono candidabili!
Poliversity - Università ricerca e giornalismo reshared this.
L’Eutanasia arriva per la prima volta in Corte costituzionale
L’udienza di oggi riguarda il caso di “Libera”, paralizzata e impossibilitata ad autosomministrarsi il farmaco letale
“Se la Corte dovesse accogliere la questione di legittimità costituzionale, le persone malate che desiderano porre fine alle proprie sofferenze, ma che sono fisicamente impossibilitate all’autosomministrazione del farmaco e per questo oggi discriminate, potrebbero accedere alla morte volontaria”.
Stamattina, per la prima volta, la Corte costituzionale ha trattato il tema dell’eutanasia. La Corte, infatti, si è già espressa 4 volte negli ultimi 7 anni sul tema del fine vita, in particolare sul suicidio assistito, ma oggi per la prima volta il tema è stato quello dell’eutanasia e quindi del coinvolgimento diretto del medico nella somministrazione del farmaco letale a una persona malata che è in possesso di tutti i criteri indicati dalla sentenza 242 del 2019 sul caso “Cappato-Dj Fabo”.
In particolare, il caso discusso oggi è quello di “Libera” (nome di fantasia, da lei scelto a tutela della privacy), una donna toscana di 55 anni, affetta da sclerosi multipla progressiva, completamente paralizzata e mantenuta in vita da trattamenti di sostegno vitale.
Le condizioni di “Libera” sono state già verificate da parte dell’ASL e ha tutti i requisiti per l’accesso al suicidio medicalmente assistito stabiliti dalla sentenza 242 del 2019, però non è fisicamente in grado di assumere autonomamente il farmaco letale: è completamente paralizzata dal collo in giù, ha difficoltà nel deglutire e dipende dai suoi caregiver per tutte le attività quotidiane. Ha rifiutato la sedazione profonda perché vuole essere lucida e cosciente fino alla fine. Per questo, assistita dai suoi legali – il collegio è coordinato dall’avvocata Filomena Gallo, Segretaria nazionale dell’Associazione Luca Coscioni, ed è composto anche dagli avvocati Francesca Re, Alessia Cicatelli, Angioletto Calandrini e dal professor Giacomo D’Amico – ha presentato un ricorso d’urgenza al tribunale di Firenze, con un’azione di accertamento, affinché, alla luce dell’impossibilità di autosomministrarsi il farmaco letale, autorizzi il medico di fiducia alla sua somministrazione. Questo intervento diretto del medico però oggi integrerebbe il reato di omicidio del consenziente, punito dall’articolo 579 del codice penale, con la reclusione fino a 15 anni.
Il tribunale di Firenze, il 30 aprile scorso, ha quindi sollevato la questione di legittimità costituzionale sull’articolo 579 del codice penale (omicidio del consenziente), che punisce con la reclusione fino a 15 anni “chiunque cagiona la morte di un uomo col consenso di lui”, senza ammettere eccezione alcuna, a differenza dell’attuale formulazione dell’articolo 580 che depenalizza l’aiuto al suicidio per persone nelle condizioni di “Libera”.
Dichiara Filomena Gallo, avvocata che ha discusso in udienza pubblica dinanzi ai giudici della Corte costituzionale: “‘Libera’ ha seguito il percorso tracciato dalla legge 219/2017 e dalla sentenza 242/19 e successivi interventi, ha ottenuto le verifiche da parte delle strutture sanitarie pubbliche e ha individuato un medico disponibile su base volontaria ad assisterla, il dottor Malacarne.
Tuttavia, la sua condizione di immobilità le impedisce l’autosomministrazione del farmaco: un vincolo esclusivamente fisico che, in assenza di un intervento che modifichi la portata dell’articolo 579 del codice penale, si traduce in un limite giuridico, insuperabile e assoluto, e dunque in una discriminazione intollerabile. Non si tratta di cancellare l’articolo 579 del codice penale. Si tratta, come hanno già fatto i giudici costituzionale per l’articolo 580, di interpretarlo alla luce dei principi costituzionali, e di escluderne l’applicazione nei casi in cui la volontà suicidaria sia libera, consapevole, verificata, e l’unico ostacolo sia un limite fisico oggettivo.
‘Libera’ non chiede un diritto speciale. Chiede semplicemente che la sua libertà di autodeterminarsi non venga annientata dalla propria condizione fisica. Tocca ora alla Corte, con gli stessi strumenti utilizzati per la sentenza 242/19, colmare un vuoto che produce una ingiustizia concreta in attesa di una buona legge che rispetti la libertà di scelta della persona”.
L'articolo L’Eutanasia arriva per la prima volta in Corte costituzionale proviene da Associazione Luca Coscioni.
EDIT: ho rifatto accesso e il problema n. 1 si è risolto (ma non il n. 2)
Sto (ri)provando a usare Raccoon e ho due problemi.
1) la timeline "Iscrizioni" mi appare vuota ("Qui non c'è nulla da visualizzare")
2) nella scheda Profilo vedo i miei post ma alcuni sono troncati (ho provato a cambiare la modà di visualizzazione su Completa", non funziona)
Uso l'ultima versione e sono su /e/OS.
N.B. sto usando Raccoon anche per il mio account mastodon.uno e con quello non ci sono problemi
Suggerimenti?
Grazie 🙏
@Signor Amministratore ⁂
Sì, è su "illimitato".
In particolare c'è un post che mi taglia molto presto.
Allego 2 screenshot: uno del post visualizzato nella scheda Profilo dal mio account Friendica (tema verde, post troncato) e uno dello stesso post aperto loggandomi dall'account Mastodon (tema blu, il post compare per intero).
🤔
L'opzione è su "illimitato"
I due screen si riferiscono allo stesso post, che viene troncato se lo apro nella scheda profilo loggandomi su poliverso.org ma viene visualizzato interamente se lo cerco dopo essermi loggato su mastodon.uno
@Tiziano sì, confermo che succede anche a me.
@𝔻𝕚𝕖𝕘𝕠 🦝🧑🏻💻🍕 riesci a capire perché Raccoon taglia post come questo?
⬇️
poliverso.org/display/0477a01e…
Tiziano :friendica: likes this.
@Signor Amministratore ⁂ @𝔻𝕚𝕖𝕘𝕠 🦝🧑🏻💻🍕 C'è un follow-up qui... e giuro che mi stanno simpatici i procioni 🙄
GR Valle d'Aosta del 08/07/2025 ore 12:10
GR Regionale Valle d'Aosta. Le ultime notizie della regione Valle d'Aosta aggiornate in tempo reale. - Edizione del 08/07/2025 - 12:10
Touch Lamp Tracks ISS with Style
In the comments of a recent article, the question came up as to where to find projects from the really smart kids the greybeards remember being in the 70s. In the case of [Will Dana] the answer is YouTube, where he’s done an excellent job of producing an ISS-tracking lamp, especially considering he’s younger than almost all of the station’s major components.*
There’s nothing ground-breaking here, and [Will] is honest enough to call out his inspiration in the video. Choosing to make a ground-track display with an off-the-shelf globe is a nice change from the pointing devices we’ve featured most recently. Inside the globe is a pair of stepper motors configured for alt/az control– which means the device must reset every orbit, since [Willis] didn’t have slip rings or a 360 degree stepper on hand. A pair of magnets couples the motion system inside the globe to the the 3D printed ISS model (with a lovely paintjob thanks to [Willis’s girlfriend]– who may or may be from Canada, but did show up in the video to banish your doubts as to her existence), letting it slide magically across the surface. (Skip to the end of the embedded video for a timelapse of the globe in action.) The lamp portion is provided by some LEDs in the base, which are touch-activated thanks to some conductive tape inside the 3D printed base.
It’s all controlled by an ESP32, which fetches the ISS position with a NASA API. Hopefully it doesn’t go the way of the sighting website, but if it does there’s more than enough horsepower to calculate the position from orbital parameters, and we are confident [Will] can figure out the code for that. That should be pretty easy compared to the homebrew relay computer or the animatronic sorting hat we featured from him last year.
Our thanks to [Will] for the tip. The tip line is for hackers of all ages, but we admit that it’s great to see what the new generation is up to.
*Only the Roll Out Solar Array, unless you only count on-orbit age, in which case the Nakua module would qualify as well.
youtube.com/embed/nbEe-BCNutg?…
Il Pentagono sceglie Roboze per rafforzare la supply chain industriale. I dettagli
@Notizie dall'Italia e dal mondo
A Houston, in Texas, c’è un pezzo di Italia che sta guadagnando spazio nelle strette maglie dell’industria della difesa americana. Si tratta di Roboze, società deep tech con base a Bari e specializzata nella stampa 3D industriale di materiali compositi ad
Notizie dall'Italia e dal mondo reshared this.
freezonemagazine.com/articoli/…
Nelle notti infuocate e insonni di quest’ennesima estate — che sarà, di certo, meteorologicamente da dimenticare — il pensiero continua a rivolgersi agli accadimenti degli ultimi tre anni. Addormentarsi diventa ancora più difficile, perché il fardello che dobbiamo portare è sempre più pesante e la via d’uscita sembra non
Inseguito dai tedeschi riuscii a nascondermi rannichiandomi dietro una roccia grupposbarchi.wordpress.com/20…
Approach to mainframe penetration testing on z/OS. Deep dive into RACF
In our previous article we dissected penetration testing techniques for IBM z/OS mainframes protected by the Resource Access Control Facility (RACF) security package. In this second part of our research, we delve deeper into RACF by examining its decision-making logic, database structure, and the interactions between the various entities in this subsystem. To facilitate offline analysis of the RACF database, we have developed our own utility, racfudit, which we will use to perform possible checks and evaluate RACF configuration security. As part of this research, we also outline the relationships between RACF entities (users, resources, and data sets) to identify potential privilege escalation paths for z/OS users.
This material is provided solely for educational purposes and is intended to assist professionals conducting authorized penetration tests.
RACF internal architecture
Overall role
To thoroughly analyze RACF, let’s recall its role and the functions of its components within the overall z/OS architecture. As illustrated in the diagram above, RACF can generally be divided into a service component and a database. Other components exist too, such as utilities for RACF administration and management, or the RACF Auditing and Reporting solution responsible for event logging and reporting. However, for a general understanding of the process, we believe these components are not strictly necessary. The RACF database stores information about z/OS users and the resources for which access control is configured. Based on this data, the RACF service component performs all necessary security checks when requested by other z/OS components and subsystems. RACF typically interacts with other subsystems through the System Authorization Facility (SAF) interface. Various z/OS components use SAF to authorize a user’s access to resources or to execute a user-requested operation. It is worth noting that while this paper focuses on the operating principle of RACF as the standard security package, other security packages like ACF2 or Top Secret can also be used in z/OS.
Let’s consider an example of user authorization within the Time Sharing Option (TSO) subsystem, the z/OS equivalent of a command line interface. We use an x3270 terminal emulator to connect to the mainframe. After successful user authentication in z/OS, the TSO subsystem uses SAF to query the RACF security package, checking that the user has permission to access the TSO resource manager. The RACF service queries the database for user information, which is stored in a user profile. If the database contains a record of the required access permissions, the user is authorized, and information from the user profile is placed into the address space of the new TSO session within the ACEE (Accessor Environment Element) control block. For subsequent attempts to access other z/OS resources within that TSO session, RACF uses the information in ACEE to make the decision on granting user access. SAF reads data from ACEE and transmits it to the RACF service. RACF makes the decision to grant or deny access, based on information in the relevant profile of the requested resource stored in the database. This decision is then sent back to SAF, which processes the user request accordingly. The process of querying RACF repeats for any further attempts by the user to access other resources or execute commands within the TSO session.
Thus, RACF handles identification, authentication, and authorization of users, as well as granting privileges within z/OS.
RACF database components
As discussed above, access decisions for resources within z/OS are made based on information stored in the RACF database. This data is kept in the form of records, or as RACF terminology puts it, profiles. These contain details about specific z/OS objects. While the RACF database can hold various profile types, four main types are especially important for security analysis:
- User profile holds user-specific information such as logins, password hashes, special attributes, and the groups the user belongs to.
- Group profile contains information about a group, including its members, owner, special attributes, list of subgroups, and the access permissions of group members for that group.
- Data set profile stores details about a data set, including access permissions, attributes, and auditing policy.
- General resource profile provides information about a resource or resource class, such as resource holders, their permissions regarding the resource, audit policy, and the resource owner.
The RACF database contains numerous instances of these profiles. Together, they form a complex structure of relationships between objects and subjects within z/OS, which serves as the basis for access decisions.
Logical structure of RACF database profiles
Each profile is composed of one or more segments. Different profile types utilize different segment types.
For example, a user profile instance may contain the following segments:
- BASE: core user information in RACF (mandatory segment);
- TSO: user TSO-session parameters;
- OMVS: user session parameters within the z/OS UNIX subsystem;
- KERB: data related to the z/OS Network Authentication Service, essential for Kerberos protocol operations;
- and others.
Different segment types are distinguished by the set of fields they store. For instance, the BASE segment of a user profile contains the following fields:
- PASSWORD: the user’s password hash;
- PHRASE: the user’s password phrase hash;
- LOGIN: the user’s login;
- OWNER: the owner of the user profile;
- AUTHDATE: the date of the user profile creation in the RACF database;
- and others.
The PASSWORD and PHRASE fields are particularly interesting for security analysis, and we will dive deeper into these later.
RACF database structure
It is worth noting that the RACF database is stored as a specialized data set with a specific format. Grasping this format is very helpful when analyzing the DB and mapping the relationships between z/OS objects and subjects.
As discussed in our previous article, a data set is the mainframe equivalent of a file, composed of a series of blocks.
The image above illustrates the RACF database structure, detailing the data blocks and their offsets. From the RACF DB analysis perspective, and when subsequently determining the relationships between z/OS objects and subjects, the most critical blocks include:
- The header block, or inventory control block (ICB), which contains various metadata and pointers to all other data blocks within the RACF database. By reading the ICB, you gain access to the rest of the data blocks.
- Index blocks, which form a singly linked list that contains pointers to all profiles and their segments in the RACF database – that is, to the information about all users, groups, data sets, and resources.
- Templates: a crucial data block containing templates for all profile types (user, group, data set, and general resource profiles). The templates list fields and specify their format for every possible segment type within the corresponding profile type.
Upon dissecting the RACF database structure, we identified the need for a utility capable of extracting all relevant profile information from the DB, regardless of its version. This utility would also need to save the extracted data in a convenient format for offline analysis. Performing this type of analysis provides a comprehensive picture of the relationships between all objects and subjects for a specific z/OS installation, helping uncover potential security vulnerabilities that could lead to privilege escalation or lateral movement.
Utilities for RACF DB analysis
At the previous stage, we defined the following functional requirements for an RACF DB analysis utility:
- The ability to analyze RACF profiles offline without needing to run commands on the mainframe
- The ability to extract exhaustive information about RACF profiles stored in the DB
- Compatibility with various RACF DB versions
- Intuitive navigation of the extracted data and the option to present it in various formats: plaintext, JSON, SQL, etc.
Overview of existing RACF DB analysis solutions
We started by analyzing off-the-shelf tools and evaluating their potential for our specific needs:
- Racf2john extracts user password hashes (from the PASSWORD field) encrypted with the DES and KDFAES algorithms from the RACF database. While this was a decent starting point, we needed more than just the PASSWORD field; specifically, we also needed to retrieve content from other profile fields like PHRASE.
- Racf2sql takes an RACF DB dump as input and converts it into an SQLite database, which can then be queried with SQL. This is convenient, but the conversion process risks losing data critical for z/OS security assessment and identifying misconfigurations. Furthermore, the tool requires a database dump generated by the z/OS IRRDBU00 utility (part of the RACF security package) rather than the raw database itself.
- IRRXUTIL allows querying the RACF DB to extract information. It is also part of the RACF security package. It can be conveniently used with a set of scripts written in REXX (an interpreted language used in z/OS). However, these scripts demand elevated privileges (access to one or more IRR.RADMIN.** resources in the FACILITY resource class) and must be executed directly on the mainframe, which is unsuitable for the task at hand.
- Racf_debug_cleanup.c directly analyzes a RACF DB from a data set copy. A significant drawback is that it only parses BASE segments and outputs results in plaintext.
As you can see, existing tools don’t satisfy our needs. Some utilities require direct execution on the mainframe. Others operate on a data set copy and extract incomplete information from the DB. Moreover, they rely on hardcoded offsets and signatures within profile segments, which can vary across RACF versions. Therefore, we decided to develop our own utility for RACF database analysis.
Introducing racfudit
We have written our own platform-independent utility racfudit in Golang and tested it across various z/OS versions (1.13, 2.02, and 3.1). Below, we delve into the operating principles, capabilities and advantages of our new tool.
Extracting data from the RACF DB
To analyze RACF DB information offline, we first needed a way to extract structured data. We developed a two-stage approach for this:
- The first stage involves analyzing the templates stored within the RACF DB. Each template describes a specific profile type, its constituent segments, and the fields within those segments, including their type and size. This allows us to obtain an up-to-date list of profile types, their segments, and associated fields, regardless of the RACF version.
- In the second stage, we traverse all index blocks to extract every profile with its content from the RACF DB. These collected profiles are then processed and parsed using the templates obtained in the first stage.
The first stage is crucial because RACF DB profiles are stored as unstructured byte arrays. The templates are what define how each specific profile (byte array) is processed based on its type.
Thus, we defined the following algorithm to extract structured data.
Extracting data from the RACF DB using templates
- We offload the RACF DB from the mainframe and read its header block (ICB) to determine the location of the templates.
- Based on the template for each profile type, we define an algorithm for structuring specific profile instances according to their type.
- We use the content of the header block to locate the index blocks, which store pointers to all profile instances.
- We read all profile instances and their segments sequentially from the list of index blocks.
- For each profile instance and its segments we read, we apply the processing algorithm based on the corresponding template.
- All processed profile instances are saved in an intermediate state, allowing for future storage in various formats, such as plaintext or SQLite.
The advantage of this approach is its version independence. Even if templates and index blocks change their structure across RACF versions, our utility will not lose data because it dynamically determines the structure of each profile type based on the relevant template.
Analyzing extracted RACF DB information
Our racfudit utility can present collected RACF DB information as an SQLite database or a plaintext file.
RACF DB information as an SQLite DB (top) and text data (bottom)
Using SQLite, you can execute SQL queries to identify misconfigurations in RACF that could be exploited for privilege escalation, lateral movement, bypassing access controls, or other pentesting tactics. It is worth noting that the set of SQL queries used for processing information in SQLite can be adapted to validate current RACF settings against security standards and best practices. Let’s look at some specific examples of how to use the racfudit utility to uncover security issues.
Collecting password hashes
One of the primary goals in penetration testing is to get a list of administrators and a way to authorize using their credentials. This can be useful for maintaining persistence on the mainframe, moving laterally to other mainframes, or even pivoting to servers running different operating systems. Administrators are typically found in the SYS1 group and its subgroups. The example below shows a query to retrieve hashes of passwords (PASSWORD) and password phrases (PHRASE) for privileged users in the SYS1 group.
select ProfileName,PHRASE,PASSWORD,CONGRPNM from USER_BASE where CONGRPNM LIKE "%SYS1%";
Of course, to log in to the system, you need to crack these hashes to recover the actual passwords. We cover that in more detail below.
Searching for inadequate UACC control in data sets
The universal access authority (UACC) defines the default access permissions to the data set. This parameter specifies the level of access for all users who do not have specific access permissions configured. Insufficient control over UACC values can pose a significant risk if elevated access permissions (UPDATE or higher) are set for data sets containing sensitive data or for APF libraries, which could allow privilege escalation. The query below helps identify data sets with default ALTER access permissions, which allow users to read, delete and modify the data set.
select ProfileName, UNIVACS from DATASET_BASE where UNIVACS LIKE "1%";
The UACC field is not present only in data set profiles; it is also found in other profile types. Weak control in the configuration of this field can give a penetration tester access to resources.
RACF profile relationships
As mentioned earlier, various RACF entities have relationships. Some are explicitly defined; for example, a username might be listed in a group profile within its member field (USERID field). However, there are also implicit relationships. For instance, if a user group has UPDATE access to a specific data set, every member of that group implicitly has write access to that data set. This is a simple example of implicit relationships. Next, we delve into more complex and specific relationships within the RACF database that a penetration tester can exploit.
RACF profile fields
A deep dive into RACF internal architecture reveals that misconfigurations of access permissions and other attributes for various RACF entities can be difficult to detect and remediate in some scenarios. These seemingly minor errors can be critical, potentially leading to mainframe compromise. The explicit and implicit relationships within the RACF database collectively define the mainframe’s current security posture. As mentioned, each profile type in the RACF database has a unique set of fields and attributes that describe how profiles relate to one another. Based on these fields and attributes, we have compiled lists of key fields that help build and analyze relationship chains.User profile fields
- SPECIAL: indicates that the user has privileges to execute any RACF command and grants them full control over all profiles in the RACF database.
- OPERATIONS: indicates whether the user has authorized access to all RACF-protected resources of the DATASET, DASDVOL, GDASDVOL, PSFMPL, TAPEVOL, VMBATCH, VMCMD, VMMDISK, VMNODE, and VMRDR classes. While actions for users with this field specified are subject to certain restrictions, in a penetration testing context the OPERATIONS field often indicates full data set access.
- AUDITOR: indicates whether the user has permission to access audit information.
- AUTHOR: the creator of the user. It has certain privileges over the user, such as the ability to change their password.
- REVOKE: indicates whether the user can log in to the system.
- Password TYPE: specifies the hash type (DES or KDFAES) for passwords and password phrases. This field is not natively present in the user profile, but it can be created based on how different passwords and password phrases are stored.
- Group-SPECIAL: indicates whether the user has full control over all profiles within the scope defined by the group or groups field. This is a particularly interesting field that we explore in more detail below.
- Group-OPERATIONS: indicates whether the user has authorized access to all RACF-protected resources of the DATASET, DASDVOL, GDASDVOL, PSFMPL, TAPEVOL, VMBATCH, VMCMD, VMMDISK, VMNODE and VMRDR classes within the scope defined by the group or groups field.
- Group-AUDITOR: indicates whether the user has permission to access audit information within the scope defined by the group or groups field.
- CLAUTH (class authority): allows the user to create profiles within the specified class or classes. This field enables delegation of management privileges for individual classes.
- GROUPIDS: contains a list of groups the user belongs to.
- UACC (universal access authority): defines the UACC value for new profiles created by the user.
Group profile fields
- UACC (universal access authority): defines the UACC value for new profiles that the user creates when connected to the group.
- OWNER: the creator of the group. The owner has specific privileges in relation to the current group and its subgroups.
- USERIDS: the list of users within the group. The order is essential.
- USERACS: the list of group members with their respective permissions for access to the group. The order is essential.
- SUPGROUP: the name of the superior group.
General resource and data set profile fields
- UACC (universal access authority): defines the default access permissions to the resource or data set.
- OWNER: the creator of the resource or data set, who holds certain privileges over it.
- WARNING: indicates whether the resource or data set is in WARNING mode.
- USERIDS: the list of user IDs associated with the resource or data set. The order is essential.
- USERACS: the list of users with access permissions to the resource or data set. The order is essential.
RACF profile relationship chains
The fields listed above demonstrate the presence of relationships between RACF profiles. We have decided to name these relationships similarly to those used in BloodHound, a popular tool for analyzing Active Directory misconfigurations. Below are some examples of these relationships – the list is not exhaustive.
- Owner: the subject owns the object.
- MemberOf: the subject is part of the object.
- AllowJoin: the subject has permission to add itself to the object.
- AllowConnect: the subject has permission to add another object to the specified object.
- AllowCreate: the subject has permission to create an instance of the object.
- AllowAlter: the subject has the ALTER privilege for the object.
- AllowUpdate: the subject has the UPDATE privilege for the object.
- AllowRead: the subject has the READ privilege for the object.
- CLAuthTo: the subject has permission to create instances of the object as defined in the CLAUTH field.
- GroupSpecial: the subject has full control over all profiles within the object’s scope of influence as defined in the group-SPECIAL field.
- GroupOperations: the subject has permissions to perform certain operations with the object as defined in the group-OPERATIONS field.
- ImpersonateTo: the subject grants the object the privilege to perform certain operations on the subject’s behalf.
- ResetPassword: the subject grants another object the privilege to reset the password or password phrase of the specified object.
- UnixAdmin: the subject grants superuser privileges to the object in z/OS UNIX.
- SetAPF: the subject grants another object the privilege to set the APF flag on the specified object.
These relationships serve as edges when constructing a graph of subject–object interconnections. Below are examples of potential relationships between specific profile types.
Examples of relationships between RACF profiles
Visualizing and analyzing these relationships helped us identify specific chains that describe potential RACF security issues, such as a path from a low-privileged user to a highly-privileged one. Before we delve into examples of these chains, let’s consider another interesting and peculiar feature of the relationships between RACF database entities.
Implicit RACF profile relationships
We have observed a fascinating characteristic of the group-SPECIAL, group-OPERATIONS, and group-AUDITOR fields within a user profile. If the user has any group specified in one of these fields, that group’s scope of influence extends the user’s own scope.
Scope of influence of a user with a group-SPECIAL field
For instance, consider USER1 with GROUP1 specified in the group-SPECIAL field. If GROUP1 owns GROUP2, and GROUP2 subsequently owns USER5, then USER1 gains privileges over USER5. This is not just about data access; USER1 essentially becomes the owner of USER5. A unique aspect of z/OS is that this level of access allows USER1 to, for example, change USER5’s password, even if USER5 holds privileged attributes like SPECIAL, OPERATIONS, ROAUDIT, AUDITOR, or PROTECTED.
Below is an SQL query, generated using the racfudit utility, that identifies all users and groups where the specified user possesses special attributes:
select ProfileName, CGGRPNM, CGUACC, CGFLAG2 from USER_BASE WHERE (CGFLAG2 LIKE '%10000000%');
Here is a query to find users whose owners (AUTHOR) are not the standard default administrators:
select ProfileName,AUTHOR from USER_BASE WHERE (AUTHOR NOT LIKE '%IBMUSER%' AND AUTHOR NOT LIKE 'SYS1%');
Let’s illustrate how user privileges can be escalated through these implicit profile relationships.
Privilege escalation via the group-SPECIAL field
In this scenario, the user TESTUSR has the group-SPECIAL field set to PASSADM. This group, PASSADM, owns the OPERATOR user. This means TESTUSR’s scope of influence expands to include PASSADM’s scope, thereby granting TESTUSR control over OPERATOR. Consequently, if TESTUSR’s credentials are compromised, the attacker gains access to the OPERATOR user. The OPERATOR user, in turn, has READ access to the IRR.PASSWORD.RESET resource, which allows them to assign a password to any user who does not possess privileged permissions.
Having elevated privileges in z/OS UNIX is often sufficient for compromising the mainframe. These can be acquired through several methods:
- Grant the user READ access to the BPX.SUPERUSER resource of the FACILITY class.
- Grant the user READ access to UNIXPRIV.SUPERUSER.* resources of the UNIXPRIV class.
- Set the UID field to 0 in the OMVS segment of the user profile.
For example, the DFSOPER user has READ access to the BPX.SUPERUSER resource, making them privileged in z/OS UNIX and, by extension, across the entire mainframe. However, DFSOPER does not have the explicit privileged fields SPECIAL, OPERATIONS, AUDITOR, ROAUDIT and PROTECTED set, meaning the OPERATOR user can change DFSOPER’s password. This allows us to define the following sequence of actions to achieve high privileges on the mainframe:
- Obtain and use TESTUSR’s credentials to log in.
- Change OPERATOR’s password and log in with those credentials.
- Change DFSOPER’s password and log in with those credentials.
- Access the z/OS UNIX Shell with elevated privileges.
We uncovered another implicit RACF profile relationship that enables user privilege escalation.
Privilege escalation from a chain of misconfigurations
In another example, the TESTUSR user has READ access to the OPERSMS.SUBMIT resource of the SURROGAT class. This implies that TESTUSR can create a task under the identity of OPERSMS using the ImpersonateTo relationship. OPERSMS is a member of the HFSADMIN group, which has READ access to the TESTAUTH resource of the TSOAUTH class. This resource indicates whether the user can run an application or library as APF-authorized – this requires only READ access. Therefore, if APF access is misconfigured, the OPERSMS user can escalate their current privileges to the highest possible level. This outlines a path from the low-privileged TESTUSR to obtaining maximum privileges on the mainframe.
At this stage, the racfudit utility allows identifying these connections only manually through a series of SQLite database queries. However, we are planning to add support for another output format, including Neo4j DBMS integration, to automatically visualize the interconnected chains described above.
Password hashes in RACF
To escalate privileges and gain mainframe access, we need the credentials of privileged users. We previously used our utility to extract their password hashes. Now, let’s dive into the password policy principles in z/OS and outline methods for recovering passwords from these collected hashes.
The primary password authentication methods in z/OS, based on RACF, are PASSWORD and PASSPHRASE. PASSWORD is a password composed by default of ASCII characters: uppercase English letters, numbers, and special characters (@#$). Its length is limited to 8 characters. PASSPHRASE, or a password phrase, has a more complex policy, allowing 14 to 100 ASCII characters, including lowercase or uppercase English letters, numbers, and an extended set of special characters (@#$&*{}[]()=,.;’+/). Hashes for both PASSWORD and PASSPHRASE are stored in the user profile within the BASE segment, in the PASSWORD and PHRASE fields, respectively. Two algorithms are used to derive their values: DES and KDFAES.
It is worth noting that we use the terms “password hash” and “password phrase hash” for clarity. When using the DES and KDFAES algorithms, user credentials are stored in the RACF database as encrypted text, not as a hash sum in its classical sense. Nevertheless, we will continue to use “password hash” and “password phrase hash” as is customary in IBM documentation.
Let’s discuss the operating principles and characteristics of the DES and KDFAES algorithms in more detail.
DES
When the DES algorithm is used, the computation of PASSWORD and PHRASE values stored in the RACF database involves classic DES encryption. Here, the plaintext data block is the username (padded to 8 characters if shorter), and the key is the password (also padded to 8 characters if shorter).
PASSWORD
The username is encrypted with the password as the key via the DES algorithm, and the 8-byte result is placed in the user profile’s PASSWORD field.
Keep in mind that both the username and password are encoded with EBCDIC. For instance, the username USR1
would look like this in EBCDIC: e4e2d9f140404040
. The byte 0x40
serves as padding for the plaintext to reach 8 bytes.
This password can be recovered quite fast, given the small keyspace and low computational complexity of DES. For example, a brute-force attack powered by a cluster of NVIDIA 4090 GPUs takes less than five minutes.
The hashcat tool includes a module (Hash-type 8500) for cracking RACF passwords with the DES algorithm.
PASSPHRASE
PASSPHRASE encryption is a bit more complex, and a detailed description of its algorithm is not readily available. However, our research uncovered certain interesting characteristics.
First, the final hash length in the PHRASE field matches the original password phrase length. Essentially, the encrypted data output from DES gets truncated to the input plaintext length without padding. This design can clearly lead to collisions and incorrect authentication under certain conditions. For instance, if the original password phrase is 17 bytes long, it will be encrypted in three blocks, with the last block padded with seven bytes. These padded bytes are then truncated after encryption. In this scenario, any password whose first 17 encrypted bytes match the encrypted PASSPHRASE would be considered valid.
The second interesting feature is that the PHRASE field value is also computed using the DES algorithm, but it employs a proprietary block chaining mode. We will informally refer to this as IBM-custom mode.
DES encryption of a password phrase
Given these limitations, we can use the hashcat module for RACF DES to recover the first 8 characters of a password phrase from the first block of encrypted data in the PHRASE field. In some practical scenarios, recovering the beginning of a password phrase allowed us to guess the remainder, especially when weak dictionary passwords were used. For example, if we recovered Admin123
(8 characters) while cracking a 15-byte PASSPHRASE hash, then it is plausible the full password phrase was Admin1234567890
.
KDFAES
Computing passwords and password phrases generated with the KDFAES algorithm is significantly more challenging than with DES. KDFAES is a proprietary IBM algorithm that leverages AES encryption. The encryption key is generated from the password using the PBKDF2 function with a specific number of hashing iterations.
PASSWORD
The diagram below outlines the multi-stage KDFAES PASSWORD encryption algorithm.
KDFAES encryption of a password
The first stage mirrors the DES-based PASSWORD computation algorithm. Here, the plaintext username is encrypted using the DES algorithm with the password as the key. The username is also encoded in EBCDIC and padded if it’s shorter than 8 bytes. The resulting 8-byte output serves as the key for the second stage: hashing. This stage employs a proprietary IBM algorithm built upon PBKDF2-SHA256-HMAC. A randomly generated 16-byte string (salt) is fed into this algorithm along with the 8-byte key from the first stage. This data is then iteratively hashed using PBKDF2-SHA256-HMAC. The number of iterations is determined by two parameters set in RACF: the memory factor and the repetition factor. The output of the second stage is a 32-byte hash, which is then used as the key for AES encryption of the username in the third stage.
The final output is 16 bytes of encrypted data. The first 8 bytes are appended to the end of the PWDX field in the user profile BASE segment, while the other 8 bytes are placed in the PASSWORD field within the same segment.
The PWDX field in the BASE segment has the following structure:
Offset | Size | Field | Comment |
0–3 | 4 bytes | Magic number | In the profiles we analyzed, we observed only the value E7D7E66D |
4–7 | 4 bytes | Hash type | In the profiles we analyzed, we observed only two values: 00180000 for PASSWORD hashes and 00140000 for PASSPHRASE hashes |
8–9 | 2 bytes | Memory factor | A value that determines the number of iterations in the hashing stage |
10–11 | 2 bytes | Repetition factor | A value that determines the number of iterations in the hashing stage |
12–15 | 4 bytes | Unknown value | In the profiles we analyzed, we observed only the value 00100010 |
16–31 | 16 bytes | Salt | A randomly generated 16-byte string used in the hashing stage |
32–39 | 8 bytes | The first half of the password hash | The first 8 bytes of the final encrypted data |
You can use the dedicated module in the John the Ripper utility for offline password cracking. While an IBM KDFAES module for an older version of hashcat exists publicly, it was never integrated into the main branch. Therefore, we developed our own RACF KDFAES module compatible with the current hashcat version.
The time required to crack an RACF KDFAES hash has significantly increased compared to RACF DES, largely due to the integration of PBKDF2. For instance, if the memory factor and repetition factor are set to 0x08 and 0x32 respectively, the hashing stage can reach 40,000 iterations. This can extend the password cracking time to several months or even years.
PASSPHRASE
KDFAES encryption of a password phrase
Encrypting a password phrase hash with KDFAES shares many similarities with encrypting a password hash. According to public sources, the primary difference lies in the key used during the second stage. For passwords, data derived from DES-encrypting the username was used, while for a password phrase, its SHA256 hash is used. During our analysis, we could not determine the exact password phrase hashing process – specifically, whether padding is involved, if a secret key is used, and so on.
Additionally, when using a password phrase, the PHRASE and PHRASEX fields instead of PASSWORD and PWDX, respectively, store the final hash, with the PHRASEX value having a similar structure.
Conclusion
In this article, we have explored the internal workings of the RACF security package, developed an approach to extracting information, and presented our own tool developed for the purpose. We also outlined several potential misconfigurations that could lead to mainframe compromise and described methods for detecting them. Furthermore, we examined the algorithms used for storing user credentials (passwords and password phrases) and highlighted their strengths and weaknesses.
We hope that the information presented in this article helps mainframe owners better understand and assess the potential risks associated with incorrect RACF security suite configurations and take appropriate mitigation steps. Transitioning to the KDFAES algorithm and password phrases, controlling UACC values, verifying access to APF libraries, regularly tracking user relationship chains, and other steps mentioned in the article can significantly enhance your infrastructure security posture with minimal effort.
In conclusion, it is worth noting that only a small percentage of the RACF database structure has been thoroughly studied. Comprehensive research would involve uncovering additional relationships between database entities, further investigating privileges and their capabilities, and developing tools to exploit excessive privileges. The topic of password recovery is also not fully covered because the encryption algorithms have not been fully studied. IBM z/OS mainframe researchers have immense opportunities for analysis. As for us, we will continue to shed light on the obscure, unexplored aspects of these devices, to help prevent potential vulnerabilities in mainframe infrastructure and associated security incidents.
Campi “umanitari” e città recintate: l’architettura della pulizia etnica a Gaza
@Notizie dall'Italia e dal mondo
Progetti Usa e israeliani alimentano ulteriormente il sospetto di un piano di espulsione della popolazione palestinese in via di elaborazione
L'articolo Campi “umanitari” e città recintate: l’architettura della pulizia etnica a Gaza proviene da
Notizie dall'Italia e dal mondo reshared this.
Green It: tecnologia sostenibile per il futuro dei data center
@Informatica (Italy e non Italy 😁)
Chi lavora in questo campo da tempo suggerisce di intervenire, aumentando gradualmente l’utilizzo di energia rinnovabile senza influire sulle operazioni critiche. Ecco come implementare il Green It, per massimizzare al contempo sia l'efficienza operativa che la
Informatica (Italy e non Italy 😁) reshared this.
I Ceo europei chiedono la sospensione dell’AI Act: una sfida fra diritti e competitività
@Informatica (Italy e non Italy 😁)
I vertici di Airbus, BNP Paribas, Carrefour e Philips sono fra i 44 firmatari di una lettera aperta a Ursula von der Leyen, per richiedere la sospensione temporanea dell'Ai Act definito una "bomba a orologeria normativa". I motivi
Informatica (Italy e non Italy 😁) reshared this.
Turchia: nuova ondata di arresti di sindaci dell’opposizione
@Notizie dall'Italia e dal mondo
In Turchia la polizia ha arrestato altri sindaci dell'opposizione e il primo cittadino di Istanbul, principale sfidante di Erdogan alle presidenziali, rimane in prigione con accuse di corruzione
L'articolo Turchia: nuova pagineesteri.it/2025/07/08/med…
Notizie dall'Italia e dal mondo reshared this.
Altro che droni! Ora comandiamo i coleotteri con il joystick. Ecco a voi i Cyber-Coleotteri
Gli scienziati dell’Università del Queensland hanno presentato un’invenzione insolita che può accelerare significativamente le operazioni di ricerca e soccorso. Hanno trasformato i comuni coleotteri (Zophobas morio) in veri e propri insetti cibernetici, dotandoli di microchip miniaturizzati e di un sistema di controllo remoto.
Questi “super soccorritori” sono dotati di zaini rimovibili dotati di componenti elettronici che permettono di indirizzare gli insetti nella giusta direzione. Il controllo avviene tramite joystick simili a quelli utilizzati nei videogiochi. Grazie a questo, è possibile controllare con precisione i movimenti dei coleotteri senza danneggiarli o comprometterne la durata di vita.
L’idea di utilizzare gli insetti in compiti complessi come la rimozione di detriti da edifici crollati o da miniere non è nata per caso. Secondo il responsabile del progetto, il Dott. Tang Vo-Doan, i coleotteri possiedono già di per sé straordinarie capacità naturali. Si muovono agilmente su superfici complesse, si insinuano nelle fessure più strette e si arrampicano con sicurezza su superfici verticali, laddove le attrezzature tradizionali e persino i robot in miniatura sono impotenti.
Gli zaini sono costruiti utilizzando elettrodi che inviano segnali alle antenne del coleottero o alle sue elitre, le placche protettive rigide che ricoprono le sue ali. In questo modo, il team riesce a far muovere gli insetti nella giusta direzione. Sono già stati condotti test con successo: i coleotteri si muovono con sicurezza sia orizzontalmente che verticalmente verso l’alto e sono persino in grado di sollevare un carico aggiuntivo pari al loro peso.
Uno Zophobas morio, o tenebrione, dotato di uno zaino con microchip rimovibile che i ricercatori possono utilizzare per sollecitare i movimenti.
Sebbene alcuni test siano attualmente in corso utilizzando una fonte di alimentazione esterna, gli sviluppatori stanno già preparando prototipi migliorati con batterie compatte e telecamere miniaturizzate. Ciò consentirà non solo di monitorare i movimenti dell’insetto, ma anche di ricevere immagini in tempo reale dalla scena, fondamentale per le operazioni di soccorso.
Il team prevede di testare la nuova tecnologia in situazioni di emergenza reali nei prossimi cinque anni. Se il progetto supererà con successo le fasi di implementazione, i cyber-bug saranno in grado di ispezionare rapidamente le macerie, trovare sopravvissuti e trasmettere informazioni ai soccorritori, il che accelererà significativamente l’erogazione dei soccorsi.
Il lavoro degli scienziati dell’Università del Queensland si inserisce in una tendenza globale volta a creare tecnologie bioibride. Sviluppi simili sono già in corso in diversi Paesi. Ad esempio, gli specialisti della Nanyang Technological University di Singapore trasformano gli scarafaggi in “robot” controllati in pochi minuti, e diversi anni fa i bioingegneri hanno creato una versione cibernetica della pianta di Venere acchiappamosche, in grado di afferrare con delicatezza piccoli oggetti.
L'articolo Altro che droni! Ora comandiamo i coleotteri con il joystick. Ecco a voi i Cyber-Coleotteri proviene da il blog della sicurezza informatica.
Undermining the GDPR through ‘simplification’: EDRi pushes back against dangerous deregulation
EDRi has responded to the European Commission’s consultation on the GDPR ‘simplification’ proposal. The plan to remove documentation safeguards under Article 30(5) risks weakening security, legal certainty and rights enforcement, and opens the door to broader deregulation of the EU’s digital rulebook.
The post Undermining the GDPR through ‘simplification’: EDRi pushes back against dangerous deregulation appeared first on European Digital Rights (EDRi).
@devol
Come si fa a impostare l'istanza SearXNG di devol.it come motore di ricerca di default su Firefox?
Poliversity - Università ricerca e giornalismo reshared this.
Non riesco a far funzionare i "!bang". Volevo cercare una parola usando il bang "!translate" e SearXNG di devol.it mi ha dato un errore, ho pensato fosse un caso particolare ma provandone altri mi sembra che ci sia effettivamente qualcosa che non va (o qualcosa che non capisco io nel funzionamento dei bang).
Metto un esempio nella screenshot qui sotto, in cui provo a fare una ricerca della parola "albero" su Wikipedia.
abbiamo provato altri e funzionano, qua c'è la guida: newsletter.devol.it/guida-comp…
evidentemente alcuni motori ci bloccano pensando che siamo dei bot.
Guida Completa a SearXNG: Privacy e Libertà nelle Tue Ricerche Online
SearXNG rappresenta una delle alternative più potenti e rispettose della privacy nel panorama dei motori di ricerca attuali. Questa guida vi illustrerà come configurare e utilizzare l'istanza italiana ospitata da Devol (searxng.devol.devol - fediverso (devol, la newsletter del fediverso e dei servizi liberi online)
freezonemagazine.com/rubriche/…
Nel maggio del 1973, Mark Knopfler lascia Leeds e l’Università dove si è laureato in Letteratura Inglese alla volta di Londra. Quando parte è un giovane professore precario di 24 anni e un giornalista praticante del quotidiano Yorkshire Evening Post. Gli piace la musica e impara a suonare la chitarra da solo aiutato in questo […]
L'articolo Il divano dei fratelli Knopfler proviene da FREE
Riviste vintage in regalo - Questo è un post automatico da FediMercatino.it
Prezzo: 0 Euro
Regalo riviste vintage.
Nel mio blog potete consultare la lista degli articoli in regalo.
Attenzione! Non effettuo consegne a mano.
Pagamento dei costi di spedizione tramite donazione con Paypal.
Leggi la descrizione ed i termini e condizioni del blog aggiornati secondo le direttive Europee.
Il BLOG NON ha fini di lucro e non può averli in quanto frutto di un'iniziativa personale.
Il Mercatino del Fediverso 💵♻️ reshared this.
GR Valle d'Aosta del 08/07/2025 ore 07:20
GR Regionale Valle d'Aosta. Le ultime notizie della regione Valle d'Aosta aggiornate in tempo reale. - Edizione del 08/07/2025 - 07:20
Fußball-EM 2024: Hunderttausende Anfragen bei Polizei und Verfassungsschutz
Geflüchtete und Aktivist:innen: Frontex schickte jahrelang unrechtmäßig Daten an Europol
Zwischenlösung Palantir: Experten zerpflücken automatisierte Datenanalyse bei der Polizei Sachsen-Anhalt
Semplificazione normativa: Perché l’UE deve essere leader nella tecnologia applicata al diritto?
L'articolo proviene da #Euractiv Italia ed è stato ricondiviso sulla comunità Lemmy @Intelligenza Artificiale
“Nell’era del cloud computing e dell’intelligenza artificiale (IA) è paradossale che la macchina legislativa europea funzioni
Intelligenza Artificiale reshared this.
Ciao @Pierrot e benvenuto!
Se vuoi sapere cosa succede qui, puoi iniziare da
1) Questo link poliverso.org/community che ti mostra i contenuti prodotti dagli utenti del solo server Poliverso
2) Questo link poliverso.org/community/global che ti mostra i contenuti prodotti dagli utenti di server diversi da Poliverso
3) Questo link poliverso.org/network dove vedrai gli aggiornamenti dei tuoi contatti; e se anche non hai ancora contatti (e quindi non vedrai nulla nella pagina principale), puoi dare un'occhiata ai link a sinistra, dove troverai un filtro sui contenuti, in base alla tua lingua, gli ultimi contenuti pubblicati oppure tag come #Art #Socialmedia e #USA.
4) Questo link poliverso.org/calendar che ti mostra gli eventi federati condivisi da persone del tuo server o dai contatti dei tuoi contatti
Infine ti do il link di un promemoria utile per i nuovi utenti Friendica (ma anche per quelli meno nuovi)
“Essere giornalisti significa andarsela a cercare” – Intervista a Giuliana Sgrena
@Giornalismo e disordine informativo
articolo21.org/2025/07/essere-…
Un giornalista non è mai nel posto sbagliato, meno che mai quando si trova dove le cose accadono. Quando si tratta di un teatro di
Giornalismo e disordine informativo reshared this.
Ministero dell'Istruzione
Il fondo per l’acquisto dei libri di testo da parte delle famiglie meno abbienti, in base alla legge di bilancio del 2023, stanziava, per l’anno 2024, 133 milioni di euro, a cui vanno aggiunti ulteriori 4 milioni di euro che il #MIM ha destinato a ta…Telegram
Ministero dell'Istruzione
#ScuolaFutura, il campus itinerante del #MIM organizzato, nell’ambito del #PNRR Istruzione, per promuovere l’innovazione didattica e digitale delle scuole italiane, ha fatto tappa a Pesaro dal 4 al 7 luglio.Telegram
Letture contro la disinformazione su Israele
@Politica interna, europea e internazionale
LUNEDÌ 7 LUGLIO 2025, ORE 17 – Sala dell’Istituto di S. Maria in Aquiro – Piazza Capranica, 72 – Roma APERTURA Sen. Giulio Terzi di Sant’Agata, Presidente Commissione Politiche dell’UE del Senato della Repubblica RELAZIONI E INTERVENTI Andrea Cangini, Segretario Generale Fondazione Luigi Einaudi Fiamma
Politica interna, europea e internazionale reshared this.
#Libano, il fattore #Hezbollah
Libano, il fattore Hezbollah
Il governo libanese sta camminando letteralmente su un campo minato nel tentativo di conciliare le richieste americane – e israeliane – di disarmare Hezbollah con le esigenze di stabilità interna che non possono prescindere dalle legittime garanzie r…www.altrenotizie.org
informapirata ⁂ reshared this.
Anubis, which block AI scrapers from scraping websites to death, has been downloaded almost 200,000 times.#News
We don't need AI. AI needs us.
in reply to Max 🇪🇺🇮🇹 • • •