본문 바로가기

새로운 블로그로 이전합니다
구글블로그 / 네이버블로그
(자료도 점차 이전할 계획입니다.)


연구, 개발/연구성과

무선 랜카드 맥주소 변경하기 (윈도우 파워쉘)

by devsp 2020. 7. 3.



무선 랜카드 맥주소 변경하기 (윈도우 파워쉘 활용)

Wireless LAN card's Mac address spoofing (using Powershell in Windows)

 

* PC환경에 최적화되어있습니다.

 

★ 경고 ★

이 정보를 악용하여 발생하는 문제에 대한

책임은 사용자 본인에게 있습니다.

 

맥주소 변경방법 검색

ㄴ알려져 있는 맥 주소 변경하는 방법(검색)

 

맥주소 변경 실제

ㄴ실제로 들어가봤지만 수정불가(목록 없음)

 

검색해서 찾아본 자료대로 맥주소가 변경되지 않고,

(드라이버를 최신으로 업데이트해도 마찬가지로 안됨)

리눅스에 사용되는 mac changer 또한 제대로 동작하지 않아서

직접 맥주소를 변경할 수 있는 스크립트를 제작해보았습니다.

 

* 유튜브에서 regedit로 맥주소를 바꾸는 영상을 참고했고,
  (유튜브에 'regedit mac address'로 검색해보세요)

  그것을 응용하여 좀 더 편하게 맥 주소를 바꿀 수 있는 스크립트를 제작했습니다.

 

★ 윈도우 파워쉘을 활용하여 무선랜카드의 맥주소를 변경합니다.

    해당 스크립트는 아래의 TXT 파일을 통해서 얻을 수 있습니다.

 

 

[ 스크립트 자료 ]

 

- 2020.6.3 버그픽스

 

파워쉘 맥주소 변경 스크립트(배포용)-bugfix.txt
0.00MB
Powershell Mac Spoofing Script-bugfix.txt
0.00MB

 

[ 준비물 및 실험환경 ]

 

준비물 : 무선랜카드(USB타입), 공유기(IPTIME)

실험환경 : Windows 10 Home, Powershell ISE

 

 

 

[ 영상확인 + 맥주소 차단우회 시연]

 

 

 

 

[ 사용방법 ]

 

1. Powershell ISE를 관리자권한으로 실행한다.
    (파워쉘은 윈도우에 자체적으로 설치되어있음)

 

2. 다운받은 스크립트를 하얀부분에 복붙한다.

 

3. 네트워크 속성 > 어댑터 설정 변경에서 "랜카드 설명 확인"

 * 불필요한 랜카드는 미리 제외하거나 변경할 랜카드를 미리 확인

 

4. regedit(레지스트리 편집기)를 실행하고,

HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}

경로에서, 0000부터 존재하는 숫자까지 DriverDesc를 확인한다.

 

5. DriverDesc와 3번이 일치하는 것을 확인하여 000N을 지정한다.

   * 스크립트의 $lan에 해당하고, 따옴표(")안에 집어넣으면 됨

 

6. 각 어댑터에 적힌 3줄의 문장 중, 맨 위것을 $name에 입력

 

7. cmd를 실행하고 "getmac /v /fo list"를 입력한 후,
해당하는 맥주소를
$denial_mac에 입력한다.
(* 맥주소의 -(빼기)는 제외하고 입력)

 

8. Powershell ISE에서 녹색버튼(F5)을 눌러 스크립트를 실행한다.

 

9. 바뀐 맥주소가 표시되면, cmd에서 "getmac /v /fo list"를
입력하여
맥주소가 바뀌었는지 확인한다.

 

 

+ 21.03.29 추가

[ 임의의 맥주소를 사용하는 방법 ]

 

* 사용자가 임의의 형태로 완전히 바꿀 수는 없음.

구글에 '맥주소 벤더'라고 검색하면
제조사별 Mac주소 앞 3자리를 구할 수 있음.

(AABBCCDDEEFF에서 AABBCC까지만 지정가능)

 

* 제조사별 맥주소 찾는 사이트

링크 : uic.win/ko/mac/

 

MAC 주소 검색

MAC 주소에서 업체 정보를 표시 할 수 있습니다. 업체 정보는 매일 업데이트하고 있습니다.

uic.win

'$mac'에 찾아낸 제조사 맥주소 3자리를 넣고
($mac = "AABBCC"; 와 같은 식으로)
$i -lt 12를 $i -lt 6으로 바꾸면
제조사 부분은 원하는대로 바꿀 수 있다.

 

 

[ 그림 설명 ]

맥주소 변경 이미지 설명

ㄴ 변수 입력하기

 

맥주소 변경 이미지 설명2

ㄴ 변수 입력하기 2

 

변경여부 확인

ㄴ 맥 주소 변경여부 확인

 

 

[ 오류 대처 방법 ]

 

0. regedit에서 설정 값을 잘못 지웠습니다.

-> 드라이버 제거 후, 재연결하여 드라이버 재설치.

    (* 000N 안에 있는 키 이외의 문제는 대처 불가...)

 

1. 맥주소 변경이 바뀔 때도 있고 바뀌지 않을 때도 있습니다.

- 2020.6.3 버그픽스

맥주소 변경실패

ㄴ cmd에서 확인 시, 바뀌지 않은 원인

 

맥주소 변경실패 대응

ㄴ 오류테스트 결과 및 조치방법

 

해당 사항에 대해 스크립트에 내용을 추가했습니다.

오류 테스트 부분에서 첨부 이미지와 같이 맥주소 이외의 형식이

표시되는 경우, -index 옆의 숫자값을 적당히 바꿔주면 됩니다.

테스트 스크립트를 활용하여 수정여부를 확인가능합니다.

 

2. 사용 가능한 데이터가 없습니다.

오류사례1

변수를 정상적으로 입력하지 않은 경우 발생.

(실행 완료해도 정상적인 사용불가)

설명에 따라 올바른 변수를 입력하면 됨.

 

* 이 과정에서 잘못 생성된 키를 제거하려면,

  HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}

  이 경로 자체에 만들어진 NetworkAddress를 삭제하면 됨.

 

3. ... 경로에 없습니다. (빨간색 오류구문)

오류사례2

스크립트를 처음 실행하여,

지정한 레지스트리 경로에 NetworkAddress없어서 발생.

실행에는 이상없음. (스크립트 자체적으로 키를 생성함)

 

4. 맥주소 변경이 안됩니다. (CMD, 공유기로 확인결과 안바뀐 경우)

오류사례3

getmac /v /fo list로 확인을 했을때, 맥 주소가 바뀌지 않았다면

맥 주소가 바뀔 때까지 스크립트를 실행해주면 됩니다.

 

* 버그를 픽스하여 스크립트를 교정했지만, 바뀌지 않은 경우

  스크립트를 한번 더(바뀔 때까지) 돌려주면 됩니다.

 

5. 맥주소를 원상복구하고 싶습니다.

해당 레지스트리 경로를 찾아가서, NetworkAddress만 삭제한 다음,

어댑터를 사용안함, 사용함 해주면 원상복구 됩니다.

(또는 삭제 후, 아래의 어댑터 재부팅 스크립트 활용- 스크립트 TXT파일에 첨부)

 

netsh interface set interface name=$name admin=disabled;

netsh interface set interface name=$name admin=enabled;

파워쉘에서 지정된 변수를 통해서 사용안함, 사용함을 차례대로 수행하는 스크립트입니다.

 

netsh interface set interface name="Wi-Fi" admin=disabled;

netsh interface set interface name="Wi-Fi" admin=enabled;

CMD로 한다면, 파란색 부분을 네트워크 어댑터 이름($name)으로 위와 같이 직접 입력해주면 됩니다.

 

 

[ 기타 ]

 

* iptime 공유기에서 실험하였고, 통신사에서 제공하는 공유기에서 

  별도로 실험해보지 않아, 적용되지 않는 경우가 있을 수도 있습니다.

 

* 유선랜카드는 위 방법없이 맥 주소를 수정하는 것이 가능하며,

  이 글은 "무선" 랜카드의 맥 주소 수정을 다루고 있습니다.



[ 후원 ]

투네이션 : https://toon.at/donate/637214316827541155

검로드    : https://gumroad.com/devjit

 

 





"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


댓글