[PHP] Exec() loopt vast?

Pagina: 1
Acties:

  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
Ik probeer in een portscan script via nmap te scannen. Wanneer ik 127.0.0.1 scan, gaat alles goed, maar wanneer ik een remote adres scan, lijkt het alsof hij gewoon vastloopt. De code na het exec() statement wordt ook niet meer uitgevoerd.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
set_time_limit(60);
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    echo '<p>You are surfing through a proxy server<br>'; 
    echo 'Your IP: <b>' . $_SERVER['HTTP_X_FORWARDED_FOR'] . '</b><br>'; 
    echo 'Your proxy: <b>' . $_SERVER['REMOTE_ADDR'] . '</b></p>'; 
    $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; 
} else { 
    echo '<p>You are NOT surfing through a proxy server, or the proxy could not be detected<br>'; 
    echo 'Your IP: <b>' . $_SERVER['REMOTE_ADDR'] . '</b></p>'; 
    $IP = $_SERVER['REMOTE_ADDR']; 
}
//$command = './nmap -p 2000 ' . $IP;
$command = './nmap -p 2000 127.0.0.1';
echo $command;
echo '<pre>';
echo exec($command, $output, $return);
echo '</pre>***' . $return . '****<br>';

$command = './nmap -p 2000 ' . $IP;
echo $command;
echo '<pre>';
echo exec($command, $output, $return);
echo '</pre>***' . $return . '****';


Het script staat op http://scanners.computersecurity.be/scan.php

  • ET
  • Registratie: Mei 2000
  • Laatst online: 17-06 18:00

ET

Werkt toch, de return waarde is 0, dus is het programma (NMAP) juist beeindigd.

code:
1
2
3
4
5
6
7
8
9
You are NOT surfing through a proxy server, or the proxy could not be detected
Your IP: 62.163.xx.xx

./nmap -p 2000 127.0.0.1
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
***0****
./nmap -p 2000 62.163.xx.xx
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
***0****

  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
Hhm als hij niet door een proxy gaat, werkt het dus WEL.
Bij mij geeft hij dit:
code:
1
2
3
4
5
6
7
8
You are surfing through a proxy server
Your IP: 213.118.xxx.xxx
Your proxy: 213.224.xxx.xxx

./nmap -p 2000 127.0.0.1
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
***0****
./nmap -p 2000 213.118.xxx.xxx

  • ET
  • Registratie: Mei 2000
  • Laatst online: 17-06 18:00

ET

wat gebeurt er als je vanuit de shell naar de proxy een NMAP uitvoert?
Het kan zijn dat de proxy beveiligt is en een "scanaanval" detecteerd.

  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
Als ik de proxy scan op poort 2000, doet hij het gewoon.
Bij nader inzien zou hij het bij mij ook moeten doen, aangezien die proxy enkel poorten <1024 blocked

Net ff een scan op mijn IP gedaan, en dan geeft hij dit:
code:
1
2
Note: Host seems down. If it is really up, but blocking our ping probes, try -P0
Nmap run completed -- 1 IP address (0 hosts up) scanned in 36 seconds

  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
Hm net ff -P0 geprobeerd, en dat blijkt te werken .. tss dom van me.
Effe in m'n groot script integreren dan maar :)

edit:

Dit werkt natuurlijk weer niet, ook via de shell kan ik mezelf niet scannen (groot aantal poorten). Op naar NOS dan maar :'(

  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
*Stevige schop*

Ondertussen heb ik dus weer wat verdergetest. Via ssh ingelogd, en bij mezelff poorten 2000 tot 2200 gescand zonder problemen. Wanneer ik het echter via m'n script wil doen, lukt dit nooit.
Het enige wat ik te zien krijg, is onderstaande. Ook de return code van nmap ontbreekt.
code:
1
2
3
4
5
6
7
8
You are surfing through a proxy server
Your IP: xxx.xxx.xxx.xxx
Your proxy: yyy.yyy.yyy.yyy

./nmap -P0 -v -v -T Aggressive -p 2000-2200 xxx.xxx.xxx.xxx

No tcp,udp, or ICMP scantype specified, assuming vanilla tcp connect() scan.
Use -sP if you really don't want to portscan (and just want to see what hosts are up

De eerste regel in m'n script is nochtans
PHP:
1
set_time_limit(600);

Daar kan het dus niet aan liggen.

Enig idee anyone?

edit:

Iemand anders, die een firewall heeft, liet me weten dat alle poorten wel degelijk gescand worden, maar dat er gewoon geen output in de browser getoond wordt :?

[ Voor 0% gewijzigd door Nephilim op 06-08-2002 22:00 . Reden: layout was kaput ]


  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

Nephilim schreef op 06 augustus 2002 @ 21:12:

./nmap -P0 -v -v -T Aggressive -p 2000-2200 xxx.xxx.xxx.xxx

No tcp,udp, or ICMP scantype specified, assuming vanilla tcp connect() scan.
Use -sP if you really don't want to portscan (and just want to see what hosts are up
Geef het scantype op, -sT in jouw geval.
De eerste regel in m'n script is nochtans
PHP:
1
set_time_limit(600);

Daar kan het dus niet aan liggen.

Enig idee anyone?

edit:

Iemand anders, die een firewall heeft, liet me weten dat alle poorten wel degelijk gescand worden, maar dat er gewoon geen output in de browser getoond wordt :?
Nee, dit kan rustig een minuut of wat duren, zeker als de FW de pakketten gewoon dropped ipv een ICMP error terug sturen.

Ik denk dat geduldig zijn de oplossing is :)

[ Voor 0% gewijzigd door igmar op 07-08-2002 12:12 . Reden: wat [/quote]'s vergeten enzo ]


  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
igmar schreef op 07 augustus 2002 @ 11:56:
[...]

Geef het scantype op, -sT in jouw geval.
Done. Volgens mij maakt dit niet echt veel uit, aangezien hij dan gewoon de default scan pakt, of niet?
[...]

Nee, dit kan rustig een minuut of wat duren, zeker als de FW de pakketten gewoon dropped ipv een ICMP error terug sturen.

Ik denk dat geduldig zijn de oplossing is :)
Ik denk dat niet :)
Als dit echt zo zou zijn, dan zouden zowel Opera als Mozilla toch moeten aangeven dat de pagina nog niet volledig geladen is? Nu is het net of alle data is al binnen (wat dus niet zo is).
Het lijkt alsof PHP niet doorheeft dat nmap nog data moet doorsturen, en dan maar het script beëindigd.

(Ondertussen een 5tal minuten gewacht op een scan van 2000 poorten, zonde resultaat)

  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
Niemand?

Verwijderd

Misschien is het volkomen nutteloos, maar ik heb ook veel problemen gehad met exec(). Deze functie gaf andere resultaten dan wat ik op de gewone shell kreeg.

Daarom probeerde ik shell_exec() en dit lukte wel gewoon.

probeer eens zou ik zeggen....

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 25-05 17:40

Stoffel

Engineering the impossible

gebruik dan gelijk system(), die gooit toch alles gewoon door :)

  • Nephilim
  • Registratie: Augustus 2000
  • Laatst online: 15-05 00:38
Hm topic wat uit het ook verloren...
Heb dus net system() gebruikt, maar ook dat blijkt niet te lukken. Ik probeer poorten 2000 tot 10000 te scannen, maar het enige dat nmap lijkt terug te sturen is
code:
1
2
3
4
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Host D5762396.kabel.telenet.be (213.118.35.150) appears to be up ... good.
Initiating Connect() Scan against D5762396.kabel.telenet.be (213.118.35.150)
Adding open port 2200/tcp

Het script uitvoeren duurde trouwens maar 23s ...
Pagina: 1