A raiz descontinuada parece estar incorreta em / etc / shadow | raiz do grep

1

Estou tentando entender por que meu script imprime cat /etc/shadow | grep root como a string vazia ('') . Isso acontece mesmo que meu script tenha acesso a [email protected] ...

Estou percorrendo o Violent Python e estou criando um worm SSH simples.

Quando estou executando o comando acima, posso ver minha senha criptografada, como [email protected] e sudo . Então, claramente, o comando funciona.

Há algo que estou sentindo falta aqui? Algum tipo de circunstâncias especiais que eu sinto falta?

Aqui está o script:

import pexpect

PROMPT = ['#', '>>>', '>', '\$']

def send_command(child, cmd):
    child.sendline(cmd)
    child.expect(PROMPT)
    print(child.before)

def connect(user, host, password):
    ssh_newkey = 'Are you sure you want to continue connecting'
    strcon = 'ssh ' + user + '@' + host
    child = pexpect.spawn(strcon)

    ret = child.expect([pexpect.TIMEOUT, ssh_newkey,\
                        '[P|p]assword:'])

    if ret == 0:
        print('[-] Error connecting')
        return

    if ret == 1:
        child.sendline('yes')
        ret = child.expect([pexpect.TIMEOUT,\
                            '[P|p]assword:'])
        if ret == 0:
            print('[-] Error Connecting...')
            return
        child.sendline(password)
        child.expect(PROMPT)
        return child

    child.sendline(password)
    child.expect(PROMPT)
    return child

def main():
    host = 'localhost'
    user = 'root'
    password = 'toor'
    child = connect(user, host, password)
    send_command(child, 'cat /etc/shadow | grep root')

if __name__ == '__main__':
    main()
    
por geostocker 31.05.2017 / 22:15

1 resposta

0

OK, então, neste caso, parece que tudo se resumia à child.before print em send_command .

Imprimindo o objeto child , pude ver que havia alguns pares de valores-chave que eu deveria ter pegado, um dos quais ( buffer ) contém os 100 últimos caracteres do grep . Esta não é a senha criptografada completa, mas pelo menos algumas delas.

Então, se você se encontrar em um problema semelhante, simplesmente imprima o child e verifique qual é a saída!

    
por geostocker 31.05.2017 / 22:35