Pagina 1 di 1

Modifica credenziali di accesso su Linux

Inviato: 15/06/2024, 13:50
da FrancyDotNet
Metodo 1
Cambio password
Cambio nome utente

Metodo 2
Mai modificare a mano i files /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow!!!

Se un utente prova a modificare le informazioni dell'account / gruppo mentre root sta modificando i file a mano (es: vim / etc / passwd), i file / etc non verranno aggiornati e quindi, le normali modifiche dell'utente verranno scartate.

Ma c'è un modo per modificare i 4 file in modo sicuro:

$ sudo vipw apre il file /etc/passwd

$ sudo vipw -s apre il file /etc/shadow

$ sudo vigr apre il file /etc/group

$ sudo vigr -s apre il file /etc/gshadow

Mentre si stanno modificando i file corrispondenti /etc con vipw / vigr, quei file saranno bloccati e un utente normale non sarà in grado di modificare le sue informazioni utente / gruppo accout fino a quando la root non uscirà dal file di configurazione / etc.

Gli strumenti vipw e vigr hanno anche creato alcuni file di backup in / etc chiamati passwd- , shadow- , group- e gshadow- con le stesse autorizzazioni e proprietà degli originali.


https://www.hackingarticles.in/editing- ... scalation/


:arrow: Per quanto riguarda l'aspetto dell'hacking vi rimando all'argomento Privilege Escalation.

Re: Modifica credenziali di accesso su Linux

Inviato: 15/06/2024, 13:51
da FrancyDotNet
Ok, ora questo è lo script che ho usato per risolvere il mio problema.

Codice: Seleziona tutto

#!/bin/bash
#
# login.sh $USERNAME $PASSWORD

#this script doesn't work if it is run as root, since then we don't have to specify a pw for 'su'
if [ $(id -u) -eq 0 ]; then
        echo "This script can't be run as root." 1>&2
        exit 1
fi

if [ ! $# -eq 2 ]; then
        echo "Wrong Number of Arguments (expected 2, got $#)" 1>&2
        exit 1
fi

USERNAME=$1
PASSWORD=$2

# Setting the language to English for the expected "Password:" string, see http://askubuntu.com/a/264709/18014
export LC_ALL=C

#since we use expect inside a bash-script, we have to escape tcl-$.
expect << EOF
spawn su $USERNAME -c "exit" 
expect "Password:"
send "$PASSWORD\r"
#expect eof

set wait_result  [wait]

# check if it is an OS error or a return code from our command
#   index 2 should be -1 for OS erro, 0 for command return code
if {[lindex \$wait_result 2] == 0} {
        exit [lindex \$wait_result 3]
} 
else {
        exit 1 
}
EOF


:sign_quest: Per un maggior approfondimento vi consiglio di visitare il post Come criptare files e cartelle dove Logan spiega nel dettaglio questo argomento.