device/dependaency_installer tries to load CORE_UTILS via apt_get but crashes on the GPG error for the biteyourapple repo
Expected behaviour
Actual behaviour
[needle][dependency_installer] > run
[] Checking connection with device...
[+] Already connected to: 192.168.1.174
[] Checking prerequisites...
[V] [INSTALL] Installing COREUTILS via apt-get.
[V] [INSTALL] Installing COREUTILS via apt-get.
[!] W: GPG error: http://repo.biteyourapple.net ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E078E9650599F353
[V] [SSH] Disconnecting...
[V] [AGENT] Disconnecting from agent...
[?] Resetting connection to device...
[V] [AGENT] Connecting to agent (192.168.1.174:4444)...
[+] [AGENT] Successfully connected to agent (192.168.1.174:4444)...
Steps to reproduce
use device/dependancy_installer
set all true
run
needle error logs
[needle] > use device/dependency_installer
[needle][dependency_installer] > run
[] Checking connection with device...
[+] Already connected to: 192.168.1.174
[] Checking prerequisites...
[V] [INSTALL] Installing COREUTILS via apt-get.
[V] [INSTALL] Installing COREUTILS via apt-get.
[!] W: GPG error: http://repo.biteyourapple.net ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E078E9650599F353
[V] [SSH] Disconnecting...
[V] [AGENT] Disconnecting from agent...
[?] Resetting connection to device...
[V] [AGENT] Connecting to agent (192.168.1.174:4444)...
[+] [AGENT] Successfully connected to agent (192.168.1.174:4444)...
hangs and does nothing
[needle][dependency_installer] > back
[needle] > set debug true
DEBUG => true
[needle] > set verbose true
VERBOSE => true
[needle] >
[needle] > use device/dependency_installer
[needle][dependency_installer] > run
[*] Checking connection with device...
[+] Already connected to: 192.168.1.174
[D] Creating temp folder: /var/root/needle/
[D] [REMOTE CMD] Remote Command: if [ -d /var/root/needle/ ]; then echo "yes"; else echo "no" ; fi
[!] 'NoneType' object has no attribute 'open_session'
[V] [SSH] Disconnecting...
[V] [AGENT] Disconnecting from agent...
[?] Resetting connection to device...
[V] [AGENT] Connecting to agent (192.168.1.174:4444)...
[+] [AGENT] Successfully connected to agent (192.168.1.174:4444)...
[D] [AGENT] Executing command: os_version
hangs and does nothing
[needle][dependency_installer] > back
[needle] >
[needle] > use device/dependency_installer
[needle][dependency_installer] > set all true
ALL => true
[needle][dependency_installer] > run
[*] Checking connection with device...
[+] Already connected to: 192.168.1.174
[D] Creating temp folder: /var/root/needle/
[D] [REMOTE CMD] Remote Command: if [ -d /var/root/needle/ ]; then echo "yes"; else echo "no" ; fi
[!] 'NoneType' object has no attribute 'open_session'
[V] [SSH] Disconnecting...
[V] [AGENT] Disconnecting from agent...
[?] Resetting connection to device...
[V] [AGENT] Connecting to agent (192.168.1.174:4444)...
[+] [AGENT] Successfully connected to agent (192.168.1.174:4444)...
[D] [AGENT] Executing command: os_version
hangs and does nothing
[needle][dependency_installer] >
[needle][dependency_installer] > back
[needle] > set agent_port 4445
AGENT_PORT => 4445
[needle] >
[needle] > use device/dependency_installer
[needle][dependency_installer] > run
[*] Checking connection with device...
[+] Already connected to: 192.168.1.174
[D] Creating temp folder: /var/root/needle/
[D] [REMOTE CMD] Remote Command: if [ -d /var/root/needle/ ]; then echo "yes"; else echo "no" ; fi
Traceback (most recent call last):
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/framework/module.py", line 111, in do_run
pre = self.module_pre()
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/modules/device/dependency_installer.py", line 35, in module_pre
return BaseModule.module_pre(self, bypass_app=True)
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/framework/module.py", line 139, in module_pre
self.device.setup()
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/device.py", line 235, in setup
self.remote_op.dir_create(self.TEMP_FOLDER)
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/remote_operations.py", line 63, in dir_create
if not self.dir_exist(path):
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/remote_operations.py", line 56, in dir_exist
out = self.command_blocking(cmd, internal=True)
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/remote_operations.py", line 94, in command_blocking
out, err = self._device._exec_command_ssh(cmd, internal)
File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/utils/utils.py", line 211, in wrapper
raise Exception("An error occurred and it was not possible to restore it ({} attempts failed)".format(self.tries))
Exception: An error occurred and it was not possible to restore it (3 attempts failed)
[!] Exception: An error occurred and it was not possible to restore it (3 attempts failed)
[needle][dependency_installer] >
Issue
device/dependaency_installer tries to load CORE_UTILS via apt_get but crashes on the GPG error for the biteyourapple repo
Expected behaviour
Actual behaviour
[needle][dependency_installer] > run [] Checking connection with device... [+] Already connected to: 192.168.1.174 [] Checking prerequisites... [V] [INSTALL] Installing COREUTILS via apt-get. [V] [INSTALL] Installing COREUTILS via apt-get. [!] W: GPG error: http://repo.biteyourapple.net ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E078E9650599F353
[V] [SSH] Disconnecting... [V] [AGENT] Disconnecting from agent... [?] Resetting connection to device... [V] [AGENT] Connecting to agent (192.168.1.174:4444)... [+] [AGENT] Successfully connected to agent (192.168.1.174:4444)...
Steps to reproduce
needle error logs
[needle] > use device/dependency_installer [needle][dependency_installer] > run [] Checking connection with device... [+] Already connected to: 192.168.1.174 [] Checking prerequisites... [V] [INSTALL] Installing COREUTILS via apt-get. [V] [INSTALL] Installing COREUTILS via apt-get. [!] W: GPG error: http://repo.biteyourapple.net ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E078E9650599F353
[V] [SSH] Disconnecting... [V] [AGENT] Disconnecting from agent... [?] Resetting connection to device... [V] [AGENT] Connecting to agent (192.168.1.174:4444)... [+] [AGENT] Successfully connected to agent (192.168.1.174:4444)... hangs and does nothing
[needle][dependency_installer] > back [needle] > set debug true DEBUG => true [needle] > set verbose true VERBOSE => true [needle] > [needle] > use device/dependency_installer [needle][dependency_installer] > run [*] Checking connection with device... [+] Already connected to: 192.168.1.174 [D] Creating temp folder: /var/root/needle/ [D] [REMOTE CMD] Remote Command: if [ -d /var/root/needle/ ]; then echo "yes"; else echo "no" ; fi [!] 'NoneType' object has no attribute 'open_session' [V] [SSH] Disconnecting... [V] [AGENT] Disconnecting from agent... [?] Resetting connection to device... [V] [AGENT] Connecting to agent (192.168.1.174:4444)... [+] [AGENT] Successfully connected to agent (192.168.1.174:4444)... [D] [AGENT] Executing command: os_version hangs and does nothing
[needle][dependency_installer] > back [needle] > [needle] > use device/dependency_installer [needle][dependency_installer] > set all true ALL => true [needle][dependency_installer] > run [*] Checking connection with device... [+] Already connected to: 192.168.1.174 [D] Creating temp folder: /var/root/needle/ [D] [REMOTE CMD] Remote Command: if [ -d /var/root/needle/ ]; then echo "yes"; else echo "no" ; fi [!] 'NoneType' object has no attribute 'open_session' [V] [SSH] Disconnecting... [V] [AGENT] Disconnecting from agent... [?] Resetting connection to device... [V] [AGENT] Connecting to agent (192.168.1.174:4444)... [+] [AGENT] Successfully connected to agent (192.168.1.174:4444)... [D] [AGENT] Executing command: os_version hangs and does nothing
[needle][dependency_installer] > [needle][dependency_installer] > back [needle] > set agent_port 4445 AGENT_PORT => 4445 [needle] > [needle] > use device/dependency_installer [needle][dependency_installer] > run [*] Checking connection with device... [+] Already connected to: 192.168.1.174 [D] Creating temp folder: /var/root/needle/ [D] [REMOTE CMD] Remote Command: if [ -d /var/root/needle/ ]; then echo "yes"; else echo "no" ; fi
Traceback (most recent call last): File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/framework/module.py", line 111, in do_run pre = self.module_pre() File "/Users/ben/Documents/ios/iosation/tools/needle/needle/modules/device/dependency_installer.py", line 35, in module_pre return BaseModule.module_pre(self, bypass_app=True) File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/framework/module.py", line 139, in module_pre self.device.setup() File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/device.py", line 235, in setup self.remote_op.dir_create(self.TEMP_FOLDER) File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/remote_operations.py", line 63, in dir_create if not self.dir_exist(path): File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/remote_operations.py", line 56, in dir_exist out = self.command_blocking(cmd, internal=True) File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/device/remote_operations.py", line 94, in command_blocking out, err = self._device._exec_command_ssh(cmd, internal) File "/Users/ben/Documents/ios/iosation/tools/needle/needle/core/utils/utils.py", line 211, in wrapper raise Exception("An error occurred and it was not possible to restore it ({} attempts failed)".format(self.tries)) Exception: An error occurred and it was not possible to restore it (3 attempts failed)
[!] Exception: An error occurred and it was not possible to restore it (3 attempts failed) [needle][dependency_installer] >
Environment
Needle Version
Workstation Operating System
High Sierra 10.13.6
Python Version
2.7.15
Python Packages (
pip freeze
)asn1crypto==0.23.0 backports-abc==0.5 bcrypt==3.1.4 beautifulsoup4==4.6.3 biplist==1.0.3 bs4==0.0.1 certifi==2017.11.5 cffi==1.11.5 chardet==3.0.4 colorama==0.3.9 configparser==3.5.0 cryptography==2.1.3 Django==1.11.7 enum34==1.1.6 frida==12.0.8 frida-tools==1.1.0 idna==2.6 ipaddress==1.0.22 lxml==4.1.1 packaging==18.0 paramiko==2.4.2 pdfkit==0.6.1 pexpect==4.6.0 prompt-toolkit==1.0.15 protobuf==3.5.1 ptyprocess==0.6.0 pyasn1==0.4.4 pycparser==2.19 Pygments==2.2.0 PyNaCl==1.3.0 pyOpenSSL==17.3.0 pyparsing==2.2.2 pytz==2017.3 pyxdg==0.25 requests==2.18.4 rsa==3.4.2 singledispatch==3.4.0.3 six==1.11.0 sshtunnel==0.1.4 style==1.1.0 tornado==4.5.2 update==0.0.1 urllib3==1.22 wcwidth==0.1.7 wxPython==3.0.2.0 wxPython-common==3.0.2.0 zim==0.65
Device iOS Version
10.0.2