A raiz sem casca parece impressa incorretamente em / etc / shadow | raiz grep

1

Estou tentando entender por que meu script é impresso cat /etc/shadow | grep rootcomo uma 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 com sudo. Tão claramente o comando funciona.

Há algo que estou perdendo aqui? Está faltando algum tipo de circunstância especial?

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()
geostocker
fonte
ABUSO DO GATO !!!! Não há necessidade de gato tubulação de grep, apenas grep grep root /etc/shadow- dslreports.com/forum/r21664624-Do-You-Abuse-the-cat
Panther
Primeiro, obrigado por apontar isso. Eu não sou muito bom em usar Linux. Segundo, isso não fez nada para resolver o meu problema.
geostocker 31/05
1
Não tenho certeza do que está errado, mas acho que você precisa executar o comando sobre ssh. ssh root@localhost 'grep root /etc/shadow'
Panther

Respostas:

0

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

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

Portanto, se você se deparar com um problema semelhante, simplesmente imprima o childe verifique qual é a saída!

geostocker
fonte