!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/usr/share/doc/isdn4k-utils-3.2/   drwxr-xr-x
Free 46.31 GB of 127.8 GB (36.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     EN-i4l-7.html (12.14 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
ISDN4Linux Tutorial: Routing Next Previous Contents

7. Routing

7.1 Was ist Routing?

In einem lokalen Netzwerk ist das Leben einfach: wenn ein TCP-IP Paket zu einem anderen Rechner gesendet werden soll, wird dieses auf dem Ethernet verschickt.

Ist der Rechner am Internet oder in einem grцsseren Netzwerk (WAN) angeschlossen, ist die Aufgabe schon etwas schwieriger, denn wenn der Ziel-Rechner (bzw. Ziel-IP-Nummer) nicht im lokalen Ethernet erreichbar ist, so muss dem Kernel gesagt werden, daЯ alle nicht lokal zustellbaren Pakete, freundlicherweise von einem Gatewayrechner weitergeleitet werden.

Komplizierter ist es, wenn der betreffende Rechner selbst ein Gatewayrechner ist und mehrere Netzdevices (Ethernetkarten, Modems, ISDN-Karten etc.) zur Verfьgung hat und jeweils ьber diese Devices unterschiedliche Rechner/Netze erreichbar sind. Das ist die Aufgabe vom Routing:

Fьr jede IP-Nummer muЯ definiert werden, auf welchem Weg (Route) diese erreicht werden kann.

Man unterscheidet folgende Typen: (die Beispiele werden unter konkretisiert)

Netzrouten

Hier wird angeben, wie ein komplettes Netz erreichbar ist. Beispiel fьr ein lokales Ethernet:

Bsp 1: Das Netz 192.168.1.0 mit der Maske 255.255.255.0 ist ьber das Device eth0 erreichbar.

Hostrouten

Man definiert, wie ein einzelner Rechner erreichbar ist. Beispiel fьr eine syncPPP Verbindung:

Bsp 2: Der Rechner 192.168.0.1 ist ьber das Device ippp0 erreichbar.

Default-Route

Im Internet gibt es recht viele IP-Nummern - es ist daher mьhsam und langweilig fьr alle einzelnen IP-Nummern oder Netze einzelne Routing-Eintrдge zu machen. Daher gibt es die Mцglichkeit zu sagen:

Bsp 3: Alle IP-Nummern, fьr die keine spezielle Regel vorhanden ist, schicke an den Rechner mit der IP-Nummer 192.168.0.1.
Man beachte: es macht i.A. keinen Sinn, mehr als eine Default-Route anzugeben.

7.2 Wie konfiguriert man das Routing?

Die Routingeintrдge werden dem Kernel zur Laufzeit mit dem Kommando route mitgeteilt (und wieder entzogen).

S.u.S.E. Methode

Bei S.u.S.E. kцnnen die Routingeintrдge fest in die Datei /etc/route.conf eingetragen werden, die beim Booten oder durch einen Runlevelwechsel vom Script /sbin/init.d/route ausgewertet wird.

Die Eintrдge fьr die obigen Beispiele sehen so aus:

            # Bsp 1:
            192.168.1.0     0.0.0.0     255.255.255.0   eth0
            # Bsp 2:
            192.168.0.1     0.0.0.0     255.255.255.255 ippp0
            # Bsp 3:
            default         192.168.0.1
            

Die 1. Spalte gibt das Ziel an, also das Netz, die IP-Nummer, oder das SchlьЯelwort default. In der 3. Spalte steht die zugehцrige Netzmaske (falls notwendig).

In der 2. Spalte steht der Gatewayrechner, an den die Anfragen geschickt werden sollen.

In der 4. Spalte steht das zu verwendene Device.

Hier sieht man auch in der 3. Zeile, daЯ bei Verwendung eines Gatewayrechners die Angabe des Devices nicht nцtig ist, da sie selbststдmdig ermittelt wird.

Allerdings muЯ (in diesem Beispiel) die Hostroute auf 192.168.0.1 definiert sein, bevor man sie zum Setzen der Defaultroute nutzen kann. Merke: Die Reihenfolge ist wichtig.

Manuelles Setzen und Lцschen der Routingtabelle:

            /sbin/init.d/route start
            /sbin/init.d/route stop
            

Manuelle Methode

            # Bsp 1:
            route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
            # Bsp 2:
            route add -host 192.168.0.1 dev ippp0
            # Bsp 3:
            route add default gw 192.168.0.1 
            

Mehr Infos: man route.

Lцschen von Routing-Eintrдgen

Routing-Eintrдge kцnnen zum einem direkt gelцscht werden, sie werden aber auch automatisch gelцscht, wenn das zugrundeliegende Netzdevice gelцscht oder umkonfiguriert wird.

Dies hat in diesem Zusammenhang einen ungewьnschten Nebeneffekt. Der ipppd baut die Verbindung auf und bekommt eine neue IP-Nummer vom Server zugewiesen, wobei selbststдndig eine neue Hostroute auf die IP-Nummer des Gegners eingerichtet wird.

Allerdings wird eine ev. vorhandene Defaultroute ьber dieses Device gelцscht.

Durch die PPP-Option defaultroute kцnnte man sich automatisch wieder eine Anlegen lassen. Allerdings ist diese Methode nicht sehr flexibel (vielleicht will man ja doch keine Defaultroute) und man hдtte hiermit keine Mцglichkeit zu steuern, wie sich beim Verbindungsabbau verhalten werden soll. Daher wird beim Verbindungaus- und abbau jeweils ein Script gestartet, siehe Kontrollieren der Routingtabelle beim Verbindungsauf- und abbau.

7.3 Kontrollieren der Routingtabelle beim Verbindungsauf- und abbau (/etc/ppp/ip-up)

Der ipppd bietet die einfache Mцglichkeit beim Verbindungsaufbau das Script /etc/ppp/ip-up und beim Abbau /etc/ppp/ip-down zu Starten, wobei jeweils die folgenden Parameter ьber den neuen Zustand ьbergeben werden:

  • $1: Interface
  • $2: Device
  • $3: Speed (nur aus Kompatibilitдtsgrьnden)
  • $4: lokale IP-Nummer
  • $5: IP-Nummer des Gegners

Durch Installation geeigneter Scripte kann also die Default-Route neu gesetzt werden. Die Scripte kцnnten jeweils so aussehen:

        #!/bin/sh
        /sbin/route add default gw $5
        

Bei S.u.S.E. wird ein Script /etc/ppp/ip-up welches fьr den hausgebrauch ausreicht. Die Routen werden aufgrund der Konfigurationsdateien gesetzt und wieder hergestellt. Weitere Kommandos kцnnen vom Administrator eingefьgt werden (z.B. Mails verschicken).

Das Script ip-down ist ein symbolischer Link auf ip-up, so daЯ man nur eine Datei zu verwalten hat.

Was macht das Script ip-up/ip-down?

Es wird geprьft. ob das Interface ippp? ist, sollte also bei Analog-PPP nicht stцren, wer dort etwas eintragen will, sollte die Stelle leicht finden.

Wenn es als ip-up aufgerufen wird (also nach dem Verbindungsaufbau), wird eine Default-Route auf die gerade zugewiesene IP-Nummer gesetzt.

Wenn es als ip-up aufgerufen wird (also nach dem Verbindungsabbau), dann wird das Interfacae gelцscht. Das Interface wird wie in /etc/rc.config wieder neu angelegt, es wird also wieder auf die ursprьnglichen IP-Nummer gesetzt. Nach den Angaben in /etc/route.conf werden die Routingeintrдge fьr dieses Device neu eingerichtet. Somit ist dial-on-demand wieder mцglich. Ist dort keine Defaultroute angegeben, wird auch keine gesetzt.

Ich mцchte aber kein dial-on-demand

In der /etc/route.conf (bzw. in YaST) wird keine Default-Route (Default-Gateway) angeben, dadurch existiert nur wдhrend einer Verbindung eine Default-Route, diese wird beim Verbindungsabbau gelцcht und nicht neu angelegt. Die Verbindung kann dann manuell (oder durch ein Script) durch isdnctrl dial ippp0 aufgebaut werden (oder durch manuelles setzen der Default-Route).

Dadurch kann z.B. auch erreicht werden, dass mit verschiedenen Providern gearbeitet wird, in dem Fall muss man ja sowieso entscheiden, welche Verbindung nun hochgefahren werden soll, z.B. isdnctrl dial ippp17

7.4 Ьbung: Kontrolliere die IP-Nummer und die Routing-Tabelle

  1. /var/log/messages ьberwachen

    Siehe Betrachte messages

  2. Prьfe ip-up und ip-down


    glen:/root # ls -la /etc/ppp/ip-*
    lrwxrwxrwx   1 root     root            5 Mar 20 10:16 /etc/ppp/ip-down -> ip-up
    -rwxr-xr-x   1 root     root         1813 Mar 24 23:03 /etc/ppp/ip-up
                
    

    Siehe Installation

  3. Prьfe IP-Nummern und die Routingtabelle vor einer Verbindung


    glen:/root # ifconfig ippp0
    ippp0     Link encap:Point-Point Protocol  
    inet addr:192.168.0.99  P-t-P:192.168.0.1  Mask:255.0.0.0
    UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0
    TX packets:0 errors:0 dropped:0 overruns:0
                
    


    glen:/root # route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.0.1     0.0.0.0         255.255.255.255 UH    0      0        0 ippp0
    127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        2 lo
    0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 ippp0
                
    

  4. Verbindung initiieren

    Man kann entweder eine Pakete verschicken (z.B. ping 141.1.1.1 oder das Wдhlen direkt verlangen isdnctrl dial ippp0

    Als Beispiel bekommen wir die IP-Nummer 1.2.3.4 zugewiesen, der Gegner habe die IP-Nummer 5.6.7.8 (siehe messages).

  5. Prьfe IP-Nummer und die Routingtabelle wдhrend einer Verbindung


    glen:/root # ifconfig ippp0
    ippp0     Link encap:Point-Point Protocol  
    inet addr:1.2.3.4  P-t-P:5.6.7.8  Mask:255.0.0.0
    UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
    RX packets:2 errors:0 dropped:0 overruns:0
    TX packets:3 errors:0 dropped:0 overruns:0
                
    


    glen:/root # route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    5.6.7.8         0.0.0.0         255.255.255.255 UH    0      0        0 ippp0
    127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        2 lo
    0.0.0.0         5.6.7.8         0.0.0.0         UG    0      0        0 ippp0
                
    

  6. Wir gehen in die groЯe weite Welt:

    Bestimme eine existierende IP-Nummer, die einzige, die ich mir merken kann ist die des DNS-Server von ECRC: traceroute -n 141.1.1.1. Man beachte, daЯ wir noch keinen DNS-Servive benutzen kцnnen, daher -n.

  7. Timeout abwarten bis aufgelegt wird/

    betrachte /var/log/messages, z.B.:


    kernel: isdn_net: local hangup ippp0
    kernel: ippp0: Chargesum is 0
    isdnlog: Apr 03 09:20:49   tei 70 calling Eunet-N with KfrI I  Normal call clearing (User) 
    ipppd[135]: Modem hangup
    ipppd[135]: Connection terminated.
    ipppd[135]: taking down PHASE_DEAD link 0, linkunit: 0
    ipppd[135]: sent [0][LCP TermReq id=0x2 6c 69 6e 6b 20 63 6 c 6f 73 65 64]
    ipppd[135]: LCP is down
    ipppd[135]: link 0 closed , linkunit: 0
    ipppd[135]: reinit_unit: 0 
    ipppd[135]: Connect[0]: /dev/ippp0, fd: 6
                
    

  8. IP-Nummern und Routing prьfen

    sie mьssen jetzt wieder genausogesetzt sein, wie vor dem Verbindungsaufbau.


Next Previous Contents

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0162 ]--