Modificar directorios, agregar writeups de NeverLAN
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# Aca-Shell-A
|
||||
|
||||
En este desafío nos encontramos pruebas relacionadas a comandos básicos de
|
||||
sistemas operativos *nix.
|
||||
|
||||
Primero nos conectamos al servidor con `netcat`.
|
||||
|
||||
Seguimos las instrucciones que nos presenta el servidor. Entramos al directorio
|
||||
`secret`, listamos los archivos y eliminamos todos los archivos de intel.
|
||||
|
||||
```
|
||||
$ rm intel*
|
||||
```
|
||||
|
||||
Nos movemos al directorio `executables` y ejecutamos el bianrio.
|
||||
|
||||
```
|
||||
$ ./dontLookHere
|
||||
```
|
||||
|
||||
Mostramos el usuario con `whoami` y copiamos el archivo `TopSecret` al
|
||||
directorio `tmp`. Por últimos ubicamos el archivo `TopSecret` y mostramos su
|
||||
contenido con `cat`.
|
||||
|
||||
Listo, con eso deberíamos de obtener la bandera.
|
||||
@@ -0,0 +1,37 @@
|
||||
# Client Side is Still Bad
|
||||
|
||||
Se nos da una dirección [URL](http://2018shell2.picoctf.com:55790/)
|
||||
donde encontramos un portal de acceso. Revisando el código fuente encontramos
|
||||
un script que ejecuta la página:
|
||||
|
||||
```javascript
|
||||
<script type="text/javascript">
|
||||
function verify() {
|
||||
checkpass = document.getElementById("pass").value;
|
||||
split = 4;
|
||||
if (checkpass.substring(split*7, split*8) == '}') {
|
||||
if (checkpass.substring(split*6, split*7) == 'd366') {
|
||||
if (checkpass.substring(split*5, split*6) == 'd_3b') {
|
||||
if (checkpass.substring(split*4, split*5) == 's_ba') {
|
||||
if (checkpass.substring(split*3, split*4) == 'nt_i') {
|
||||
if (checkpass.substring(split*2, split*3) == 'clie') {
|
||||
if (checkpass.substring(split, split*2) == 'CTF{') {
|
||||
if (checkpass.substring(0,split) == 'pico') {
|
||||
alert("You got the flag!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
alert("Incorrect password");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Si ponemos atención podremos ver que la función realiza la comparación
|
||||
contra la flag, de aquí sólo queda unirla correctamente.
|
||||
@@ -0,0 +1,44 @@
|
||||
# HEEEEEEERE'S Johnny!
|
||||
|
||||
Para este problema se nos entregan dos archivos: `passwd` y `shadow`, desde
|
||||
este momento es posible visualizar hacia donde va el problema:
|
||||
|
||||
El título hace referencia a `john`, un software especializado en realizar
|
||||
_cracking_ de contraseñas. Para el correcto funcionamiento de `john`necesitamos
|
||||
dos archivos, justo los dos que nos son entregados para el reto.
|
||||
|
||||
```
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
|
||||
root:$6$LcvKHioa$67O1HA8Ti.KHeNbD4rE79ZMl1RbiCw4V7eM.r6AURp2wGnapUpXC.VdVB4WGoS2J5eVKP/1MFeMmXIdveJeOS0:17695:0:99999:7:::
|
||||
```
|
||||
Para realizar un crack simple de la contraseña ejecutamos:
|
||||
|
||||
```
|
||||
# john shadow
|
||||
```
|
||||
|
||||
Revisando la salida del comando nos encontramos lo sigueinte:
|
||||
|
||||
> El proceso es lento. En nuestro caso tomó de 3 a 5 minutos aprox.
|
||||
|
||||
Si revisamos los hints que nos ofrece el desafío podremos ver que hace
|
||||
referencia a `rockyou`, el cual es un popular diccionario que contiene muchas
|
||||
contraseñas obtenidas de Internet.
|
||||
|
||||
Ejecutamos el comando anterior, ahora agregando dos parámetro más:
|
||||
|
||||
```
|
||||
# john --format=crypt --wordlist rockyou.txt shadow
|
||||
```
|
||||
> Agregamos la opción de formato del hash para una búsqueda más rápida.
|
||||
|
||||
Una vez que haya finalizado, podremos mostrar la contraseña:
|
||||
|
||||
```
|
||||
# john --show shadow
|
||||
thematrix
|
||||
```
|
||||
|
||||
Eso debería completar las credenciales de acceso al servidor, una
|
||||
vez que entremos se nos entregará la flag.
|
||||
@@ -0,0 +1,44 @@
|
||||
- Cano
|
||||
|
||||
- Enrique
|
||||
HEEEEEEERE'S Johnny!,Cryptography
|
||||
AcaShellA,General Skills
|
||||
Client Side is Still Bad,Web Exploitation
|
||||
Logon,Web Exploitation
|
||||
Reading Between the Eyes,Forensics
|
||||
Recovering From the Snap,Forensics
|
||||
admin panel,Forensics
|
||||
environ,General Skills
|
||||
hertz,Cryptography
|
||||
ssh-keyz,General Skills
|
||||
Irish Name Repo,Web Exploitation
|
||||
Mr. Robots,Web Exploitation
|
||||
|
||||
- Fernando
|
||||
|
||||
- Jenny
|
||||
|
||||
- Mares
|
||||
|
||||
- Miguel
|
||||
|
||||
- Yisus
|
||||
|
||||
Forensics Warmup 1,Forensics
|
||||
Forensics Warmup 2,Forensics
|
||||
General Warmup 1,General Skills
|
||||
General Warmup 2,General Skills
|
||||
General Warmup 3,General Skills
|
||||
Resources General,General Skills
|
||||
Reversing Warmup 1,Reversing
|
||||
Reversing Warmup 2,Reversing
|
||||
Crypto Warmup 1,Cryptography
|
||||
Crypto Warmup 2,Cryptography
|
||||
grep 1,General Skills
|
||||
net cat,General Skills
|
||||
strings,General Skills
|
||||
pipe,General Skills
|
||||
Inspect Me,Web Exploitation
|
||||
grep 2,General Skills
|
||||
caesar cipher 1,Cryptography
|
||||
hex editor,Forensics
|
||||
@@ -0,0 +1,5 @@
|
||||
# Logon
|
||||
|
||||
Se nos da una [URL](http://2018shell2.picoctf.com:6153/). Para resolver éste
|
||||
reto notamos que no importaban las credenciales que se ingresaran,
|
||||
y, una vez dentro se nos asignaba una cookie.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,60 @@
|
||||
# de-anonymization
|
||||
|
||||
Se nos entrega la
|
||||
[url](https://glacial-coast-79626.squarectf.com/4WzKpfyFbgdEzO3ONxDPpIXdo9Qps5)
|
||||
de un sitio web, al cual tenemos que ingresar como un tal Yakubovics,
|
||||
el inconveniente es que no tenemos la contraseña, pero tenemos varios
|
||||
datasets que prometen tener información.
|
||||
|
||||
Una vez que ingresamos al sitio web, podemos visualizar la opción de
|
||||
recuperar la contraseña, como medida se nos piden preguntas acerca
|
||||
del dueño del correo.
|
||||
|
||||

|
||||
|
||||
Todo parece simple, revisando los datasets podremos encontrar toda
|
||||
la información que se nos solicita, el detalle será unir los
|
||||
archivos en uno solo, o en su dado caso, realizar los cruces
|
||||
correctos. Para este caso se empleó Python:
|
||||
|
||||
```python
|
||||
#!/usr/bin/env python
|
||||
# coding: utf-8
|
||||
|
||||
# Librería
|
||||
|
||||
import pandas as pd
|
||||
|
||||
# Lectura de archivos
|
||||
|
||||
df1 = pd.read_csv('1.csv')
|
||||
df2 = pd.read_csv('2.csv')
|
||||
df3 = pd.read_csv('3.csv')
|
||||
df4 = pd.read_csv('4.csv')
|
||||
df5 = pd.read_csv('5.csv')
|
||||
|
||||
# Unión de dataframes
|
||||
|
||||
jdf1 = df1.merge(df2, how = 'inner').merge(df3, how = 'inner').merge(df4, how = 'inner').merge(df5, how = 'inner')
|
||||
|
||||
# Exportar a csv
|
||||
|
||||
jdf1.to_csv('final')
|
||||
|
||||
# A partir de aquí podemos utilizar herramientas como grep, hará el proceso más sencillo.
|
||||
|
||||
```
|
||||
|
||||
Por último buscamos coincidencias en el dataset:
|
||||
|
||||
```shell
|
||||
>_ grep -i Yakubovics | xargs -d ','
|
||||
```
|
||||
|
||||
Con esto podremos llenar la información que nos pide la página de
|
||||
recuperación, asignar una nueva contraseña y ver la contraseña
|
||||
asignada anteriormente, que en este caso será la flag.
|
||||
|
||||
```
|
||||
flag-5ed43dc6356b2b68c689422769952b82
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Reference in New Issue
Block a user