2014-09-22 160 views
1

我有一个问题。请求您阅读如下场景:从浏览器运行Netcat

假设netcat已经存在于远程计算机上(注意:它没有监听任何端口)。我有唯一的选项让它开始监听某个特定的端口我的浏览器只。所以你可以告诉我如何让它开始倾听,因为从技术上讲,只要你远程访问该文件,浏览器就会要求你下载/保存它。

但我想要的是,我想在目标机器上运行它,以便我可以完全访问该远程机器。

那么有可能从目标机上的浏览器运行netcat?

ThanX提前

回答

0

这是一个安全风险,但可能像这样。制作一个CGI脚本,并将其放置在您的服务器希望找到它们的地方 - 请检查您的httpd.conf。将以下脚本保存为test.cgi,并使用chmod使其可执行。

#!/usr/bin/perl 

use strict; 
use warnings; 
use Proc::Daemon; 

print "Content-type: text/plain\n\n"; 
print "Starting nc...\n"; 
Proc::Daemon::Init; 
`/usr/bin/nc -l 2222`; 

现在只需将脚本地址放入浏览器的地址栏,然后点击Enter即可。我刚刚在2222端口上进行了监听,并且对输入的数据不做任何处理 - 但是您可以对所收到的数据进行任何类似的操作 - 包括将其传输到外壳以获得更大的安全风险:-)

注意如果尚未安装,您可能需要将Proc::Daemon安装到您的Perl发行版中。

注意您将需要设置Options ExecCGIAddHandler cgi-script .cgi

注意

如果您不能或不想安装Proc::Daemon,你能应付得了这样的:

#!/usr/bin/perl 

use strict; 
use warnings; 

print "Content-type: text/plain\n\n"; 
print "Starting nc...\n"; 
my $pid=fork(); 
die "Unable to fork: $!" if !defined $pid; 

if($pid==0){ 
    # This is the child, run netcat 
    open STDIN, "</dev/null"; 
    open STDOUT,">/dev/null"; 
    open STDERR,">/dev/null"; 
    `/usr/bin/nc -l 2222`; 
} else { 
    print "Child started\n"; 
} 
+0

感谢队友回覆....我会尝试这个,但我认为它有很多麻烦....好吧,我忘了另外一件事o提及目标机器具有基于Windows的操作系统..它具有运行在其上的Oracle应用服务器11g,并且这是我猜测的J2EE环境。或者,我正在考虑的是将JSP shell上载到服务器上。我希望应该执行。如果我错了,请纠正我。但现在的问题是我不知道如何获得JSP Shell的路径。如果我可以获取管理员上传文件的文件夹,则可以绕过此问题。 – 2014-09-22 18:15:17

+0

与Xampp一样,上传文件的默认文件夹是“htdocs”..同样,如果有任何关于Oracle应用服务器11g的默认目录,您是否有任何想法..这将是非常有帮助的人.. ThanX – 2014-09-22 18:17:20

+0

I怀疑你的网页会挂起一个问题,直到你的netcat完成或超时,这就是为什么我已经按照上面的方式完成了。对不起,我对Oracle或J2EE一无所知。 – 2014-09-22 18:35:29