여러가지 상황에서
와이어샤크로 패킷들을 분석하고
정보를 분석해보겠다.

[ case1 ]
두 사람(베스와 베리)의 컴퓨터를 바꾸었다.
한 사람은 인터넷이 잘됬고 한 사람은 인터넷이 안된다.
그래서 네트워크 관리자에게 전화했다.
" 그러면 패킷을 덤프해서 보내주세요 "
하나는 인터넷이 잘되는 패킷덤프파일이고
하나는 인터넷이 안되는 패킷덤프파일이다.
왜 안될까?



(베스의 패킷)




(베리의 패킷)



분석
베스가 안된다.
그 이유는
1. 게이트웨이의 주소.
ARP 요청을 응답받지 못했다.
게이트웨이 주소가 잘못되었다고 추측해볼 수 있다.
-> 정확하게 얘기할 수는 없는 것이다.
    다만 추정을 하는 것이다.

[ case2 ]
- 악의적인 트래픽만을 수집해놓은 샘플이다.
공격유형과 공격자, 피해자가 누구인지 알아내자.


(case 2 패킷 화면)



SYN 패킷이 잔뜩 있는 걸로 봐서
SYN Flooding으로 예상된다.
하지만 이렇게 단정지어서는 안된다.
그렇게 결론 내리기 까지는 정확한 결과를 찾아야한다.



(static - 맨위 메뉴 선택)



(통계수치)



통계수치를 볼 수 있다.
수집된 시간은 1초동안 수집된 것이고,
1초에 19946개의 패킷이 드어온 것을 확인 할 수 있다.
Dos 공격을 의심할 만한 양의 패킷이다.

하지만 이 기준도 모호하다. 서버입장에서는
1초에 더 많은 패킷이 들어오기 때문이다.
static 메뉴에서 conversation으로 어떤 호스트와의 통신을 했는지 확인한다.


(Conversation 선택)



(Conversation 화면)



확인해보면 여러 IP에서 패킷이 들어오고 있는 것을 확인 할 수 있다.
1초에 다량의 SYN 패킷으로 SYN Flooding이라고 추정하였다.

정리하면
1. 공격 유형은 무엇인가?? 
(SYN Flooding)
-> SYN이 많다고 단순히 SYN Flooding으로 생각하면안된다.
근거를 찾아야한다.
static으로 보면 1초동안에 수집된것이라는 것을 알 수 있다.
- 1초동안 약 2만여개의 SYN 패킷이 들어왔다.
- 1초 동안에 수집된 패킷의 양이 평소보다 많이 발생했으므로 DDos 추정
-> TCP SYN Flooding
-> 여기서는 평균을 모르므로 추정하는 것이다.

2. 공격자와 피해자의 ip는 몇번인가?
- 피해자 (192.168.1.150, http서버)
- 공격자 (ip 스푸핑중이다.)

[ case3 ]
 - 악의적인 트래픽만을 수집해 높은 샘플
 - 다른 일반적인 트래픽들은 포함되어 있지 않다.
- 공격유형과 공격자, 피해자를 밝히자.



(case3 상황)



Conversation을 확인해보니
도착지 포트를 보니 포트스캔을 한 흔적이 보인다.


(Conversation 화면)



포트 스캔 중 어떤 스캔인지 확인해보기 위하여
패킷을 확인해보겠다.



(패킷 선택 확인)




(패킷 확인)



패킷을 확인하니 세션을 연결하지 않고
SYN, ACK가 오면 RST를 보내 연결을 맺지 않는 것을 확인 할 수 있었다.

이로써 공격자는 스텔스 스캔 중인 것이다.
TCP Half Scan이다.

연결되어있는 포트를 확인해보면 패킷이 3개인 것들을 보면 된다.



(연결된 포트)



정리하면
1. 공격 유형은 무엇인가?
- TCP Half Scan
2. 공격자와 피해자의 IP는 무엇인가?
 - 공격자 : 192.168.1.100
 - 피해자 : 192.168.1.101
3. 만약 공격이 성공했다면 공격자가 알아낸 정보는 무엇이 있었는지?
 - 열려있는 포트들에 대한 목록
135
80
8080
445
8888
1025
139
3306 포트가 열려있다.
설명
- 4초동안 1만여개의 포트를 확인하였으므로 자동화된 툴을 사용했을 것이다.
-> Conversations 결과를 보면 포트를 스캔했다는 사실을 알 수 있다.


[ case4 ]
 - 정상적인 트래픽과 비정상적 트래픽이 함께 존재하는 샘플이다.
 - 정상적인 트래픽과 같이 있는 상태에서 분석을 진행하기 때문에
    정상적인 트래픽과 비정상적인 트래픽을 구분할 수 있어야 한다.

그렇다면 똑같이 공격유형과 공격자, 피해자를 알아보자.


(case4 상황)



먼저 패킷의 흐름을 파악하기 위해 분석의 맨 아래 전문가 정보를 선택한다.



(전문가 정보 선택)



(정보 화면)



화면을 보면 어떤 통신을 했는지
한 눈에 정리해서 볼 수 있다.

여기서 더 내려가보니..



(의심 패킷들)



의심되는 패킷들이 보인다.
다른 통신없이 SYN패킷만 보낸 흔적이다. 그것도 포트번호만 바꾸어가면서

Conversation으로 확인해보았다.



(Conversation 확인)



Conversation으로 확인해보니
포트스캔의 흔적을 찾을 수 있었다.

정리하면
1. 공격 유형은?
 -> 포트스캔
2. 공격자와 피해자의 ip는?
- 공격자 : 192.168.1.100
- 피해자 : 124.137.25.23
3. 공격이 성공했다면 공격자가 알아낸 정보는 무엇인지?
- 25번이 열려있다는 사실.


어플리케이션 프로토콜에 관해 알아볼 것인데
어플리케이션 프로토콜 중에는
FTP, DHCP, DNS, HTTP ... 등이 있다.

이 프로토콜을 확인해보기 위해 직접 서버를 구축해야하는데
서버 구축까지는 힘드므로
있는 프로그램을 활용하기 위해 리눅스를 다룰것이다.
리눅스에서 서버 프로그램을 돌릴 것이다.

그러기 위해 VM 을 설치하고 VM 상에서 리눅스를 설치해야한다.

아래까지는 VM을 설치 마무리한 상황이고 설정 화면이다.

먼저 VM의 네트워크 인터페이스 타입에는 3가지가 있다.
1. NAT -> 호스트가 라우터 역할로 NAT을 구성하는 것이다. 
2. Host Only -> 호스트끼리만 통신이 되는 것이다.
3.Bridge (L2) -> 호스트 운영체제랑 네트워크 인터페이스를 같이 사용한다.

여기서 우리는 Bridge로 설정할 것이다.




(브릿지 타입으로 설정)



그 후 리눅스를 설치한다.

아래는 설치후 로그인 화면이다.




(로그인 화면)





(ifconifg 화면)



윈도우에서는 ipconifg였지만 리눅스에서는 ifconfig로 IP를 확인 할 수 있다.
확인해보니 루프백 인터페이스만 설정되어있고
다른 인터페이스는 없는 상태였다.

DHCP 서비스가 닫혀있었기 때문이었다.
다음은 DHCP 설정을 하는 과정이다.
/etc/sysconfig/network-scripts/ 로 들어가서 ifcfg-eth0 파일을 수정해주어야한다.




(/etc/sysconfig/network-scripts/ 폴더 내용)



vi 편집기를 이용해 eth0 파일을 연다.

그 후 ONBOOT 옆에 no라고 되있는 것을 yes로 바꾸어준다.




(yes로 바꾸어준 모습)



설정후 reboot 해준다.

다시 켜서 확인해보면
ifconfig에서 eth0 인터페이스가 설정되어있는 것을 확인할 수 있다.




(인터페이스가 설정된 모습)



설정이 된 모습을 확인했고
실제로 잘 통신이 되는지 체크했다.
1. 게이트웨이와의 통신 체크
2. 외부 IP주소와 통신 체크
3. DNS lookup 가능 체크



(통신이 잘 되는 모습)



통신이 잘 되는 것을 확인 할 수 있었다.

마지막으로 리눅스에서 네트워크 실습을 할 것이므로
방화벽을 꺼주어야한다. (우리는 해킹 실습을 할 것 이기 때문에.)

* 리눅스 보안설정 해지
 
 방화벽 : iptables
 SELinux : Security Enhanced Linux -> 현재 리눅스보안의 핵심

먼저 iptables를 삭제해 줄것이고 SELinux를 설정을 바꾸어 줄것이다.



(iptables)



/etc/sysconfig 폴더에 들어가서 iptables를 삭제해준다.




(삭제하는 모습)



명령어는
rm -rf iptables 이다.

또 vi 편집기를 이용해 selinux를 열어서 diabled로 바꾸어준다. (아래처럼)




(설정화면)



그러면 이제 설정은 끝이다. reboot하고 설정을 확인해본다.
getenforce를 입력했을 때 Disabled가 나오고
iptalbes -L 을 입력했을 때 아무것도 안나오면 설정이 완성 된 것이다.



(설정이 잘 된 모습)



리눅스 설정은 여기 까지 끝이다.

이제 어플리케이션 프로토콜을 분석하기위해
와이어샤크 프로그램을 사용할 것이다.

와이어샤크 프로그램 실행 첫 화면이다.



(와이어 샤크 첫 화면)



캡쳐를 누르면 여러 패킷이 담긴다.
지금까지 했던 Packetdump와 같다.



(패킷이 덤프된 모습)



오늘은 와이어샤크를 이용한 간단한 트러블슈팅 방법을 알아볼 것이다.

와이어샤크로 패킷을 덤프 받고 수상한 패킷을 찾아낸다.
그 패킷의 포트 번호를 확인한다. 그 후
cmd 명령창에서 netstat를 이용하는데
-o 를 이용하면 프로세스 ID를 표시할 수 있다.



(netstat 옵션)




(PID 출력 화면)



이 아이디로 찾는 것이다.
Crl + Alt + Del 을 누르면 작업관리자가 나오는데

보기 를 누르고 열선택에 들어가서 설정해줘야한다.



(작업관리자 화면)




(열선택 창화면)



여기서 PID 를 체크해주고 확인을 누른다.



(PID 표시 화면)



그렇게 되면 PID도 화면에 같이 볼 수 있다.

아래 화면에서 보듯 1184번이 궁금했는데 위에 작업관리자 PID 118번의 프로세스를 확인하니
vm웨어라고 적혀있다.
여기서 그 패킷은 vm 웨어의 것이구나 하고 알 수 있다.



(1184번 PID)



이런 방식으로
수상하거나 문제가 되는 패킷의 출처를 찾아낼 수 있고
이로 악성코드 실행 근원지를 찾을 수 있고
트러블슈팅을 할 수 있다.

앞으로 리눅스 서버와 와이어샤크를 이용해
어플리케이션 프로토콜을 확인해보고 취약점을 분석해 볼 것이다.


+ Recent posts