티스토리 뷰

 

앞서 구축한 RabbitMQ Broker 서버와 MQTT Client를 이용하여 publish/subscribe 하고 burpsuite로 통신 과정을 확인한다.

> Ubuntu에 RabbitMQ 서버 구축하기 (tistory.com)

 

[테스트 환경]

MQTT Client : MQTT.fx 1.7.1 (Debian 5.10.13), MQTT Client (Android 7.0)

RabbitMQ Broker Server : Ubuntu 18.04, RabbitMQ 3.9.1, Erlang 24.0.5

 

1. MQTT Client 설치 및 테스트 (Debian)

1)MQTT.fx 설치

- 환경에 맞는 MQTT.fx를 다운로드하여 설치한다.

- 설치 주소 : jensd.de/apps/mqttfx/1.7.1/

// deb 파일 설치
# sudo dpkg -i *deb

 

2) MQTT.fx 설정

- 설치한 MQTT.fx를 실행하여 이전에 구축한 브로커 서버의 주소로 설정한다.

 

3) publish 테스트

- 설정한 브로커서버에 연결한 후, publish를 시도한다.

 

- topic 형태의 publish가 들어온 것을 확인할 수 있다.

 

2. MQTT Client 설치 및 테스트 (Android 7.0)

1) MQTT Client 설치

- 플레이스토어에서 MQTT Client를 설치한다.

 

2) MQTT Client 설정

- 설치한 MQTT Client를 실행하여 이전에 구축한 브로커 서버의 주소로 설정한다.

3) publish 테스트

- 설정한 브로커서버에 연결한 후, publish를 시도한다.

 

- 브로커 서버에서 publish를 확인할 수 있다.

 

3. MQTT 통신 Burpsuite로 확인하기

MQTT 클라이언트와 브로커서버 사이의 통신을 로컬PC에서 Burpsuite를 이용하여 확인하기 위해 mitm 설정을 해준다.

(안드로이드도 adb로 접속하여 동일하게 설정한다.)

 

1) iptables 설정

- MQTT 클라이언트가 설치된 칼리리눅스에서 iptables 설정을 한다.

# iptables -A OUTPUT -t nat -p tcp -d {mqtt server ip} --dport {mqtt server port} -j DNAT --to-destination {local ip:port}

mqtt server ip -> 구축한 브로커 서버 IP
mqtt server port -> 구축한 브로커 서버 port (1883)
local ip:port -> burpsuite를 이용할 로컬PC의 IP와 relay 받아올 임의의 port

 

2) mitm_relay 다운로드 및 실행

- Burpsuite를 이용할 pc에 mitm_relay를 다운로드하여 실행한다.

- 다운로드 주소: github.com/jrmdev/mitm_relay

 

cmd> python mitm_relay.py -l {local ip} -p 127.0.0.1:8080 -r {port:mqtt server ip:mqtt server port}

local ip -> 로컬PC IP
port -> iptables에서 설정했던 relay port
mqtt server ip -> MQTT 브로커 서버 IP
mqtt server port -> MQTT 브로커 서버 port (1883)

 

3) burpsuite 실행

- burpsuite 프록시 설정 후 mqtt 통신을 확인할 수 있다.

 

4. 두개의 client로 publish/subscribe 통신

칼리리눅스와 안드로이드 환경으로 두개의 MQTT Client 환경을 구성하였다.

같은 브로커서버를 이용하여 한쪽은 publish를 하고 한쪽은 subscribe하여 메세지를 받아오도록 테스트하였다.

 

1) MQTT Client - publish

모바일에 구축한 MQTT Client로 publish 한다.

 

2) MQTT Client - subscribe

칼리리눅스에 구축한 MQTT Client로 subscribe 하면, publish 메시지를 받아오는 것을 확인할 수 있다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday