作者:胆小的女屌丝 | 来源:互联网 | 2023-02-03 11:58
我正在针对基于MMS的攻击进行一些Android恶意软件研究.我正在寻找一种手动方式来检索或下载收到的彩信.我希望能找到一些curl
或一些wget
能够做到这一点,但没有找到任何有用的东西.
到目前为止,我从内部数据库获得了一些MMS信息,发现者:
# find / -iname "*.db" |grep -iE "mms|sms"
...
/data/data/com.android.providers.telephony/databases/mmssms.db
/data/data/com.google.android.gms/databases/icing_mmssms.db
/data/data/com.android.mms/databases/message.db
/data/data/com.android.mms/databases/message_glance.db
# cd /data/data/com.android.providers.telephony/databases/
# echo "select * from pdu;" | sqlite3 -header mmssms.db
...
# echo "select date,sub,ct_l,tr_id from pdu;" | sqlite3 -header mmssms.db
date|sub|ct_l|tr_id
1495xxxxxx|Download this message|http://mmsc32:10021/mmsc/3_2?Ae_xxxx_xxxxx-xxx|Ae_xxxx_xxxxx-xxx
如何解读这mmsc32:10021
部分?
然后查看消息设置MMSC
,Proxy
并且port
,我想构建一个有效的CLI单行或浏览器请求,下载文件进行检查.
在手机设置设置中,我们可以通过以下方式找到MMSC:
Settings > More > Mobile network > Access Point Names > MMS:
MMSC: http://mms.company.net:8002/
MMS Proxy: 194.xx.xx.xx
MMS Port: 8080
如何从shell命令行(或外部浏览器)下载MMS文件?
PS.显然,手机是植根并兼得busybox
和sqlite3
,或许也curl
或wget
安装.AOS是5.0+.
附录:2017-11-09
从这里:
MMS(多媒体消息服务)消息使用SMS和WAP技术的组合发送.当发送MMS消息时,移动设备通过SMS接收MMS通知消息.当移动设备接收到该MMS通知消息时,移动设备自动发起WAP网关连接以下载MMS消息的内容.
要发送彩信,您必须先创建彩信消息文件.MMS消息文件的格式记录在开放移动联盟(http://www.openmobilealliance.org)和/或WAP论坛(http://www.wapforum.org)发布的MMS封装协议规范中.MMS消息文件格式包括MMS消息二进制头,后面是多部分MIME消息,其中多部分消息以WAP无线会话协议(WSP)规范定义的二进制多部分格式编码.该二进制MMS消息文件使用MIME类型的application/vnd.wap.mms-message和MMS消息类型m-retrieve-conf存储在Web服务器上.二进制MMS报头的子集作为MMS通知消息(MMS消息类型m-notification-ind)经由SMS与指向完整消息的位置的URL指针一起发送到移动设备.
此外,智能手机不再将MMS或SMS内容下载到SIM卡.这就是"功能"手机用来做这件事的方式.
附录:2017-11-13
查看Telephony.java中显示的SQLite3表的API-23(M)源,我们发现
CONTENT_LOCATION = "ct_l";
,因此我们可以在此处搜索其他用途.简要总结一下我们的发现:
date # The message delivery time.
sub # The subject of the message, if present.
ct_l # The Content-Location of the message. A field in interface:Telephony.BaseMmsColumns
tr_id # The transaction-id of the message.
因此,我们可以预期URI in ct_l
可以解释如下:
http://mmsc32:10021
是由上面的MMS代理(如图所示)屏蔽的服务器(IP:PORT)
/mmsc/3_2
是消息处理器的WAP URL
?Ae_xxxx_xxxxx-xxx
告诉消息处理器检索由"事务ID"给出的消息:Ae_xxxx_xxxxx-xxx`
因此,使用代理(APN)设置,并使用从消息DB(mmssms.db)中提取的URL ,应该能够使用精心设计的curl
语句检索和下载MMS的内容.也许是这样的:
# curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
curl -v -x http://194.xx.xx.xx:8080 -L http://mmsc32:10021/mmsc/3_2?Ae_xxxx_xxxxx-xxx
# Or from outside local net:
curl -v -x http://mms.company.net:8002 -L http://mmsc32:10021/mmsc/3_2?Ae_xxxx_xxxxx-xxx
第一个显然无法在电话环境之外工作,因为它指的是IP类C,仅在移动分配的IP中可见.