Created
July 31, 2012 07:21
-
-
Save issackelly/3214468 to your computer and use it in GitHub Desktop.
Hacking the WeMo WiFi switch Part 1 http://issackelly.com/blog/2012/07/30/wemo-hacking/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| upnp> pcap | |
| Entering passive mode, Ctl+C to stop... | |
| **************************************************************** | |
| SSDP notification message from 192.168.1.1:5431 | |
| XML file is located at http://192.168.1.1:5431/dyndev/uuid:0016-b639-af9e00408084 | |
| Device is running LINUX/2.4 UPnP/1.0 BRCM400/1.0 | |
| **************************************************************** | |
| **************************************************************** | |
| SSDP notification message from 192.168.1.134:49153 | |
| XML file is located at http://192.168.1.134:49153/setup.xml | |
| Device is running Linux/2.6.21, UPnP/1.0, Portable SDK for UPnP devices/1.6.6 | |
| **************************************************************** | |
| ^CPassive mode halted... | |
| upnp> host list | |
| [0] 192.168.1.1:5431 | |
| [1] 192.168.1.134:49153 | |
| upnp> host get 1 | |
| Requesting device and service info for 192.168.1.134:49153 (this could take a few seconds)... | |
| Host data enumeration complete! | |
| upnp> host summary 1 | |
| Host: 192.168.1.134:49153 | |
| XML File: http://192.168.1.134:49153/setup.xml | |
| controllee | |
| manufacturerURL: http://www.belkin.com | |
| modelName: Socket | |
| UPC: 123456789 | |
| modelNumber: 1.0 | |
| presentationURL: /pluginpres.html | |
| friendlyName: Test 1 | |
| fullName: urn:Belkin:device:controllee:1 | |
| modelDescription: Belkin Plugin Socket 1.0 | |
| UDN: uuid:Socket-1_0-221211K0100152 | |
| modelURL: http://www.belkin.com/plugin/ | |
| manufacturer: Belkin International Inc. | |
| upnp> host info 1 deviceList | |
| controllee : {} | |
| upnp> host info 1 | |
| xmlFile : http://192.168.1.134:49153/setup.xml | |
| name : 192.168.1.134:49153 | |
| proto : http:// | |
| serverType : Linux/2.6.21, UPnP/1.0, Portable SDK for UPnP devices/1.6.6 | |
| upnpServer : Linux/2.6.21, UPnP/1.0, Portable SDK for UPnP devices/1.6.6 | |
| dataComplete : True | |
| deviceList : {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {'dataComplete': True, | |
| 'deviceList': {'controllee': {'UDN': 'uuid:Socket-1_0-221211K0100152', | |
| 'UPC': '123456789', | |
| 'friendlyName': 'Test 1', | |
| 'fullName': 'urn:Belkin:device:controllee:1', | |
| 'manufacturer': 'Belkin International Inc.', | |
| 'manufacturerURL': 'http://www.belkin.com', | |
| 'modelDescription': 'Belkin Plugin Socket 1.0', | |
| 'modelName': 'Socket', | |
| 'modelNumber': '1.0', | |
| 'modelURL': 'http://www.belkin.com/plugin/', | |
| 'presentationURL': '/pluginpres.html', | |
| 'services': {'WiFiSetup': {'SCPDURL': '/setupservice.xml', | |
| 'actions': {'CloseSetup': {'arguments': {}}, | |
| 'ConnectHomeNetwork': {'arguments': {'auth': {'direction': 'in', | |
| 'relatedStateVariable': 'auth'}, | |
| 'channel': {'direction': 'in', | |
| 'relatedStateVariable': 'channel'}, | |
| 'encrypt': {'direction': 'in', | |
| 'relatedStateVariable': 'encrypt'}, | |
| 'password': {'direction': 'in', | |
| 'relatedStateVariable': 'password'}, | |
| 'ssid': {'direction': 'in', | |
| 'relatedStateVariable': 'ssid'}}}, | |
| 'GetApList': {'arguments': {'ApList': {'direction': 'out', | |
| 'relatedStateVariable': 'ApList'}}}, | |
| 'GetNetworkStatus': {'arguments': {'NetworkStatus': {'direction': 'out', | |
| 'relatedStateVariable': 'NetworkStatus'}}}, | |
| 'StopPair': {'arguments': {}}}, | |
| 'controlURL': '/upnp/control/WiFiSetup1', | |
| 'eventSubURL': '/upnp/event/WiFiSetup1', | |
| 'fullName': 'urn:Belkin:service:WiFiSetup:1', | |
| 'serviceId': 'urn:Belkin:serviceId:WiFiSetup1', | |
| 'serviceStateVariables': {'ApList': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'NetworkStatus': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'PairingStatus': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}}}, | |
| 'basicevent': {'SCPDURL': '/eventservice.xml', | |
| 'actions': {'ChangeDeviceIcon': {'arguments': {'PictureColorDeep': {'direction': 'in', | |
| 'relatedStateVariable': 'PictureColorDeep'}, | |
| 'PictureHeight': {'direction': 'in', | |
| 'relatedStateVariable': 'PictureWidth'}, | |
| 'PictureSize': {'direction': 'in', | |
| 'relatedStateVariable': 'PictureSize'}}}, | |
| 'ChangeFriendlyName': {'arguments': {'FriendlyName': {'direction': 'in', | |
| 'relatedStateVariable': 'FriendlyName'}}}, | |
| 'GetBinaryState': {'arguments': {'BinaryState': {'direction': 'out', | |
| 'relatedStateVariable': 'BinaryState'}}}, | |
| 'GetDeviceIcon': {'arguments': {'DeviceIcon': {'direction': 'in', | |
| 'relatedStateVariable': 'DeviceIcon'}}}, | |
| 'GetDeviceId': {'arguments': {}}, | |
| 'GetFriendlyName': {'arguments': {'FriendlyName': {'direction': 'in', | |
| 'relatedStateVariable': 'FriendlyName'}}}, | |
| 'GetHomeId': {'arguments': {}}, | |
| 'GetIconURL': {'arguments': {'URL': {'direction': 'out', | |
| 'relatedStateVariable': 'URL'}}}, | |
| 'GetLogFileURL': {'arguments': {'LOGURL': {'direction': 'out', | |
| 'relatedStateVariable': 'LOGURL'}}}, | |
| 'GetMacAddr': {'arguments': {}}, | |
| 'GetPluginUDN': {'arguments': {}}, | |
| 'GetRuleOverrideStatus': {'arguments': {'RuleOverrideStatus': {'direction': 'in', | |
| 'relatedStateVariable': 'RuleOverrideStatus'}}}, | |
| 'GetSerialNo': {'arguments': {}}, | |
| 'GetSmartDevInfo': {'arguments': {}}, | |
| 'ReSetup': {'arguments': {'Reset': {'direction': 'in', | |
| 'relatedStateVariable': 'Reset'}}}, | |
| 'SetBinaryState': {'arguments': {'BinaryState': {'direction': 'in', | |
| 'relatedStateVariable': 'BinaryState'}}}, | |
| 'SetDeviceId': {'arguments': {'SetDeviceId': {'direction': 'in', | |
| 'relatedStateVariable': 'DeviceId'}}}, | |
| 'SetHomeId': {'arguments': {'SetHomeId': {'direction': 'in', | |
| 'relatedStateVariable': 'HomeId'}}}, | |
| 'SetLogLevelOption': {'arguments': {'Level': {'direction': 'in', | |
| 'relatedStateVariable': 'Level'}, | |
| 'Option': {'direction': 'in', | |
| 'relatedStateVariable': 'Option'}}}, | |
| 'SetMultiState': {'arguments': {'state': {'direction': 'in', | |
| 'relatedStateVariable': 'StateList'}}}, | |
| 'SetSmartDevInfo': {'arguments': {'SmartDevURL': {'direction': 'in', | |
| 'relatedStateVariable': 'SmartDevURL'}}}, | |
| 'ShareHWInfo': {'arguments': {'HomeId': {'direction': 'in', | |
| 'relatedStateVariable': 'HomeId'}, | |
| 'Mac': {'direction': 'in', | |
| 'relatedStateVariable': 'Mac'}, | |
| 'PluginKey': {'direction': 'in', | |
| 'relatedStateVariable': 'PluginKey'}, | |
| 'RestoreState': {'direction': 'in', | |
| 'relatedStateVariable': 'RestoreState'}, | |
| 'Serial': {'direction': 'in', | |
| 'relatedStateVariable': 'Serial'}, | |
| 'Udn': {'direction': 'in', | |
| 'relatedStateVariable': 'Udn'}}}}, | |
| 'controlURL': '/upnp/control/basicevent1', | |
| 'eventSubURL': '/upnp/event/basicevent1', | |
| 'fullName': 'urn:Belkin:service:basicevent:1', | |
| 'serviceId': 'urn:Belkin:serviceId:basicevent1', | |
| 'serviceStateVariables': {'BinaryState': {'allowedValueList': [], | |
| 'dataType': 'Boolean', | |
| 'sendEvents': 'N/A'}, | |
| 'DeviceIcon': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'DeviceId': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'FriendlyName': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'HomeId': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'MacAddr': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'PluginUDN': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'Reset': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'RuleOverrideStatus': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'SerialNo': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'SmartDevInfo': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'StateList': {'allowedValueList': [], | |
| 'dataType': 'list', | |
| 'sendEvents': 'N/A'}, | |
| 'URL': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'level': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'option': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}}}, | |
| 'firmwareupdate': {'SCPDURL': '/firmwareupdate.xml', | |
| 'actions': {'GetFirmwareVersion': {'arguments': {'FirmwareVersion': {'direction': 'out', | |
| 'relatedStateVariable': 'FirmwareVersion'}}}, | |
| 'UpdateFirmware': {'arguments': {'NewFirmwareVersion': {'direction': 'in', | |
| 'relatedStateVariable': 'NewFirmwareVersion'}, | |
| 'ReleaseDate': {'direction': 'in', | |
| 'relatedStateVariable': 'ReleaseDate'}, | |
| 'Signature': {'direction': 'in', | |
| 'relatedStateVariable': 'Signature'}, | |
| 'URL': {'direction': 'in', | |
| 'relatedStateVariable': 'URL'}}}}, | |
| 'controlURL': '/upnp/control/firmwareupdate1', | |
| 'eventSubURL': '/upnp/event/firmwareupdate1', | |
| 'fullName': 'urn:Belkin:service:firmwareupdate:1', | |
| 'serviceId': 'urn:Belkin:serviceId:firmwareupdate1', | |
| 'serviceStateVariables': {'FirmwareUpdateStatus': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'FirmwareVersion': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}}}, | |
| 'metainfo': {'SCPDURL': '/metainfoservice.xml', | |
| 'actions': {'GetMetaInfo': {'arguments': {}}}, | |
| 'controlURL': '/upnp/control/metainfo1', | |
| 'eventSubURL': '/upnp/event/metainfo1', | |
| 'fullName': 'urn:Belkin:service:metainfo:1', | |
| 'serviceId': 'urn:Belkin:serviceId:metainfo1', | |
| 'serviceStateVariables': {'MetaInfo': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}}}, | |
| 'remoteaccess': {'SCPDURL': '/remoteaccess.xml', | |
| 'actions': {'RemoteAccess': {'arguments': {'DeviceId': {'direction': 'in', | |
| 'relatedStateVariable': 'DeviceId'}, | |
| 'DeviceName': {'direction': 'in', | |
| 'relatedStateVariable': 'DeviceName'}, | |
| 'HomeId': {'direction': 'in', | |
| 'relatedStateVariable': 'HomeId'}, | |
| 'MacAddr': {'direction': 'in', | |
| 'relatedStateVariable': 'MacAddr'}, | |
| 'dst': {'direction': 'in', | |
| 'relatedStateVariable': 'dst'}, | |
| 'numSmartDev': {'direction': 'in', | |
| 'relatedStateVariable': 'numSmartDev'}, | |
| 'pluginprivateKey': {'direction': 'in', | |
| 'relatedStateVariable': 'pluginprivateKey'}, | |
| 'smartUniqueId': {'direction': 'in', | |
| 'relatedStateVariable': 'smartUniqueId'}, | |
| 'smartprivateKey': {'direction': 'in', | |
| 'relatedStateVariable': 'smartprivateKey'}}}}, | |
| 'controlURL': '/upnp/control/remoteaccess1', | |
| 'eventSubURL': '/upnp/event/remoteaccess1', | |
| 'fullName': 'urn:Belkin:service:remoteaccess:1', | |
| 'serviceId': 'urn:Belkin:serviceId:remoteaccess1', | |
| 'serviceStateVariables': {'"pluginprivateKey"': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| '"smartprivateKey"': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'description': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'homeId': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'numSmartDev': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'pluginprivateKey': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'resultCode': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'smartDeviceDescription': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'smartUniqueId': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'smartprivateKey': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'statusCode': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}}}, | |
| 'rules': {'SCPDURL': '/rulesservice.xml', | |
| 'actions': {'EditWeeklycalendar': {'arguments': {'action': {'direction': 'in', | |
| 'relatedStateVariable': 'action'}}}, | |
| 'GetRulesDBPath': {'arguments': {'RulesDBPath': {'direction': 'out', | |
| 'relatedStateVariable': 'RulesDBPath'}}}, | |
| 'GetRulesDBVersion': {'arguments': {'RulesDBVersion': {'direction': 'out', | |
| 'relatedStateVariable': 'RulesDBVersion'}}}, | |
| 'SetRulesDBVersion': {'arguments': {'RulesDBVersion': {'direction': 'in', | |
| 'relatedStateVariable': 'RulesDBVersion'}}}, | |
| 'UpdateWeeklyCalendar': {'arguments': {'Fri': {'direction': 'in', | |
| 'relatedStateVariable': 'Fri'}, | |
| 'Mon': {'direction': 'in', | |
| 'relatedStateVariable': 'Mon'}, | |
| 'Sat': {'direction': 'in', | |
| 'relatedStateVariable': 'Sat'}, | |
| 'Sun': {'direction': 'in', | |
| 'relatedStateVariable': 'Sun'}, | |
| 'Thurs': {'direction': 'in', | |
| 'relatedStateVariable': 'Thurs'}, | |
| 'Tues': {'direction': 'in', | |
| 'relatedStateVariable': 'Tues'}, | |
| 'Wed': {'direction': 'in', | |
| 'relatedStateVariable': 'Wed'}}}}, | |
| 'controlURL': '/upnp/control/rules1', | |
| 'eventSubURL': '/upnp/event/rules1', | |
| 'fullName': 'urn:Belkin:service:rules:1', | |
| 'serviceId': 'urn:Belkin:serviceId:rules1', | |
| 'serviceStateVariables': {'Fri': {'allowedValueList': [], | |
| 'dataType': 'Fri', | |
| 'sendEvents': 'N/A'}, | |
| 'Mon': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'RulesDBPath': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'RulesDBVersion': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}, | |
| 'Sat': {'allowedValueList': [], | |
| 'dataType': 'Sat', | |
| 'sendEvents': 'N/A'}, | |
| 'Sun': {'allowedValueList': [], | |
| 'dataType': 'Sun', | |
| 'sendEvents': 'N/A'}, | |
| 'Thurs': {'allowedValueList': [], | |
| 'dataType': 'Thurs', | |
| 'sendEvents': 'N/A'}, | |
| 'Wed': {'allowedValueList': [], | |
| 'dataType': 'string', | |
| 'sendEvents': 'N/A'}}}, | |
| 'timesync': {'SCPDURL': '/timesyncservice.xml', | |
| 'actions': {'GetTime': {'arguments': {}}, | |
| 'TimeSync': {'arguments': {'DstSupported': {'direction': 'in', | |
| 'relatedStateVariable': 'DstSupported'}, | |
| 'TimeZone': {'direction': 'in', | |
| 'relatedStateVariable': 'TimeZone'}, | |
| 'UTC': {'direction': 'in', | |
| 'relatedStateVariable': 'UTC'}, | |
| 'dst': {'direction': 'in', | |
| 'relatedStateVariable': 'dst'}}}}, | |
| 'controlURL': '/upnp/control/timesync1', | |
| 'eventSubURL': '/upnp/event/timesync1', | |
| 'fullName': 'urn:Belkin:service:timesync:1', | |
| 'serviceId': 'urn:Belkin:serviceId:timesync1', | |
| 'serviceStateVariables': {'TimeZone': {'allowedValueList': [], | |
| 'dataType': 'int', | |
| 'sendEvents': 'N/A'}, | |
| 'UTC': {'allowedValueList': [], | |
| 'dataType': 'long', | |
| 'sendEvents': 'N/A'}, | |
| 'dst': {'allowedValueList': [], | |
| 'dataType': 'Boolean', | |
| 'sendEvents': 'N/A'}}}}}}, | |
| 'name': '192.168.1.134:49153', | |
| 'proto': 'http://', | |
| 'serverType': 'Linux/2.6.21, UPnP/1.0, Portable SDK for UPnP devices/1.6.6', | |
| 'upnpServer': 'Linux/2.6.21, UPnP/1.0, Portable SDK for UPnP devices/1.6.6', | |
| 'xmlFile': 'http://192.168.1.134:49153/setup.xml'} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment