Ottenere permessi Root VV5822

  • 2 Risposte
  • 521 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline lorenzocanalelc

  • Membro Anziano
  • ***
  • 494
  • Sesso: Maschio
Ottenere permessi Root VV5822
« il: 27 Novembre 2020, 12:23 »
Ciao a tutti, sono entrato in possesso del suddetto router dal mio operatore, cercando online ho trovato questa guida https://github.com/digiampietro/adbtools2 che è solo in parte corretta per il mio firmware, infatti dalla shell del firmware originale con l'user user limitato è possibile entrare nella modalità factory-mode ma purtroppo in questa versione del firmware hanno modificato la shell a cui si accede con system shell che prima eseguiva
Codice: [Seleziona]
exec /bin/ash. Purtroppo non ho a disposizione il firmware attualmente in uso dal mio router, ma vedendo i firmware  d-link dal link disponibile sempre nella guida citata ho trovato firmware aggiornati (in particolare ho analizzato il firmware DVA-5593_A1_EU_20200710) che probabilmente usa lo stesso schema di system shell del mio ed ho trovato questo comando:
Codice: [Seleziona]

if [ -x /etc/init.d/qcawifi ]; then
exec /etc/clish/shell.sh /etc/clish/set-factorydata.sh nvramUpdate ping iwconfig iwlist iwpriv radartool wifitool athdiag athstats ifconfig xdslctl ethctl clivo cmbs_tcx mount *ls *cp *rm
else
exec /etc/clish/shell.sh /etc/clish/set-factorydata.sh nvramUpdate dhdctl ping wlctl xdslctl ethctl clivo cmbs_tcx mount *ls *cp *rm adb_host
fi
Il file shell a cui si riferisce invece è questo:
Codice: [Seleziona]
#!/bin/sh
set -f
extract_cmds() {
for arg; do
case "$arg" in
\**)
arg="${arg#\*}"
eval "$arg"'() { exec_cmd_safely "'"`which "$arg"`"'" "[email protected]" ;}'
;;
esac
commands_supported="$commands_supported $arg"
done
}
exec_cmd_safely() {
local cmd="$1" rp
shift
for arg; do
case "$arg" in
*/../*|*/..)
echo "${cmd##*/}: path ($arg) not permitted."
return 1
;;
/mnt/sd[a-z][0-9]*)
rp=`readlink -f "$arg"`
if [ "${rp:-$arg}" != "${arg%/}" ]; then
echo "${cmd##*/}: path ($arg) not permitted."
return 1
fi
;;
-*) ;;
*)
echo "${cmd##*/}: path ($arg) not permitted."
return 1
;;
esac
done
"$cmd" "[email protected]"
}
quote_for_eval() {
local c="${2%"${2#?}"}" str=${2#?} ret=
while [ ${#c} -ne 0 ]; do
case "$c" in
[\"\'\ ]) ret="$ret$c" ;;
*) ret="$ret\\$c" ;;
esac
c="${str%"${str#?}"}"
str="${str#?}"
done
eval $1='$ret'
}
extract_cmds "[email protected]"
while read -p '> ' -r cmd args; do
case " $commands_supported " in
*" $cmd "*)
quote_for_eval args "$args"
eval "$cmd" $args
continue
;;
esac
case "$cmd" in
exit)
break
;;
"")
;;
*)
echo "$cmd: command not supported"
;;
esac
done
exit 0
Penso sia la stessa shell disponibile nel mio firmware infatti gli unici comandi funzionanti che avevo già trovato erano "cp, mount, ls, ping, rm" non ho ancora provato gli altri citati nel system shell. Inoltre lo script fa un controllo anche sull'argomento, infatti avevo già visto che "ls -la" funzionava ma per esempio "ls -la /"  riporta "path (/) not permitted." l'unico path che ero riuscito a far funzionare era "/mnt/sda1" e tutte le sue sotto cartelle. Infine ho notato che con il comando " ls -la /' " lo script prendeva il comando ma riportava che lo script shell.sh si era interrotto bruscamente o qualcosa del genere proprio a causa del comando non terminato.  Ora, avendo queste informazioni a disposizione qualcuno riesce a trovare qualche modo per exploitare questa shell e ottenere l'accesso alla shell da root? Grazie in anticipo.

Offline knaupfaal

  • Nuovo Iscritto
  • *
  • 12
Re:Ottenere permessi Root VV5822
« Risposta #1 il: 17 Febbraio 2021, 23:08 »
Ciao, ho visto dalla discussione sul TIM HUB+ Tecnhicolor che sei riuscito ad ottenere le credenziali admin del router.
Hai dovuto impostarle te attraverso il server ACS o sono "standard"?


Offline lorenzocanalelc

  • Membro Anziano
  • ***
  • 494
  • Sesso: Maschio
Re:Ottenere permessi Root VV5822
« Risposta #2 il: 17 Febbraio 2021, 23:11 »
Hai un messaggio in privato.