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ú

Mensajes - phr4ckl0t

#1
Ya solucioné el inconveniente, no se por qué como lo planeaba blackdrake no resultaba, lo que hize fue bajar un momento el servicio de iptables para comprobar que fuera él quien generaba el problema. Y efectivamente era él, así que como tenía el iptables por defecto solo habían unas cuantas reglas de docker, luego al intentar iniciar el servicio de nuevo me encuentro que no es capaz de iniciar, buscando y bucando me encuentro con la sorpresa de que ya no esta el archivo /etc/iptables/iptables.rules vaya yo a saber por qué se eliminó, luego lo que hize fue crear un archivo con el mismo nombre pero con el contenido del archivo /etc/iptables/empty.rules y tras reiniciar el servicio de docker se añadieron nuevas cadenas al iptables, pero despues de eso pude por fin navegar en el sitio web alojado en el contenedor desde el equipo host. No tengo 100% claro que fue lo que sucedió pero me funcionó.
#2
La primera opción la había probado antes pero no dió resultado, y la segunda supuse que quizá era problema de reglas con el firewall pero no probé nada hasta ahora que lo mencionas, primero listé las cadenas y las reglas que tenia y me di cuenta que ya hay unas agregadas, aún así probe como me lo planteas pero sigo sin poder tener acceso. Es desesperante jaja.
#3
Hey h4x0rs como la llevan? espero que bien. Me paso por acá con un pequeño problema que me tiene pensando, sucede que queria armar un pequeño entorno de desarrollo web para php+html5, pero no queria utilizar xampp ni mucho menos vagrant, etc. Así que le di la oportunidad a Docker ya que las imagenes pesan realmente poco y es bastante simple(curioso decirlo cuando tengo un problema jeje) y los contenedores son muy rapidos. El problema viene a la hora visualizar el contenido de index.php que esta en el contenedor en el directorio /app desde mi equipo host. Para configurarlo hice lo siguiente:

1. Descargué una imagen de alpine linux con php 7
    docker image pull jorge07/alpine-php

2.Creé el contenedor bindeando la carpeta donde tengo el index.php en mi host en modo lectura para el contenedor y manteniendolo corriendo en background
    docker container run -d --name miwebapp -P --mount type=bind,source=/home/phr4ckl0t/Documents/Codigo,target=/app jorge07/alpine-php

3. Para verificar el puerto random al que bindea el contenedor con mi host y mirar la IP del contenedor hice lo siguiente:
    docker container inspect miwebapp

4. Del paso 3 obtuve que la IP que era 172.17.0.2 y el puerto expuesto que era el 32774

5. En el web browser  de mi host pongo en la barra de direcciones:
    No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

El problema es que no logra conectar por lo que el navegador me tira un unable to connect al momento de visualizar el contenido de mi archivo index.php, según el tutorial en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta en el terce enlace (simple web app) deberia bastar, e intentado otras cosas que he encontrado en la red como añadir el contenedor a la misma red del host con --network, he seteado los puertos manualmente con -p <host>:<container> etc..., probé con otra imagen que tuviera un apache dentro pensando que quizá era por que la que uso no tiene un web server escuchando en x puerto y el resultado es el mismo. Para asegurarme de que en realidad el archivo esta en el contenedor abro una consola con docker exec -it miwebapp /bin/sh y me desplazo hacia el directorio /app y efectivamente si está montado el contenido que comparto desde mi host.

Esta es mi docker info:

Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 3
Server Version: 17.09.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
seccomp
  Profile: default
Kernel Version: 4.13.5-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.61GiB
Name: robbie
ID: LOQC:2333:5VCJ:Z5EU:5NVM:VXRQ:3JII:XOWU:SWSO:2FR5:MCDJ:MOG5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: phr4ckl0t
Registry: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

y esta es la del container:

CONTAINER ID      IMAGE                     COMMAND             CREATED                  STATUS                   PORTS                              NAMES
bea5cc95f427        jorge07/alpine-php   "/sbin/tini -- /us..."   About a minute ago   Up About a minute   0.0.0.0:32774->9000/tcp   webapp


Cualquier ayuda es bien recibida, la agradezco demasiado. Seguiré investigando a ver si encuentro algo.
#4
Efectivamente Yoya, tienes toda la razón, muchas gracias por tan concisa respuesta, no había caído en cuenta de ese pequeño error. Había llegado hasta a hacer un poco de reflexión de clase para ver que estaba recibiendo después de usar el método getPlayer() y aplicarle el downcast pero como lo que arrojaba estaba en orden me perdí jaja. Ahora ya puedo seguir ;D ;D ;D
#5
Hey c0ders saludos una vez mas! paso esta vez con una pequeña duda, leyendo un libro "Java 9 recipes" me topé con un inciso que dice "Creating instaces of a class"  donde muestran brevemente un poco del patrón Factory Method, sucede que tengo una clase Player que es abstracta y de la cual heredan Forward, Goalkeeper y AllPlayer. También tengo la clase Factory que es la encargada de entregarme las instancias que necesito:

Código: java

public class Factory{

    public static Player getPlayer(String role){

        Player player;

        switch(role){
            case "Forward":
                player = new Forward();
                break;
            case "Goalkeeper":
                player = new Goalkeeper();
                break;
            default:
                player = new AllPlayer();
        }
        return player;
    }

}


En la clase main del programa yo creo una instancia de Forward haciendo su respectivo downcast, ya que Factory.getPlayer(), retorna objetos Player.

Código: java

public class Main{
    public static void main(String[] args){

        Forward delantero = (Forward) Factory.getPlayer("Forward");

        delantero.setName("Rolando")
            .setAge("24")
            .setDorsal("11")
            .setTeam("Deportivo tapita")
            .setPosition("DC");

    }
}


El problema viene a la hora de la compilación,  que dice que no encuentra el método setPosition() (clase Main linea 10), como si se tratase de la clase Player, hecho que me resulta muy curioso después de haber realizado el respectivo downcast (clase Main linea 4).

Acá el código de la clase Player y la de Forward

Código: java

public abstract class Player{
   
    private String name;
    private String age;
    private String dorsal;
    private String team;

    public Player(){
        this("", "", "", "");
    }

    public Player(String name, String age, String dorsal, String team){
        this.name = name;
        this.age = age;
        this.dorsal = dorsal;
        this.team = team;
    }

    public String getName(){
        return name;
    }

    public String getAge(){
        return age;
    }

    public String getDorsal(){
        return dorsal;
    }

    public String getTeam(){
        return team;
    }

    public Player setName(String name){
        this.name = name;
        return this;
    }

    public Player setAge(String age){
        this.age = age;
        return this;
    }

    public Player setDorsal(String dorsal){
        this.dorsal = dorsal;
        return this;
    }

    public Player setTeam(String team){
        this.team = team;
        return this;
    }

    @Override
    public String toString(){
        return String.format("Name: %s%nAge: %s%nNumber: %s%nTeam: %s%n",
            getName(), getAge(), getDorsal(), getTeam());
    }
}



Código: java

public class Forward extends Player{

    private String position; //EI, ED, DC
    private int scoredGoals;

    public Forward(){
        this("", "", "", "", "", 0);
    }

    public Forward(String name, String age, String dorsal, String team,
        String position, int scoredGoals){
            super(name, age, dorsal, team);
            this.position = position;
            this.scoredGoals = scoredGoals;
    }

    public String getPosition(){
        return position;
    }

    public int getScoredGoals(){
        return scoredGoals;
    }

    public Forward setPosition(String position){
        this.position = position;
        return this;
    }

    public Forward setSCoredGoals(int scoredGoals){
        this.scoredGoals = scoredGoals;
        return this;
    }

    @Override
    public String toString(){
        return String.format("%sPosition: %s%nScoredGoals: %d%n",
            super.toString(), getPosition(), getScoredGoals());
    }
}


Estaría de lujo un poquito de orientación con respecto a lo que sucede, son las cosas que pasan cuando se estudia solo jeje, muchas gracias de antemano.
#6
Correcto mi estimado grep así mismo es, aunque ya ahí estaría demás hacer un @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ya que se puede trabajar directamente con el método heredado.
Muchas gracias por todo.
#7
Claro que si Hu3c0, muchas gracias a ti también ya me queda resuelta la duda  ;D
#8
Entonces basandome en tu aclaración, puedo decir que el problema me lo está generando el método getA(), ya que al ser "a" private el toma la variable private de B mas no la de A y por eso arroja el resultado especificado, para obtener el a = 1 entonces debo sobreescribir el método para que tome la variable private de A, o en su defecto declarar "a" como protected y solo en la superclase, aunque esto debilitaria el encapsulamiento, pero bueno el punto era entender el concepto y me lo has dejado bien en claro, mil gracias por tu tiempo y tu aporte  ;D ;D
#9
Saludos muchachos, tiempo sin pasar por aquí espero estén bien.
El día de hoy me ha surgido una pregunta con base a una frase que he leido en un libro de "Como programar en Java 10ma edición" de Deitel y Deitel, donde argumentan que no se deben implementar metodos sobreescribibles en los constructores de clase, ya que se pueden generar resultados indeseados. El punto es que si tengo una superclase cuyo constructor utiliza un metodo de instancia para validar un atributo a la hora de inicializarlo, y sobreescribo ese metodo en la subclase, el constructor de la subclase hará la llamada al constructor de la superclase, el cual usará la version sobreescrita del metodo que implementa en su cuerpo, se me ha dado por probarlo pero los resultados no son los que esperaba, de seguro no me ha quedado clara la idea, no haciendo mas esto fué lo que probé.
Código: java
public class B{
    private int a;

    public B(int a){
        setA(a);
    }

    public int getA(){
        return a;
    }

    public void setA(int a){
        this.a = 0;
    }
}


Código: java
public class A extends B{

    private int a;

    public static void main(String[] args){
        A a  = new A(5);
        System.out.println(a.getA());
    }

    public A(int a){
        super(a);
    }

    @Override
    public void setA(int a){
        this.a = 1;
    }
}


La idea era que al pasarle un argumento al constructor a la hora de instanciar a la clase A, este tomara la version sobreescrita del metodo setA() y me inicializara el atributo "a" con valor de 1, pero veo que está tomando la version de la superclase e inicializa el valor de "a" en 0, por lo que no se refleja lo que dice el libro, la verdad quiero saber como manejar esto para tener los conceptos claros, y digerir esta gota en el mar del conocimiento. Gracias de antemano.
#10
Ahhh ya veo, queria saber exactamente en que momento era reservada la memoria, me lo han dejado en claro, muchas gracias chicos  ;) ;) ;D
#11
Saludos hax0rs, recien me inicio en Java y digamos que en programación en general y me topé con una pequeña duda que de seguro será facil para muchos de ustedes.

Código: java
Object myObject = new Object(); 


Se supone que al escribir la sentencia Object myObject estoy creando una refencia al objeto que posteriormente se creará con la sentencia new Object(), pero al crear la referencia(apuntador) la máquina reserva el espacio necesario para el objecto de tipo Object? o dicho espacio se reserva y seguidamente se utiliza al momento en que el compilador llega a  new Object()?

Es algo básico pero de verdad me gustaría tenerlo claro, un abrazo a todos :)
#12
Muchas gracias @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, creo que me puede ser util, la idea que es no se pueda leer a primera, estuve también leyendo la opción que me planteó @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta pero vi que al ofuscar el código, cambiaban las variables, pero las cadenas que es lo que no quiero que se vean, quedaban intactas, no se si quizá no investigué lo suficiente o que, en fin, muchas gracias a ambos, creo que compilaré el script por ahora, seguiré investigando otras formas.
#13
Estaré probando como me has dicho @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, no se me habia ocurrido, y tanto que he leido eso en CTF's aquí.
Gracias, un abrazo.
#14
Cordial saludo muchachos, he estado probando el modulo smtplib de python para un pequeño keylogger que tengo en mente, y todo de  va maravilla, he podido enviar textos y archivos adjuntos sin problema, pero hay un inconveniente, a la hora de enviar las credenciales al servidor SMTP, tengo que poner el usuario y el pass. y pues poner la contraceña y el usuario en plano no me parece correcto, he mirado la documentacion a ver si depronto acepta algun tipo de cifrado como base64 o que se yo, pero no lo mencionan, me gustaria saber si depronto alguno de ustedes conoce una forma de no hacer las credenciales legibles en el codigo y que el server la reconozca. Muchas gracias de antemano.

Código: python

USER = 'mi_usuario'
PASSWORD = 'mi_contraceña'
SMTP_SERVER = 'smtp.gmail.com'

conn = SMTP_SSL(SMTP_SERVER)
conn.set_debuglevel(1)
conn.login(USER,PASSWORD)
...
#15
Muchas gracias hombre, ha funcionado sin percance.
PD: hay botón de gracias?  ;D ;D
#16
Cordial salu2
He decidido reactivarme en la programación puesto que ya siento la necesidad, y he optado por retomar al poderoso c++,
y en un ejercicio de separación de interfaz-implementación de una clase he llegado a este punto:

interfaz de clase
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

implementacion de clase
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

controlador(main)
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

a lo que al parecer esta todo bien, basándome en los ejemplos del libro de Deitel y Deitel 9na edición.
Pero sucede que al intentar compilar la implementación y la clase main me salta esto...

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

el libro habla de compilar y enlazar la implementacion y la clase main, pero el compilador me dice que no hay funcion main
en la implementación por ende no deja compilar el codigo y por el otro lado a la hora de compilar el main del programa si no tengo idea
de que sucede con const, me especifican que debía ponerse tanto en la interfaz como en la implementación de las funciones que no
modificaran los atributos de la clase, por ende no entiendo a donde viene el error. Cabe destacar que el libro es de la versión 11 y según
tengo entendido c++ va por la versión 14 no se si quizá eso tenga que ver y haya cambiado algo.

Cualquier pista es bien recibida.
Gracias de antemano.
#17
Dudas y pedidos generales / Re:ARP Spoof
Septiembre 25, 2016, 09:45:55 PM
Gracias brother, sencilla explicación pero me bastó para entender :D un abrazo
#18
Dudas y pedidos generales / [SOLUCIONADO] ARP Spoof
Septiembre 25, 2016, 09:03:21 PM
Cordial saludo estimados, sucede que he estado leyendo sobre el ARP Spoofing y entre mas leo mas dudas me entran, según entiendo que el switch(caso normal) pregunta en modo broadcast "quien tiene la IP No tienes permitido ver los links. Registrarse o Entrar a mi cuenta " y los host escuchan el mensaje pero solo responde el que tiene a IP que se necesita, mientras tanto los otros equipos también escuchan la respuesta y en caso de no tenerla registrada en su trabla ARP actualizarán su información.
Ahora la pregunta...a la hora de suplantarse una MAC como se logra engañar al resto de equipos cuando se supone que previamente debían tener registrada la MAC victima en tu tabla ARP...
Gracias de antemano.
#19
Off Topic / Felicidades, ANTRAX!!!!
Septiembre 24, 2016, 08:57:08 PM
Felicidades brother, que sigas cumpliendo muchos años mas y la pases muy bien con tus allegados, un abrazo (Y)
#20
Muchas gracias hermano, de verdad que me resultó útil tu respuesta, ahora ya puedo seguir :D  :D