Advertisement
spezticle

Reverse SSH

Jan 30th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.81 KB | None | 0 0
  1. #!/bin/bash
  2. varSSHPORT=''
  3. varHTTPPORT=''
  4. varHTTPSPORT=''
  5. varHOST=''
  6. varLOG=""
  7. fnSSH ()    {
  8.         varCHECK="$(ps aux  | grep 0.0.0.0:$varSSHPORT | grep -v 'grep')"
  9.         echo $varCHECK
  10.         if [[ -z $varCHECK ]]; then
  11.             unset varDATE; fnTIMESTAMP
  12.             ssh -N -R 0.0.0.0:$varSSHPORT:localhost:22 $varHOST & echo "$1 $! $varDATE" >> $varLOG
  13.         fi
  14.         unset varCHECK
  15.         exit
  16.         }
  17. fnHTTP ()   {
  18.         varCHECK="$(ps aux  | grep 0.0.0.0:$varHTTPPORT | grep -v 'grep')"
  19.         echo $varCHECK
  20.         if [[ -z $varCHECK ]]; then
  21.             unset varDATE; fnTIMESTAMP
  22.             ssh -N -R 0.0.0.0:$varHTTPPORT:localhost:80 $varHOST & echo "$1 $! $varDATE" >> $varLOG
  23.         fi
  24.         unset varCHECK
  25.         exit
  26.         }
  27. fnHTTPS ()  {
  28.         varCHECK="$(ps aux  | grep 0.0.0.0:$varHTTPSPORT | grep -v 'grep')"
  29.         echo $varCHECK
  30.         if [[ -z $varCHECK ]]; then
  31.             unset varDATE; fnTIMESTAMP
  32.             ssh -N -R 0.0.0.0:$varHTTPSPORT:localhost:443 $varHOST & echo "$1 $! $varDATE" >> $varLOG
  33.         fi
  34.         unset varCHECK
  35.         exit
  36.         }
  37. fnCHECK ()  {
  38.         ps aux | grep -v grep | grep --color=auto -E "(0.0.0.0:$varSSHPORT|0.0.0.0:$varHTTPPORT|0.0.0.0:$varHTTPSPORT|PID)"
  39.         }
  40. fnTIMESTAMP ()  {
  41.         varDATE="$(date --rfc-3339=seconds)"
  42.         }
  43.  
  44. fnKILL ()   {
  45.         if [[ $1 = "all" ]]; then
  46.             unset arKILL
  47.             arKILL+=($(fnCHECK | grep -v PID | awk '{print $2}'))
  48.             if [[ ${#arKILL[@]} -ge 1 ]]; then
  49.                 for i in ${arKILL[@]}; do
  50.                     kill -9 $i
  51.                 done
  52.             fi
  53.         elif [[ $1 = "ssh" ]]; then
  54.             unset varKILL
  55.             varKILL="$(ps aux | grep -v grep | grep $varSSHPORT | awk '{print $2}')"
  56.             if [[ ! $varKILL = "" ]]; then
  57.                 kill -9 $varKILL
  58.                 exit
  59.             fi
  60.             exit
  61.         elif [[ $1 = "http" ]]; then
  62.             unset varKILL
  63.             varKILL="$(ps aux | grep -v grep | grep $varHTTPPORT | awk '{print $2}')"
  64.             if [[ ! $varKILL = "" ]]; then
  65.                 kill -9 $varKILL
  66.                 exit
  67.             fi
  68.             exit
  69.         elif [[ $1 = "https" ]]; then
  70.             unset varKILL
  71.             varKILL="$(ps aux | grep -v grep | grep $varHTTPSPORT | awk '{print $2}')"
  72.             if [[ ! $varKILL = "" ]]; then
  73.                 kill -9 $varKILL
  74.                 exit
  75.             fi
  76.             exit
  77.         fi
  78.         }
  79.  
  80. if [[ -n $1 ]]; then
  81.     if [[ $1 = "ssh" ]]; then
  82.         fnSSH $1
  83.         exit
  84.     elif [[ $1 = "http" ]]; then
  85.         fnHTTP $1
  86.         exit
  87.     elif [[ $1 = "https" ]]; then
  88.         fnHTTPS $1
  89.         exit
  90.     elif [[ $1 = "check" ]]; then
  91.         fnCHECK $1
  92.         exit
  93.     elif [[ $1 = "date" ]]; then
  94.         fnTIMESTAMP $1
  95.         exit
  96.     elif [[ $1 = "kill" ]]; then
  97.         if [[ -z $2 ]]; then
  98.             echo -e "Need argument. Valid Responses are:\nall\nssh\nhttp\nhttps"
  99.         elif [[ $2 = "all" ]]; then
  100.             fnKILL $2
  101.             exit
  102.         elif [[ $2 = "ssh" ]]; then
  103.             fnKILL $2
  104.             exit
  105.         elif [[ $2 = "http" ]]; then
  106.             fnKILL $2
  107.             exit
  108.         elif [[ $2 = "https" ]]; then
  109.             fnKILL $2
  110.             exit
  111.         else
  112.             echo -e "Valid Responses are:\nall\nssh\nhttp\nhttps"
  113.             exit
  114.         fi
  115.     else
  116.         echo -e "Valid entries are:\nhttp\nhttps\nssh\ncheck\ndate\nkill"
  117.     fi
  118.     else
  119.         echo "I need an argument"
  120.         exit
  121. fi
  122. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement