Inyección de SQL

--Originally published at CRACK THE NETWORK

La inyección de SQL es una especie de vulnerabilidad compleja y normalmente la aplicación de una corrección diferirá en el tipo de aplicación que está desarrollando. SQL es uno de los más fáciles de contrarrestar. A continuación, se presentan algunas medidas que pueden utilizarse contra ataques de inyección de SQL.

Como se ha dicho anteriormente, los ataques de inyección SQL se producen debido a la entrada no desinfectada. Así que nuestro primer paso sería desinfectar el input. En la aplicación se escapa explícitamente a las comillas simples y al apóstrofe, no valida la entrada del tipo de expresión, por ejemplo, 1 + 1, z + y etc. Al desinfectar la entrada por el método anterior, podrá detener la inyección SQL ya que la aplicación no aceptará entradas maliciosas.

La segunda solución es utilizar una API que no permita la inyección de SQL. Hoy en día casi todas las herramientas de desarrollo de aplicaciones web tienen una API que maneja consultas SQL por su cuenta, es mejor utilizarlas, ya que no sólo reducen la sobrecarga general de desarrollo, sino también proporcionar protección contra la inyección de SQL.

En el nivel del sistema, la aplicación se ejecuta con privilegios inferiores, con los que se puede ejecutar sin problemas. No es necesario conceder a la aplicación más privilegios de los requeridos. Puede tardar poco tiempo para aplicar esto, pero al hacerlo no permitirá a los hackers recuperar datos confidenciales de su base de datos, ya que los privilegios serán limitados.

Por último eliminar los paquetes innecesarios de la base de datos de su sistema, ya que no sólo tomar la memoria extra y espacio en disco, pero si alguno de ellos es vulnerable su base de datos lo será también.

Dependiendo de qué tipo de aplicación está desarrollando algunas o más modificaciones pueden

Continue reading "Inyección de SQL"

Run Apache server using a high port

--Originally published at CRACK THE NETWORK

First of all we need to install Apache in our Linux server with the following commands:

wget http://www-eu.apache.org/dist//httpd/httpd-2.4.23.tar.gz
gzip -d httpd-2.4.23.tar.gz
tar xvf httpd-2.4.23.tar
cd httpd-2.4.23
./configure --prefix=/home/a01225953/apache2
make
make install
nano /home/a01225953/apache2/conf/httpd.conf

We configure the Apache server with the following port:

6

/home/a01225953/apache2/bin/apachectl -k start

5

And finally we can see that our Apache server is running using netstat command:

4


John the Ripper cracking passwords

--Originally published at CRACK THE NETWORK

To crack passwords using John the Ripper first we need to install it with the following script:


#/bin/bash
# Centos 7 John the Ripper Installation
yum -y install wget gpgme
yum -y group install "Development Tools"
cd
wget http://www.openwall.com/john/j/john-1.8.0.tar.xz
wget http://www.openwall.com/john/j/john-1.8.0.tar.xz.sign
wget http://www.openwall.com/signatures/openwall-signatures.asc
gpg --import openwall-signatures.asc
gpg --verify john-1.8.0.tar.xz.sign
tar xvfJ john-1.8.0.tar.xz
cd john-1.8.0/src
make clean linux-x86-64
cd ../run/
./john --test
#password dictionnary download
wget -O - http://mirrors.kernel.org/openwall/wordlists/all.gz | gunzip -c > openwall.dico

Then we execute ./john-1.8.0/run/john -wordlist:openwall.dico passfile.txt

14885779_10209580933594550_125972749_n

And we wait for the passwords to be cracked.


SSH With Public-Key Authentication

--Originally published at CRACK THE NETWORK

To connect to our server using our public key we do the following in our Linux machine:

First we generate a ssh key with the command ssh-keygen

1

Then we copy our public key to our Linux server with ssh-copy-id -i ~/.ssh/id_rsa.pub a01225953@10.40.53.3

2

And that’s all now we can connect to our server ssh a01225953@10.40.53.3

3


Mitos de seguridad en Linux

--Originally published at CRACK THE NETWORK

Estamos en el siglo 21 y resulta impresionante la cantidad de personas que todavía creen que los sistemas operativos basados en Linux son completamente seguros. De hecho, Linux y Security son dos palabras que raramente se ven juntas.

También como mucha gente cree que las Macs son inmunes a los virus, algunos usuarios de Linux tienen el mismo mal entendido. ¿Y quién los puede culpar? Después de todo, los vendedores les siguen diciendo eso por años.

En 2012, después de incremento exponencial de malware en OS C, Apple decidió cambiar en su página de inicio la sentencia “It doesn’t get PC viruses.”

Recientemente, Red Hat también decidió (finalmente) remover su logan “virus-free” desde el overview de las características de Fedora Linux.

Así que este día he venido a destruir estas leyendas urbanas acerca de la seguridad en Linux.

Linux no es invulnerable y libre de virus

Ahora en día, en número de amenazas se ha ido incrementando exponencialmente a medida que la tecnología ha avanzado y estas amenzas van más allá de una simple infección de malware. Solo piensa en la última vez que recibiste un phishing email o terminaste en un phishing website. ¿Entonces ser un usuario de Linux te previene de que alguien te robe tu información bancaria? Ciertamente no.

Los hackers no tienen de objetivo a Linux debido a su bajo mercado

Absolutamente desde el punto de vista de los servidores, distribuciones de Linux tiene cerca del 40% del mercado y desde el punto de vista móvil, Android tiene la mayor parte de mercado.

Windows malware no puede correr en Linux

No es exactamente cierto. Cada vez hay más amenazas cross-platform. Esto es debido a los frameworks multi-plataforma que existen en el mercado.

Además, los servidores de Linux son usados para alimentar los malware de Windows.

Continue reading "Mitos de seguridad en Linux"

DoS attack, te suena familiar?

--Originally published at CRACK THE NETWORK

Un Denial of Service attack es un incidente en el cual el usuario o una organización es privada de sus servicios y recursos que normalmente esperaría tener. En un ataque de este tipo distribuido, muchos sistemas atacan un solo objetivo.

¿Para qué lo hacen?

Usualmente el objetivo de estos ataques no es para el robo de información o perdida de seguridad. Pero pueden generar un alto costo para la empresa. Típicamente, la perdida de sus servicios como el mail, el cual no estaría disponible o no poder acceder a la red. Un Denial of Service attack puede también destruir archivos de programación en computadoras infectadas. En algunos casos, DoS attacks han hecho que sitios altamente demandados estén fuera de servicio por grandes periodos de tiempo.

¿Cómo hacen este ataque?

La forma más común de un DoS attack es simplemente mandar más tráfico a la red puede soportar. El atacante pude saber que su objetivo tiene una debilidad que puede ser explotada o simplemente lo ejecuta de forma de prueba y error, algunos de estos ataques son:

  • Mandar mensajes e-mail que tienen archivos adjuntos con 256 caracteres.
  • Mandar paquetes ICMP bastante grandes.
  • Mandar mails con un from address de más de 256 caracteres.

Siempre los hackers buscan nuevas formas de lograr romper la seguridad de la red es por eso que es muy importante estar siempre actualizados y mantener nuestra red lo más segura posible.

Referencias

A Look at the Cost of Denial of Service http://talkincloud.com/blog/look-cost-denial-service

https://blog.sucuri.net/2014/03/understanding-denial-of-service-and-brute-force-attacks-wordpress-joomla-drupal-vbulletin.html

 


Try to decrypt my message

--Originally published at BECOME A BADASS IN INFORMATION SECURITY

Have fun trying to decrypt my message

—–BEGIN PGP MESSAGE—–
Version: Keybase OpenPGP v2.0.58
Comment: https://keybase.io/crypto

wcFMA+mGzAi+d1rVARAAuquvJr5aurhMFQrmzSadW85s/xWGTy5jEY01o+J1xlJn
H9n/kpta5Ba5dnpZzJXGJb9LVf/5QcALyspi06udTekz1CGSY0E8jCr7H5G95Lb3
arLfnWyAjKNfXyYwsjeJNK/IyRfkw8n9Fv0x8dvCWpSdDgmxgglMm0xikPk0qqc+
d7entl0dv/qhKFa8U1BX1Z4GyDXA9AmM7TTN1lEXAjrBKkHJ2P7Dew9N2+mB0U1g
CnLwUKIQ3QpqLIB7jDpe/0tQaOz2Rgv6GDzuKo0386KMNogvgVSkmtxTfnCDhX3n
RrDLjLx+TKUZ161OTT7+7XHxKY2Tc8iKPvTiLpz2+9WbWhMXPhsSbGgvJgvUsjoC
TQ/07xSCWHtHehV3UtTajstSVcXx0ALOxrg27VV2EnweyXW5w8THGUQ+M34laByz
gEs0s0db+ZMWKM80vR2UJctsoZXBjQZSQIXcJnY5aFzJCJybi1vKZo7tEErnBxew
qu+/I0b6HUjHYoi/w1n6tKEzqLipG50Vqbxn74OeHt6CCj43WU2xAvBI1xYwIrsB
bj1ADfjnAlSCSUMjA+7bQTkPERGUNFTnBRRcBEqua4yPXWHLghoKPvM042esb13w
HbwK4YE/InON47CliymWzxBe0rVXW/rg7bmkIBz2//gUszs5M48Ze3KJOyhqlprB
wEwDhUJC/Z5T6PQBB/9wMxB7dHrE1fFs4qE1N+KJIYQAqJbOKEUHIDI5JAEcs/lj
TRABfxKgdsW5qEnZ4d27jynhiqaa+5Tzo0/UMv+1u0IAoGpWHWth+XUS7++fJLyW
pWWi3E1qa8PZq80728o8KMHDC3q0APVAbcRrh7AJqoexgbSWWJHAWv1EQ2daOxR+
quyaGYvgq3JiM2/LDT8ovhJuOxA8vHRmhfjpKrpKATUBAM7kr1+PmOJhSyXFavkR
p2NwN2mbRXPbHQmV6lUmXNcV5N7Qn+UCJvkfSiCA6JC9D0i1BjbpFtvr6EKcAoi+
FizpFDC5NReTlAtYNippk1PWkq7vLJVUSwJuGCnW0sDmAaPcZ+pXML9b3FDML2r9
V9dqXHP7b1e2LVHcgK5JxTxumre8edBlRUVm4dW8PQljsPRGzSF4yfqBkq3vyHeZ
YG7zAkbAny/RSkz6TtoQa7+XhtKObqof+Nn3Bd1BeEmW/8siNqjgbQf//shqx+We
/ydQMeOgs4u/IbihJ7W7f6s0/wCgquIBZuN89Wv8ZXT9cSbOQOlOg7FIf69ITQ+d
XOwRCmI0D3jqPEV5OsP+chGw2XCXYWPyyPX7Tm4JQqAyYptuBHorja9kqYCdCk7K
O0tFbJpNSwsKU0n6B4SmPLx/+4WsbdKeGYJNrxQ/dO7172hYQwhr9Vsi1ClTtosf
lOWyvr7i2cTZDP83CByCLnN6LxCdEyy0onUT0uu0VXhUBxRv/mxMfQh8digTPliF
vOBs+8vTSfj74joNiD1RlQpWZGm5DtMVzpbIF0I4kwfALbSHBsAs/nm1fE0VZRPG
H63nhE9X/Cz/PjmynsSGqxkbManxH9fuY3x/cGl9r0xft12VnqZPuE/F7x7Rb9Zz
rh4myVTZVA1BjhVeyu4CRU1RKpBMFk8=
=v3jN
—–END PGP MESSAGE—–


Caesar Cipher decryption using a dictionary

--Originally published at BECOME A BADASS IN INFORMATION SECURITY

Check out my code to decrypt a message encrypted with Caesar Cipher algorithm without knowing the key, just using a dictionary o words in English.


package security;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;

public class CaesarCipher {

	/*
	 * Encrypt messages using Caesar Cipher algorithm and decrypt
	 * the message without the key, only using a dictionary of words
	 */

	public static String encryptMessage(String str, int k){
		String encrypted = "";
		char letter;
			for(int i = 0; i < str.length(); i++){
				letter = (char)((str.charAt(i)-'a' + k)%26 + 'a');
				encrypted= encrypted + letter;
			}
		return encrypted;
	}

	public static String decryptMessage(String str, ArrayList<String> words){
		String decryptLine = "", message = "";
		char letter;
		int k = 0, currentTimes = 0, max = 0;
		for(int j=0; j<26; j++){
			for(int i = 0; i < str.length(); i++){
				if(str.charAt(i)-'a' - j<0){
					letter = (char)(26 - Math.abs((str.charAt(i) - 'a' - j)) +'a');
				}else{
					letter = (char)((str.charAt(i)-'a' - j)%26 + 'a');
				}
				decryptLine= decryptLine + letter;
			}
			for(int i = 0; i < words.size(); i++){ 				if(decryptLine.contains(words.get(i))){ 					currentTimes++; 				}	 			} 			if(currentTimes > max){
				max = currentTimes;
				message = decryptLine;
				k = j;
			}
			currentTimes = 0;
			decryptLine = "";
		}
		System.out.println("Decrypted text  : " + message + "nK is : " + k );
		return message;
	}

	private static void buildDictinary(ArrayList<String> words){
		try{
            BufferedReader buf = new BufferedReader(new FileReader("words.txt"));
            String lineJustFetched = null;
            while(true){
                lineJustFetched = buf.readLine();
                if(lineJustFetched == null){
                    break;
                }else{
                    words.add(lineJustFetched);
                }
            }
            buf.close();
        }catch(Exception e){
            e.printStackTrace();
        }
	}

	public static void main(String[] args) {
		ArrayList<String> words = new ArrayList<>();
		buildDictinary(words);
		String plainText = "amoderndaywarriormeanmeanstridetodaystomsawyermeanmeanpridethoughhismindisnotforrentdon7tputhimdownasarroganthisreserveaquietdefenseridingoutthedayseventstheriver";
		System.out.println("Text to encrypt : " + plainText);
		String encrypteText = encryptMessage(plainText, 10);
		System.out.println("Encrypted text  : " + encrypteText);
		decryptMessage(encrypteText, words);
	 }
}

GitHub repository: Caesar Cipher Decryption


Hazle un favor al mundo utilizando verificación en dos pasos

--Originally published at BECOME A BADASS IN INFORMATION SECURITY

La importancia de mantener un password seguro es más importante que nunca. Los hackers están hambrientos por passwords, ya que a ellos les genera grandes sumas de dinero. En internet encontramos historias acerca del hackeo de cuentas. Lo cual ocasión que miles de cuentas sean vulnerables en ser accedidas por criminales informáticos. Con una autenticación de dos pasos (2FA), obtenemos una capa extra de seguridad que los hackers no pueden fácilmente romper, puesto que se necesita más información además del username y el password. Todos lo usamos constantemente pero no damos cuenta. Para sacar dinero del cajero se necesita una verificación de dos que son tu tarjeta física y tu numero pin.

Image result for 2fa meme

¿En que es usado 2FA?

2FA es un método de verificación de identidad que añade un segundo factor de autenticación además del password de tu cuenta, por ejemplo:

  • Algo que conoces – un numero pin, password o patrón.
  • Algo que tienes – una tarjeta de crédito, celular o un token de seguridad.
  • Algo que tú eres – huellas biométricas, ojos u ojos.

¿Qué tan seguro es 2FA?

Nada es 100% seguro, tu cuenta todavía puede ser vulnerable en ser hackeada por métodos de recuperar password u otros métodos. Para resetear el password usualmente funciona por vía email y puede completamente saltarse el 2FA. Esto te puede dejar vulnerable si el hacker ha ganado acceso a tu cuenta de email. Estate seguro de monitorear tu cuenta de email por correos electrónicos pidiendo cambios de password.

Otras medidas de seguridad extras de 2FA

¿Qué tan seguro es AES-256?

--Originally published at BECOME A BADASS IN INFORMATION SECURITY

AES-256 es un algoritmo de encriptación utilizado para prevenir acceso no deseado a tu información. ¿Pero la pregunta es qué tan segura es la encriptación de AES 256bit?

Cuando nos referimos a encriptación AES-258bit, nos referimos a la llave que es generado cuando encriptamos nuestros archivos. La información es encriptada por el software que genera la llave que usas 256bit; si encuentras la llave puedes desencriptar la información. La parte matemática detrás de todo esto de AES-256 es bastante sencilla, pero es muy importante entenderla ya que se relaciona bastante con el mundo real.

La parte matemática aburrida

Una encriptación de 256 es lo equivalente a 2^256 posibilidades de la llave. Es decir 2^32 es cerca de 4.3 billones, y sigue incrementando exponencialmente después del 32. ¿Qué significa esto? Simplemente digamos hipotéticamente que todas las super computadoras del mundo haciendo un brute force attack se deciden a unirse y hacer la tarea de desencriptar tu llave de AES-256 para que puedan obtener tu información. Este conjunto de computadoras puede buscar 2^50 llaves por segundo, el año tiene aproximadamente 31,557,600 segundos. Esto significa que usando un billón de supercomputadoras pueden buscar en 2^75 llaves por año, a este paso nos tomaría 2^34 años (la edad del universo) en buscar menos del .01% de las posibles combinaciones de la llave. Esto significa que nadie se molestará en desencriptar tu información.

¿Entonces 448bit es mejor?

¿Por qué utilizamos AES 256 bit en lugar 448? La respuesta es que más no significa que sea mejor. 256 bit ha sido probada que es imposible romperla en esta era, entonces si nos movemos 448 bit no cambiaría las probabilidades realísticamente de que alguien pudiera hackear nuestra información. Y más importante 256 bit ha sido probada en software testing mucho más que las demás configuraciones de

Continue reading "¿Qué tan seguro es AES-256?"