冷知识:Android 中的非 root 用户也可以用系统 shell 命令,如 am pm 等。
在 termux 等虚拟终端中使用 pm 等命令会提示
因此在没有任何特权的情况下访问 shell command 的正确姿势是提供系统可访问的 fd ,一般来说 app 域的 pipe 都可以被系统访问,因为系统和 app 可能需要通过 pipe 通信。在 shell 中最简单的方法如下(图 2):
思考题(请大家思考,欢迎留言):
0. 这样访问 shell command 是以 shell 的身份还是 app 的身份?是否构成安全威胁?
1. 重定向到文件是否可以正常访问 shell command?App 私有存储(/data)或者扩展存储(/sdcard) 哪一个可用?
2. pm install 命令对传入的 apk 路径同样有权限的要求,请尝试解释原因。
3. 为什么安装了 ksu 或 apatch 后上述限制就消失了?
相关
在 termux 等虚拟终端中使用 pm 等命令会提示
service: Failure calling service xxx
(图1),这并非是说普通 uid 不可使用 shell command ,实际上是因为 shell command 是一个 binder 调用,它会发送调用进程的 stdin, stdout, stderr ,也就是 fd 0, 1, 2 到系统服务,但是如果这三个 fd 有某个是系统服务无法访问的,就会导致 binder 调用失败。一般来说,SELinux 会导致 fd 传递失败。app 域的 devpts 是无法被系统服务访问的,因为没有相关的规则。因此在没有任何特权的情况下访问 shell command 的正确姿势是提供系统可访问的 fd ,一般来说 app 域的 pipe 都可以被系统访问,因为系统和 app 可能需要通过 pipe 通信。在 shell 中最简单的方法如下(图 2):
pm </dev/null 2>&1 | cat
思考题(请大家思考,欢迎留言):
0. 这样访问 shell command 是以 shell 的身份还是 app 的身份?是否构成安全威胁?
1. 重定向到文件是否可以正常访问 shell command?App 私有存储(/data)或者扩展存储(/sdcard) 哪一个可用?
2. pm install 命令对传入的 apk 路径同样有权限的要求,请尝试解释原因。
3. 为什么安装了 ksu 或 apatch 后上述限制就消失了?
相关
tgoop.com/real5ec1cff/194
Create:
Last Update:
Last Update:
冷知识:Android 中的非 root 用户也可以用系统 shell 命令,如 am pm 等。
在 termux 等虚拟终端中使用 pm 等命令会提示
因此在没有任何特权的情况下访问 shell command 的正确姿势是提供系统可访问的 fd ,一般来说 app 域的 pipe 都可以被系统访问,因为系统和 app 可能需要通过 pipe 通信。在 shell 中最简单的方法如下(图 2):
思考题(请大家思考,欢迎留言):
0. 这样访问 shell command 是以 shell 的身份还是 app 的身份?是否构成安全威胁?
1. 重定向到文件是否可以正常访问 shell command?App 私有存储(/data)或者扩展存储(/sdcard) 哪一个可用?
2. pm install 命令对传入的 apk 路径同样有权限的要求,请尝试解释原因。
3. 为什么安装了 ksu 或 apatch 后上述限制就消失了?
相关
在 termux 等虚拟终端中使用 pm 等命令会提示
service: Failure calling service xxx
(图1),这并非是说普通 uid 不可使用 shell command ,实际上是因为 shell command 是一个 binder 调用,它会发送调用进程的 stdin, stdout, stderr ,也就是 fd 0, 1, 2 到系统服务,但是如果这三个 fd 有某个是系统服务无法访问的,就会导致 binder 调用失败。一般来说,SELinux 会导致 fd 传递失败。app 域的 devpts 是无法被系统服务访问的,因为没有相关的规则。因此在没有任何特权的情况下访问 shell command 的正确姿势是提供系统可访问的 fd ,一般来说 app 域的 pipe 都可以被系统访问,因为系统和 app 可能需要通过 pipe 通信。在 shell 中最简单的方法如下(图 2):
pm </dev/null 2>&1 | cat
思考题(请大家思考,欢迎留言):
0. 这样访问 shell command 是以 shell 的身份还是 app 的身份?是否构成安全威胁?
1. 重定向到文件是否可以正常访问 shell command?App 私有存储(/data)或者扩展存储(/sdcard) 哪一个可用?
2. pm install 命令对传入的 apk 路径同样有权限的要求,请尝试解释原因。
3. 为什么安装了 ksu 或 apatch 后上述限制就消失了?
相关
BY 5ec1cff
Share with your friend now:
tgoop.com/real5ec1cff/194