Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Segadorfelix en 7 Abril 2019, 09:36 am



Título: Esteganografía EOF [BATCH]
Publicado por: Segadorfelix en 7 Abril 2019, 09:36 am
Buen día!, tengo una duda. Estoy pensando en hacer un Script esteganografico con Batch. El cual pueda dividir un archivo en varios para poderlo repartir en varios archivos.

Algo así como arch.mp4, lo divido en 5 partes y lo reparto en 5 imágenes. El problema es que con Batch la lectura de archivos que no son ASCII, es un bardo.

Sé que Batch, no es el terreno adecuado para abordar este problema y que con, por ejemplo pyton, posiblemente sería más sencillo. Pero quisiera intentarlo.

Si alguien pudiera ayudarme con algo tan 'sencillo', como tomar un .mp4(por decir algo), y dividirlo en varios fragmentos en archivos de texto, para luego volverlo a armar y pueda reproducirse. Todo esto por bat, aunque sea una guía. Podría serme de gran utilidad.

Saludos!


Título: Re: Esteganografía EOF [BATCH]
Publicado por: **Aincrad** en 8 Abril 2019, 04:18 am
Bueno primero q nada, yo intente algo parecido de varias maneras. pero no evitaras q los bytes se corrompan. a menos q uses herramientas externas. en mi caso opte por la comandline de winrar. con eso lo lograras fácilmente.

hechale un ojo a mi code :

[batch] [aporte] batch archive security v0.3 (https://foro.elhacker.net/scripting/batch_aporte_batch_archive_security_v03-t475428.0.html)


Título: Re: Esteganografía EOF [BATCH]
Publicado por: Segadorfelix en 9 Abril 2019, 02:11 am
Aircrad,ya le di una ojeada al code.

Aunque no me es de mucha utilidad, ya que el trabajo como dices, lo hace un archivo externo.

Sé que intentar hacerlo en Batch es romperse la cabeza, y estoy viendo si aprendo a manejar Powershell y hacer algo, si no llego a nada.

Mi idea sería en principio leerlo con un FOR y transcribirlo en otro archivo. algo así como:
Código
  1. type archivo.mp4>>archivo2.mp4
Así, de algun modo podría procesar el archivo y partirlo en cierto número de lineas.

O hallar un modo de "parar" la ejecución de type, y cambiar el archivo de guardado, pero esto ultimo, lo veo más imposible, que la primera idea.

O tomar un archivo y copiarlo de forma fragmentada.

La razón de hacerlo en batch, sería primero por la independencia de compilador o archivos adicionales, y un reto, ya que batch complica todo.


Título: Re: Esteganografía EOF [BATCH]
Publicado por: tincopasan en 9 Abril 2019, 02:36 am
Citar
estoy viendo si aprendo a manejar Powershell
Citar
La razón de hacerlo en batch, sería primero por la independencia de compilador o archivos adicionales, y un reto, ya que batch complica todo.
teniendo en cuenta eso, no pierdas tiempo con batch, si bien powershell brinda muchisimas más posibilidades, tampoco es que sea tan fácil de realizar todo lo que te propongas.


Título: Re: Esteganografía EOF [BATCH]
Publicado por: Segadorfelix en 9 Abril 2019, 03:34 am
teniendo en cuenta eso, no pierdas tiempo con batch, si bien powershell brinda muchisimas más posibilidades, tampoco es que sea tan fácil de realizar todo lo que te propongas.

Por supuesto, eso lo tomo en cuenta. Pero lo que tengo pensado no lo veo como un reto en algo que no sea Batch. (Leer el archivo linea a linea y transcribirlo en otros archivos).

Por eso pregunto, si de algún modo que desconozca puede hacerse, aprenderé algo nuevo.


Título: Re: Esteganografía EOF [BATCH]
Publicado por: yuimugi912 en 19 Abril 2019, 15:16 pm
la tienes muy complicada si quieres hacerlo con archivos binarios.
Pero googleando podrias usar
certutil para convertir los archivos en base 65 y luego si lo puedes leer normalmente con un for
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil#BKMK_encode

tuviera a la mano windows lo haria


Título: Re: Esteganografía EOF [BATCH]
Publicado por: Segadorfelix en 20 Abril 2019, 22:39 pm
la tienes muy complicada si quieres hacerlo con archivos binarios.
Pero googleando podrias usar
certutil para convertir los archivos en base 65 y luego si lo puedes leer normalmente con un for
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil#BKMK_encode

tuviera a la mano windows lo haria

@Yuigumi Muchas gracias, esto podría serme de gran utilidad, voy a probar si esto mejora la lectura.(De alguna forma, sin pasarlo a base64, pude leerlo con un for, pero a la hora de pasar a una variable, y escribir en un archivo, algunos "caracteres especiales" de Batch, me complican la vida. Aunque creo que eso es asunto de otro post).

Bueno, modifico el mensaje, porque esto es JUSTO lo que buscaba, enserio gracias, este comando me simplifica la vida un montón.


Título: Re: Esteganografía EOF [BATCH]
Publicado por: yuimugi912 en 20 Abril 2019, 23:58 pm
@Yuigumi Muchas gracias, esto podría serme de gran utilidad, voy a probar si esto mejora la lectura.(De alguna forma, sin pasarlo a base64, pude leerlo con un for, pero a la hora de pasar a una variable, y escribir en un archivo, algunos "caracteres especiales" de Batch, me complican la vida. Aunque creo que eso es asunto de otro post).

Bueno, modifico el mensaje, porque esto es JUSTO lo que buscaba, enserio gracias, este comando me simplifica la vida un montón.

por nada  ;D


Título: Re: Esteganografía EOF [BATCH]
Publicado por: Serapis en 21 Abril 2019, 10:43 am
Es una forma absurda de perder el tiempo.

Un reto tiene sentido, solo si con ello consigues algo que tenga utilidad práctica, aunque solo sea aprender. Ahí no hay aprendizaje solo ejercicio rutinario...

Pero, hacer retos donde el reto por si mismo es complicar las cosas solo porque sí (como decir: "ir desde el punto A al punto B pisando solo las baldosas 'pares' , vamos 1 de cada dos"), no ofrece absolutamente nada, yo ni lo llamaría reto, si no castigo, si además es autoimpuesto, entonces lo llamaría autofustigación, autoflagelación.

Tampoco tengo claro tu intencionalidad, a juicio mío suena a: "ofuscar algún archivo que actuará como un virus en algún momento, pero/para que pase desapercibido..."


Título: Re: Esteganografía EOF [BATCH]
Publicado por: Segadorfelix en 22 Abril 2019, 08:12 am
Es una forma absurda de perder el tiempo.

Un reto tiene sentido, solo si con ello consigues algo que tenga utilidad práctica, aunque solo sea aprender. Ahí no hay aprendizaje solo ejercicio rutinario...

Pero, hacer retos donde el reto por si mismo es complicar las cosas solo porque sí (como decir: "ir desde el punto A al punto B pisando solo las baldosas 'pares' , vamos 1 de cada dos"), no ofrece absolutamente nada, yo ni lo llamaría reto, si no castigo, si además es autoimpuesto, entonces lo llamaría autofustigación, autoflagelación.

Tampoco tengo claro tu intencionalidad, a juicio mío suena a: "ofuscar algún archivo que actuará como un virus en algún momento, pero/para que pase desapercibido..."

Responder eso es una forma absurda de perder el tiempo. Y podemos seguir así todo lo que se pueda.

No nebire , el aprendizaje esta. Un comando que no conocía y puede ser de mucha utilidad, a mí o a cualquiera

Es la zona de Scripting, así que la duda esta en su lugar. Batch no requiere instalar un interprete o un compilador para usarlo. Así que puede sacarsele provecho en estas situaciones, si no se tiene una fijación o necesidad por la velocidad de procesamiento.

Lo que estaba haciendo antes de saber este comando podría clasificarse de masoquista, pero hay muchas actividades masoquistas, estudiar, trabajar, vivir. Igual que actividades de 'ocio'. Pero no viene al caso, igual que tu comentario nebire .

Mi objetivo esta especificado en la descripción del tema. Casi cualquier cosa en programación ,o pseudo-programación para este caso, puede utilizarse en la creación de un virus.

Así que a excepción de lo que he dicho en este post, francamente mi 'intencionalidad' no le incumbe, menos con esa tonalidad que a mi criterio es toxica (¿Que necesidad de responder echando basura a un tema resuelto? Ninguna).


Título: Re: Esteganografía EOF [BATCH]
Publicado por: Eleкtro en 5 Mayo 2019, 19:26 pm
Batch no requiere instalar un interprete o un compilador para usarlo.

Eso no lo hace mejor en ningún aspecto. Lo del intérprete, le doy un pase, pero el compilador solo lo necesitas durante la etapa de desarrollo, y al finalizar tan solo tienes que distribuir la aplicación (o librería) compilada y ahí ya no dependes de nada (excepto de los runtimes de software que haya instalados en el sistema operativo, como ocurre con toda aplicación).

En Batch, para llevar a cabo casi cualquier cosa que sea realmente de utilidad, dependerás del uso de aplicaciones externas como en este caso certuril.exe, así que aunque no dependas de un intérprete externo ni compilador, si que dependes de la existencia de archivos/programas externos. Programas los cuales, como muchos otros, están sujetos a posibles cambios (en la entrada de sintaxis por linea de comandos) entre las distintas versiones de Windows, o en el peor de los casos a la obsolescencia y eliminación. Así que mucho mejor no es, si lo comparas bien.

Quizás deberías hacer caso a lo que muchos te han dicho ya. Batch es una completa pérdida de tiempo habiendo las alternativas que hay. Además ya conoces sus mayores desventajas (elaboración tediosa/complicada de código, sintáctica simplista en el mal sentido, y herramienta incompleta/carente de funcionalidades built-in, ni siquiera soporta el uso de arrays, joder, aparte de la nefasta velocidad de procesamiento de datos que tiene por naturaleza), así que no se que más motivos puede necesitar un programador para darse cuenta de que está todo en contra de tenerle preferencia a Batch como "lenguaje de programación" principal. Pero bueno, es tu decisión por los motivos que tengas y yo no insisto ni me meto en eso, pero quería dar mi opinión también.

Al menos podrías decantarte por el lenguaje Powershell, ya que tampoco hay dependencias (que no vengan ya instaladas por defecto en el S.O) y es infinitamente mejor, más completo y productivo de lo que jamás será Batch. Una grandísima ventaja de Powershell es que puedes utilizar al completo la librería de clases de .NET Framework. De hecho, incluso puedes escribir códio en C# o VB.NET en un script de PowerShell para compilar en tiempo de ejecución una librería dinámica (.dll) y llamar a los métodos compilados. Pero vamos, lo relevante sería que puedes utilizar los miembros de los espacios de nombres de la librería de clases de .NET Framework para leer los bytes de un archivo, "cortarlo" en trozos, cifrar lo que quieras a Base-64, y administrar/crear/eliminar certificados. Tampoco es que necesites recurrir a .NET Framework, casi todo lo puedes hacer con puro PowerShell. No necesitarías depender en absoluto de certutil.exe.

Un saludo.


Título: Re: Esteganografía EOF [BATCH]
Publicado por: Segadorfelix en 7 Mayo 2019, 09:26 am
Eso no lo hace mejor en ningún aspecto. Lo del intérprete, le doy un pase, pero el compilador solo lo necesitas durante la etapa de desarrollo, y al finalizar tan solo tienes que distribuir la aplicación (o librería) compilada y ahí ya no dependes de nada (excepto de los runtimes de software que haya instalados en el sistema operativo, como ocurre con toda aplicación).

En Batch, para llevar a cabo casi cualquier cosa que sea realmente de utilidad, dependerás del uso de aplicaciones externas como en este caso certuril.exe, así que aunque no dependas de un intérprete externo ni compilador, si que dependes de la existencia de archivos/programas externos. Programas los cuales, como muchos otros, están sujetos a posibles cambios (en la entrada de sintaxis por linea de comandos) entre las distintas versiones de Windows, o en el peor de los casos a la obsolescencia y eliminación. Así que mucho mejor no es, si lo comparas bien.

Quizás deberías hacer caso a lo que muchos te han dicho ya. Batch es una completa pérdida de tiempo habiendo las alternativas que hay. Además ya conoces sus mayores desventajas (elaboración tediosa/complicada de código, sintáctica simplista en el mal sentido, y herramienta incompleta/carente de funcionalidades built-in, ni siquiera soporta el uso de arrays, joder, aparte de la nefasta velocidad de procesamiento de datos que tiene por naturaleza), así que no se que más motivos puede necesitar un programador para darse cuenta de que está todo en contra de tenerle preferencia a Batch como "lenguaje de programación" principal. Pero bueno, es tu decisión por los motivos que tengas y yo no insisto ni me meto en eso, pero quería dar mi opinión también.

Al menos podrías decantarte por el lenguaje Powershell, ya que tampoco hay dependencias (que no vengan ya instaladas por defecto en el S.O) y es infinitamente mejor, más completo y productivo de lo que jamás será Batch. Una grandísima ventaja de Powershell es que puedes utilizar al completo la librería de clases de .NET Framework. De hecho, incluso puedes escribir códio en C# o VB.NET en un script de PowerShell para compilar en tiempo de ejecución una librería dinámica (.dll) y llamar a los métodos compilados. Pero vamos, lo relevante sería que puedes utilizar los miembros de los espacios de nombres de la librería de clases de .NET Framework para leer los bytes de un archivo, "cortarlo" en trozos, cifrar lo que quieras a Base-64, y administrar/crear/eliminar certificados. Tampoco es que necesites recurrir a .NET Framework, casi todo lo puedes hacer con puro PowerShell. No necesitarías depender en absoluto de certutil.exe.

Un saludo.

Sí, lo de los arrays es una patada a los huevos. Después de hacer un script en Batch quede un poco inconforme, porque si deseo aplicar un método criptograma más complejo, tardaría más aun en procesar los datos y prácticamente sería inútil.

Igual fue divertido de algún modo, pero se que es un scritp que posiblemente quede obsoleto pronto.

Así que estuve leyendo un poco de Bash y Powershell. Con Get-Content y Set-Content, se puede hacer casi todo el trabajo (cortar un archivo y encriptarlo), al menos en las versiones previas a Powershell 6, desde la versión 6 se debe tener en cuenta a .Net Core.

Con .NET en Powershell se pueden hacer muchas más cosas, pero me hace falta leer :P de .NET no conozco mucho.

Fue un comentario muy constructivo, gracias.