Покрытый оболочкой корень, кажется, печатает неправильный от/etc/shadow | grep корень

Я пытаюсь понять, почему мой сценарий печатает cat /etc/shadow | grep root как пустая строка (''). Это происходит даже при том, что мой сценарий получает доступ к root@127.0.0.1...

Я обхожу свой путь через Сильный Python и создаю простого червя SSH.

Когда я работаю, вышеупомянутая команда I видит мой зашифрованный пароль, оба как root@127.0.0.1 и с sudo. Так ясно работы команды.

Есть ли что-то, что я пропускаю здесь? Своего рода особые обстоятельства я отсутствую?

Вот сценарий:

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()
1
задан 31 May 2017 в 23:15

1 ответ

Хорошо, так в этом случае казалось бы, как будто все это свелось к эти child.before печать в send_command.

Распечатывание эти child объект я видел, что было несколько пар "ключ-значение", которые я должен был захватить, один из которых (buffer) содержит 100 последних знаков grep. Это не полный зашифрованный пароль, но по крайней мере некоторые из них.

Так, если Вы действительно оказываетесь в подобной проблеме просто, печатают child и проверяют, каков вывод!

0
ответ дан 8 December 2019 в 05:11

Другие вопросы по тегам:

Похожие вопросы: