Eu tenho um computador no qual preciso inicializar, mas as senhas parecem ser falsas. Além disso, não consigo montar a unidade para gravação, e é um processador mips, portanto não posso colocá-la em outra máquina para executá-la.
De qualquer forma, o arquivo passwd tem alguns usuários parecidos com este, com uma estrela após o nome do usuário. isso significa senha em branco ou o quê?
root:8sh9JBUR0VYeQ:0:0:Super-User,,,,,,,:/:/bin/ksh
sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh
diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:*:1:1:daemons:/:/dev/null
bin:*:2:2:System Tools Owner:/bin:/dev/null
uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:*:4:0:System Activity Owner:/var/adm:/bin/sh
adm:*:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp:VvHUV8idZH1uM:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp::10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:*:11:0:Audit Activity Owner:/auditor:/bin/sh
dbadmin:*:12:0:Security Database Owner:/dbadmin:/bin/sh
rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh
lp
usuário é ridiculamente fraca. E como as senhas baseadas em DES são limitadas a ASCII e podem ter apenas 8 caracteres, você não recebe mais de 53 bits de entropia. Alterne para um hash mais forte, se puder, e altere as senhas.lp
senha em 630 milissegundos. Aroot
senha é muito mais forte. Deixei um ataque de força bruta por cinco horas antes de encerrá-lo. Não quebrou aroot
senha dentro dessas cinco horas. Mas é claro que você ainda deve seguir a recomendação anterior e alterar a senha.Respostas:
Você precisa verificar man passwd :
Normalmente, as contas com o
*
campo na senha não têm uma senha, por exemplo: desativado para login. Isso é diferente da conta sem senha, o que significa que o campo de senha ficará vazio e quase sempre é uma prática ruim.fonte
As contas com senhas são as contas com uma quantidade absurda de base64 no segundo campo:
Este computador parece estar usando o
crypt(3)
hash de senha tradicional baseado em DES . Esse hash é bastante fraco para os padrões modernos; se você não conseguir obter um login root de outra maneira, provavelmente poderá recuperar a senha com força bruta, usando John the Ripper ou software semelhante. Além disso, tecnicamente isso não é base64, mas uma codificação semelhante mais antiga, mas você provavelmente não precisa se preocupar com isso.A distinção entre
:*:
e:!:
mencionada em outras respostas é nova demais para ser relevante para o seu problema. Em um sistema UNIX tão antigo, existem apenas três coisas diferentes que podem aparecer no campo de senha:Se o conteúdo do campo senha estiver vazio, você poderá efetuar login sem senha.
Se o conteúdo do campo for o
crypt
hash válido de alguma senha, você poderá efetuar login com essa senha.Caso contrário, você não poderá efetuar login como esse usuário.
*
é apenas a coisa convencional a se usar - obviamente não é um hash de senha válido. Provavelmente foi escolhido por quem escreveu opasswd
programa.(O objetivo de ter IDs de usuário no arquivo de senha que não podem efetuar login é que eles ainda podem possuir arquivos, ainda podem ter
cron
trabalhos e os daemons podem usarsetuid
para assumir essa identidade. Na verdade, é uma prática recomendada executar todos os daemons (que não precisam ser executados comoroot
) sob esses IDs de usuário, para que você tenha algum nível de garantia de que apenas o daemon está sendo executado sob essa identidade.)(As contas
/dev/null
no campo shell estão bloqueadas contra oroot
usosu
de programas sob essa identidade de usuário, bem como o logon regular. Atualmente, é muito mais provável que você veja/bin/false
ou/sbin/nologin
use esse objetivo; suspeito que nesse sistema o último não existe e o primeiro é um script de shell.)(A senha para Bob é "bobpassw", criptografada usando o algoritmo antigo, mas em uma máquina Linux moderna; pode não ser o que seu computador produziria para a mesma senha e sal. Um dos motivos pelos quais o algoritmo antigo não é considerado bom mais é que tem um limite superior rígido de 8 caracteres em uma senha.)
(Eu sei que o sistema é realmente antigo porque está usando hash de senha baseado em DES, porque não está usando um arquivo shadow e porque o shell do root é
/bin/ksh
mais do que algo mais novo e mais ergonômico.)fonte
passwd
não teria necessidade de ter montado --bind / dev / sys ....Isso significa que ele está desativado para login direto. É um usuário usado para executar serviços ou para rlogin. Verifique https://en.wikipedia.org/wiki/Passwd#Password_file
fonte
Sobre sua pergunta real, consulte a resposta de taliezin (e aceite essa;)
Sobre o seu outro problema: procure a string 8sh9JBUR0VYeQ no disco para descobrir o (s) bloco (s) de disco em que reside. Em seguida, coloque o bloco em um arquivo, substitua essa string por um hash de senha conhecido (a cripta antiga () o mesmo comprimento) e escreva o (s) bloco (s) de disco de volta no local antigo - possivelmente fazendo um backup completo do disco antes. Como essa abordagem não altera o tamanho do arquivo, nenhum metadado do sistema de arquivos precisa ser atualizado.
fonte