MITM Exception: восходящий хост, ноль, при перехвате собственного трафика приложений Android с помощью BrowserMob - PullRequest
0 голосов
/ 10 сентября 2018

Я работал над требованием контролировать и перехватывать собственный трафик приложений на мобильном устройстве с помощью прокси-сервера MITM. Я решил использовать BrowserMob Proxy из-за его поддержки API.
Ниже приведены мои настройки
BMP версия 2.1.5 https://github.com/lightbody/browsermob-proxy
Мобильное устройство - OnePlus 2 Android v 6.0.1
Прокси, настроенный на мобильном телефоне с помощью Drony https://play.google.com/store/apps/details?id=org.sandroproxy.drony&hl=en_IN

Я установил сертификат BMP SSL на мобильное устройство И мобильный, и хост BMP находятся в одной сети WiFi Я не могу установить соединение между BMP и мобильным устройством. Мне удалось отслеживать трафик через Charles Proxy, но я не могу разрешить проблемы с настройкой BMP
Получение следующей ошибки в логах BMP

`WARNING: An exception was thrown by org.littleshoot.proxy.impl.ConnectionFlow$2.operationComplete()
net.lightbody.bmp.mitm.exception.MitmException: Error creating SSLEngine for connection to client to impersonate upstream host: null
at net.lightbody.bmp.mitm.manager.ImpersonatingMitmManager.clientSslEngineFor(ImpersonatingMitmManager.java:227)
at org.littleshoot.proxy.impl.ProxyToServerConnection$3.execute(ProxyToServerConnection.java:724)
at org.littleshoot.proxy.impl.ConnectionFlow.doProcessCurrentStep(ConnectionFlow.java:140)
at org.littleshoot.proxy.impl.ConnectionFlow.processCurrentStep(ConnectionFlow.java:128)
at org.littleshoot.proxy.impl.ConnectionFlow.advance(ConnectionFlow.java:90)
at org.littleshoot.proxy.impl.ConnectionFlowStep.onSuccess(ConnectionFlowStep.java:83)
at org.littleshoot.proxy.impl.ConnectionFlow$2.operationComplete(ConnectionFlow.java:149)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424)
at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:162)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:30)
at org.littleshoot.proxy.impl.ConnectionFlow.doProcessCurrentStep(ConnectionFlow.java:140)
at org.littleshoot.proxy.impl.ConnectionFlow.access$000(ConnectionFlow.java:14)
at org.littleshoot.proxy.impl.ConnectionFlow$1.run(ConnectionFlow.java:124)
at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
at io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:73)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:446)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:888)
at com.google.common.cache.LocalCache.get(LocalCache.java:3849)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4712)
at net.lightbody.bmp.mitm.manager.ImpersonatingMitmManager.getHostnameImpersonatingSslContext(ImpersonatingMitmManager.java:242)
at net.lightbody.bmp.mitm.manager.ImpersonatingMitmManager.clientSslEngineFor(ImpersonatingMitmManager.java:223)
... 22 more`

Кто-нибудь может подсказать, как мы можем решить эту ошибку?

...