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 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 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