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

#21
Claro, no lo había pensado en sub

Muchas gracias.

Lo del ret solo es una duda sobre la posición del stack, pero no importa mucho.
#22
vaya, yo recuerdo los modulos para VB6 que ya lograban la conexión inversa.

Los programas hacks para un chat que creo que ya no existe, se llamaba latinmail y luego se convirtio en starmedia o algo así, era muy divertido molestar a la gente de ahi.

Los troyanos de conexión directa como sub7.

No se si alguien recuerda pero hubo un tiempo que así como actualmente pedían formas para entrar a las redes sociales ajenas, se pedía muchisimo entrar a hotmail.

De hotmail habían millones de registros preguntando como hackear una cuenta... y los primer phishing eran unos mensajes que te aseguraban recibir la contraseña de otro si mandabas un mensaje a un supuesto correo de soporte de hotmail, donde mandabas tu correo, tu contraseña con una petición de restaurar la cuenta que querías y supuestamente en respuesta te mandaban la contraseña ,pero lo único que pasaba era que tu mandabas tu correo y contraseña a algún hacker sin que te dieras cuenta y nunca recibias nada, eso se lo hice a un amigo y si cayó jeje... xD

bueno, telnet, netcat, recursos compartidos...

Uno que siempre odie fue un código donde te metias a una página web y al pasar el ratón encima te aparecián como 1000 ventanas y tenías que cerrar todas para poder seguir usando el explorador, varias veces caí y lo odiaba.

#23
Hola

Estoy aprendiendo a eliminar los nulls en ensamblador, lo estoy intentando con algo simple como un hola mundo en nasm, la manera en que lo hice fue haciendo un call y con xor en los demas registros para que pasara algo asi

Código: asm
    global _start
     
    section .data
     
    section .text
     
    _start:
     
    jmp mess
     
    proc:
    xor rax, rax
    mov al, 1
    xor rdi, rdi
    mov dil, 1
    pop rsi
    xor rdx, rdx
    mov dl, 0x12       
    syscall
     
     
    ;exit
     
    xor rax, rax
    mov al, 60
     
    xor rdi, rdi
    mov dl, 11
    syscall
     
    mess:
    call proc
    MSG db 'Hola mundo x64',0x0A
    /code]


Así call mete en la pila MSG y luego lo retoma RSI con un pop, solo que no recuerdo si lo retoma en esp o en esp+4, lo analice en GDB pero no estoy seguro si es rsp o rsp + 4

(gdb) x/s $rsi
0x4000a8 <MSG>: "Hola mundo x64"

¿Alguien me podría decir cual de las dos formas sería la correcta?

[code]|------------
|rsp ---- MSG
---------------------


Código: php
|
|rsp + 4 ---- MSG
/code]

Pero también quisiera saber si hay otra forma de lograr eliminar los null sin tener que hacer el call

así lo había dejado pero me encontré con el problema de no saber como eliminar el null de rsi

[code=asm]global _start

section .data

MSG: db 'Hola mundo x64'
length: equ $-MSG

section .text

_start:

xor rax, rax
mov al, 1
xor rdx, rdx
mov bl, 1
xor rsi, rsi
mov rsi, MSG
xor rdx, rdx
mov dl, length
syscall


;exit

xor rax, rax
mov al, 60

xor rdi, rdi
mov dl, 11
syscall


Si ven, el único que me faltaría es RSI que analizandolo con objdump se vería de ésta forma

Código: php
00000000004000b0 <_start>:
  4000b0: 48 31 c0              xor    rax,rax
  4000b3: b0 01                mov    al,0x1
  4000b5: 48 31 d2              xor    rdx,rdx
  4000b8: b3 01                mov    bl,0x1
  4000ba: 48 31 f6              xor    rsi,rsi
  4000bd: 48 be dc 00 60 00 00 movabs rsi,0x6000dc
  4000c4: 00 00 00
  4000c7: 48 31 d2              xor    rdx,rdx
  4000ca: b2 0e                mov    dl,0xe
  4000cc: 0f 05                syscall
  4000ce: 48 31 c0              xor    rax,rax
  4000d1: b0 3c                mov    al,0x3c
  4000d3: 48 31 ff              xor    rdi,rdi
  4000d6: b2 0b                mov    dl,0xb
  4000d8: 0f 05                syscall


¿Pero que otra forma se les ocurre que podría eliminar esos null's?

Y ya de paso otra pregunta más, RET solo se utiliza en EBP o también en ESP, me explico

Código: php
|
|rsp + 8
|------------
|rsp + 4
|-----------
|rbp
|------
|ret
|-------
|rbp + 8
--------------

---------------------------------
Código: php
|
|rsp + 8
|------------
|rsp + 4
|-----------
|ret
--------------

#24
Hola

Estoy haciendo un código para conectarme mediante android y mi PC, pero tengo un problema, cuando mando información me aparece todo en horizontal


holamundoarchivo1archivo2


y me gustaría que me apareciera en forma vertical

hola
mundo
archivo1
archivo2

Esta parte es como mando la información en android

Código: java
 ptrw= new PrintWriter(sr.getOutputStream());
                                ptrw.write(fileList.get(i).getName());
                                ptrw.flush();



Y esta parte es como la recibo en Java en mi PC

Código: java
entr = new BufferedReader(new InputStreamReader(sok.getInputStream()));
               
               while((content = entr.readLine()) != null){
               
                System.out.print(content);
                System.out.flush();
               }


¿Alguien sabe como podría hacer que me aparezca en vertical la información?

Saludos
#25
ok,gracias ;D
#26
Hola

Estoy intentando aprender a hacer una aplicación que se inicie de forma invisible, estuve buscando y encontré que el siguiente código lo podría esconder y si lo hace... también modificando *.xml

Código: java
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);


pero según leí, se puede seguir usando la pantalla normalmente, sin embargo, cuando toco la pantalla se queda estática, y es porque la app esta en primer plano y no puedo hacer nada, la única manera es oprimiendo el botón "back" y la app queda en background

¿alguien sabe cómo se puede quedar la app en primer plano, invisible y que se puede seguir usando la pantalla normalmente?
#27
Es lo que yo le mencioné... a menos que le hayan tomado una foto y le hayan bajado al volumen para escuchar mejor por el microfono de su celular, pero se me hace también muy raro que alguien haga eso, pero como fue justamente mientras estaba en el inproxy, pues no sabe si es por una casualidad o realmente alguien lo vigilaba.

Pensamos en el antivirus, pero yo que sepa, los antivirus no sirven, sólo son para calmar a la gente que pide antivirus para todo... 

CitarPor el día Otorrinolaringologo por las noches hacker y su misión en la vida es evitar la sordera por volúmenes altos

jajajaja xD
#28
Hola, vengo con una duda algo extraña

Ayer mi primo me explicó que estaba revisando freenet, pero que se le hizo aburrido porque casi no hay nada o es inproxy y todo está reservado en sólo amigos, entonces encontró una página de paranormal y descargo dos vídeos, pero olvido configurar el firewall del módem, lo dejó sin protección por no saber configurar el puerto, lo cual es muy estúpido de su parte... pero bueno, la cosa está en que mientras descargaba el vídeo, estaba viendo desde su celular un cortometraje en YouTube, cuando derepente apagó su compu y el módem, y me dijo que mientras escuchaba el vídeo, se le bajó el volumen.... y se le hizo raro, así que revisó el volumen y se dio cuenta que el volumen había regresado a la zona azul... para los que usan android recordarán que Android mantiene el audio en una zona azul y al pasar al rojo te avisa que debes tener precaución porque es dañino para los oídos, etc.. en ese momento le subió y le apareció ese mismo mensaje, así que fue cuando apagó todo... afortunadamente usó freenet de manera que no hubieran muchos accesos, pero aún así no sabe porque el celular bajo el volumen, dice que no recibió nada, ni un apk, ni un mensaje, nada... así que yo le dije que posiblemente el controlador de audio de su celular tuvo un error y se reinició dejándolo en modo "default", ya que su cortometraje duraba como 30 segundos y lo repetía y repetía.

Y tenemos esa duda, ¿creen que alguien haya tenido acceso, al posiblemente dejar registros en la descarga del contenido mediante freenet o creen que Android tuvo un fallo en su controlador y se reinició el sonido en default como protección?
#29
Creo en mtsystems tengo que pagar, porque me resuelve con paquetería de la misma empresa que no es descargable.

Estuve investigando un ejercicio que usando SimpleDateFormat hace algo parecido a lo que necesito.

Código: java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class tm{
  public static void main(String[] args) {
    String pattern = "MM/dd/yyyy";
    SimpleDateFormat format = new SimpleDateFormat(pattern);
    try {
      Date date = format.parse("12/31/2016");
      System.out.println(date);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    // formatting
    System.out.println(format.format(new Date()));
  }
}


pero ahora debo saber cómo convertir time_t timp = 1483256049; cómo lo hace en C pero ahora en Java, para colocarlo en format.parse... o eso es lo que me imagino que me falta.
#30
Hice un código sencillo para convertir localtime desde números introducidos en la estructura tm de time.h

pero no encuentro cómo pasarlo a Java ya que no llevo mucho tiempo usándolo, ¿me podrían decir que funciones o que buscar para lograr hacer lo mismo en java?

les dejo el código que necesito pasarlo a java

Código: c

#include <stdio.h>
#include <string.h>
#include <time.h>


int main(){

char buffer[256];
const char *formatoS = "%Y.%m.%d - %H:%M:%S";

struct tm dat;
time_t timp = 1483256049;
localtime_r(&timp, &dat);

strftime(buffer, 256, formatoS, &dat);

printf("%s", buffer);

}

#31
El problema se solucionó leyendo la explicación de grep

gracias
#32
¿Cómo logro hacer una petición sql cuando hay un @?

tengo en una columna de la que me gustaría sacar información, pero hay un problema...cuando lo hago me menciona este error

SQLITE_ERROR] SQL error or missing database (near "@s": syntax error)

trato de llamar un dato, por ejemplo

hola@mundo... pero no me deja

¿Alguien sabe la manera correcta de usar "WHERE hola@mundo" en SQL?
#33
Pues ya encontré la manera, lo estoy haciendo con Java para tener interface, pero como estoy acostumbrado a C, me está costando más trabajo aprender a acomodar los objetos usando Jframe que acceder a la base de datos.

Lo que todavía no encuentro es cómo se desencripta, tengo entendido que es usando AES256 para crypt12 y creo 196 para crypt8, etc... pero estoy tratando de analizar ese concepto, porque tampoco sé cómo se programa con eso. Revisando encontré que ya hay un cierto código establecido y que puede ser adaptable a mi aplicación, pero apenas lo intentaré.

Si saben o  encuentran info, espero me la puedan compartir, porque si es laborioso y más porque se me ocurrió hacerlo en java y lo que he visto está en cpp, y también tendría que traducirlos a Java para saber que tengo que hacer. De hecho me están dando ganas de rehacerlo pero en cpp, pero bueno, por lo visto me llevará un largo tiempo la parte de desencriptar, así que por lo mientras utilizaré herramientas de otros y la parte forense ya la realizaré con algo mió.

Saludos.
#34
Hola

Hace tiempo se usaba esto para poder entrar a la base de datos de Whatsapp

346a23652a46392b4d73257c67317e352e3372482177652c

Me imagino eso ya no sirve, e investigando dice que se necesita ahora el cypter y la key para desencriptar el db... pero ¿qué información me serviría?, porque encuentro muchos programas para desencriptar los datos, pero ya te dan todo, los datos en un html o el mismo programa ya te muestra toda la información dentro del archivo, pero me gustaría intentar hacer el mio.

Yo recuerdo que con sqlite me conectaba a la base de datos y usando la key entraba como cualquier DB, y sólo me tocaba ir mostrando las tablas, etc... pero ahora por lo visto necesito desencriptar el db con una key, para poder tener acceso a los datos, los cuales no sé si sea necesario la key que coloque arriba o ya es cosa del pasado.

Espero me puedan orientar, me gustaría poder analizar la base de datos, pero antes debo saber como desecriptar para obtener el db original, e intentar conectarme con sqlite en alguna aplicación.
#35
Hola

Estoy haciendo una aplicación para descargar imágenes, a veces necesito descargas varias y se me hace muy pesado hacerlo uno por uno, pero me surgió una duda, estoy haciendo uso de Curl.

Lo primero que hice fue descargar el código fuente de la página y guardar en un buffer el código, al parecer ya puedo hacer uso de ella con los array, pero ahora viene algo que no sé cómo funcionaría mejor. Tengo la idea de buscar los links de la imágenes y separarlas... por ejemplo

Código: html5
if (!_W.getCookie('506442620979584765_cookie_policy') || (_W.getCookie('506442620979584765_cookie_policy') !== cookie_content)){
if (cookie_location === 'top' || cookie_location === 'bottom'){

.....

<a href = "imagenes/imagen1.jpg" </a>


Me gustaría buscar en el array <a href>, al encontrarlo, ir separando los links y guardarlos
Código: html5

"imagenes/imagen1.jpg"
"imagenes/imagen2.jpg"
"imagenes/imagen3.jpg"


Ya separados, guardar el nombre de la imagen con fopen, hacer una petición (me imagino que debo usar GET), y guardar los bytes de descarga, para finalmente obtener las imágenes.

Pero necesito ideas de cómo lograrlo, tengo en el (array char) el código fuente, ¿pero de que manera busco "<a href" para encontrar los links de las imágenes?, quería usar un for que me buscara en el array la parte deseada y con strcmp verificar si es lo que estoy buscando, pero siempre me sale este mensaje cuando buscaba alguna parte del código

Código: php
aviso: el paso del argumento 1 de 'strcmp' crea un puntero desde un entero sin una conversión [-Wint-conversion]
     if(strcmp(buff[a], 'c') == 0){
               ^~~~
In file included from downweb.c:3:0:
/usr/include/string.h:140:12: nota: se esperaba 'const char *' pero el argumento es de tipo 'char'
extern int strcmp (const char *__s1, const char *__s2)


pero no sé si haya otra manera de hacerlo, que no sea manualmente ya que no siempre se encontrarán en la misma posición, ¿Ideas de que podría hacer en ese caso?
#36
Ok, ahora entiendo... gracias por ayudarme.

No me había puesto a pensar que call también se encontraba en el stack

A lo que me referia con otra funcion fuera era algo así.

Código: asm
push ebp
mov ebp, esp

push dword [ebp + 0x0C]
push ebx
call comparar
cmp eax, 1
..... etc

mov esp, ebp
pop ebp

comparar:
push ebx
loop:
mov eax, [esp + 0x0C]
mov al, byte [eax]
mov ebx, [esp + 0x08]
cmp al, byte [ebx]
....

pop ebx
y luego de regreso
mov eax, 1 ;--- si no falló nada
ret


Pero suena comprensible lo que me explicaste... gracias nuevamente
#37
Hola

Estaba de ocioso, y quise ver si en Windows 10 todavía se podía hacer los RunPE, estoy un poco óxidado y estuve buscando los antoguos manuales que rondan en internet. Quise hacer una nueva sección para ejecutar un MessageBox.

Pero no sé si lo hice bien, porque Notepad.exe queda con la misma cantidad de bytesy no me menciona ningun mensaje de error, ni me avisa que ya no es un DOS, el icono de notepad aparece bien, lo que significa que en téoria, lo hice bien.

pero cuando lo ejecuto, me dice "No se puede ejecutar esta aplicación en el equipo". Y esto es confuso, ya que no sé si está mal o el sistema detecto algo y no permite que se ejecute.

Alguien aquí lo ha hecho con exito, para entonces describir los pasos que hice, talvez algo esta mal y por eso no me funciona... Lo que no recordé bien fue sobre los alinear, pero no creo haberme confundido, ya que Notepad quedó bien, o eso es lo que yo creo.

Saludos





Edición:

Bueno, ya lo solucioné, me había equivocado en la modificación de SizeOfImage y VirtualAddress

me marcaba 35000 y con la operación confundí la alineación y coloque 40000, en vez de su multiplo siguiente 36000 y lo mismo me pasó con VirtualAddress, pero tengo una duda sobre unas secciones

Para encontrar VirtualAddress, ¿es sumando "VirtualAddress + VirtualSize" o es sumando "VirtualAddress + SizeOfRawData"?

Para encontrar SizeOfRawData, ¿es alineando la cantidad que yo agrego y ya, verdad?, por ejemplo

si mi sección tiene 0x15 y FileAlignment es 0x200 entonces sería 0x15 alinear 0x200 = 0x200 --- o también si fuera 0x240 alinear 0x200 = 0x400 y asi sucesivamente, cierto?, SizeOfRawData solo se obtiene verificando tus datos y FileAlignment, nada mas, ¿cierto?

También trate de meter código asm u opcodes del asm, y buscando encontre que se debe reacomodar ImageBase y AddressOfEntryPoint... ya los encontre, supuestamente se suman y ahí es donde se inicia el código... pero no se que hacer después

ya que tengo ImageBase y AddressOfEntryPoint, ¿que se debe hacer, o como se modifica eso?

Perdon si no pongo código, pero lo estoy haciendo manualmente porque ya no recordaba varias cosas y otras no las aprendí, solo estoy usando códigos para facilitarme un poco las busquedas, porque tener que contar byte por byte para llegar a una dirección es horrible.

Espero me puedan ayudar, gracias
#38
Tengo una duda con el uso de funciones en ASM

hago una funcion y en el hago dos push

Código: asm

push ebp
mov ebp, esp

push dword [ebp + 0x0C]
push ebx
call comparar

mov esp, ebp
pop ebp


En el stack quedaría algo así, ¿cierto?

Código: asm
push dword[ebp + 0x0C] - esp 0x08
|---------
|
|push ebx - esp 0x04


Se me ocurrio hacer una comparación como en C, entonces lo haría parecido a strcmp afuera del push ebp, como volveré a usar ebx lo vuelvo a guardar

Código: asm

comparar:
push ebx


Pero tengo una duda, si hago eso, ¿entonces quedaría así en el stack?

Código: asm
|
|push dword[ebp + 0x0C] - esp 0x0C
|---------
|
|push ebx - esp 0x08
|----------
|
|push ebx - esp 0x04


¿Y al final solo necesitaría hacer esto?

Código: asm

comparar:
push ebx
loop:
mov eax, [esp + 0x0C]
mov al, byte [eax]
mov ebx, [esp + 0x08]
cmp al, byte [ebx]
....

pop ebx


Si así quedaría todo entonces al hacer pop, ¿quedaría de esta forma nuevamente y regresaría a la funcion anterior?

Código: asm
|push dword[ebp + 0x0C] - esp 0x08
|---------
|
|push ebx - esp 0x04
#39
que buenas explicaciones, muchas gracias, resolvieron mis dudas  ;D
#40
Hola

Estaba haciendo un shell en linux en nasm, saque los opcode y los agregue a la clásica shellcode en C para ejecutarlo, y no tuve problemas, pero me surgieron unas dudas que espero me puedan ayudar a entender.

La primera, es saber si, ¿cada vez que haga una shell y quiera sacar los opcode es necesario usar push y guardar en el stack todo?, ya que hice dos formas de ejecutar execv; una que es la que ronda por internet y otra hecha por mi. La que ronda por internet usan bastante push ya sea para /bin/sh como para los argumentos de execv, yo intenté usar una variable en section .data, lo que me di cuenta que necesito reemplazar las dirección que me da de section .data por /bin/sh en hexadecimal

entonces acabo haciendo lo mismo que usar directamente push /bin/sh

Pero recordé un código de una shell TCP y me di cuenta que también pushean todo, algo así

push 0x1
pop ebx
push 0x2
pop ecx

en vez de meterlo directamente

mov ebx, 0x1
mov ecx, 0x2

¿entonces es necesario meter en el stack todo en casos de shellcodes o será simplemente una coincidencia o una forma diferente de programar?

¿Y que pasa con los opcode "Cero" que si son necesarios?

por ejemplo, IP - 192.167.0.56

en hex quedaria C0A70038, pero si se dan cuenta hay cero "00", según en la shellcode no puede haber nulls y se deben quitar los ceros, y aunque en la ip no usa NULL sino es mas un cero de integer, objdump me lo quita al ser 0x00, entonces queda incompleto, en este caso se lo agregue manualmente y me funcionó, ¿pero que pasaría si hay más instrucciones con 00?, ¿tendría que buscarlos y agregarlos directamente en caso de que objdump me los elimine?, y ¿eso no perjudicaría la shellcode al tener que agregarle algún 0x00? porque tener que buscar en la shellcode byte por byte a ver si no me falto algo, creo no es muy optimo pero no se si sea normal.

Lo cual me llevó a otra duda; cuando busque el código de la shell, quise verificar su funcionamiento y saque los opcode, pero me di cuenta que objdump no me dio correctamente todo, el puerto solo me dio 1 byte de los 2

0x7968

y en la shellcode me dejo solamente

0x79

y de igual manera la shell de /bin/sh no me dio todo, le hizo falta 1

/x68/x73/x2f/x6e/x69/x62/x2f/x2f -- así debería quedar, pero me dio lo siguiente

/x68/x73/x2f/x69/x62/x2f/x2f

¿será algún detalle de que sea en 64 bits o algo parecido?, porque usé el comando de la página No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

cuando uso objdump -d me muestra bien todo, pero con el comando de commandlinefu me falló como les mencioné

bueno, espero haberme explicado lo mejor posible mis dudas.

Saludos