본문 바로가기

Computer Science/정보보호

목록화

정보수집의 마지막 단계입니다.

 

목록화란?

정보수집한 내용을 리스트업 하는 것 입니다.

 

 

풋프린팅

 

공격자가 남긴 흔적들을 모으는 기술입니다.

 

풋 프린팅 자체가 공학적 기술을 요하는 것은 아닙니다.

주로 사회공학적 기법으로 많은 사건이 일어납니다.

 

 

타겟 시스템의 사용자 계정을 알아야 합니다.

계정을 알아야 계정에 해당하는 패스워드를 알아야 겠습니다.

 

주로 게시판을 이용해서 정보를 얻습니다.

 

해커입장에서 게시판을 열어서 계정을 알아본다거나, 패스워드를 알아본다거나 하는 직접 하는것 보다

접속 하는것 조차 어려울 수 있습니다.

 

 

스캔

여기서 스캔은 어떤 서버에 서비스가 무었이 있는지, 동작을 하고 있는지 아닌지를 살펴보는 작업입니다.

 

 

ping이라는 어플리케이션

라우터가 잘 작동하는지 알아봅니다.

 

ICMP를 활용해서 공격 대상 시스템이 작동하는지 알 수 있습니다.

 

request와 reply는 한 페어로 사용됩니다.

reply가 온다면 잘 작동한다는 뜻입니다.

 

timestamp는 라우터까지 가는 시간값을 요청하고 받아오는 것입니다.

 

4가지의 페어메세지를 이용할 수 있습니다.

 

ping에서 사용하는 echo가 많이 사용됩니다.

 

 

 

OS마다 ICMP의 reqeust, reply 의 TTL 값이 다릅니다.

공격자가 공격 대상시스템이 얼마나 멀리 떨어져 있는지 알 수 있습니다.

또한 OS도 추정 할 수 있습니다.

 

 

리눅스에서 ICMP 페이로드는 56byte데이터가 붙어서 갑니다.

 

Echo Reqeust 패킷이 안먹힐 때 

서버에서 reqeust가 오는 것 자체가 오버헤드일 수 있습니다.

그렇기 때문에 firewall에서 필터링할 수 있습니다.

 

 

지금까지는 ICMP 메세지4가지로 확인하는 방법이였습니다.

어느 서비스 까지 제공하는가 = 포트가 열려있는가

 

ex)80번이 열려있다면 웹서버로 동작하는 것입니다.

 

tcp는 연결 기반의 프로토콜 입니다.

3헨드 쉐이킹으로 왔다갔따하면 세션이 만들어집니다.

 

모든 포드에 보내봅니다.

 

만약 연결이 된다면 해당 포트가 열려있다는 뜻입니다.

 

닫힌 포트에다가 SYN을 보내면 Reset + ACK을 보냅니다.

 

 

TCP Open (ident)스캔 - 프로세스의 소유권자까지 알 수있는 스캔입니다.

 

열린 포트에 연결을 하고 

 

113번 포트로 TCP접속을 생성합니다.

 

113번은 원격 서버에 데몬(=프로세스)에서 어떤 소유권자를 확인해주는 서비스 입니다.

 

tcp open은 세션을 모두 열여둔다는 의미입니다.

 

보통 113번으로 정보를 얻을 수 없게 만듭니다.

 

nmap으로 -i라는 옵션을 주면 서버쪽으로 스캐닝을 하면서 ident 스캔을 하게 됩니다.

 

스텔스 스캔

남모르게, 흔적을 남기지 않고 스캔하는 것입니다.

 

완벽한 세션을 맺지 않으려고 TCP Half Open 입니다.

 

ACK를 보내지않고 RST를 보내서  반만 연결합니다.

 

또다른 스텔스 스캔종류가 있습니다.

 

FIN(Finish) 스캔 : 포트가 열린 경우 응답이 없고 , 닫힌 경우 RST 패킷이 돌아옴

맺어진 연결을 해제하는 요청인 FIN입니다.

내가 맺어진 요청도 아닌대 FIN이 오면 응답을 안합니다.

만약 닫힌 포트에 보내면 RST을 보냅니다.

 

열려있으냐 닫혀있느냐를 알 수 있습니다.

이것도 로그를 남기지 않습니다.


NULL 스캔 : 플래그 (Flag) 값을 설정하지 않고 보낸 패킷


XMAS 스캔 : ACK, FIN, RST, SYN, URG 플래그 모두를 설정하여 보낸 패킷

 

전부 로그를 남기지 않고 포트의 활성화 여부를 알 수 있습니다.

 

 

 

TCP에서는 ACK 패킷을 별도로 보낼 수도 있고 데이터와 함깨 보낼 수 있습니다.

 

모든 포트에 ACK 패킷 보내봅니다. (0~6535)

그러면 Reset 패킷을 받을 것입니다.

 

RST패킷을 잘 관찰하면 열린포트에서 온건지 닫힌포트에서 온건지 알 수 있습니다.

 

열린패킷경우 - TTL값이 64이하, 윈도우가 0이 아닌 값

닫힌패킷경우 - TTL값이 큰 값, 윈도우가 0

 

이런 것들을 차단하는 프로그램이나, OS가 있습니다.

 

SYN패킷은 기본적으로 받아들여야 하는 패킷이기 때문에 구별하기가 어렵답니다.

 

 

TCP와 UDP를 이용한 스캔

TCP 헤더를 조각내서 보내는 것입니다.

 

스캐닝을 기본적으로 하면서도 방화벽을 지날 수 있습니다.

 

짧은 시간동안 많은 패킷을 보내버립니다.

 

아주 긴 시간 보내서 스캐닝인지 아닌지 알 수 없게 만드는 방법도 있습니다.

 

실습을 해봅시다

nmap으로 옵션을 통해 단편화를 통해서 TCP를 만들 수 있습니다.

 

조각을 내는것 입니다.

 

원래는 20byte tcp 메세지 인데 3개로 조각이 난것입니다.

 

ip패킷으로 보냇고 조각이 난 것이라고 합니다.

이것은 184번으로 모여야 하나의 TCP/IP의 메세지가 된다고 알려줍니다.

TCP가 3조각 나도 ip헤더가 3조각에 모두다 붙습니다.

 

그러면 ip헤더는 id가 동일합니다.  

 

182번을 봐봅시다.

조각난 부분의 첫번째 메세지 이죠?

 

id가 동일합니다.

 

flag로 뒤에 조각이 더 있다로 알리고

offset은 첫 번째 이니깐 0으로 해둡니다.

 

183번을 봐봅시다.

offset이 8로 변경된 것을 알 수 있습니다.

 

184번을 봐봅시다.

더이상 조각난 것이 없기 때문에

flags는 0입니다.

offset은 16입니다.

 

ip fragements를 보면 어떻게 나누어 졌는지 알 수 있습니다.

182(8), 183(8), 184(8)로 24byte인 것을 알 수 있습니다.

 

툴마다 여러가지 레벨을 제공합니다.

 

밑으로 갈 수록 더 많은 패킷을 보냅니다.

 

paranoid - 편집증

sneaky - 교활한

 

 

 

21번입니다.

 

클라이언트가 서버쪽으로 세션을 잡습니다.

 

FTP는 파일을 전송하기 때문에 세션은 컨트롤 메세지가 주고 받는 세션입니다.

 

어떤 메세지를 보내냐면

PORT 명령어를 보냅니다.

 

파일을 전송하는 세션에 SYN을 보내서 요청해라는 것을 합니다.

 

 

UDP 스캔

TCP는 다양한 스캔이 가능했습니다.

 

UDP는 간단하게 가능합니다.

 

목적지 포트를 달리해서 보내봅니다. 열려있는지 닫혀있는지 알 수 있습니다.

 

열려있다면 아무 응답이 없습니다.

닫혀있다면 ICMP Unreachable 패킷을 보냅니다.

 

이것을 이용해서 확인할 수 있습니다.

하지만 신빙성이 떨어집니다.

 

 

 

실습 5 - 1 다양한 방법으로 스캔하기

여러가지 스캐닝 방법을 들었습니다.

 

공격자 입장으로보면 어느 포트가 활성화 되었는가를 확인해봐야 합니다.

 

내가 깐 윈도우 서버 2012를 서버를 공격해봅시다.

 

telnet 깔 때 처럼

 

처음에는 apt-get update로 내가 가진 패키지들을 업데이트 해봅시다.

 

ping보다 더 정교한 fping을 설치합니다.

 

버전이 뭐고, 사이즈가 얼마나 되고 아키택쳐는 얼마인지 사이즈가 나와있습니다.

 

 

 

가장 많이 사용하는 옵션 입니다.

 

ping은 다음에 대상 시스템 ip, url을 적어줘야했습니다.

 

fping은 누가 살아있는지, 활성화된 ip가 뭔지 알려줍니다.

ip를 바꿔가면서 네트워크를 쓰고 있는 머신이 누구인지 알려줍니다.

 

나의 우분투 ip를 알아야 합니다. 

리눅스는 ifconifg로 나의 ip를 알 수 있습니다.

 

192.168.0.0/24

끝에 24는 왜붙혔나? 192.168.0까지가 네트워크 id 이라는 뜻입니다.

0으로 시작하는 ip들한태 모두 ping을 보내봅니다.

-q는 메세지 안보이게 하는거

-a는 모두

-s는 잘 보이게 하는것 

-g는 그룹에 보내는 것

 

0.1하고 0.100, 0.200이 살아있습니다.

 

 

255와 0은 호스트 ip로 안뜹니다.

그래서 254개중에 3개가 살아있다는 것입니다.

 

 

nmap이라는 툴도 install해야 합니다.

 

nmap을 통해서 다양한 스캐닝을 해볼 수 있습니다.

 

-sT는 TCP SYN을 이용해서 TCP Open 스캔입니다.

 

서버를 운영하고 있는 윈도우 2012서버에다가 하는게 좋을 것입니다.

기본 OS는 서버를 운영하고 있지 않습니다.

 

wireShake을 우분투에서 켜놓고 실제 명령어가 어떤식으로 동작하는 것을 패킷을 분석해봅시다.

 

80은 http

134은 msrpc로 열려있습니다.

 

unknown이지만 tcp로 사용이 된다는 것도 알 수 있습니다.

 

-sS는 SYN 스텔스 스캔입니다.

 

로그를 남기지 않고 스캔을 하기 위함입니다.

 

-sF는 FIN 플래그를 설정해서 가는 스캔입니다.

-p로 특정 포트로만 갈 수 있습니다.

 

많이 보내지 않기 때문에 필터링될 염려는 줄어듭니다.

 

-f는 프래그먼트 옵션을 주는 것입니다.

 

조각이난 패킷은 -f로 만듭니다.

헤더를 온전하지 않게하고 통과시키기 위해 씁니다.

 

 

앞에 있는 것과 같이 쓸 수있는 것입니다.

 

 

지금까지는 우분투로만 했습니다.

 

윈도우 용도 있습니다.

nmap 사이트가 있고 다운로드 받아서 사용할 수 있습니다.

 

728x90

'Computer Science > 정보보호' 카테고리의 다른 글

스니핑 - 1  (0) 2021.10.13
스캔 - 운영체제 탐지  (0) 2021.10.13
04 IP주소 추적  (0) 2021.09.29
Windows2012Server Install & DNS 구동  (0) 2021.09.29
DNS를 활용한 정보수집  (0) 2021.09.22