본문 바로가기

Computer/0x00 정보보안

REDHAT LINUX 에서 Sniffing 공격으로 인터넷마비 시키기

REDHAT LINUX 에서 Sniffing 공격으로 인터넷마비 시키기




Redhat linux 가 해커팀, 윈XP가 희생자팀 으로 가상머신으로 스니핑 공격을 통한 인터넷마비를

시키는 가상시나리오 를 진행 해 보겠습니다.


*주의: 이 포스팅은 상세한 기법을 설명하지 않으며, 자료공유는 하지 않습니다. 또한 이것을 악용하면

책임은 당사자에게 있습니다.



해커팀 linux에서 dsniff 를 설치를 해줍니다.

dsniff는 스니핑을 위한 자동화 도구 입니다.


./urlnarf 명령어로 희생자가 어떤 웹사이트에 접속했는지 확인 할 수 있습니다.

물론 이를 위해서는 스푸핑 4개의 공격중 하나가 먹혀있다는 것을 전제로 합니다.

그 4개의 공격은...


[ HACKER 입장에서 S/W 에서 나에게 DATA를 안보낼떄 해야할 4가지 공격기법 ]


1. ARP Cache Poisonning

2. ICMP Redirect

3. Switch jamming

4. Switch -> Port Mirroring


자, 스푸핑등의 공격이 적용 되었으면 urlsnarf 를 실행해주면 터미널 창에 희생자의 로그기록이

찍히기 시작합니다.






다음으로 dniff 입니다. dsniff는 해당 시스템이 텔넷 등으로 원격접속을 시도하면 ID 아 패스워드

를 알아낼수 있습니다.





해커팀에서 ./dsniff 명령어를 실행 시킵니다.




희생자는 텔넷을 접속을 하고 종료를 합니다.






root 가 ID

123456 이 password 입니다. 해킹성공



이제는 희생자의 인터넷을 끊어 보겠습니다.

tcpkill 명령으로 tcp를 죽이면 인터넷을 포함하여 tcp로 통신하는 것을 먹통으로 만드는 것이죠




해커팀에서 ./tcpkill -i eth0 -4 tcp 를 입력해서 tcp를 죽입니다.

(유닉스에서도 kill 명령어가 있죠. 단순히 프로세스를 죽이기만 하기 보다는 다시 재구동을 시키기도

합니다)



다시 희생자의 PC로 가서 인터넷을 해보면 먹통이 되는 것을 확인 할 수 있습니다.




나의사랑(?) 네이넘이 안들어 가지는군요..



참 재밌는 것은 희생자 팀에서 슈퍼DNS서버로 ping이 잘만 갑니다. 물론 야후로도 핑이 잘가죠

Ping이 나간다는 것은 일단 OSI7 Layer 기준으로 네트워크 이하 계층은 문제가 없다고 볼 수 있죠

그런데 인터넷이 안되니 희생자는 당황하게 됩니다.





여기서 TCPKILL의 메커니즘에 대해서 알아볼 필요가 있습니다.


TCP 머리(헤더)를 열어보면(?), 흐름제어를 하기 위한 window size 가 있습니다.

이것은 자신이 처리할 수 있는 정보의 양을 통신하는 시스템들끼리 주고 받습니다.


해커는 자신을 희생자가 통신하는 시스템인 것처럼 위장해서 자신의 윈도우 사이즈를  0이라고 해서

희생자는 자신과 통신하던 시스템이 자신의 요청을 처리하지 못할 것이라고 인지해서 통신을

하지 않습니다.



windowsize 는 16bits 입니다.


tcp는 신뢰성 이 있으며 재전송 메커니즘을 갖고 있습니다.

왜냐하면 신뢰성이 전제되어야 하니까요.


Sequence number : 순차번호. 신뢰성 있는 전송을 위해 모든 바이트마다 일련 번호 설정

Acknowledment number : 응답번호. 세그먼트에 실린 데이터의 마지막 바이트의 순차번호에 1을 더한 값

HLEN : 헤더 길이. 헤더의 길이가 20바이트부터 60바이트까지 가변적이기 때문에 헤더 길이를 명시합니다.

4bit로 표현해야하기 때문에 20byte ~ 60byte -> 5 ~ 15로 표시합니다.


Reserved : 차후를 대비해 예약되어있는 필드

flag값 6비트 : 각 필드 흐름 제어, 종료, 데이터 전송 모드용으로 사용(syn, ack 등등)

Window size : 응답 확인을 받기 전에 보낼 수 있는 데이터의 양을 설정하는 필드

슬라이딩 윈도우 기법 : 자신의 윈도우 사이즈를 상대에게 넘겨주고 상대의 윈도우 사이즈를 넘겨받는 

흐름제어 기법


Checksum : 검사합 값. TCP 세그먼트의 변형 여부 확인

Urgent pointer : flag값이 urg(긴급)로 되어있을 때 사용되는 필드. 잘 사용하지 않습니다.



해커들은  Seq / Ack Number , Flag 값, Window Size 등을 조작해서 해킹을 할 수 있습니다.

그럴라면 C언어는 기본이며, win api 와 tcp/ip 소켓 네트워크 프로그래밍은 알고 있어야 겠지요

스크립트 키드는 툴밖에 사용하지 못하기 떄문에 힘들겠지만요 ㅎㅎ 



자 그러면 방어기법을 떠올려 보면, SSL과 같은 신뢰성 있는 통신을 해야하며,백신 프로그램을 사용해서

해킹툴을 감지해 내야하며, 해킹에 의심되면 관련기관에 신고를 하셔서 대처하셔야 합니다.