Python paramiko 环境变量问题

894 阅读1分钟

场景:使用Python 利用dumpdecrypted.dylib自动化脱壳

安装: Mac环境下 直接sudo pip install paramiko , 估计会缺少pip 环境, 那就先安装pip , easy_install pip

1.使用paramiko 用ssh连接iPhone
2.ssh.exec_command("DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib;echo $DYLD_INSERT_LIBRARIES")
3.发现echo $DYLD_INSERT_LIBRARIESs 是空的 空的 空

1.想了很多方案, 与试验 , 最后自己创建了一个.bashrc文件,文件里写export DYLD_INSERT_LIBRARIES=/var/tmp/dumpdecrypted.dylib

4.ssh.exec_command("su mobile;source ~/.bashrc")
5.结果卡在这了, 卡主了, 卡主, 卡

2.发现是su mobile 他出的问题 ,也就是说在用paramiko切换用户的时候并不是简单的su mobile /su root就可以的 ,代码如下(有问题直接百度就找到了)

channel = ssh.invoke_shell()  
    try:  
      channel.send("su mobile\n")  
      while not channel.recv_ready():  
        print "Working..."  
        time.sleep(2) 
      print channel.recv(1024)
        # channel.send("whoami\n")   
        # break
      channel.send("cd /var/tmp;source ~/.bashrc;/private/var/containers/Bundle/Application/0E2E526C-BFD5-4863-879A-504C0FF010B6/XXX.app/XXX\n")  
      while not channel.recv_ready():  
        print "Authenticating..."  
        time.sleep(2)
      print channel.recv(1024)  
    except Exception, e:
      print e

3.搞定