使用netcat并写入远程shell的stdin
问题描述:
我正在运行正在运行的服务器上利用缓冲区溢出漏洞(适用于大学),并且我能够将进程重定向到exec shell。 我利用这个样子的:使用netcat并写入远程shell的stdin
perl -e 'print "\xaa\xaa\..."' | nc -q0 machineAtUni 1234
所以服务器从套接字中,EIP将被覆盖,外壳执行。问题是我看到来自shell的一些消息,但我不能插入任何东西。我认为shell本身从stdin读取直到EOF,但我怎样才能实现我可以发送命令(连接保持打开状态,并且能够写入stdin)?
答
netcat
的stdin连接到管道,而不是您的终端,所以它不会发送任何您输入的内容。你可以这样做:
{ perl -e 'print "\xaa\xaa\..."'; cat; } | nc -q0 machineAtUni 1234
这样,当perl脚本完成后,将cat
从终端读取和写入到管道。
感谢您的解释和快速响应! – Noahnder