UDP Portscan per PHP
Hallo zusammen,
ich möchte mittels PHP prüfen, ob eine Webcam eingeschaltet ist oder nicht. Um genauer zu sagen muss ich eigentlich nur überprüfen ob ein bestimmter Port offen ist oder halt geschlossen.
Das Problem ist, dass es sich um eine iOS Webcam App handelt, wo man keinerlei Konfiguration vornehmen kann und evtl. das Protokoll von UDP auf TCP angeben kann.
Daher funktionieren die einfachen Portscan-Funktionen von PHP mittels fsockopen etc allesamt leider nicht.
Mittels Apple's Airport Dienstprogramm sowie unter den Porteinstellungen in der Netzwerkumgebung unter Windows XP habe ich zwar unter der Portweiterleitung nur TCP Ports angegeben (bzw. bei XP den Port benannt und nur TCP ausgewählt) aber es scheint sich um einen UDP Port handeln zu müssen. Auch hatte ich schon extra nur nach reinen TCP Ports gesucht und lediglich den Port 80 (http) gefunden, der sich ja leider nicht eignet, da ich plane mehrere Webcams aufzustellen und über die jeweilige DYNDNS:Portangabe zu erreichen. Einzig hier hat die fsockopen-Funktion ein richtiges Ergebnis angezeigt.
Lediglich dort funktionierte die fsockopen-Funktion von PHP aber ist wie gesagt für meine Zwecke ja leider nicht förderlich, zumal den http Port 80 zudem zu belegen, sowieso keine gute Idee sein dürfte, oder täusche ich mich da? Denn normalerweise sind doch die User-Ports von 1024-49151 für solche Anwendungen zu verwenden, wenn ich mich recht entsinne.
Über online Portscanner wie z.B. http://www.mynetworktest.com/ports.php funktioniert ein Scan tadellos, also bei einschalten der App wird auch richtig angezeigt, dass der jeweilige Port offen ist. Da die Dateiendung eine PHP-Datei ist, muss es ja doch irgendwie funktionieren mit PHP.
Für Hilfestellungen wäre ich sehr dankbar.
Mit besten Grüßen
ich möchte mittels PHP prüfen, ob eine Webcam eingeschaltet ist oder nicht. Um genauer zu sagen muss ich eigentlich nur überprüfen ob ein bestimmter Port offen ist oder halt geschlossen.
Das Problem ist, dass es sich um eine iOS Webcam App handelt, wo man keinerlei Konfiguration vornehmen kann und evtl. das Protokoll von UDP auf TCP angeben kann.
Daher funktionieren die einfachen Portscan-Funktionen von PHP mittels fsockopen etc allesamt leider nicht.
Mittels Apple's Airport Dienstprogramm sowie unter den Porteinstellungen in der Netzwerkumgebung unter Windows XP habe ich zwar unter der Portweiterleitung nur TCP Ports angegeben (bzw. bei XP den Port benannt und nur TCP ausgewählt) aber es scheint sich um einen UDP Port handeln zu müssen. Auch hatte ich schon extra nur nach reinen TCP Ports gesucht und lediglich den Port 80 (http) gefunden, der sich ja leider nicht eignet, da ich plane mehrere Webcams aufzustellen und über die jeweilige DYNDNS:Portangabe zu erreichen. Einzig hier hat die fsockopen-Funktion ein richtiges Ergebnis angezeigt.
Lediglich dort funktionierte die fsockopen-Funktion von PHP aber ist wie gesagt für meine Zwecke ja leider nicht förderlich, zumal den http Port 80 zudem zu belegen, sowieso keine gute Idee sein dürfte, oder täusche ich mich da? Denn normalerweise sind doch die User-Ports von 1024-49151 für solche Anwendungen zu verwenden, wenn ich mich recht entsinne.
Über online Portscanner wie z.B. http://www.mynetworktest.com/ports.php funktioniert ein Scan tadellos, also bei einschalten der App wird auch richtig angezeigt, dass der jeweilige Port offen ist. Da die Dateiendung eine PHP-Datei ist, muss es ja doch irgendwie funktionieren mit PHP.
Für Hilfestellungen wäre ich sehr dankbar.
Mit besten Grüßen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 241900
Url: https://administrator.de/forum/udp-portscan-per-php-241900.html
Ausgedruckt am: 19.04.2025 um 16:04 Uhr
12 Kommentare
Neuester Kommentar
Moin,
By the way wenns trotzdem noch benötigt wird, eine funktionierenden PHP UDP Portscanner Klasse findest du hier: https://github.com/jperkins/PHP-Portscanners/blob/master/udpPortScanner. ...
Grüße Uwe
Lediglich dort funktionierte die fsockopen-Funktion von PHP aber ist wie gesagt für meine Zwecke ja leider nicht förderlich, zumal den http Port 80 zudem zu belegen, sowieso keine gute Idee sein dürfte, oder täusche ich mich da? Denn normalerweise sind doch die User-Ports von 1024-49151 für solche Anwendungen zu verwenden, wenn ich mich recht entsinne.
Portumleitung ist hier das Stichwort ..., Ansonsten besser ein VPN zu deinem Netz aufbauen, so wirken sich eventuell entdeckte Sicherheitslücken deiner Cams nicht direkt negativ aus. Wenn die Cam nur auf Port 80 reagiert wird sie vermutlich nur darüber angesprochen; das kannst du aber ganz schnell mit Wireshark herausfinden, wie und worüber die CAM kommuniziert!By the way wenns trotzdem noch benötigt wird, eine funktionierenden PHP UDP Portscanner Klasse findest du hier: https://github.com/jperkins/PHP-Portscanners/blob/master/udpPortScanner. ...
Grüße Uwe
den Port 80 (http) gefunden, der sich ja leider nicht eignet, da ich plane mehrere Webcams aufzustellen und über die jeweilige DYNDNS:Portangabe zu erreichen
Auch das würde gehen wenn du am Router oder Firewall mit Port Translation arbeitest !TCP 8081 in --> Lokale IP Kamera 1 TCP 80 out
TCP 8082 in --> Lokale IP Kamera 2 TCP 80 out
TCP 8083 in --> Lokale IP Kamera 3 TCP 80 out
usw.
Hat auch noch den Vorteil das du so wenigstens etwas deine Videodaten verscheierst und mit TCP 80 nicht gleich in den ersten Sekunden jedem Port Scanner in die Hände fällst.
Wenn du mit den Videodaten nicht gerade Oma Grete beim Stricken überwachen willst sondern sensitives Video überträgt kann man dir nur dringenst ans Herz legen den Rat vom Kollegen colinardo zu beachten und ein VPN zu nutzen, was heutzutage mit 3 Mausklicks auf (fast) jedem Router installiert ist.
Dadurch gehst du nicht nur deiner ganzen Port Forwarding oder Translation Frickelei aus dem Weg sondern verschlüsselst auch noch deine Video Daten das das nicht JEDER im Internet das alles mitlesen und ansehen kann !!
finde doch erst mal mit Wireshark raus auf welchen Ports die Cam überhaupt kommuniziert, dann hast du es schwarz auf weiß und musst nicht immer nur mutmaßen ...sondern kannst darauf deinen Test aufbauen.
und zur Funktion: Du solltest beim Aufruf auch die zu scannenden Ports mit übergeben, Standardmäßig sind das die Ports 1-1024.
siehe dazu den Constructor:
p.s. Code ohne Code-Tags:
und zur Funktion: Du solltest beim Aufruf auch die zu scannenden Ports mit übergeben, Standardmäßig sind das die Ports 1-1024.
siehe dazu den Constructor:
function __construct($hostIp, $startPort = 1, $endPort = 1024, $output = 1)
p.s. Code ohne Code-Tags:
<code> Quellcode </code>
schaue ich mir nicht mehr an ...
Um den Traffic der CAM abzufangen musst du entweder am LAN-Port der CAM mit einem HUB den Traffic scannen, oder wenn es eine Wireless-CAM ist, mit einer WLAN Karte im Promiscous-Mode den Traffic aufzeichnen. Alternativ lässt sich das auch mit einem Proxy machen den dein Telefon im LAN nutzt, dann schnorchelt man an diesem den Traffic ab:
http://attentionshard.wordpress.com/2013/06/13/sniffing-ios-and-android ...
Grüße Uwe
http://attentionshard.wordpress.com/2013/06/13/sniffing-ios-and-android ...
Grüße Uwe
sagt doch eigentlich schon alles ...
Zugriff auf die Webcam via SSL auf Port 50634
also check mit PHP mal diesen Port via TCP (p.s. um welche Kamera sprechen wir hier überhaupt?)
Zugriff auf die Webcam via SSL auf Port 50634
also check mit PHP mal diesen Port via TCP (p.s. um welche Kamera sprechen wir hier überhaupt?)
teste das bitte erst mal im LAN intern bevor du über den Router gehst.
für SSL im Zusammenhang mit "fsockopen" siehe: http://us2.php.net/manual/en/function.fsockopen.php#75388
Über SSL wird dann vermutlich nur die Authentifizierung laufen ... Leider kost die App was sonst würde ich das hier mal testen, aber so, viel Erfolg noch.
Grüße Uwe
für SSL im Zusammenhang mit "fsockopen" siehe: http://us2.php.net/manual/en/function.fsockopen.php#75388
Über SSL wird dann vermutlich nur die Authentifizierung laufen ... Leider kost die App was sonst würde ich das hier mal testen, aber so, viel Erfolg noch.
Grüße Uwe