| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
seb
Inscrit le: 29 Déc 2007 Messages: 10
|
Posté le: Sam Déc 29, 2007 11:56 pm |
Sujet du message: Bypasser un Firewall via PHP ?
|
|
Bonjour à tous,
Je suis étudiant, je rédige un mémoire et travaille actuellement dans une grosse boite. J'accède à internet sur le poste de mon chef mais évidemment lorsque celui-ci est disponible, c'est à dire rarement. Je voudrais pouvoir accéder aux sites utiles à mon travail à loisir à partir du poste de mon bureau. Ce poste n'a pas d'accès à tout l'internet et la direction n'a pas l'intention de le fournir, le firewall autorise cependant la consultation de la page web de la boite et que celle-ci. J'ai pu insérer une commande "system();" dans une des pages php de ce site et ai par conséquent accès au bash du serveur web via cette page, en tant que user (serveur apache non configuré en open_basedir, j'ai accès à toute la structure des répertoires avec des droits user, accès en écriture dans certains répertoires dont ceux du site et de la base mysql). Je souhaitais donc installer un script php sur ce serveur afin qu'il serve de proxy pour m'ouvrir tout l'internet. Le serveur web en question est Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b DAV/1.0.3 PHP/4.4.7 mod_perl/1.26
J'imaginais donc ([FW] = FireWall):
Mon Poste ---[FW]------X------------------------------------------> World Wide Web
Mon Poste ---[FW]---> serveur Apache - port 80 <------------- WWW
Mon Poste ---[FW]---> script php proxy sur Apache <----------> WWW
J'ai testé dans ce script les fonctions fsockopen(); include(); file_get_contents(); et autres...
mais j'obtiens des erreurs du type :
Warning: file_get_contents(http://google.fr) [function.file-get-contents]: failed to open stream: Connexion refusée in /var/www/html/****/proxy.php on line 9
ou
Warning: main() [function.include]: Failed opening 'http://www.google.fr' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/****/proxy.php on line 3
Vraisemblablement ces fonctions sont autorisées par le serveur Apache/PHP mais le firewall bloque la connection sortante.
Quelqu'un peut-il me renseigner sur la manière de déterminer de facon fiable la version du firewall qui tourne via le bash (pas de test nmap sur les ports) ?
Dans l'hypothèse d'un accès user quelqu'un voit t-il une manière de contourner le firewall ?
Je rappelle que l'accès au bash se fait via la fonction system() d'un script php, sans accès à une quelconque console; le résultat des requêtes s'affichent dans mon navigateur mais pas les messages d'erreur du bash et je ne peux pas changer de login via "su".
Merci de me faire part de vos lumières
Sébastien |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Dim Déc 30, 2007 9:55 pm |
Sujet du message:
|
|
Dis-moi, tu as reçu l'autorisation pour donner toi-même un accès internet à ta machine ?
Je pense que si à la base ta machine n'a pas accès à internet, c'est qu'il y a une bonne raison. _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
seb
Inscrit le: 29 Déc 2007 Messages: 10
|
Posté le: Lun Déc 31, 2007 9:48 pm |
Sujet du message:
|
|
La question n'est pas de savoir ce que je fais de la machine mais de discuter sur un forum de la problématique que je soulève et que la reflexion, qu'elle aboutisse ou pas, serve à enrichir les connaissances de tous. On pourrait couper court à toutes les interrogations de ce forum avec des réponses comme celle que tu me fais...
Mais puisque tu m'as posé une question je vais te donner la réponse que tu attendais : non je n'ai pas l'autorisation, je suis dans la plus grande illégalité, un méchant hacker du dimanche.
Qui est réellement assez hypocrite ici pour me jeter la première pierre ?
Si tu me connaissais mieux tu ne m'attribuerai pas aussi vite des intentions malhonnêtes et irresponsables |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Mar Jan 01, 2008 12:07 am |
Sujet du message:
|
|
| seb a écrit: | | Qui est réellement assez hypocrite ici pour me jeter la première pierre ? | Moi
/me caillasse seb avec des parpaings.
Mais qui serait assez hypocrite pour dire qu'il ne l'est pas ?
| Citation: | | On pourrait couper court à toutes les interrogations de ce forum avec des réponses comme celle que tu me fais... | Tout est dans la façon de poser les questions.
Demande comment, à partir d'un shell local, connaître la version d'un logiciel, tu peux obtenir une réponse. Mais si tu rajoute que ton intention est de le bypasser, tu diminue fortement tes chances d'en obtenir une.
Si la machine tourne sous linux, il y a fort à parier que le firewall est iptables.
| Citation: | | Si tu me connaissais mieux tu ne m'attribuerai pas aussi vite des intentions malhonnêtes et irresponsables | Malhonnête ou non, irresponsable ou non, ici, telle n'est pas la question.
Tes intentions sont illégales, c'est suffisant pour couper toute envie de répondre. _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
m3ph Admin forum/chat

Inscrit le: 11 Sep 2005 Messages: 485 Localisation: Région parisienne
|
Posté le: Mer Jan 02, 2008 9:15 am |
Sujet du message:
|
|
Faire quelque chose d'illégal, non ce n'est pas recommandé.
En parler, c'est autre chose.
Il soulève un bon sujet je trouve. _________________ Hacktivissement vôtre.
m3ph |
|
| Revenir en haut |
|
 |
seb
Inscrit le: 29 Déc 2007 Messages: 10
|
Posté le: Mer Jan 02, 2008 1:12 pm |
Sujet du message:
|
|
La première question que je me pose en fait est la suivante :
le firewall est-il installé sur la machine qui héberge le serveur apache (poste A) ?
Lorsque que je fais un ifconfig, je n'obtiens qu'une adresse IP locale sur Eth0 et pas d'interface ppp0; de même /etc/hosts ne contient que des adresses locales. De plus l'adresse locale du proxy général qui filtre les connections internet des postes autorisés est différente de celle du poste A.
-Est-ce que ces données suffisent pour dire que poste A se trouve derrière un routeur, et que le Firewall tourne à l'extérieur ? du style
poste A_serveur web <---[port forwarding]---poste B_Firewall:80 <---- WWW
poste A_serveur web -------------------- X ------------------------------> WWW
j'ai l'ip internet du serveur qui sert sur le port 80, si je connaissais son ip sur le réseau local je pourrais comparer avec celle de "A" pour savoir si c'est la même.
-Comment puis-je déterminer si iptables tourne sans les droits suffisants pour lister les processus ou éditer les règles iptables ? (sans prise d'empreinte des ports j'entends)
Enfin je tiens à préciser qu'en définitive je me fous royalement d'obtenir une connexion internet à partir de ce poste, je découvre ce qu'est un réseau et un système Linux et ca me plait.
A bon entendeur |
|
| Revenir en haut |
|
 |
m3ph Admin forum/chat

Inscrit le: 11 Sep 2005 Messages: 485 Localisation: Région parisienne
|
Posté le: Mer Jan 02, 2008 1:38 pm |
Sujet du message:
|
|
Niveau Firewall, si tu es dans une grosse boite, à mon avis, ce n'est pas iptables qui est utilisé.
Je pense plutot que ce sont des firewalls materiels de type "checkpoint", ou cisco "PIX". _________________ Hacktivissement vôtre.
m3ph |
|
| Revenir en haut |
|
 |
Apophis1988
Inscrit le: 05 Aoû 2007 Messages: 69
|
Posté le: Lun Jan 07, 2008 12:26 pm |
Sujet du message:
|
|
| Sujet intéressant, je trouve aussi. Ravi de te revoir ici seb |
|
| Revenir en haut |
|
 |
seb
Inscrit le: 29 Déc 2007 Messages: 10
|
Posté le: Mer Jan 09, 2008 3:35 am |
Sujet du message:
|
|
Tout le plaisir est pour moi Apophis1988.
Le serveur sur lequel on s'est croisé la dernière fois a semble t-il quelques soucis ( a moins que ce soit mon serveur DNS qui ai perdu sa trace sur la toile ! )
Ma question reste entière, je cherche à déterminer si le serveur Apache qui héberge les pages web de ma boite a une adresse sur le net ou s'il répond aux requêtes via un serveur pare-feu.
Ce qui est certain c'est que un nmap de www.maboite.com montre que la plupart des ports sont filtrés.
En interrogeant les variables d'environnement de PHP j'obtiens
$SERVER_NAME=www.maboite.com
mais
$SERVER_ADDR ne contient l'adresse IP sur le réseau local du serveur
J'ai tenté de faire usage du navigateur LYNX présent sur la distribution appelé via mon script sous la forme :
http://www.maboite.com/script.php?system=lynx --source http://www.monip.org 1> stdout
et
http://www.maboite.com/script.php?system=lynx --source http://www.monip.org 2> stderr
Le fichier stdout reste vide, stderr contient :
/root/: Pas de tel répertoire
Je me demande s'il serait possible d'analyser les paquets entrant sur le serveur Apache en y ouvrant une socket via PHP et de déterminer si ils proviennent du net ou s'ils sont forwardés par une IP locale (la machine tampon).
Si quelqu'un peut m'expliquer le message d'erreur renvoyé par LYNX ( je me demande s'il ne recoit pas une variable tronquée à cause des specialschars dans l'url, mais ca n'explique pas le sens du message )
Si vous pensez à d'autres solutions pour savoir si le FireWall tourne sur le même serveur ou sur une machine tampon, je reste à l'écoute |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Mer Jan 09, 2008 6:02 pm |
Sujet du message:
|
|
ifconfig te donnera plein d'infos sur les interfaces réseau de la machine.
Mais à quoi cela peut-il te servir de savoir si le firewall tourne sur la même machine ?
Si la machine à une interface connectée directement au net tu peux en déduire que le firewall est sur la même machine, mais le contraire n'est pas vrai.
Et même si le firewall tourne sur la même machine, tu ne pourras certainement pas modifier ses règles ni même le contourner. _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
seb
Inscrit le: 29 Déc 2007 Messages: 10
|
Posté le: Jeu Jan 10, 2008 12:28 am |
Sujet du message:
|
|
oui Celelibi autant pour moi je n'ai pas fourni les données de ifconfig :
eth0 Lien encap:Ethernet HWaddr 00:00:4C:79:32:63
inet adr:192.168.6.2 Bcast:192.168.6.7 Masque:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6496035 errors:0 dropped:0 overruns:0 frame:0
TX packets:6812014 errors:0 dropped:0 overruns:678 carrier:98750 collisions:206752 lg file
transmission:1000
RX bytes:1755250165 (1673.9 Mb)
TX bytes:727764672 (694.0 Mb) Interruption:5 Adresse de base:0xb000
lo Lien encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP
LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:73100 errors:0 dropped:0 overruns:0 frame:0
TX packets:73100 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0
RX bytes:5555547 (5.2 Mb)
TX bytes:5555547 (5.2 Mb)
route -n donne :
Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.6.0 0.0.0.0 255.255.255.248 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.6.1 0.0.0.0 UG 0 0 0 eth0
et l'édition de /etc/hosts :
127.0.0.1 lampion localhost
10.5.19.77 fap
192.168.6.1 px
133.1.34.1 hp9000.maboite.local
192.168.6.2 localhost.localdomain
Je sais bien que savoir si une machine fait tampon avec le serveur ne me donnera pas la solution pour installer un proxy... mais il semble que pour l'heure, ce soit devenu ma préoccupation
a bientôt |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Jeu Jan 10, 2008 3:16 am |
Sujet du message:
|
|
Tu pourrais aussi essayer un lsmod et ps aux.
Tu peux peut-être aussi faire un tour du côté de /proc/net et /proc/sys/net. _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
Apophis1988
Inscrit le: 05 Aoû 2007 Messages: 69
|
Posté le: Jeu Jan 10, 2008 4:32 am |
Sujet du message:
|
|
A mon avis le serveur Apache n'a pas d'adresse sur le net: les resultats de phpinfo le prouve. La variable $SERVER_ADDR doit necessairement te donner l'adresse sur le net (si elle existe et si le phpinfo est appelé depuis l'exterieur du reseau (quoique meme à l'interieur je sois sur qu'elle devrait te donner le meme resultat)).
De plus, je pense que (comme il t'a été précisé precedement) qu'une recherche d'empreinte sur les ports va surement t'etre necessaire (je ne comprends d'ailleurs pas pourquoi l'idée d'un scan te rebute tant).
Et si tu scannais deja tout la plage ou se situe le serveur (192.168.6.1-254)?
Tu trouverais surement que:
192.168.6.1 --------> FW
192.168.6.2 ---------> Apache server
....
En extrapolant un peu sur ma theorie:
le firewall filtre les connexions entre le net et le serveur
le poste firewall sert aussi de gateway pour tout ce reseau.
| Code: |
-------> FW <-----> WWW
| (192.168.6.1) |
| |
| |
Serveur <----- X
(192.168.6.2)| |
| |
| |
-------> ton poste et tous les autres employés
|
PS: sinon pour le staff, le forum a buggé à un moment on dirait, car le dernier message de seb date de Jeudi à 12h, alors que là il est 5h |
|
| Revenir en haut |
|
 |
|