Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
patch sudo custom insults
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
viralex
Apprentice
Apprentice


Joined: 24 Apr 2008
Posts: 237
Location: Viareggio (Lu,Italy)

PostPosted: Fri Jun 05, 2009 6:02 pm    Post subject: patch sudo custom insults Reply with quote

Salve a tutti,
Quasi tutti conoscono la modalità insults di sudo.
Oggi mi volevo proprio divertire e ho creato una patch che permette di definire i propri insulti da file. Ovviamente non credo che diventerà mai una cosa ufficiale. Comunque volevo postarla qui... magari mi date un' occhiata, per vedere se ho fatto qualche bischerata, generando qualche exploit.... non sono espertissimo di queste cose.

eccola qua:

sudo 1.7.1
Code:

--- auth/sudo_auth.c   2009-02-11 02:18:02.000000000 +0100
+++ auth/sudo_auth.c   2009-06-05 18:12:00.974999371 +0200
@@ -88,6 +88,14 @@
     AUTH_ENTRY(0, NULL, NULL, NULL, NULL, NULL)
 };
 
+#ifdef INSULT
+
+FILE *f_insult=NULL;
+char c_insult[255] ="";
+int  i_line=0,i=0;
+
+#endif
+
 void
 verify_user(pw, prompt)
     struct passwd *pw;
@@ -252,11 +260,35 @@
 pass_warn(fp)
     FILE *fp;
 {
-
 #ifdef INSULT
-    if (def_insults)
+if (def_insults) {
+//check if 440 else abort
+f_insult=fopen("/etc/insults", "r+");
+if (f_insult==NULL) {
    (void) fprintf(fp, "%s\n", INSULT);
-    else
+}
+else {
+        i_line=0;
+   while (!feof(f_insult)) {
+      if (fgetc(f_insult) == '\n') i_line++;
+   }
+        if(i_line>0) {
+      rewind (f_insult);
+      srand (time(NULL));
+      i_line=rand() % i_line+1;
+      i=1;
+      while (!feof(f_insult)) {
+         if(fgets(c_insult,255,f_insult)==NULL) break;
+         if(i_line==i) {
+            (void) fprintf(fp, "%s\n", c_insult);
+            break;
+         }
+         i++;
+      }
+   } else (void) fprintf(fp, "%s\n", INSULT);
+   fclose(f_insult);
+}
+} else
 #endif
    (void) fprintf(fp, "%s\n", def_badpass_message);
 }


:wink:
ecco un esempio di output:
per ora ho definito soltanto 3 frasi. come mostra chiaramente la patch il file che contiene gli insulti si trova in /etc/insults.
Code:

viralex@clon3 ~ $ sudo emerge --sync
Password:
Password errata. Al prossimo tentativo il terminale si autodistruggerà

Password:
Risposta illogica

Password:
Risposta illogica

sudo: 3 incorrect password attempts
Back to top
View user's profile Send private message
viralex
Apprentice
Apprentice


Joined: 24 Apr 2008
Posts: 237
Location: Viareggio (Lu,Italy)

PostPosted: Tue Jun 09, 2009 2:55 pm    Post subject: Reply with quote

viralex@clon3 /opt/chromium.org/lib $ sudo usys
Password:
Arrancar Arrancar!!

Password:
Che cosa hai detto???

Password:
Si e se la mi nonna aveva le rote era un carretto!

sudo: 3 incorrect password attempts
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4808
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Tue Jun 09, 2009 4:28 pm    Post subject: Reply with quote

:)

non diventerà magari patch ufficiale, ma può costituire documentazione qualificata nel nostro forum.
magari avresti dovuto postare di là.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
viralex
Apprentice
Apprentice


Joined: 24 Apr 2008
Posts: 237
Location: Viareggio (Lu,Italy)

PostPosted: Tue Jun 09, 2009 5:14 pm    Post subject: Reply with quote

eh si, magari un moderatore potrebbe spostare il 3D
:D
Back to top
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Fri Jun 12, 2009 2:12 pm    Post subject: Reply with quote

Ma, a parte la patch, per la insult mode bisogna compilare sudo con la flag "offensive"?
_________________
[HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered
Back to top
View user's profile Send private message
viralex
Apprentice
Apprentice


Joined: 24 Apr 2008
Posts: 237
Location: Viareggio (Lu,Italy)

PostPosted: Tue Jun 16, 2009 1:53 pm    Post subject: Reply with quote

si e bisogna aggiungere "insults" alla riga Defaults. a /etc/sudoers per attivarlo.
se non c'è la create.

"Defaults insults"
Back to top
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Tue Jun 16, 2009 8:02 pm    Post subject: Reply with quote

Non ricevo nessun insulto, perché??? :D eppure ho modificato Defaults.
_________________
[HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered
Back to top
View user's profile Send private message
viralex
Apprentice
Apprentice


Joined: 24 Apr 2008
Posts: 237
Location: Viareggio (Lu,Italy)

PostPosted: Thu Jun 18, 2009 9:24 am    Post subject: Reply with quote

se hai compilato sudo con l'useflag offensive e il tuo sudoers (modificalo con visudo) è come questo :
(se lo modifichi "a mano" devi settare i permessi a 440)

Code:

# User privilege specification
root    ALL=(ALL) ALL
%wheel  ALL=(ALL) ALL

Defaults insults


prova con un "killall su" oppure riavvia...
ovviamente sudo si ricorda la password, per non attendere 10 minuti, date un "sudo -k" per fargli dimenticare il timestamp.

Code:

-v
    If given the -v (validate) option, sudo will update the user's timestamp, prompting for the user's password if necessary. This extends the sudo timeout for another 15
    minutes (or whatever the timeout is set to in sudoers) but does not run a command.
-k
    The -k (kill) option to sudo invalidates the user's timestamp by setting the time on it to the epoch. The next time sudo is run a password will be required. This option does not require a password and was added to allow a user to revoke sudo permissions from a .logout file.


adesso avrete un bel prompt da sbagliare xD

-----------------------------------
HOW-TO
-----------------------------------
chi vuole provare la mia patch può farlo con questo omogeneizzato :P

1)create il file make_custom.sh e il file custom_insults.patch
2)create il vostro file di insulti e chiamatelo "insults". questo è il mio.
Code:
viralex@dron3 ~ $ cat /etc/insults
Al prossimo tentativo il terminale si autodistruggerà
Risposta illogica
Prova a usare piu di due dita....
Ti consiglio di prendere un buon thè ;)
Che cosa hai detto???
Si e se la mi nonna aveva le rote era un carretto!
Oh giovine, non si dicono ste cose!!
Arrancar Arrancar!!

3)copiate le patch di gentoo
Code:
cp /usr/portage/app-admin/sudo/files/ .

nella cartella

dovete modificarle un pochino..

ad esempio sudo-sketchallenge...ecc

Code:

--- sudo-1.6.7p5/auth/rfc1938.c   2003-04-16 01:39:15.000000000 +0100
+++ sudo-1.6.7p5/auth/rfc1938.c.new   2004-09-17 20:01:00.996902672 +0100
@@ -64,11 +64,7 @@
 #if defined(HAVE_SKEY)
 # include <skey.h>


Code:
--- auth/rfc1938.c   2003-04-16 01:39:15.000000000 +0100
+++ auth/rfc1938.c   2004-09-17 20:01:00.996902672 +0100
@@ -64,11 +64,7 @@
 #if defined(HAVE_SKEY)
 # include <skey.h>


l'unica cosa che dovete fare è avere questi file nella directory dello script:
Code:
custom_insults.patch
sudo-skeychallengeargs.diff
sudo-1.7.1-bug348.patch
make_custom.sh


4)e finalmente:
Code:
chmod +x make_custom.sh && ./make_custom.sh



make_custom.sh
Code:

#/bin/bash

if [ $UID -ne 0 ]; then
    echo "Please run as root."
    exit ${?}
fi

emerge -f sudo
cp /usr/portage/distfiles/sudo-1.7.1.tar.gz .
tar -zxvf sudo-1.7.1.tar.gz

cp *.patch sudo-1.7.1
cp *.diff sudo-1.7.1

cd sudo-1.7.1


patch -p0 < sudo-1.7.1-bug348.patch
patch -p0 < sudo-skeychallengeargs.diff

patch -p0 < custom_insults.patch

make clean
./configure --with-all-insults --with-pam  --with-secure-path
make -j3
make install
make clean

cd ..
cp insults /etc/insults
killall su


./configure --help per vedere con quali "use" compilare sudo.
se non avete applicato correttamente le patch di gentoo non compilerà
-----------------------------------
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum