Juegos de Guerra "Bandit" Overthewire
Published on August 23, 2023 by Gmichet
LINUX BANDIT
6 min READ
Continuación del post anterior Bandi 0 -> 5
Skills | Enlace |
---|---|
Búsquedas con la opción -exec | Find ruta opciones -exec comando ‘{}’ ‘;’ |
Uso de tuberías y búsquedas por nombres especificos en un file | Grep “palabra” |
Ordenar las líneas de un archivo y eliminar líneas duplicadas | Sort and uniq -u |
Extraer palabras de un archivo que contiene “data” no legible | Strings data.txt |
Codificación “base64” | Codificar y decodificar |
La contraseña para el siguiente nivel se almacena en algún lugar del servidor y tiene todas las siguientes propiedades:
Sitio Oficial Material de apoyo
Iniciamos:
ssh bandit6@bandit.labs.overthewire.org -p 2220
Antes que nada debemos investigar qué es owned, bueno eso significa “propiedad”. Entonces tenemos que buscar un archivo que sea propiedad del usuario bandit7 y del grupo bandit6 con un tamaño de 33 bytes.
bandit6@bandit:~$ find / -user bandit7 -group bandit6 -size 33c -exec ls '{}' ';'
find: ‘/var/log’: Permission denied
find: ‘/var/crash’: Permission denied
find: ‘/var/spool/rsyslog’: Permission denied
find: ‘/var/spool/bandit24’: Permission denied
find: ‘/var/spool/cron/crontabs’: Permission denied
find: ‘/var/tmp’: Permission denied
find: ‘/var/lib/polkit-1’: Permission denied
/var/lib/dpkg/info/bandit7.password
find: ‘/var/lib/chrony’: Permission denied
find: ‘/var/lib/apt/lists/partial’: Permission denied
find: ‘/var/lib/amazon’: Permission denied
find: ‘/var/lib/update-notifier/package-data-downloads/partial’: Permission denied
# etc...
bandit6@bandit:~$ find / -user bandit7 -group bandit6 -size 33c -exec ls '{}' ';' 2> /dev/null
/var/lib/dpkg/info/bandit7.password
bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password
z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S
La contraseña para el siguiente nivel se almacena en el archivo data.txt junto a la palabra millionth.
Iniciamos:
ssh bandit7@bandit.labs.overthewire.org -p 2220
Si intentas ver el archivo data.txt para encontrar la palabra millionth, notarás que se muestran demasiadas cadenas de texto:
bandit7@bandit:~$ cat data.txt
livening ghjJ7JbWN9Y2bdWrrFsJMPfIsSLGfwzo
outsourcing ZawStsEWTrnqxrWb0qdEj6zsSbfFUtSt
unifying 19J64sDjbnMm4cmWI0855wuEHdVpve2j
ghettos 30zvDfdusCKmfmi8mHnZ4PKHz84SAbXs
halitosis xWCickKHXD147opexMuz4liHhIbcywCL
Gomulka's i9ucPsLuDKEu9kAfVb0tgggcuWFhU9qG
blurring x8mAnJVqmhUuKqJwnuWg8IGWPD2WWz8Y
unwarier uiHmfNPARQDhTlk0XNdgakkbT3LL5iKt
artistry's gw8hgyxxuqcZqFzWae6nrK4RDd5EAvrz
meridians et472t0PTJB1bbC7F1eSnwBbvtuZuXO6
Todd ESNGwTqgHRZV0ctkkMZyH5Nazkwb4Kmf
Rena's okLUPygF2lEWprPrgiUoNGINk0EpWrwQ
# etc ...
grep -i "linux" archivo.txt
|
este sirve para conectar otro comando aparte del que le precede:bandit7@bandit:~$ cat data.txt | grep "millionth"
millionth TESKZC0XvTetK0S9xNwm25STk5iWrBvP
# otras formas
bandit7@bandit:~$ awk '/millionth/{print}' data.txt
millionth TESKZC0XvTetK0S9xNwm25STk5iWrBvP
bandit7@bandit:~$ sed -n '/millionth/p' data.txt
millionth TESKZC0XvTetK0S9xNwm25STk5iWrBvP
bandit7@bandit:~$ egrep "millionth" data.txt
millionth TESKZC0XvTetK0S9xNwm25STk5iWrBvP
grep "millionth" data.txt
millionth TESKZC0XvTetK0S9xNwm25STk5iWrBvP
La contraseña para el siguiente nivel se almacena en el archivo data.txt y es la única línea de texto que aparece una sola vez.
Iniciamos:
ssh bandit8@bandit.labs.overthewire.org -p 2220
Ahora al listar aparecen demasiados caracteres, esto se puede notar por el siguiente comando:
bandit8@bandit:~$ cat -n data.txt
995 txpoO5Sv4NR55wTu62j7uGlRKNxridyM
996 cmtlazWcnfmS07dz52EdwhfVXD5hm8Ox
997 0zP9wfUcMKjZM2hiQUYR1nTfmaRdYSQE
998 8mUGsbsFDyMVhqsbCIu5VQdKyNS6B4yK
999 pI3SEH0Rq3gd0sNEi8038Sh5SAtY1nrR
1000 1MUdfR7bGGCpNfGEOXaIEdrA8hT2L8Tk
1001 S9dq4wwCTyH9TyUrDfO8bOVywef9rVsh
bandit8@bandit:~$ sort data.txt | uniq -u
EN632PlfYiZbn3PhVK3XOGSlNInNE00t
La contraseña para el siguiente nivel se almacena en el archivo data.txt en una de las pocas cadenas legibles por humanos, precedida por varios caracteres ‘=’.
Iniciamos:
ssh bandit9@bandit.labs.overthewire.org -p 2220
Cuando mostramos el contenido del archivo data.txt observamos que hay demasiada data:
bandit9@bandit:~$ cat data.txt
qӢ�'Z�F0�/��yLR����W������k͜�)��Ъx<9s}�1״��0� %S�ȭ��5�Y��#��ڝB4Qle��<���0N;��j�X��������f�MsC
n�o4��b�Xْ!�0�a�u� �j�m��w�S�]��O��
�(<��[��Z ܚ�}�9�7��EbX�SM=�O�3�h{��J����Q?cX(�������Z\�25��O l����f` W0�n��ݟ����h�~���]�o��t߅���8r��M�mH�`��vOs*[�p��HA-���~gܙ?`YOd45�Ҽ+8�&�Ϧ\�*�����;>|�.����=��%=�z�q�?��1zo\ו/g·WY
�dv��b�`�)2�*������M���vژ�@� �d6�V�X
�Iiuv�;� ��8g���|S5j��m���ߜ dn��JF�0��h�&����M����3�o�i�yA�|ɹ�nL��IF�C^��w����W������hZOh|
v���H���Q~4 py����Rꟗ�}^�����[���U���������j�#�ӭ_�gO�8 i�õe!q�
=
.Strings
EL comando strings sirve para extraer palabras o texto dentro de un archivo, incluso si el archivo contiene otros datos no legibles.
bandit9@bandit:~$ strings data.txt | grep "="
4========== the#
5P=GnFE
========== password
'DN9=5
========== is
$Z=_
=TU%
=^,T,?
W=y
q=W
X=K,
========== G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s
&S=(
nd?=
La contraseña para el siguiente nivel se almacena en el archivo data.txt, que contiene datos codificados de base64.
Iniciamos:
ssh bandit10@bandit.labs.overthewire.org -p 2220
La contraseña para el siguiente nivel se almacena en el archivo data.txt, que contiene datos codificados de base64.
bandit10@bandit:~$ cat data.txt
VGhlIHBhc3N3b3JkIGlzIDZ6UGV6aUxkUjJSS05kTllGTmI2blZDS3pwaGxYSEJNCg==
-
Base64
Base 64 no es un método de encriptación de datos más bien es una codificación. Una codificación consiste en transformar un carácter del alfabeto a otro lenguaje.
Base64 utiliza la codifiación de datos binarios (como imágenes o archivos) a texto con el propósito de que la transferencia de los mismos se puedan realizar en canales que solo admiten texto, esto se hacen en medios que no puedan manejar datos binarios.
Codificar y decodificar base64 en la terminal
Para codificar se utiliza base64
:
echo gmichet | base64
Z21pY2hldAo=
-d
al final:echo Z21pY2hldAo= | base64 -d
gmichet
bandit10@bandit:~$ cat data.txt | base64 -d
The password is 6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM
=
.