Salut a tous, Alors aujourd'hui, gros pavé en approche pour vos yeux :')
Synopsis:
Citation : Il y à quelques mois maintenant, j'avais eu une idée, j'en avais parler pour obtenir de l'aide ou des pistes à explorer, mais les membres du forum ou j'avais posté étaient, hélas, plus enclins à regarder comment installer un bête RAT, qu'essayer de ce pencher sur quelque chose de plus technique..
Je vous met le post en question:
"
Alors il y a quelques jours, alors que j'étais sur le réseau de mon voisin
[Rien de méchant, juste pour monter mon skill de H4x0r voyez-vous :')], et ayant fait un scan du réseau,
J'ai vu apparaître ceci:
Code :
#nmap 192.168.1.28 -p1-65535
Starting Nmap 5.21 ( http://nmap.org ) at 2013-02-06 18:07 CET
Nmap scan report for NETGEM-523337 (192.168.1.28)
Host is up (0.0085s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE
1290/tcp open unknown
24576/tcp open unknown
MAC Address: 00:04:30:52:33:37 (Netgem)
Intrigué par ce "NETGEM-523337", après des recherches, j'ai vu que c'était les décodeurs neufbox de sfr.
Voulant voir si quelque chose était possible, j'ai tester différents trucs, j'ai vu que le protocole upnp était utilisé.
J'ai donc chercher des documents sur ce protocole et son fonctionnement.
J'ai filé télécharger Miranda pour pouvoir obtenir des informations sur le décodeur,
Code :
Miranda v1.3
The interactive UPnP client
Craig Heffner, http://www.devttys0.com
upnp> msearch
Entering discovery mode for 'upnp:rootdevice', Ctl+C to stop...
****************************************************************
SSDP reply message from 192.168.1.1:49152
XML file is located at http://192.168.1.1:49152/rootDesc.xml
Device is running neufbox/neufbox UPnP/1.0 MiniUPnPd/1.5
****************************************************************
****************************************************************
SSDP reply message from 192.168.1.54:2869
XML file is located at http://192.168.1.54:2869/upnphost/udhisapi.dll?content=uuid:3f25e8c1-b9e4-4a4e-aade-c603fe7bf9c3
Device is running Microsoft-Windows-NT/5.1 UPnP/1.0 UPnP-Device-Host/1.0
****************************************************************
****************************************************************
SSDP reply message from 192.168.1.28:24576
XML file is located at http://192.168.1.28:24576/devices/SetTopBox/description.xml
Device is running Linux/2, UPnP/1.0, Netgem/1
****************************************************************
Je liste les Host:
Code :
upnp> host list
[0] 192.168.1.1:49152
[1] 192.168.1.54:2869
[2] 192.168.1.28:24576
upnp> host get 2
Requesting device and service info for 192.168.1.28:24576 (this could take a few seconds)...
Host data enumeration complete!
Là je récupère les infos:
Code :
upnp> host details 1
Host name: 192.168.1.28:24576
UPNP XML File:
http://192.168.1.28:24576/devices/SetTopBox/description.xml
Device information:
Device Name: RemoteControlDevice
Device Name: MultiroomDevice
Service Name: Resources
controlURL: /devices/Multiroom/Resources/control
eventSubURL: /devices/Multiroom/Resources/event
serviceId: urn:Resources
SCPDURL: /devices/Multiroom/Resources/description.xml
fullName: urn:neufboxtv-org:service:Resources:1
ServiceActions:
getUsage
duration
duration:
dataType: int
sendEvents: N/A
allowedValueList: []
direction: in
usage_list
usage_list:
dataType: string
sendEvents: N/A
allowedValueList: []
direction: out
from
from:
dataType: int
sendEvents: N/A
allowedValueList: []
direction: in
total_bitrate
total_bitrate:
dataType: int
sendEvents: N/A
allowedValueList: []
direction: out
reminderAction
action
reminderAction:
dataType: string
sendEvents: N/A
allowedValueList: []
direction: in
args
reminderActionResult:
dataType: string
sendEvents: N/A
allowedValueList: []
direction: in
Device Name: SetTopBox
Allons donc voir le fichier description.xml
:
Code :
http://192.168.1.28:24576/devices/SetTopBox/description.xml
<root>
<specVersion>
<major>1</major>
<minor>1</minor>
</specVersion>
<device>
<deviceType>urn:neufboxtv-org:device:SetTopBox:1<deviceType>
<friendlyName>Decodeur Neufbox TV</friendlyName>
<manufacturer>Neufbox de SFR</manufacturer>
<modelName>Decodeur HD</modelName>
<UDN>uuid:64618a93-02a1-4e3c-995a-225984cdbff1</UDN><serviceList/>
<deviceList>
<device>
<deviceType>urn:neufboxtv-org:device:MultiroomDevice:1</deviceType>
<friendlyName>Multiroom : room #1</friendlyName>
<manufacturer>Neufbox de SFR</manufacturer>
<modelName>Multiroom</modelName>
<UDN>uuid:46a6a6ed-0de6-41a8-b44c-91dd599bff55</UDN>
<serviceList>
<service>
<serviceType>urn:neufboxtv-org:service:Resources:1</serviceType>
<serviceId>urn:Resources</serviceId>
<SCPDURL>/devices/Multiroom/Resources/description.xml</SCPDURL>
<controlURL>/devices/Multiroom/Resources/control</controlURL>
<eventSubURL>/devices/Multiroom/Resources/event</eventSubURL>
</service>
</serviceList>
<deviceList/>
</device>
<device>
<deviceType>urn:neufboxtv-org:device:RemoteControlDevice:1</deviceType>
<friendlyName>RemoteControl</friendlyName>
<manufacturer>Neufbox de SFR</manufacturer>
<modelName>RemoteControl</modelName>
<UDN>uuid:6cfc8510-83c9-422b-b3d9-63996785ffb8</UDN>
<serviceList>
<service>
<serviceType>urn:neufboxtv-org:device:RemoteControl:1</serviceType>
<serviceId>urn:RemoteControl</serviceId>
<SCPDURL>/devices/RemoteControl/RemoteControl/description.xml</SCPDURL>
<controlURL>/devices/RemoteControl/RemoteControl/control</controlURL>
<eventSubURL>/devices/RemoteControl/RemoteControl/event</eventSubURL>
</service>
</serviceList>
<deviceList/>
</device>
</deviceList>
</device>
</root>
On peut voir le lien d'un autre device:
Multiroom
=> /devices/Multiroom/Resources/description.xml
Ainsi que
RemoteControlDevice
=> /devices/RemoteControl/RemoteControl/description.xml
Allons voir Multiroom:
Code :
<scpd>
<specVersion>
<major>1</major>
<minor>1</minor>
</specVersion>
<actionList>
<action>
<name>getUsage</name>
<argumentList>
<argument>
<name>from</name>
<direction>in</direction>
<relatedStateVariable>from</relatedStateVariable>
</argument>
<argument>
<name>duration</name>
<direction>in</direction>
<relatedStateVariable>duration</relatedStateVariable>
</argument>
<argument>
<name>total_bitrate</name>
<direction>out</direction>
<relatedStateVariable>total_bitrate</relatedStateVariable>
</argument>
<argument>
<name>usage_list</name>
<direction>out</direction>
<relatedStateVariable>usage_list</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>reminderAction</name>
<argumentList>
<argument>
<name>action</name>
<direction>in</direction>
<relatedStateVariable>reminderAction</relatedStateVariable>
</argument>
<argument>
<name>args</name>
<direction>in</direction>
<relatedStateVariable>reminderActionArgs</relatedStateVariable>
</argument>
<argument>
<name>args</name>
<direction>in</direction>
<relatedStateVariable>reminderActionResult</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList><serviceStateTable><stateVariable>
<name>from</name>
<dataType>int</dataType>
</stateVariable><stateVariable>
<name>duration</name>
<dataType>int</dataType>
</stateVariable>
<stateVariable>
<name>usage_list</name>
<dataType type="oUsage array">string</dataType>
</stateVariable>
<stateVariable>
<name>current_bitrate</name>
<dataType>int</dataType>
</stateVariable>
<stateVariable>
<name>total_bitrate</name>
<dataType>int</dataType>
</stateVariable>
<stateVariable>
<name>reminder</name>
<dataType type="oReminder">string</dataType>
</stateVariable>
<stateVariable>
<name>reminderAction</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable>
<name>reminderActionArgs</name>
<dataType type="object array">string</dataType>
</stateVariable>
<stateVariable>
<name>reminderActionResult</name>
<dataType>string</dataType>
</stateVariable>
</serviceStateTable>
</scpd>
Et RemoteControlDevice:
Code :
<scpd>
<specVersion>
<major>1</major>
<minor>1</minor>
</specVersion>
<actionList>
<action>
<name>Bind</name>
<argumentList>
<argument>
<name>ParentalCode</name>
<direction>in</direction>
<relatedStateVariable>ParentalCode</relatedStateVariable>
</argument>
<argument>
<name>Error</name>
<direction>out</direction>
<relatedStateVariable>Error</relatedStateVariable>
</argument>
<argument>
<name>ErrorCode</name>
<direction>out</direction>
<relatedStateVariable>ErrorCode</relatedStateVariable>
</argument>
<argument>
<name>Token</name>
<direction>out</direction>
<relatedStateVariable>Token</relatedStateVariable>
</argument>
<argument>
<name>CustomerId</name>
<direction>out</direction>
<relatedStateVariable>CustomerId</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable>
<name>ParentalCode</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable>
<name>Error</name>
<dataType>boolean</dataType>
</stateVariable>
<stateVariable>
<name>ErrorCode</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable>
<name>Token</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable>
<name>CustomerId</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable>
<name>code</name>
<dataType>number</dataType>
</stateVariable>
</serviceStateTable>
</scpd>
Bon ducoup on a qu'a essayer de lancer une SOAP Request:
Code :
upnp> host send 1 MultiroomDevice Resources getUsage
Required argument:
Argument Name: duration
Data Type: int
Allowed Values: []
Set duration value to: 0
Required argument:
Argument Name: from
Data Type: int
Allowed Values: []
Set from value to: 0
usage_list : [object Object]
total_bitrate : 2500
Voilà j'ai apparemment pu modifier 2 valeurs, sans que je sache à quoi elles correspondent véritablement..
------------------------------------------------------------------
http://mattcollinge.wordpress.com/projec...r-hacking/
J'ai vu qu'il y avait quelques commandes,
about:tcp This will give you all the TCP/IP connection information you need
about:cache Allows you to reset the browser cache (useful if you're not using the metatag to tell the browser not to cache the page)
about:javascript JavaScript info
about:pics Info on the PICS and IRCA rating of a web page
about:tv Switch to the TV
about:plugins Plugins info
about: Hardware/software info on the i-Player
dvb: Detailed info on the DVB transmission
dvb:NUM Switches to channel NUM
J'ai vu que ça correspondait aussi avec ce qu'avait essayer y_nk sur le forum neuf:
http://www.neufbox4.org/forum/viewtopic.php?pid=30058
Ducoup, j'ai tester des trucs semblables à ce topic là, genre:
Code :
telnet
root@Ener-jee:~# telnet 192.168.1.28 1290
Trying 192.168.1.28...
Connected to 192.168.1.28.
Escape character is '^]'.
GET /about:tv HTTP/1.0
HTTP/1.0 403 Forbidden
Date: Thu, 07 Feb 2013 18:07:53 GMT
Server: Netgem/1.0 (NeufboxTV UPnPServer)
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Connection: Close
Connection closed by foreign host.
root@Ener-jee:~# telnet 192.168.1.28 24576
Trying 192.168.1.28...
Connected to 192.168.1.28.
Escape character is '^]'.
POST /about:tv HTTP/1.0
HTTP/1.0 403 Forbidden
Date: Thu, 07 Feb 2013 18:08:27 GMT
Server: Netgem/1.0 (NeufboxTV UPnPServer)
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Connection: Close
Mais erreur 403 a chaques coup!
Il manque peut-être quelque chose dans ma requête, je sais pas <_<
J'ai regarder la structure sur différents site, et les différentes couches,
Et je vois bien que c'est un refus d'accès, Mais je sais pas ce que je peux faire..
J'ai essayer du GET et du POST sur chacuns des ports 1290 et 24576 mais Forbiden a chaques fois..
Si quelqu'un sait ce que je pourrais faire pour pouvoir exécuter une action dessus, passer le 403, et changer de chaîne ou quoi,
car y_nk dit avoir réussit à changer de chaîne et redémarrer le décodeur..
Bref, toute info, je suis preneur
J'ai vu ici
http://z4.invisionfree.com/IPH/index.php?showtopic=6 qu'il y a une liste de commandes javascript, malheureusement, le lien donné est mort.
Voilà pour l'exposé!
Donc je fait appel à vous, Donc, pistes à explorer, conseils etc..
Et si quelqu'un essaye un truc semblable, et qu'il y arrive, ce serait cool de communiquer les résultat
Merci à ceux qui ont prit la peine de lire jusqu'au bout
--Moloch