Die Suche nach dem Login

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
Ich lese schon den ganzen Abend gespannt mit. Rechte habe ich, wo wollt ihr den Thread hin haben und wie soll er heissen? :D

Gruß
Dude
 
Okay machen wir weiter. Ich spreche hier ganz theoretisch: Diese Dateien liegen im Flash. Irgendwie muss man die doch manipulieren können. Wenn alle MY_ABC_HERE aus dem Code draussen sind, kommt dieser Code
Code:
#ifdef MY_ABC_HERE            
 r = getspnam_r((0 == pw->pw_uid)? "admin" : pw->pw_name, &spw, buffer, sizeof(buffer), &result);  
#else            
 r = getspnam_r(pw->pw_name, &spw, buffer, sizeof(buffer), &result);  
#endif
in das else rein und damit wird der Login Name 1:1 übergeben auch wenn du UID 0 bist resp dich als User mit UID 0 anmelden willst. Damit wäre dann der Username root erhalten.
Eine andere Möglichkeit als alle MY_ABC_HERE zu killen wäre es "einfach" im if
Code:
r = getspnam_r((0 == pw->pw_uid)? pw->pw_name : pw->pw_name, &spw, buffer, sizeof(buffer), &result);
hinzubekommen
Gruss

tobi
 
@dude
Walte deines Amtes :-)
 
Tobi, das ist Sourcecode, der landet nicht im Flash. Ich hab absolut keinen Plan, ob der Compiler bei Definition der Konstanten den kompletten else Zweig verwirft, wahrscheinlich ja, wozu auch behalten, ich definiere was gemacht werden soll.

@Dude
weiß auch nicht so genau, Station Modding Konfigurationsänderungen oder Sonstiges vielleicht.
 
@goetz
heisst das dieses File welches diesen Code enthält kann man niemals nimmer manipulieren?
Weil folgendes müsste es dir erlauben dich als root mit synopass anzumelden :-)
Code:
#ifdef MY_ABC_HERE              
 r = getspnam_r((0 == pw->pw_uid)? pw->pw_name : pw->pw_name, &spw, buffer, sizeof(buffer), &result);   
  #endif
 
heisst das dieses File welches diesen Code enthält kann man niemals nimmer manipulieren?
leider ja, solange man nicht eine aktuelle komplette buildroot für die Firmware hat und sich seine eigene Firmware backt. Irgendwo ist da noch was versteckt.

Gruß Götz

@Dude: herzlichen Dank

PS: icke tu mir jetzt pennen legen :)
 
Oder noch kürzer ;-)
Code:
#ifdef MY_ABC_HERE              
 r = getspnam_r(pw->pw_name, &spw, buffer, sizeof(buffer), &result);   
#endif
Ich dann auch mal pennen :-)
 
Also dieses my_abc_here nutzt Synonolgy in jedem Source file um ihre Änderungen zu aktivieren. Wie goetz schon sagte, um den Orig. Source nicht zu verändern sondern zu erweitern. Das wird vorm kompilieren gesetzt und aktiviert damit diese modifikikationen. Ein für alle mal. Es sei denn man kompliliert neu - ohne dieses Flag gesetzt zu haben.
 
@dude
aber würdest du mir zustimmen dass man sich wegen dem Umschreiber auf "admin" bei UID 0 nicht als root mit synopass, dem eigentlichen PW von root, anmelden kann?
Code:
#ifdef MY_ABC_HERE              
r = getspnam_r((0 == pw->pw_uid)? "admin" : pw->pw_name, &spw, buffer, sizeof(buffer), &result);
...
#endif
obiges sagt doch: Wenn uid 0 dann übergib als 1. Argument den admin an getspnam, sonst übergib den Namen 1:1. Also ist das der Grund für den Umschreiber.

gruss

tobi
 
Klingt auch für mich logisch. Aber 100% bestätigen kann ich dat nich. Bin nicht so der C Hacker. ;)
 
wie oft habe ich schon synopass probiert, es geht nicht. Das root-PW ist wirklich synopass. Durch das mappen geht es auf admin und das hat standardmäßig kein Passwort, aber login ohne Passwort geht ins leere, ein Syno-Teufelskreis:rolleyes:, irgend etwas ist da noch. Wenn der Assi ein Problem hat, dann sagt er ja, daß Port 23 offen für den Support ist und da ist noch kein System auf der Platte.
@goetz
du weisst was v.a. der letzte Teil heissen könnte? Für mich heisst das, dass Syno wahrscheinlich einen Weg hat diesen Code ins else laufen zu lassen. Wenn kein System installiert ist, scheint das admin PW ja leer zu sein. Durch das mapping landest du als root aber bei einem leeren PW und ich meinte es sei der heilige Gral von Linux/Unix dass ein root Login ohne PW ned möglich ist. afaik unterbindet das das System immer. Wenn also Syno ohne installiertes System per telnet auf die Box kommt, kann es ja eigentlich nur heissen, dass sie ins else reinkommen. Kann denn ev Syno z.B. ein bestimmtes Paket an die DS senden, welches den obigen Code dazu bringt ins else zu kommen? Muss doch eigentlich fast so sein, sonst käme Syno niemals als root rein wenn beim Installieren des Systems was ned klappt. Ganz blöd gefragt: Haben wir hier ein Backdoor? ;-)


Gruss

tobi

p.s. dieses Thema finde ich echt hochinteressant :-)
 
Defines sind endgültig. Die jeweils anderen Zweige gibt es im Binary nicht, also kann man auch nie in den els-Zweig kommen.
 
Defines sind endgültig. Die jeweils anderen Zweige gibt es im Binary nicht, also kann man auch nie in den els-Zweig kommen.
Okay, dann kann man diesen Weg wohl vergessen. Liegt denn dieses Binary das diese "Umschreibung" macht im Flash oder in der Firmware auf der Platte? Es muss ja eigentlich im Flash liegen, weil goetz sagt, dass ein root Login mit synopass bei einem System ohne Platte ja eben nicht geht. Kann es auch nie solange diese Codezeile aktiv ist.

Gruss

tobi
 
#ifdef grad_mal_einen_Tag_weg
und<-schon(gehts, hier, aber, ab, wie, die, Post);
#else
dabei = 1;
ist = 2;
Sommer =3;
printf("%s %s %s\n", &dabei, &ist, &Sommer);
#endif

(1=1)?'Itari':''
 
Hallo,
der Code ist sowohl im Flash als auch auf der Platte, entweder direkt in der busybox oder in einer von ihr verwendeten Bibliotheken.

So, Syno hat tatsächlich eine "Backdoor" eingebaut, Vorraussetzung: telnet und admin ohne Passwort. Finde ich ersteinmal nicht so schlimm, Port23 gehört nicht weitergeleitet und admin sollte schon ein starkes Passwort haben. Das Passwort für heute:
Rich (BBCode):
DS-209plusII /volume1/public/c_test>./a.out
606-1602

DS-209plusII /volume1/public/c_test>

Gruß Götz
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat