Portál AbcLinuxu, 13. května 2025 03:18

Dotaz: Zakodovaní shellu

30.10.2013 13:59 Amatér
Zakodovaní shellu
Přečteno: 595×
Odpovědět | Admin

Pěkný den všem.

Udělal jsem script.sh v shellu a rád bych ho dal na internet, ale nepřeji si, aby ho někdo upravoval. Vím, je to možná nemožné, stačí, aby ho nezvládly upravit alespoň neprofesionálové. Mám namysli nějaké kompilace nebo zkrátka jen zakódování obsahu scriptu. Tak, aby obyčejný člověk nemohl přečíst jak je script dělaný natož ho upravit. Počítám s tím, že zkušenější ajťáci nebo někde někdo to dokáži nějakým způsobem rozšifrovat a upravit, to mě ani tak netrápí.

Na internetu jsem našel různé base64 bash encodery, ale nepřišel jsem na to, co pak s tím hashem, dával jsem ho do echa různě, ale stále linux debian viděl ten hash prostě jako hash a ne jako shellový script.

Díky předem za váš.


Řešení dotazu:


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

Odpovědi

30.10.2013 14:02 Kit
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejlépe bude, když ten skript smažeš. Tím ho nejlépe ochráníš před cizím zrakem.
30.10.2013 14:52 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Prosím, kdo mi nechcete pomoci, nespamujte mi tu. Děkuji za pochopení.
30.10.2013 15:09 potato
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Za pochopení bychom také poděkovali, jenže se ho nedostává.

Takže to pomocí base64 -d rozbal do nějakého dočasného souboru a ten spusť. Není to blbuvzdorné ani bezpečné. Nejspíš to zabrání v přečtení skriptu jen tobě samotnému, protože ostatní si dokáží vygooglit návod nebo se někoho zeptat, jak se to zčitelní. Ale co.
30.10.2013 15:18 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Ano, super, myslím, že víš o co mi jde, Akorát nevím jak provést to co jsi mi napsal. Nemáš prosím nějaký návod pro amatéra, jak script rozbalit do base64 -d?
30.10.2013 17:45 potato
Rozbalit Rozbalit vše Re: Zakodovaní shellu
base64 -d je ten příkaz, který dekóduje base64. Pokud jsi to pomocí stejného příkazu (bez -d) zakódoval, tak jsi ho mohl těžko minout...

Formulace ,skript rozbalit do base64 -d` nedává smysl.

Je-li pro všechny ostatní na světě snažší si ten zdroják rozkódovat než pro tebe, tak proč to vlastně děláš?
Tarmaq avatar 30.10.2013 14:25 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
A o co se snazis Amatere? Dat skript na internet, ale aby nebylo videt co v nem je? Co tedy ma byt smyslem umisteni na internet? Chces ten skript prodavat?
Don't panic!
30.10.2013 14:51 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Nemusím ti vykládat k čemu mi to bude že?
Slušně jsem požádal o pomoc, místo zbytečných keců jsi měl pomoci.
Ano jsem amatér a co takový amatér asitak umí udělat za script?
Myslíš, že by amatérům scriptík byl hodný prodeje?

Prosím, kdo mi nechcete pomoci, nespamujte mi tu. Děkuji za pochopení.
Tarmaq avatar 30.10.2013 15:31 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Snazil jsem se proste zjistit, proc to potrebujes, protoze se treba zbytecne trapis necim, cim se trapit nemusit. Myslim, ze jsem nepsal zbytecne kecy, pouze jsem mel nekolik vecnych dotazu. Jestli beres osloveni Amater jako urazku, tak za to nemuzu, kdyz jsi se tak sam pojmenoval.

Kdybych ti nechtel pomoci, tak na tebe nereaguju. Pokud takhle budes reagovat, docilis tim akorat toho, ze ti nikdo nebude chtit pomoct.
Don't panic!
30.10.2013 15:43 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu

Řekl jsem co chci a tak přesně to potřebuji.

Možnosti jsou dvě buď script.sh převest třeba na script.deb ( jiný formát, který nebude běžně čitelný )

Druhá možnost je zakódovat obsah script.sh

Amatéra za urážku neberu, však jsem amatér. ;)

Promiň, že jsem po tobě vyjel, ale napsal jsem jak se věci mají a detaily, které ze mě taháš opravdu věcné nejsou.

Chci pouze, aby když si můj script někdo stáhne, aby neotevřel v textovém editoru a neviděl script.

Tarmaq avatar 30.10.2013 15:49 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Zakodovaní shellu
V textovem editoru lze otevrit jakykoliv soubor, nezavisle na pripone. Mne ty moje dotazy vecne prisly, tobe ne - ok.
Don't panic!
30.10.2013 16:08 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Jo ale když otevřeš script.sh vidíš zdrojový kód, když otevřeš script.deb uvidíš ).f§ů.ů.§d.s)g.fs)g.)sfa.g)sfa.g§)ds-ag§).sad.g)§sad.g)§sad.g§).saf)§.v-sv1fsa981v95sad1v59sdav.sadů.v§)sad.v§)

:D
vladky avatar 30.10.2013 14:52 vladky | skóre: 19
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ak to ma byt script volne dostupny a zakodovany, neviem si predstavit ze by som ho spustil bez toho aby som mohol pozriet co robi.
30.10.2013 15:05 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Nejde o to aby nikdo nevěděl co robí, ale aby když otevře script.sh, aby tam přímo neviděl zdrojový kód.
30.10.2013 15:12 potato
Rozbalit Rozbalit vše Re: Zakodovaní shellu
K tomu není zapotřebí dělat nic, žádný zdrojový kód tam není. Skript je interpretovaná sekvence příkazů. Nemá žádný zdrojový kód, protože nemá ani žádný zkompilovaný kód.
30.10.2013 15:16 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Nechápu tvoji odpověď a jak souvisí s tím, že chci znečitelnit obsah souboru script.sh. 

Obsah bude třeba: f9s5afdsa1f8dsa1f51dsa8f1dsa5f1sad1f89
Ale debian ho po spuštění uvidí jako: mkdir /var/www/fotky
Tarmaq avatar 30.10.2013 15:46 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Pokud ten skript zakodujes pomoci base64, nijak tim nezabranis aby si ho kdokoliv dekodoval. Zaroven pro spusteni na tvem debianu ho budes muset dekodovat. Stale mi ale unika proc davat na internet zakodovany skript. (Pokud je tim teda mysleno zverejneni skriptu a ne nejake zalohovani napr. v cloudu)
Don't panic!
vladky avatar 30.10.2013 15:19 vladky | skóre: 19
Rozbalit Rozbalit vše Re: Zakodovaní shellu
No to je vlastne to iste. Ked nevidim obsah scriptu, teda zdrojovy kod, tak neviem skontrolovat co ten script robi - ci nerobi aj nieco co nechcem.

Ale teraz k veci, skus sa poobzerat po shc. Teraz som skusal prekonvertovat jednoduchy script a funguje to.

shc -v -r -T -f script.sh
30.10.2013 16:17 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu

Půl hodinky jsem se s tím zlobil a nepovedlo se mi to rozchodit, myslel jsi to dobře, moc ti děkuji. Někdo jiný už mi poradil gzexe, které mi za 200kb script.sh udělal 18kb script.sh a v něm

"#!/bin/bash skip=44 tab=' ' nl=' ' IFS=" $tab$nl" umask=`umask` umask 77 gztmpdir= trap 'res=$? test -n "$gztmpdir" && rm -fr "$gztmpdir" (exit $res); exit $res ' 0 1 2 3 5 10 13 15 if type mktemp >/dev/null 2>&1; then gztmpdir=`mktemp -dt` else gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir fi || { (exit 127); exit 127; } gztmp=$gztmpdir/$0 case $0 in -* | */*' ') mkdir -p "$gztmp" && rm -r "$gztmp";; */*) gztmp=$gztmpdir/`basename "$0"`;; esac || { (exit 127); exit 127; } case `echo X | tail -n +1 2>/dev/null` in X) tail_n=-n;; *) tail_n=;; esac if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then umask $umask chmod 700 "$gztmp" (sleep 5; rm -fr "$gztmpdir") 2>/dev/null & "$gztmp" ${1+"$@"}; res=$? else echo >&2 "Cannot decompress $0" (exit 127); res=127 fi; exit $res ?‹??Ę!qR??script.sh KMÎČWPňHÍÉÉW(Ď/ĘIQT? $±şŚ? "

nicméně funguje to stejně, jakoby tam bylo : echo " Hello wordl!"

30.10.2013 16:31 Kit
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Úchvatné. Nejde mi do hlavy, jak je možné udělat v Bashi 200KB skript.
30.10.2013 17:46 potato
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Snadno, autoconfem ;)
30.10.2013 15:48 Radovan Garabík
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hotové riešenie je použiť gzexe. Ako bonus to aj zmenší veľkosť....
30.10.2013 16:20 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Super věcička, to nejlepší co mi mohl kdo poradit. Moje VPS už gzexe má v sobě, splnilo to účel na jedničku a ještě velká komprese skriptu, mám radost, moc děkuji. Zatím jsem testoval pouze kousek scriptu, teď to jdu prohnat gzexe celé, snad se povede a nikterak to ten script nezdeformuje nebo tak něco. :D
30.10.2013 16:22 NN
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co treba takto:
#!/bin/sh

shellcode='\x65\x63\x68\x6f\x20\x53\x68\x65\x6c\x6c\x20\x63\x6f\x64\x65\x2e\x0a'

`printf $shellcode`
Generovano pomoci:
echo 'echo Shell code.' | xxd -p - | sed 's/\(..\)/\\x\1/g'
30.10.2013 17:08 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
To by bývalo také šlo, ale gzexe mi bohatě postačí. Děkuji za radu. ;)
Punny avatar 30.10.2013 16:43 Punny | skóre: 28 | Praha
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pripojim se k ostatnim...to co potrebujes je volovina :) ale budiz...
Kdyz uz to ma byt prasecina tak to prepis treba do javy a spoutej jednotlive prikazy. Zverejnit muzes treba jen binarku
zajimalo by me kdo bude mit koule tohle spustit :D
30.10.2013 16:46 Kit
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Každý, kdo umí spustit gzexe -d :-)
30.10.2013 17:09 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Můj script není těžký a ten kdo umí gzexe -d si ten script umí napsat lépe. Ten kdo neumí, alespoň nebude makat na můj.
30.10.2013 17:52 potato
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Množina lidí, kteří umějí spustit skript, se dost podobá množině lidí, kteří umějí spustit gzexe -d.

A na rozbalení ani nemusí umět gzexe použít každý, stačí když to rozbalí jeden a ostatním to poví.

Nejspíš tam píšeš nějaké ,tajné` kódy nebo děláš nějakou podobnou security through obscurity. To nefunguje.
30.10.2013 17:10 Amatér
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyřešeno pomocí GZEXE díky mockrát vše za pomoc. ;)
Jendа avatar 30.10.2013 22:58 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Takže stačí počkat, až to gzexe rozbalí do /tmp a zkopírovat si to.
30.10.2013 23:31 Ivan
Rozbalit Rozbalit vše Re: Zakodovaní shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
V davnych dobach, kdyz jeste na Unixech nebyly baliky se pouzivaly tzv. shar archivy. Ty byl shell script ke kteremu byl "priplacnuty" .tar.Z (anebo cpio) archiv . Takovy script se spustil a "sam" se rozbalil.

Založit nové vláknoNahoru

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

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