~ 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_64
SERVER IP : 10.0.187.63 -________- CLIENT IP : 216.73.216.210
PATH :/sbin/
UP FILE :
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