부제 : 공개되고 고정된 정보로부터 유도되는 패스워드
최근 수많은 Wireless Router 들이 기본적으로 WPA2 패스워드가 설정되어 출시되고 있다.
하지만 사용된 패스워드를 보면 고정적인 패스워드(1234567890 라던가…)를 사용한다.
몇몇 제품은 제품마다 다른패스워드를 부여하고 이를 본체나 매뉴얼에 표시해두는 방법을 사용하는데 살짝만 봐도 패턴이 보이는 아쉬움이 존재한다.
하나의 타겟(KM04-112H)을 잡아 기본 패스워드 유도과정을 살펴보았다.
이글(지워졌다ㅠ)에서 이미 대략적인 부분을 분석? 유추? 가 되어있다.
디바이스의 MAC 주소를 기반으로 SSID와 passphrase를 생성하는것을 알 수있다.
타겟모델인 머큐리 KM04-112H 부분을 보면 MAC이 00:27:1C:2D:85:7F인 경우 뒤의 3개 옥텟만 사용되는것을 확인할 수 있다.
좀더 확실히 하기위해서 타겟의 펌웨어를 확인해보면 cfghandler에서 기본 SSID 와 passphrase를 생성한다.
SSID는 “KT_WLAN_%1X%1X%1X%1X” 또는 “KT_WLAN_%1X%1X%1X%1X_5GHz” 포맷과$t4[0x10],$t4[0x11]$t4[0x12]를 이용하여 4자리의 ASCII를 만들어 넣는다. (t4는 1번째 인자값이다.)
t4레지스터를 구성하는 부분은 생략하고 마지막 MAC의 3옥텟이 들어있다고 가정하면
$t4[0x10] = 2D
$t4[0x11] = 85
$t4[0x12] = 7F 가 된다. 따라서 포맷의 결과는 “KT_WLAN_2D57_5GHz” 이 된다.
바로 아랫부분에 패스워드 생성하는 부분이 존재한다.
패스워드 생성부분도 SSID생성부분과 비슷하다.
“000000%02x%02x”의 포맷을 가지고 $v1[0x11], $v1[0x12]와 값을 생성한다.( v1은 1번째 인자값이다.)
$v1[0x11] = 85
$v1[0x11] = 7F 라고 보면 “000000857f” 가 패스워드가 되는것이다.
패스워드를 유추하기위한 MAC 주소는 공유기 뒷부분의 라벨에 친절하게 패스워드와 함께 쓰여있다. 따라서 물리적으로 접근이 안되면 안전하다.
passphrase의 바뀌는 부분이 2바이트이고, SSID를 통해서 1바이트를 알아낼 수 있으니 255번이내에 성공하므로 패스워드로써의 가치는 없다.
또한 타겟의 MAC 주소를 얻을 수 있는방법은 너무나도 많다.
(확인가능한 MAC은 무선랜인터페이스에 대한 MAC이다, SSID, passphrase 생성시에는 WAN 인터페이스의 MAC이 사용된다)
제조사가 달라도 패턴이 일치하는것을 봤을때 KT가 잘못했네.
나중에 심심하면 다른것은 어떻게 만드는지 확인해 보는것도 재밌을것같다.