Я делаю некоторые исследования вредоносных программ для Android для атак на основе MMS. И я ищу ручной способ получить или загрузить принятое MMS-сообщение. Я надеялся найти строки 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: <your operator>
MMSC: http://mms.company.net:8002/
MMS Proxy: 194.xx.xx.xx
MMS Port: 8080
Как загрузить файл MMS из командной строки оболочки (или внешнего браузера)?
PS. Очевидно, что телефон укоренен и имеет как busybox
, так и sqlite3
, а возможно и curl
или wget
. AOS 5.0+.
Приложение: 2017-11-09
Из здесь:
Сообщения MMS (Служба мультимедийных сообщений) отправляются с использованием сочетание технологий SMS и WAP. Когда отправляется MMS-сообщение, мобильное устройство принимает сообщение уведомления MMS через SMS. когда это сообщение уведомления MMS принимается мобильным устройством, мобильное устройство автоматически инициирует соединение шлюза WAP с загрузите содержимое MMS-сообщения.
Чтобы отправить MMS-сообщение, вы должны сначала создать файл сообщения MMS. формат файла сообщения MMS документируется в инкапсуляции MMS Спецификация протокола, опубликованная Open Mobile Alliance (http://www.openmobilealliance.org) и/или WAP-форум (http://www.wapforum.org). Формат файла сообщения MMS состоит из MMS-сообщение с двоичным заголовком, а затем многостраничное сообщение MIME, где многостраничное сообщение кодируется в двоичном формате в формате определяемый спецификацией протокола WAP Wireless Session Protocol (WSP). Эта бинарный файл сообщения MMS хранится на веб-сервере с использованием типа MIME application/vnd.wap.mms-message и тип сообщения MMS м-извлечения-конф. Подмножество двоичного заголовка MMS отправляется как MMS (MMS-сообщение типа m-notification-ind) с помощью SMS-сообщения мобильное устройство вместе с указателем URL-адреса местоположения полное сообщение.
Кроме того, смартфоны еще не загружают MMS или SMS-контент на SIM-карту. Именно так использовались телефоны с функцией "функция".
Приложение: 2017-11-13
Посмотрев на источники API-23 (M) для таблиц SQLite3, показанные в Telephony.java, мы обнаружим, что
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 в ct_l
можно интерпретировать следующим образом:
-
http://mmsc32:10021
- сервер (IP: PORT), замаскированный прокси-сервером MMS (показан) выше -
/mmsc/3_2
- это URL-адрес WAP для процессора сообщений -
?Ae_xxxx_xxxxx-xxx
сообщает процессору сообщений получить сообщение, указанное "идентификатором транзакции": Ae_xxxx_xxxxx-xxx
Поэтому, используя параметры прокси-сервера (APN) и используя URL-адрес, извлеченный из DB сообщения (mmssms.db), нужно иметь возможность извлекать и загружать содержимое MMS с помощью тщательно созданного оператора curl
,
Возможно, что-то вроде:
# 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-адресе.