Portál AbcLinuxu, 30. dubna 2025 11:22

Jak zkompilovat shellový skript do binárního spuboru

12.12.2009 13:57 | Distribuce | Výběrový blog | poslední úprava: 12.12.2009 14:00

Právě jsem dumal, jak přeložit shellový skript do člověkem nečitelné podoby tj binární.

Důvodem bylo, aby přihlašovací údaje na ftp server nebyla čitelná a tím pádem zcizitelná.

Po krátkém hledání jsem narazil na utilitku "shc" což je hotová binárka od Francisca Javiera Rosalesa García

Stačí po rozbalení soubor shc umístit nekam do PATH.

Po spuštění:

 

shc -f script.sh

 

Jsem dostal binární soubor  script.sh.x

 

Pro špekulanty nabízím soubor script.sh a script.sh.x , které nejsou funkčně stejné. Shelový skript obsahuje namísto názvu spustitelné aplikace tři hvězdičky a než z něj vznikl soubor script.sh.x tak tam byly jiné znaky (nic jako rm -rf ...... apod, zcela bezpečné).

 

Copak na to ale reversní inženýři ..... Dokáží nejak zjistit co to bylo za znaky ?

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

12.12.2009 14:01 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Odpovědět | Sbalit | Link | Blokovat | Admin
k cemu takova i... ochrana kdyz ftp prenasi heslo jako plaintext?
USE="-gnome -kde";turris
otasomil avatar 12.12.2009 14:08 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru

Jako ochrana proti FBU. Ti budou tezko poslouchat komunikaci.

Samozrejme je lepe pouzit ssh. Server se kterym komunikuju vsak ssh nenabizi. Tak jsem to vyresil aspon takto.

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
12.12.2009 14:19 Mrkva | skóre: 22 | blog: urandom
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Odpovědět | Sbalit | Link | Blokovat | Admin
root@Odyssey:/# ./script.sh.x 
./script.sh.x: +Yp�?s~X)K=?��!?7?F��DJ?��~���sS�쁑?D��s�??d��4exec '%s' "$@"
WTF?
Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
otasomil avatar 12.12.2009 14:33 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru

Zajimave....

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
12.12.2009 14:38 Mrkva | skóre: 22 | blog: urandom
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
A ne, nepouštím to pod rootem na fyzickém stroji :)
Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
12.12.2009 14:25 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Odpovědět | Sbalit | Link | Blokovat | Admin
Hmmm security trough obscurity?
Intel meltdown a = arr[x[0]&1]; karma | 帮帮我,我被锁在中国房
12.12.2009 14:29 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Odpovědět | Sbalit | Link | Blokovat | Admin
No, podle toho, co leze z objdumpu to spusti ten triznakovy prikaz pres execvp, ale dost mozna to jeste pred tim vytvori novy proces, ktery na nej zavola ptrace, aby to uz neslo trasovat. Ale to by vyzadovalo tu binarku normalne spustit, coz by delal jenom blazen :) Mozna by slo odchytit pres LD_PRELOAD, ale tim si nejsem jisty a nemam naladu to ted zkouset.
There is no point in being so cool in a cold world.
otasomil avatar 12.12.2009 14:35 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru

Dle Vaseho vykladu hadam ze jsem pred FBU ten ftp login a heslo dostatecne ukryl.

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
12.12.2009 15:05 faha
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru

Odchyceni ftp user a pass bude pro BFU podstane jednodusi nez rozbit tu binarku.

Pres tcpdump je to otazka okamziku...

#tcpdump src 192.168.1.100 and dst 192.168.1.2 and port ftp ... apod...

20:53:26.402046 IP test.local.40205 > 192.168.1.2.ftp: P 0:10(10) ack 43 win 183
....g.I@......`$.....
...=..ENUSER teddybear

20:53:26.403802 IP test.local.40205 > 192.168.1.2.ftp: . ack 76 win 183
....h.I@.............
...>..E^
20:53:29.169036 IP test.local.40205 > 192.168.1.2.ftp: P 10:25(15) ack 76 win 183
....h.I@......#c.....
......E^PASS wakeup

A hotovo ...

otasomil avatar 12.12.2009 15:19 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru

Tak toto FBU delat urco nebude.

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
AraxoN avatar 12.12.2009 16:20 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
jj, BFU použije radšej nejaký iný sniffer, ktorý "ťažkú prácu" urobí za neho
Grunt avatar 12.12.2009 15:46 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Nechci do toho kecat, ale když to rozšifruje kód a pak přes execvp spouští interpret, nemělo by prostě stačit v kontrolovaném prostředí nahradit interpret za něco co nebude ty příkazy provádět, ale prostě je zapíše do nějakého souboru?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
Grunt avatar 12.12.2009 16:46 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
LOL:
#if !defined(PTRACE_ATTACH) && defined(PT_ATTACH)
#	define PTRACE_ATTACH	PT_ATTACH
#endif
void untraceable(char * argv0)
{
	char proc[80];
	int pid, mine;

	switch(pid = fork()) {
	case  0:
		pid = getppid();
		/* For problematic SunOS ptrace */
#if defined(__FreeBSD__)
		sprintf(proc, "/proc/%d/mem", (int)pid);
#else
		sprintf(proc, "/proc/%d/as",  (int)pid);
#endif
		close(0);
		mine = !open(proc, O_RDWR|O_EXCL);
		if (!mine && errno != EBUSY)
			mine = !ptrace(PTRACE_ATTACH, pid, 0, 0);
		if (mine) {
			kill(pid, SIGCONT);
		} else {
			perror(argv0);
			kill(pid, SIGKILL);
		}
		_exit(mine);
	case -1:
		break;
	default:
		if (pid == waitpid(pid, 0, 0))
			return;
	}
	perror(argv0);
	_exit(1);
}
#endif /* !TRACEABLE */
Jsem pro to, aby se do BASHe zavedl nový kompilační přepínač – obdoba přepínače -x.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
Grunt avatar 12.12.2009 14:54 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Odpovědět | Sbalit | Link | Blokovat | Admin
Ježiš, co to zas je? Toto má jako konkrétně jaký smysl?:
shc's main purpose is to protect your shell scripts from modification or inspection. You can use it if you wish to distribute your scripts but don't want them to be easily readable by other people.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
otasomil avatar 12.12.2009 15:17 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru

>>>shc's main purpose is to protect your shell scripts from modification or inspection. You can use it if you wish to distribute your scripts but don't want them to be easily readable by other people.

 

Presne z tohoto duvodu jsem to pouzil.

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
12.12.2009 15:23 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
A proč prostě jen nepoužít omezení oprávnění na čtení souboru? Taky by mohlo být zajímavé ten soubor zkomprimovat pod nějakým heslem nebo zašifrovat.
Grunt avatar 12.12.2009 15:28 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Taky by mohlo být zajímavé ten soubor zkomprimovat pod nějakým heslem nebo zašifrovat.
Je zašifrovaný pomocí RC4.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
12.12.2009 15:42 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Ovšem dešifruje se sám → stačí ho spustit. Já myslel interaktivně zadávat heslo pro spuštění. Nevýhoda je ale to zadávání hesla :-/.
Grunt avatar 12.12.2009 15:43 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Jako povolit spouštění jen těm lidem, kteří mají heslo? Proboha na co to furt myslíte, lidi?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
xkucf03 avatar 13.12.2009 02:06 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Přesně, jakmile jde něco spustit, jde to i ukrást :-) To je i problém všech ochran proti kopírování a crackování. Pokud něco jde spustit jen s heslem/klíčem, tak to znamená, že uživatel to heslo musí znát*, nebo si ten program nespustí**. Prostě se tu řeší blbosti – sekurity-obskurity :-D

*) takže si program odšifruje, tudíž tam to šifrování jako ochrana proti uživateli být vůbec nemusí

**) což je jako kdybychom mu ten program nedali – jistě, programy, které nikomu nedáme, nám nikdo nedekompiluje :-D
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
Grunt avatar 12.12.2009 15:26 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Tak proč ho teda píšeš a distribuuješ?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
13.12.2009 11:30 horada | skóre: 3
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Odpovědět | Sbalit | Link | Blokovat | Admin
Možná jsem trochu mimo, ale v určitém případě by mělo stačit nastavit rozumě práva... (samozřejmě v mnoha případech to nepomůže)... Třeba: -rwx--x--x
Dragon Jake avatar 13.12.2009 11:41 Dragon Jake | blog: Drakův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Což je sice fajn, ale u shellových skriptů to z principu nelze.
13.12.2009 14:17 horada | skóre: 3
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Pravda pravda.... nezamyslel jsem se a nevyzkoušel jsem to než jsem něco plácnul...
xkucf03 avatar 13.12.2009 12:12 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Spouštět ano, číst ne.
Fakt to funguje :-)
franta@dell:/tmp$ ll pwd
-rwxrwx--x 1 root root 39472 2009-12-13 12:10 pwd
franta@dell:/tmp$ cat pwd
cat: pwd: Permission denied
franta@dell:/tmp$ ./pwd
/tmp
Myslel jsem, že je potřeba mít právo i na čtení, ale to platí jen pro skripty.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
14.12.2009 10:15 CET
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
A ono prihodit k tomu sudo je taky docela prca. Pak muzes povolit uzivateli to spusteni, treba i bez jeho hesla, i pod jinym uzivatelem (ne jen pod rootem) a sam si to nespusti, ani neotevre.
15.12.2009 21:31 depka | skóre: 20 | blog: eterity
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Odpovědět | Sbalit | Link | Blokovat | Admin
nebylo by jednodusi to heslo na ftp zapsat do scriptu v nejake jednodche sifrovane podobe a za behu sriptu ho rozsifrovat? treba posunout abecedu?
xkucf03 avatar 15.12.2009 22:38 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
A k čemu je by to bylo dobré?
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
xkucf03 avatar 15.12.2009 22:39 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Resp. přijde mi to jako zamknout si kolo před samoobsluhou na řetěz se zámkem a klíč pověsit na řidítka. Kolo je sice zamčené, ale…
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
16.12.2009 08:36 depka | skóre: 20 | blog: eterity
Rozbalit Rozbalit vše Re: Jak zkompilovat shellový skript do binárního spuboru
Bezna Frantiska Urednica rozumi bashi?

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.