aboutsummaryrefslogtreecommitdiffstats
path: root/german/security/1997/19970220.wml
blob: d10f60f89ea7870a28d8ed267a6d2dc3f2c0f70b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<define-tag moreinfo>
<p>Der Überlauf existiert, aber screen gibt die Root-Rechte ab, bevor der
Code ausgeführt wird.</p>

<p>Originalbericht eingereicht von: Khelbin &lt;khelbin@connix.com&gt;</p>

<p>Screen 3.07.02, falls setuid root installiert 
(was normalerweise der Fall ist), ist zumindest auf bestimmten
Plattformen anfällig für einen Pufferüberlauf. Ich habe mir nicht den
gesamten Quelltext angeschaut, aber beim schnellen Durchschauen ist mir
aufgefallen, dass attacher.c Folgendes durchführt:</p>

<pre>
      struct passwd ppp;
      char fullname[100];

      strcpy(fullname, ppp-&gt;pw_gecos);
</pre>

<p>Ich war schnell in der Lage, einen Angriff zu schreiben, der
allerdings hier unter BSDI 1.1 nicht funktionierte, da chpass/chfn
bestimmte Zeichen nicht akzeptieren.  Daher führt das Einlesen von
Shellcode in das "Full Name"-Feld zu einer Fehlermeldung "Illegal
Character found in the Full Name field, re-edit [y]?" oder ähnlich.</p>

<p>Jedes Betriebssystem oder jede Version von chfn/chpass, die ihre
Eingabe nicht auf 'ungültige Zeichen' oder Länge der in das Feld eingegebenen
Information überprüft (BSDI 1.1 überprüft nicht die Länge, sondern nur
auf ungültige Zeichen), kann verwundbar sein (ich habe noch nicht überprüft,
ob die suid root Privilegien bereits aufgegeben wurden, ich werde das testen,
indem ich den Überlauf mit meiner Shellcode-Zeichenkette erzeuge).</p>

<p>Zur Demonstration habe ich nur meine Shellcode-Zeichenkette in eine
Umgebungsvariable geschrieben (mit den NOPs und Rücksprungadressen zu den NOPs)
und diese Umgebungsvariable in eine Datei ausgegeben. Dann nur einfach diese
Datei in das gecos-Feld einlesen, wenn man in chpass/chfn ist.</p>
</define-tag>
<define-tag description>Pufferüberlauf in »screen« beim Kopieren des Gecos-Felds</define-tag>

# do not modify the following line
#include '$(ENGLISHDIR)/security/1997/19970220.data'
#use wml::debian::translation-check translation="ae4a72744f84be54cae3e4ec65a8488af3af84d1"
# Translator: Helge Kreutzmann, Helge.Kreutzmann@itp.uni-hannover.de, 2003-07-29

© 2014-2024 Faster IT GmbH | imprint | privacy policy