공유기 검출이 기술적으로 가능한가요?

litnsio2의 이미지

http://bbs2.hani.co.kr/board/ns_econo/Contents.asp?STable=NSP_004000000&RNo=2284&Search=&Text=&GoToPage=1&Idx=2624&Sorting=1&rp=hanimain15

공유기와 관련된 기사를 읽다가 아래 달린 댓글을 보고 의문이 들어 질문을 하는데요. 공유기 사용 여부 검출이 기술적으로 가능한가요? 일단, 공유기란게 NAT일 뿐인데, 외부에서 보면 NAT가 하나의 노드로 밖에 보이지 않을까요? 공유기 밖으로 데이터가 나갈때 그 데이터에 내부 네트워크의 이더넷 프레임에 있던 정보가 붙어 나가는 것도 아니고.,. :roll:

만약 케이블(내지는 ADSL) 모뎀에서 직접 물려있는 이더넷 인터페이스에 관련한 정보를 ISP측으로 보낸다고 해도 그 인터페이스란게 결국 공유기이고.. ISP에서 보면 하나의 호스트에 불가할 뿐인데.

공유기에 내부 네트워크에 대한 정보를 캐내는 명령같은게 있는것도 아닐테고요.

어떻게 생각하시나요?

File attachments: 
첨부파일 크기
Image icon ps192.JPG133.39 KB
kjd2338의 이미지

이것은 제 추측이기는 합니다만....

이번에 KT가 신인증을 도입한 것은 아실겁니다...
이 신인증을 이용하게되면 일일이 웹화면상에서 로그인을 하여야만 네트워크를 사용할 수 있게되지요....

이때 로그인 한 적이 없는 다른 PC를 이용하면 추적이 되어서 다시 로그인창이 뜬다고 하더군요.....

(위의 경우는 신인증을 도입한 곳 얘기고...)

덤으로 아직 신인증이 아닌 곳은 각 가입자의 인터넷 엑세스를 DB로 만들면 가능할 수도 있다고 봅니다...
추적해보면 도저히 한 대의 PC로는 불가능한 어떤 패턴이 등장하게 될 수 있거든요... (그런데 써놓고도 생각해보니 이렇게까지 하면.... 정말로 죽일 놈들이 되는군요....ㅡㅡ;;)

인생은 삽질에서 시작해서, 삽질로 끝난다...

okjyj의 이미지

사설 아이피라도 arp로 다 보이던데...(같은 아이피에 다른 맥?)
정확하진 않아요^^

그래도 공유기를 사용하든 말든 KT에서 상관할 일은 아니지 않나요?
어차피 대역폭은 할당이 된거고 그 대역폭 내에서 한대를 가지고 열나게 돌리든 여러대로 나눠쓰든 자기한테 할당된것만 가지고 지지고 볶는데 말이죠...
여러대 쓴다고 해서 대역폭을 많이 쓰는것도 아니고. 아이피를 더쓰는것도 아닐텐데...

숲을 지나면서도 땔감을 보지 못한다.

warpdory의 이미지

공유기에서 ... 제대로 처리를 해준다면 밖에서는 하나로만 보여야 합니다만...

대부분 그렇지 않습니다.

즉, 패킷을 조금만 뜯어 보면 192.168.0.... 등의 어디서 출발한 것인지를 알아낼 수 있다는 거죠.

아마 조만간 공유기 업체에서 왕창 .. 펌웨어 업그레이드가 있지 않을까 싶습니다.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

나는오리의 이미지

warpdory wrote:
공유기에서 ... 제대로 처리를 해준다면 밖에서는 하나로만 보여야 합니다만...

대부분 그렇지 않습니다.

즉, 패킷을 조금만 뜯어 보면 192.168.0.... 등의 어디서 출발한 것인지를 알아낼 수 있다는 거죠.

아마 조만간 공유기 업체에서 왕창 .. 펌웨어 업그레이드가 있지 않을까 싶습니다.

그래서 공유기 구입을 미루고 있습니다. ㅠ.ㅠ
제 공유기는 K대 사람들이 만들어서 팔다가 현재는 홈페이지에서 A/S건만 받고있네요.
다른회사에서 이름만 바꾸고 팔고있던데
제가 그건에 대해서 게시판에 질문글을 올리니 바로 삭제해버리는 센~스가 철철 넘치더군요. -_-;
litnsio2의 이미지

warpdory wrote:
공유기에서 ... 제대로 처리를 해준다면 밖에서는 하나로만 보여야 합니다만...

대부분 그렇지 않습니다.

즉, 패킷을 조금만 뜯어 보면 192.168.0.... 등의 어디서 출발한 것인지를 알아낼 수 있다는 거죠.

아마 조만간 공유기 업체에서 왕창 .. 펌웨어 업그레이드가 있지 않을까 싶습니다.

그럴수도 있을것 같네요. 모뎀에서 ISP 까지 가는건.. IP 를 타고 가는게 아니고.. 그 아래 계층일 가능성이 농후하니..

지나가는새의 이미지

warpdory wrote:
공유기에서 ... 제대로 처리를 해준다면 밖에서는 하나로만 보여야 합니다만...

대부분 그렇지 않습니다.

즉, 패킷을 조금만 뜯어 보면 192.168.0.... 등의 어디서 출발한 것인지를 알아낼 수 있다는 거죠.

아마 조만간 공유기 업체에서 왕창 .. 펌웨어 업그레이드가 있지 않을까 싶습니다.

이상하네요. 패킷의 어느 부분에 사설IP의 정보가 들어 있는거죠? 어차피 ARP는 공유기 넘어로 못넘어 갈테고, IP는 모두 table에 의해서 지정된 IP로 변해서 넘어가야 할텐데요. 그렇다고 IP에 NAT에 대한 헤더가 따로 있는 것도 아니고..

구체적으로 알려 주세요. 궁금하네요...

Fever Pitch!

warpdory의 이미지

지나가는새 wrote:
warpdory wrote:
공유기에서 ... 제대로 처리를 해준다면 밖에서는 하나로만 보여야 합니다만...

대부분 그렇지 않습니다.

즉, 패킷을 조금만 뜯어 보면 192.168.0.... 등의 어디서 출발한 것인지를 알아낼 수 있다는 거죠.

아마 조만간 공유기 업체에서 왕창 .. 펌웨어 업그레이드가 있지 않을까 싶습니다.

이상하네요. 패킷의 어느 부분에 사설IP의 정보가 들어 있는거죠? 어차피 ARP는 공유기 넘어로 못넘어 갈테고, IP는 모두 table에 의해서 지정된 IP로 변해서 넘어가야 할텐데요. 그렇다고 IP에 NAT에 대한 헤더가 따로 있는 것도 아니고..

구체적으로 알려 주세요. 궁금하네요...

정확하게 기억나지는 않습니다만,
패킷어 어느 특정 부위에 출발 ip 가 적히게 됩니다. 어느 부분인지가 명확하지는 않네요. 기억이 가물 가물...
그리고 공유기에서는 그 기능에 충실하다면 그 출발 ip 를 모두 공유기가 부여받는 real IP 로 바꿔주어야 합니다... 만 .. 그게 제대로 되는 공유기가 현재까지는 별로 없습니다. - 현재 제가 쓰고 있는 iptime pro 와 iptime 54g 도 아직까지는 저 기능을 지원하지 않습니다. 그래서 밖에서 스니퍼 등으로 패킷 스니핑을 해보면 출발한 놈을 볼 수 있습니다.

tcp/ip 책을 보시면 어느 부분을 조작해야 하는지 나올텐데.. 얼마전 회사에서 바자회 한다고 할 때 다 갔다가 버려서(권당 2천원씩 주고 팔았나 ?) 찾아볼 문헌이 현재는 없군요. 몇군데 검색하면 금방 나올 겁니다.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

지나가는새의 이미지

warpdory wrote:

정확하게 기억나지는 않습니다만,
패킷어 어느 특정 부위에 출발 ip 가 적히게 됩니다. 어느 부분인지가 명확하지는 않네요. 기억이 가물 가물...
그리고 공유기에서는 그 기능에 충실하다면 그 출발 ip 를 모두 공유기가 부여받는 real IP 로 바꿔주어야 합니다... 만 .. 그게 제대로 되는 공유기가 현재까지는 별로 없습니다. - 현재 제가 쓰고 있는 iptime pro 와 iptime 54g 도 아직까지는 저 기능을 지원하지 않습니다. 그래서 밖에서 스니퍼 등으로 패킷 스니핑을 해보면 출발한 놈을 볼 수 있습니다.

tcp/ip 책을 보시면 어느 부분을 조작해야 하는지 나올텐데.. 얼마전 회사에서 바자회 한다고 할 때 다 갔다가 버려서(권당 2천원씩 주고 팔았나 ?) 찾아볼 문헌이 현재는 없군요. 몇군데 검색하면 금방 나올 겁니다.

일단 제 생각은, 일반 패킷에 그러한 정보가 있다면 통신이 안되는게 정상일 거 같구요.. (바꿔줘야 통신이 되고, 안바꿔주는데 위로 올라갈 수가 없다는 생각입니다.) 그렇다고 데이터그램에 그게 올라갈리 만무 하구요..

소스 라우팅으로 할 수 있을 것 같기는 한데, 그건 PC, 공유기 모두가(물론 상단장비 모두) 기능을 지원 해 주어야 할 것 같은데요.. 게다가 소스 라우팅은 보안 문제도 있어서 안할거 같거든요..

그리고, 공유기 위쪽으로는 공유기의 IP와 MAC만이 올라가기 때문에 위에 있는 DSLAM 이나 라우터가 알 수 있을거 같지 않거든요..

아시는 분 있으시면 좀 알려 주세요.. 궁금해 죽겠다는 -_-;;

Fever Pitch!

okjyj의 이미지

방금 백본에 스니핑한 결과 하나가 걸리긴 했는데...^^
잘 모르겠어요 고수님들 소스 분석좀여^^

댓글 첨부 파일: 
첨부파일 크기
Image icon 0바이트

숲을 지나면서도 땔감을 보지 못한다.

wariua의 이미지

okjyj님의 증거처럼 아주 빤히 보이는(즉, IP 공유기가 바보인;; ) 경우도 있고,
warpdory님 말씀처럼, FTP나 MSN 같은 온갖 응용에서 사용하는 프로토콜이 패킷 내의 데이터에 전송자의 IP 주소를 기록해서 내보내는 걸 확인해 볼 수도 있습니다. 공유기(내지는 NAT) 장비에서 프로토콜별로 데이터 내의 IP 주소를 바꿔줄 수는 있습니다만, 그런 프로토콜이 한두 개가 아니니...

어디선가 본 바로는, IP 헤더의 TTL를 확인하는 방법도 있더군요. 운영체제별로 기본 TTL값이 정해져 있어서, 거기서 1만큼 빠지는 값이 나오는지 확인한다거나, 서로 다른 TTL값이 계속해서 보이는지 확인한다거나,... 확증을 얻지는 못하지만 용의자 목록 작성에는 충분할 겁니다. 뭐, 이런 것들도 상당수는 공유기 수준에서 감춰줄 수 있기는 하겠습니다만:)

$PWD `date`

지나가는새의 이미지

okjyj wrote:
방금 백본에 스니핑한 결과 하나가 걸리긴 했는데...^^
잘 모르겠어요 고수님들 소스 분석좀여^^

소스가 시스코 장비네요. 토폴로지좀 알 수 있을까요? 공유기 밑에 시스코 장비가 붙어 있고, 그 시스코에서 내보내는 패킷이 공유기 위에 있는 라우터/스위치에서 잡힌 건가요?(그럴거 같지는 않은데 말이죠) 어떻게 구성된건지좀..

Fever Pitch!

okjyj의 이미지

지나가는새 wrote:
okjyj wrote:
방금 백본에 스니핑한 결과 하나가 걸리긴 했는데...^^
잘 모르겠어요 고수님들 소스 분석좀여^^

소스가 시스코 장비네요. 토폴로지좀 알 수 있을까요? 공유기 밑에 시스코 장비가 붙어 있고, 그 시스코에서 내보내는 패킷이 공유기 위에 있는 라우터/스위치에서 잡힌 건가요?(그럴거 같지는 않은데 말이죠) 어떻게 구성된건지좀..

시스코 장비엔 사설 대역 준 건 없구요 모두 리얼 아이피입니다.
이건 아마도 공유기 밑에 시스코 허브를 붙여서 사용하는듯 하네요..
의외로 사이트가 커서리 어디서 쓰고 있는지는 모르겠네요^^~~

아~~ 방금 보니까 맥 주소가 시스코 무선 NIC인가봐요.
유무선 공유기를 쓰고 있는듯 하네요.

숲을 지나면서도 땔감을 보지 못한다.

지나가는새의 이미지

okjyj wrote:

시스코 장비엔 사설 대역 준 건 없구요 모두 리얼 아이피입니다.
이건 아마도 공유기 밑에 시스코 허브를 붙여서 사용하는듯 하네요..
의외로 사이트가 커서리 어디서 쓰고 있는지는 모르겠네요^^~~

아~~ 방금 보니까 맥 주소가 시스코 무선 NIC인가봐요.
유무선 공유기를 쓰고 있는듯 하네요.

흠.. 토폴로지를 모르신다니 대략 난감 하지만 조금씩 추리소설로 -_-;; (조금씩 머리가 아파 옵니다 .ㅠ.ㅠ)

그림과 okjyj님 말씀을 종합 해 보면, 일단 시스코유무선 공유기를 사용하는데, 아이피는 사설이군요. 패킷은 위에서 잡았구요.

그렇다면, 192.x.x.163을 사용하는건 다른 PC또는 L2장비(스위치/공유기)가 되겠네요.

즉,
PC(IP:192.x.x.163, MAC:xx.xx.xx....) 가 cisco로 가서 MAC은 cisco로 바뀌고, IP는 그대로 인 채로 위로 broadcast 되었다는 결론이네요.(cisci가 real-IP를 사용한다고 하셨으니..)

결론은.
1. NAT가 안되었다. (IP가 바뀌지 않았다)
2. Broadcast 이기 때문에 위로 올라왔다(? 으.. )
정도겠네요..

아.. 제가 지식이 짧은 걸까요.. 도저히 이루어 질 수 없는 상황이 벌어지고 있다는 생각입니다.(물론, real-network에서 모든 상황이 어찌 이론으로 모두 설명이 되겠습니까만은 -_-;;)

순간적으로 NAT가 안되고 L2 switch 처럼 동작 했다고 하기에는 MAC이 바뀌었으니까 route table을 탔다고 보여는데, NAT가 안되었는데 route table을 탔다는게 이해가 안되고.. -_-; 여러가지 정황이 안맞네요 크흐흑..

고수분들의 도움 절실 필요 + 100 정도네요 쩝 ㅠ.ㅠ

Fever Pitch!

okjyj의 이미지

지나가는새 wrote:

그림과 okjyj님 말씀을 종합 해 보면, 일단 시스코유무선 공유기를 사용하는데, 아이피는 사설이군요. 패킷은 위에서 잡았구요

저...
제 글이 좀 왔다갔다 하죠^^
제말은 벤더는 모르겠구 그저 유무선 공유기를 쓰겠구나 하고 추측한 겁니다. 왜냐하면 맥 어드레스를 보니까 시스코 무선랜카드(NIC)의 맥 인듯 하더라구요(제가 아직 초짜라 정확히는 모릅니다.) 그러니까 유무선 혼합 공유기밑에서 시스코 랜카드를 사용한 PC나 놋북의 브로드캐스팅이 아닐까하는...

토폴로지를 모른다고는 안했는데...^^
그럼 대략 이렇게 설명하죠.
Cisco4000(snif)--Cisco2950--유무선공유기(?, 하튼 NAT)--시스코무선랜카드를 사용한 PC/Notebook

숲을 지나면서도 땔감을 보지 못한다.

지나가는새의 이미지

okjyj wrote:
지나가는새 wrote:

그림과 okjyj님 말씀을 종합 해 보면, 일단 시스코유무선 공유기를 사용하는데, 아이피는 사설이군요. 패킷은 위에서 잡았구요

저...
제 글이 좀 왔다갔다 하죠^^
제말은 벤더는 모르겠구 그저 유무선 공유기를 쓰겠구나 하고 추측한 겁니다. 왜냐하면 맥 어드레스를 보니까 시스코 무선랜카드(NIC)의 맥 인듯 하더라구요(제가 아직 초짜라 정확히는 모릅니다.) 그러니까 유무선 혼합 공유기밑에서 시스코 랜카드를 사용한 PC나 놋북의 브로드캐스팅이 아닐까하는...

토폴로지를 모른다고는 안했는데...^^
그럼 대략 이렇게 설명하죠.
Cisco4000(snif)--Cisco2950--유무선공유기(?, 하튼 NAT)--시스코무선랜카드를 사용한 PC/Notebook

헉.. 엄청난 반전이네요 -_-; 또, 제 글도 왔다갔다 하네요 ㅠ.ㅠ

그럼 결론은! "시스코무선랜카드를 사용한 PC/Notebook" 의 MAC과 IP가 그대로 상단장비(Cisco 4000 or 2950 )에서 캡쳐가 되었다는 것이네요. (물론, 저 맥이 4000 이나 2950의 맥은 아니겠죠?)
오.. 그렇다면 변조고 뭐고 없이 그냥 올라온거라고 봐야겠네요. 흑..

다시 고민 해 봐야겠슴다.

Fever Pitch!

okjyj의 이미지

맥어드레스를 보니까 Cisco 무선 랜카드 제품의 맥인듯이 보여집니다.
아마도 집에서 놋북에 사설 아이피 대역을 부여받은채로 회사에 가져와서 사내 랜에 붙여서 나온 브로드캐스트가 아닐까합니다.

숲을 지나면서도 땔감을 보지 못한다.

c1dong8의 이미지

인터넷 돌아댕기면서 구한자료들중 일부임니다.
특허검색해봐도 꽤 있더군요..
-------------------------------------------------------------------------------------
IP공유기술로 채택하고 있는 방식인 네트워크 주소 변환 (Network Address Translator,NAT)
방식은, 서브 네트워크를 외부의 침입으로부터 보호하기 위한 기술로 개발 되었다.
즉, 외부에서는 그 컴퓨터에 할당된 실제 IP주소를 알 수 없게 되어 해킹이나 크래킹이 사실
상 불가능하다. 따라서, NAT 공유기 외부에서 내부에 있는 사용자를 알아내는 방법은 없다.
따라서, 내부 클라이언트에서 네트워크 망을 검색하고, Public IP 이외의 주소를 사용하는지
검사하여 NAT 공유기 사용 여부를 판단한다. 본 프로그램에서 검색한 내용 중 만약 IP공유기
를 사용하고 있다면 그 일시에 해당된 Public IP와 사용된 PC의 수, 각 PC에 장착된 MAC
Address 등의 정보는 데이터로 서버로 전송된다. 이러한 정보로 통신사업자는 실제로 사용
하고 있는 정확한 사용자를 파악할 수 있으며, 요금 부과 및 기타 제재를 할 수 있을 것이다
-----------------------------------------------------------------------------------
이방법은 많은 방법중 하나임니다.

kkb110의 이미지

내부 클라이언트에서 네트워크 망을 검색하고, Public IP 이외의 주소를 사용하는지 검사하여 NAT 공유기 사용 여부를 판단한다.

근데 음 그러니까.. 이건 결국 클라이언트에 프로그램을 설치한다는 말 아닌가요?

dragonkun의 이미지

음.. 근데..
그냥 TCP 에 있는 Sequence Number 가 엇갈리는 것만 봐도
공유기 쓰고 있구나 하는 거 알 수 있지 않을까요?
---
Emerging the World!

Emerging the World!

brucewang의 이미지

오래된 게시물이네요.

위에 기사를 읽어보진 못했지만 dragonkun 님 말씀대로 TCP sequence넘버를 보고 판단이 가능한 것으로 알고 있습니다. IP 정보만으론 알기 어렵죠.

그런데 예전에 어디선가,TCP sequence넘버까지도 뭔가 처리를 해 줄 수 있다는 얘기도 본 적이 있는데, 누군가 자세한 설명을 부탁드립니다.

-------------------------------------------------
$yes 4 8 15 16 23 42

-------------------------------------------------
$yes 4 8 15 16 23 42

다즐링의 이미지

요즘엔 random 으로 해주는 기능이 들어간것으로 알고 있습니다.

왜냐면 그 넘버를 보고 hi-jacking 이 가능해서 말이죠.

------------------------------------------------------------------------------------------------
Life is in 다즐링

------------------------------------------------------------------------------------------------
Life is in 다즐링

brucewang의 이미지

그런 내용이었던 것 같습니다. 감사합니다. m(_._)m

비단 공유기 문제 뿐만이 아니라 보안성 향상에도 도움이 될 수 있는 기능 같네요.

그런데 아직도 국내 ISP에서 공유기 사용에대해 제약을 가하고 있나요? 제가 좀 소식이 깜깜이라서...

-------------------------------------------------
$yes 4 8 15 16 23 42

-------------------------------------------------
$yes 4 8 15 16 23 42

june3474의 이미지

근데 각 session 마다 서로 다른(정확히는 랜덤) sequence number로 시작하는 것 아닌가요?
예를 들어 제가 웹 브라우저를 두개를 실행하면 최소한 2개 이상의 http 세션이 시작될 테고, 그 두 세션이 서로 다른 시작 seq #을 가지게 될 것 같은데요... 물론 그건 정상적인 사용이리라 생각합니다. 제가 잘못 알고 있는 건가요?

패킷을 분석해서 공유기를 사용하지 않고는 불가능한 상황을 찾아낼 수는 있을 것 같습니다. 예를 들자면 거의 같은 시간에(1초내 정도) 서로 다른 destination IP로 새로운 http 세션을 100개 정도 만드려고 시도하는 것 정도?
-----------
낮술

brucewang의 이미지

앗, 저에게 답변 달으셨던거였나 보네요.

원래 이론상으론 그렇게 해야 맞죠. 그런데 실제로는 그렇게 안되는 경우가 많습니다.
googling을 해 보니 TCP sequence number를 제대로 random으로 시작하지 않거나,
혹은 그 random이 '다음의 random을 추측가능한' 간단한 알고리즘으로 구현하였거나 한 경우들이 많다는 얘기가 많이 나오더라구요.

(ISN prediction) http://lcamtuf.coredump.cx/oldtcp/tcpseq.html

http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentSequenceNumberSynchroniz.htm

http://www.microsoft.com/downloads/details.aspx?FamilyID=daf70be0-0725-4998-9a59-ad1ba99afd8e&displaylang=ko

간단히 Web 페이지 로딩만 하는 경우라면 제 XP의 경우 seq는 언제나 0으로 시작하네요. long lived 세션이 아니라면 제대로 파악하긴 힘들 것 같습니다. 대신, 기사를 하나 찾았는데요 , 여기서 "TCP Sequence Numbers Explained" 라는 이름의 섹션을 한번 같이 보시죠.

http://taosecurity.blogspot.com/2004_01_01_archive.html

어쨌든 두 머신에서 공유기로 동일 대상에 접속하게 되는 경우라면 단박에 알아낼 수 있을것 같네요.. 더 자세히는 어떻게 해야할지 저도 모르겠습니다. ^^ 아마도 sequence number검사 만으로는 false positive한 경우가 많아서 client agent까지 설치해 버리는 것일지도.

혹시 kldp에 공유기 검사 루틴을 만드신 분이 계시지 않을까요? ^^

-------------------------------------------------
$yes 4 8 15 16 23 42

-------------------------------------------------
$yes 4 8 15 16 23 42