본문 바로가기
해킹, 보안/보안

[GTA5 온라인] 리드 따고 들어오는 핵쟁이 차단 방법 (방화벽 설정 필요)

by jamong1014 2022. 1. 16.
반응형

 

밑에 방법이 복잡하고 원리가 이해가 안가시는분들을 위해 그냥 정책 생성 자동화까지 통합 툴로 배포합니다.

 

[GTA5 온라인] 방화벽 인바운드/아웃바운드 차단 프로그램 배포

방법이 복잡하고 이해가 안가시는분들을 위해 그냥 규칙 생성기능까지 만들어서 배포합니다. 기능 1) : 특정 아이피가 아닌 전체를 차단하는 방법 기능 2) : 친구들만 들어오게 할 수 있는 기능

jamong1014.tistory.com


 

 

원리가 궁금하신분들은 읽어주시기 바랍니다.!

밑에 첨부파일은 위 통합툴과 다릅니다.(단순 활성화/비활성화만 할 수 있는 툴)

gta 세션 설정.bat
0.00MB

요즘 그타에 핵들이 넘치는데 주로 급식들이 많이들 사용하죠..
가끔 사소한 말다툼으로 인해 핵이 상대방의 리드를 따고 온/오프라인인지 확인한 뒤 어느 세션에 가든 다 따라가서 킥/크래쉬를 날리곤 합니다...

여기서 말하는 리드(RID)란?
- 그타 계정 고유번호라고 생각하시면 됩니다.
(그래서 한번 리드를 핵한테 따이면 계속 따라와 괴롭히곤 합니다...)

킥/크래쉬란?
- 킥은 말 그대로 상대방을 세션에서 강퇴시켜 버립니다.
- 크래쉬는 특정 인풋값에 일정 데이터 양 이상을 보내 오버플로우를 일으켜 클라이언트 자체를 꺼지게 만드는 현상을 일으킵니다.

그럼 여기서 어떻게 차단을 하느냐??

준비물 : 방화벽 설정, 상대방 Ip, 첨부파일 .bat

차단을 하려면 그타가 어떤 식으로 통신을 하는지 알아야 합니다.
기본 P2P 방식을 이용한 1:1 통신인데 이러한 방식(통신 자체적인 취약점) 때문에 핵도 많이 존재하는 것입니다..

아무 세션이나 들어가서 스니퍼로 패킷을 조회해 본 결과 포트 6672로 통신한다는 걸 알 수 있습니다.
P2P 방식이니 세션 유저들의 아이피도 고스란히 보이죠...

바로 차단하는 방법부터 알려드리면 이해에 어려움이 있을 수 있으니 지금부터 세 가지 과정을 통해서 차근차근 알려드리겠습니다.

첫 번째!
1. 온라인에서 나 혼자만 있는 방법
이 방식은 그타 좀 해보신 분들이라면 작업 관리자 들가서 그타 네트워크 일시중단하는 방법이야 다 알고 있을 겁니다.
하지만 이 방식은 좀 있으면 다른 유저들이 막 들어오죠.

잠깐 차단된 것뿐이기 때문입니다.

영구적으로 차단을 해주기 위해선 방화벽에서 직접 설정해줘야 합니다.

- 고급 보안이 포함된 Windows Defender 방화벽'에 들어가 주세요.

- 인바운드 규칙 - 새 규칙

- 포트 선택 - 다음

- UDP에 6672 통신을 하기 때문에 UDP 선택 - 특정 로컬 포트 6672 작성 - 다음

- 연결 차단 - 다음

- 이름 gta차단 - 마침
(이름은 첨부 해놓은 .bat파일의 정상작동을 위해 'gta차단' 으로 해주세요)

- gta차단이라는 규칙이 생성된 걸 확인할 수 있습니다.
(중요) 이 방식을 아웃바운드 규칙에서도 위와 똑같이 설정해 주세요.



인바운드/아웃바운드 둘 다 설정이 완료되었으면 아웃바운드 규칙에 - gta차단 - 속성에 들어가 주세요.


- 아웃바운드 규칙 - gta차단 - 속성


- 프로토콜 및 포트 원격 포트(모든 포트) - 로컬 포트(특정 포트) - 6672 작성 후 적용

끝!

이렇게 되면 세션 온라인에 평생 나 혼자만 남을 수 있습니다..

하지만 필요할 땐 다시 풀어야 하니 아웃바운드 규칙 - gta5차단 - 규칙 사용 안 함을 눌러서 규칙을 해제할 수 있습니다.
(인바운드 규칙은 굳이 해제 안 하셔도 됩니다.)

- 차단 기능 활성화 후 그타 모습

필요할 때 필요하지 않을 때 일일이 들어가서 '규칙 사용 안 함'을 눌러 사용하기 귀찮기 때문에 제가 .bat 파일로 만든 첨부파일을 이용해 주시기 바랍니다.



두 번째!
2. 첫 번째를 통해 만든 규칙에서 친구들만 들어오게 하기!

- 인바운드 규칙(아웃바운드도 해줘야 함) - gta차단 - 속성 - 영역 - 원격 IP 주소 - 다음 IP 주소 - 추가

- 다음 IP 주소 범위
설명 : 시작은 무조건 1.1.1.1로 적어주세요. (사진에 적힌 5.5.5.5는 임의의 IP)
끝에 적을 아이피는 '친구 아이피'에 끝자리에서 -1 한 것을 적으면 됩니다.
예를 들어 친구 아이피가 5.5.5.6 이라면 -1 한 5.5.5.5를 적으면 되고요.

- 그리고 다시 추가

- 이번엔 친구 아이피 5.5.5.6에서 +1 한 5.5.5.7을 시작으로 적고 끝을 255.255.255.255로 적으시면 됩니다.
여기서 255는 아이피 32bit 체계에서 가장 마지막 숫자라고 생각하시면 됩니다.

즉 친구 아이피 5.5.5.6 빼고 다 차단한다 생각하시면 됩니다.

친구들이 여러 명이도 위와 같은 원리로 여러 개로 추가하시면 됩니다.
예) 친구1 - 56.34.65.46
친구2 - 132.23.64.13
친구3 - 46.34.24.123
이라 한다면
1. 시작 아이피 : 1.1.1.1
끝 아이피 : 46.34.24.122
2. 시작 아이피 : 46.34.24.124
끝 아이피 : 56.34.65.45
3. 시작 아이피 : 56.34.65.47
끝 아이피 : 132.23.64.12
4. 시작 아이피 : 132.23.64.14
끝 아이피 : 255.255.255.255

이렇게 하시면 될 듯합니다.

(중요) 이것을 마찬가지로 아웃바운드에도 똑같이 추가해 주시면 됩니다.


세 번째!
3. 첫 번째를 통해 만든 규칙에서 핵쟁이의 아이피만 특정 차단!

사실 핵심적인 기능은 위 2가지 방법이 아닙니다.
(위 2가지 방법을 통해서도 따라오는 핵쟁이들은 충분히 막아낼 수 있습니다. 하지만 단점이라면 모두 차단하는 방식이기 때문에 핵쟁이만 차단하기에는 효율적이지 않다라는것이죠..)

악용 가능성이 있기 때문에 원래는 여기서 포스팅을 끝내려고 했지만..
이대로 끝내면 제목의 요지와 잘 맞지 않은 것 같아서 조금이나마 설명드리겠습니다.
(악용의 여지가 있기 때문에 직접적인 사진은 올리지 않겠습니다.)

*일단 원리를 설명드리자면 GTA5의 세션 구조는 밑에 사진과 같습니다.

GTA5 세션 구조

락스타 매칭 서버를 이용해서 아무 세션이나 들어간다음 P2P방식으로 통신하는 것이죠.
하지만 사실 클라이언트끼리 통신하는 것이고 대부분 공유기 즉 NAT(PAT) 방식을 많이 사용하기 때문에 포트를 따로 뚫어둔 거 아닌 이상 원래는 통신이 안되는 것이 맞습니다.

하지만 이들은 어떻게 1:1식으로 통신하는 것일까요??
https://cjwoov.tistory.com/6?category=774541

 

[UDP 홀펀칭(Hole Punching)] - UDP 홀펀칭(2/2)

2줄 요약 UDP 홀펀칭을 통해 NAT가 구성되어있는 호스트끼리 통신이 가능하다 홀펀칭을 위해서 중개서버가 필요하다 UDP 홀펀칭 이전 글에서 NAT로 인해 서로의 Public IP와 Port번호를 몰라, P2P 통신을

cjwoov.tistory.com

바로 UDP 홀펀칭 기법이라는 것입니다.
쉽게 말해 막혀있는 NAT망 사이에 중계 서버를 하나 두어서 서로의 NAT. 즉 내부아이피에서 - 외부아이피로 변환하는 데 있어서의 데이터를 통신하고자 하는 서로에게 전달하여 통신할 수 있는 길을 만들어주는 역할을 하는 것입니다.

즉 막혀있는 NAT망을 1:1 통신이 가능하게끔 만들어주는 역할이다 라고 생각하시면 될 것 같습니다.

근데 이걸 지금 왜 얘기하냐??
지금 우리의 목적은 정상 세션에서 나를 따라오는 핵쟁이를 차단하는 것입니다.
따라온다는 것은 랜덤으로 오는 것이 아닌 나를 통해 세션에 접속하는 것입니다.

그냥 여기에 핵쟁이 아이피 추가시키면 되는 것 아니냐??
- 네 아닙니다.

추가를 시켜도 1:1 통신의 6672 포트를 차단하는 것이지 세션의 중계서버까지 차단한 것이 아닙니다.
UDP 홀펀칭 기법은 1:1 통신을 할 수 있게 길만 뚫어주는 것이 아니라 1:1 통신이 원활하게 안될 시
중계서버가 대신해서 통신이 되게끔 구현이 되어있을 겁니다.

즉 중계서버의 아이피도 차단을 해줘야 된다는 소리죠.

- 이렇게 중계서버를 통해서 통신하는 걸 볼 수 있습니다.
192.81.x.x
16bit로 차단해줘야 하기 때문에 '192.81.0.0/16' 이렇게 넣어줘야 합니다.

- 192.81.0.0/16 기입 (인바운드/아웃바운드 둘 다 이렇게 적용)

그리고 핵쟁이 아이피도 추가해야겠죠.

- 마찬가지로 인바운드/아웃바운드 둘 다 추가해 주세요.

여기서 끝이 아닙니다.
이렇게 규칙을 활성화한 상태로 세션에 들어가면 정상적으로 1:1 통신되는 유저들이 별로 없습니다.
내가 원하는 세션에서 놀고 싶은데 중계서버를 차단함으로써 못 들어가면 안 되잖아요??

그래서 처음에 세션에 들어갈 땐 규칙을 모두 비활성화하고 들어가시기 바랍니다.
원하는 세션에 들어가서 10초~20초 시간이 지난 후에 기능을 활성화시켜주세요.

원리는 간단합니다.
들어가서 중계서버를 통해 1:1 통신할 수 있는 길을 세션의 유저들과 미리 연결을 다 시켜두는 거죠.
연결이 다 된 후에 기능을 활성화하면 차단에 해당되는 아이피가 없기에 문제가 없을 겁니다.
(가끔 세션 들어가서 활성화를 시켜도 세션이 팅기는 경우가 있지만 가끔..)

그리고 세션에 들어가서 기능을 활성화시키게 되면 핵쟁이는 차단에 해당되는 아이피이기에 따라오지 못할 것이고 아예 없는 세션이라고 뜰 겁니다.



그럼 가장 문제인 핵쟁이의 아이피를 알아야 하는데 어떻게 알아야 하나요???

스마트 스니퍼라는 툴을 이용하는 것입니다.
원래는 와이어샤크라는 툴을 애용하지만 상대방과의 통신속도를 통해서 판별해야 하기 때문에 통신 속도 확인 부분에선 스마트 스니퍼가 더 편리하더군요..

조금 더 말씀드리자면
핵쟁이가 리드를 타고 들어와서 훼방을 놓는다면 나와 핵쟁이의 통신 속도가 올라가서 더 쉽게 아이피를 알 수가 있습니다.

자세한 방법은 @jamong1014 텔레그램 연락 주세요

그리고 다시 한번 말씀드리지만 필요할 때 필요하지 않을 때 일일이 들어가서 '규칙 사용 안함' 을 눌러 사용하기 귀찮기 때문에 제가 .bat 파일로 만든 첨부파일을 이용해 주시기 바랍니다.

대충 이런식으로 만들어봤어요.


그냥 실행하면 명령이 실행되지 않습니다.
관리자 권한으로 실행해 주세요.

*관리자 권한 설정 방법



- 첨부파일에 있는 .bat 파일을 다운 - 바로가기 생성

- 속성

- 고급

- '관리자 권한으로 실행' 체크하시고 확인하시면 다음 실행부터 계속 관리자 권한으로 실행할 수 있습니다.

이해가 안 되는 부분, 원리가 조금 틀렸다 하는 부분이 있으면 댓글 달아주시기 바랍니다~

반응형

댓글