#!/usr/bin/php <?php error_reporting(0); /*** * Small script to create graph from multiple users JSON's taken from MS Graph Explorer * (Search for a SharePoint site by keyword) keyword = %00 ***/ $folder = "/mnt/hgfs/PentestOS/pentests/2020/-redacted-/MS_Graph/"; $mainArray = array(); $rootDir = getDirContents($folder, '/\.json$/'); foreach($rootDir as $h => $i){ // remove begining of vdb path (keeps clean) $rootDir[$h] = str_replace("sites_null_", "", str_replace(".json", "", str_replace($folder, "", $i))); //echo "Reading: ".$rootDir[$h]."\n"; $jsonFile = file_get_contents($i); $jsonContents = json_decode($jsonFile, true); foreach($jsonContents as $j){ foreach($j as $k){ //echo " ".$k['name']." -> ".$k['webUrl']."\n"; $shortname[$k['name']] = $k['webUrl']; $rarw[$k['name']][] = $rootDir[$h]; } //print_r($j); } } echo "Files: ".sizeof($rootDir)."\n"; foreach($shortname as $short => $long){ $lenToShow = 120; if(strlen($long)<$lenToShow) $long = str_pad($long, $lenToShow, "-"); echo substr($long, 0, $lenToShow)." -> "; //print_r($rarw[$short]); foreach($rarw[$short] as $shortname => $username){ echo $username." "; } echo "\n"; } function getDirContents($dir, $filter = '', &$results = array()) { $files = scandir($dir); foreach($files as $key => $value){ $path = realpath($dir.DIRECTORY_SEPARATOR.$value); if(!is_dir($path)) { if(empty($filter) || preg_match($filter, $path)) $results[] = $path; } elseif($value != "." && $value != "..") { getDirContents($path, $filter, $results); } } return $results; } ?>