EggShell是一款基于Python编写的iOS和macOS的后渗透利用工具。它有点类似于metasploit,我们可以用它来创建payload建立侦听。此外,在反弹回的session会话也为我们提供了许多额外的功能。例如文件的上传/下载,拍照,定位,shell命令执行,权限维持,提权,密码检索等。在服务器通信方面EggShell则采用了128位AES端到端的加密,并同时能够处理多个客户端程序。这是一个概念验证工具,适用于在你自己的机器上使用。有关更多详细信息请访问:http://lucasjackson.me/eggshell 。
创建并运行一个Payload程序
在我们本地机器上,我们选择3选项来创建一个Payload并建立本地侦听。
在目标机器上运行有效载荷后,我们将获取到一个回连。
拍照
Eggshell具有在iOS(frontcam前置/backcam后置摄像头)和macOS(picture)上拍照的命令和功能。
密码提示/root权限
通过prompt命令,我们将会看到一个密码弹出信息检索+内置提权。
通过iMessage发送短信
与多个会话进行交互
MultiSession使我们能够轻松的访问交互和管理多个有效会话。
演示
EverythingApplePro的视频展示了用于运行EggShell的iOS 9.3.3 Webkit漏洞。
安装
git clone https://github.com/neoneggplant/EggShell && cd EggShell
easy_install pycrypto
python eggshell.py
iOS命令:
- sysinfo:获取系统信息
- cd:更改目录
- ls:列出目录内容
- rm:删除文件
- pwd:查看当前目录
- download:下载文件
- upload:上传文件
- frontcam:开启前置摄像头拍照
- backcam:开启后置摄像头拍照
- mic:对麦克风录音
- getpid:获取进程id
- vibrate:使设备振动
- alert:在设备上弹出警告框
- say:让设备发声
- locate:获取设备位置信息
- respring:呼叫设备
- setvol:设置媒体播放器音量
- getvol:查看媒体播放器音量
- isplaying:查看媒体播放器信息
- openurl:在设备上打开URL
- dial:在设备上拨打号码
- getsms:下载短信数据库
- getnotes:下载备忘录数据库
- getcontacts:下载通讯录
- battery:查看电池电量
- listapps:标识符列表
- open:打开APP
- persistence:安装LaunchDaemon – 尝试每30秒连接一次
- rmpersistence:卸载LaunchDaemon
- installpro:将egghellpro安装到设备
EggShell Pro命令(iOS)
- lock:模拟锁按钮
- wake:将设备从睡眠状态唤醒
- home:模拟home按钮
- doublehome:模拟home按钮双击
- play:播放音乐
- pause:暂停音乐
- next:下一曲
- prev:上一曲
- togglemute:以编程方式切换静音开关
- ismuted:检查是否被静音
- islocked:检查设备是否被锁定
- getpasscode:记录成功的iOS 锁屏密码尝试
- unlock:用密码解锁
- keylog:键盘记录
- keylogclear:清除键盘记录器数据
- locationservice:打开或关闭位置服务
macOS命令
- cd:更改目录
- ls:列出目录内容
- rm:删除文件
- pwd:查看当前目录
- download:下载文件
- upload:上传文件
- getpaste:获取剪贴板内容
- mic:对麦克风录音
- picture:通过iSight拍照
- screenshot:截图
- getfacebook:检索Facebook会话cookie
- brightness:调整屏幕亮度
- getvol:获取输出音量
- setvol:设置输出音量
- idletime:获取键盘/光标被触摸后的空闲时间
- keyboard:将目标键盘的控制权移交至你的键盘
- imessage:通过邮件应用发送消息
- openurl:通过默认浏览器打开URL
- play:播放iTunes
- pause:暂停iTunes
- prev:让iTunes播放上一曲目
- next:让iTunes播放下一曲目
- pid:获取进程id
- prompt:提示用户输入密码
- su:su登录
- persistence:尝试每60秒连接一次
- rmpersistence:终止持久连接操作
本地命令
- lls:列出本地目录内容
- lcd:更改本地目录
- lpwd:查看当前的本地目录
- lopen:打开本地目录
- clear:清除终端
https://github.com/neoneggplant/EggShell