[NULL Scan 원리]
1. TCP Flag를 NULL로 하여(아무것도 설정하지 않음) 대상 시스템으로 전송
2. 응답이 없으면 Open이나 Filtered 상태이다.
3. RST/ACK 패킷이 온다면 확실하게 Closed 상태이다.

해당 스캔 기술은 정확히 포트의 Open 상태를 점검하지 못한다. 



이번 스크립트도 이전 스크립트와 마찬가지로 방화벽 기능이 On 상태에서 진행되었다.

  [그림 1 - 대상 시스템의 방화벽 설정 화면] 

아래는 nmap의 대상 시스템 스캔 결과이다.

  [그림 2 - nmap의 대상 시스템 스캔 결과]

아무것도 잡아내지 못하는것을 볼 수 있다

아래는 내가 코딩한 스크립트의 결과이다.

[그림 3 - 내가 작성한 스크립트 결과]
 
스크립트의 결과가 들어있는 txt 파일을 보니 아무것도 들어있지 않다.

이번에도 마찬가지로 scapy 모듈문제인지 내 코딩이 문제인지 스크립트가 무한동작하는 현상이 나타났다.

혹시나 해서 윈도 기본방화벽은 stateful 방화벽의 일종이라고 본다고 하여 내 패킷이 정상적인 연결을 하는지 모니터링 하는것이 아닌가 하고 RST 패킷을 보내 강제로 접속을 끊어보았는데도 이상현상은 계속 되었다.

혹시 이 문제의 해결방법을 아시면 제발 답변좀 .... ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

NULL 스캔과 FIN, XMAS 스캔은 방식이 같기 때문에 따로 만들어야 할지 고민이다..(Flag만 바꿔주면 되는거라서...) 
저작자 표시 비영리 변경 금지
신고

'[+] Project > [-] Port Scanner' 카테고리의 다른 글

NULL Scanner  (0) 2011.12.19
ACK Scanner  (2) 2011.12.18
SYN Scanner  (0) 2011.12.16
프로젝트 개요  (0) 2011.12.15

[ACK Scan 원리]
ACK Scan은 포트 Open/Close를 점검하는 것 보다 Stateful 방화벽의 상태를 점검하는 용도로 더 많이 쓰인다.
1. ACK Flag만 설정된 패킷을 대상 시스템에 보낸다.
2. port의 Open/Close 여부 상관 없이 RST 패킷이 오게 되는데 이때는 Unfiltered 상태이다.
3. 또 RST 패킷이 오지 않거나 ICMP 패킷이 오게 되면 Filtered 상태이다. 


방화벽이 설정되어 있는 Win XP SP2 시스템을 상대로 스캔을 시도 하였다.

아래는 방화벽이 설정되어 있는 모습이다.

  [그림 1 - 대상 시스템의 방화벽이 설정되어 있는 모습] 

처음에는 내가 작성한 스크립트가 정상적으로 작동하지 않는 듯 하여 삽질을 했지만 nmap과 비교해본 결과 정상적으로 작동하고 있었다.

아래 이미지는 nmap으로 대상 시스템을 스캔한 결과이다. 

[그림 2 - nmap 스캔 결과]

아래는 내가 코딩한 스크립트 결과이다.(한가지 버그가 있다. 아래에서 설명)
 

[그림 3 - ack.py라는 내가 코딩한 스크립트의 스캔 결과]

nmap과 스크립트의 결과가 동일한 것을 볼 수 있다. 

그런데 한가지 문제점이 있다.

스크립트가 모든 스캔을 끝마치고도 종료를 하지 않는다.

실행시간을 체크해 sys.exit()를 불러오기도 하고, 마지막 port를 체크해 sys.exit()를 불러오기도 하고 별의별 방법을 다 써봤지만 종료가 되지 않는다.

방화벽에 필터되어 응답이 오지 않는것에 대해 무한정 기다리는 것인데, 코딩이 잘못된것이 아니고 scapy 모듈자체에 문제가 있는 것 같다.

아무래도 scapy 모듈을 손봐야 할 것 같다... ㅠㅠ 
저작자 표시 비영리 변경 금지
신고

'[+] Project > [-] Port Scanner' 카테고리의 다른 글

NULL Scanner  (0) 2011.12.19
ACK Scanner  (2) 2011.12.18
SYN Scanner  (0) 2011.12.16
프로젝트 개요  (0) 2011.12.15
  1. 김형락 2012.09.26 17:49 신고

    님 스캔하는 소스좀 알고 싶은데 보내주실수 있나용???

    koliok@naver.com 으로 보내주세요

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2012.10.07 16:12 신고

      죄송합니다. 공개할 소스였으면 벌써 공개하지 않았을까요?! ㅎ

[IP Spoofing Tool 원리]
1. scapy 모듈로 IP 헤더 중 src 임의로 설정
2. IP헤더에 TCP헤더나, ICMP헤더를 덧붙여 전송

해당 스크립트는 scapy 모듈로 코딩하였음 



해당 스크립트는 random 함수를 통해 1~254까지 IP를 생성하게 하여 1.1.1.1 ~ 254.254.254.254까지의 IP대역을 출발지 IP로 설정하여 ICMP 패킷을 10개 전송하도록 코딩되었다.


[그림 - IP 스푸핑되어 전송되는 ICMP 패킷]

위 이미지를 보면 출발지 IP가 모두 다른것을 볼 수 있다. 
저작자 표시 비영리 변경 금지
신고

'[+] Project > [-] IP Spoofing Tool' 카테고리의 다른 글

IP Spoofing Tool  (1) 2011.12.17
프로젝트 개요  (0) 2011.12.15
  1. dkdj8427 2013.09.12 15:52

    관리자의 승인을 기다리고 있는 댓글입니다

[SYN Scan 원리]
1. SYN flag를 설정하고, 대상 호스트:포트로 전송
2. 해당 포트가 닫혀있다면, RST/ACK 패킷을 전송해옴
3. 해당 포트가 열려있다면, SYN/ACK 패킷을 전송해옴

해당 스크립트 구현은 scapy 네트워크 모듈로 구현 하였음. 


아래 이미지는 TCP 프로토콜로 1000번 포트까지 스캔한 결과이다.

[그림 1 - 포트 스캔 결과]

아래 이미지는 스캔 대상 서버의 포트 개방 현황이다.

 

[그림 2 - 스캔 대상 컴퓨터의 개방된 포트 현황]

두 이미지를 살펴보면 스캔 결과가 올바르게 나오는 것을 확인 할 수 있다.

아래 이미지는 포트스캔 패킷 캡쳐 화면이다.

 

[그림 3 - 포트 스캔 패킷 캡쳐 화면]

해당 스크립트는 출발지 포트를 랜덤으로 설정하였기에 포트번호가 모두 다른 것이며, SYN 패킷을 보내고 닫혀 있는 포트에 대해서는 RST/ACK 패킷을 받는 것을 볼 수 있다. 

저작자 표시 비영리 변경 금지
신고

'[+] Project > [-] Port Scanner' 카테고리의 다른 글

NULL Scanner  (0) 2011.12.19
ACK Scanner  (2) 2011.12.18
SYN Scanner  (0) 2011.12.16
프로젝트 개요  (0) 2011.12.15
python에서 지원하는 FTPlib 모듈을 이용하여 작성하였다.

 


[그림 1 - 클라이언트에서패스워드 찾은 장면]

 


[그림 2 - 서버에서 로그인 확인 장면]

저작자 표시 비영리 변경 금지
신고

'[+] Project > [-] Brute Forcing Tool' 카테고리의 다른 글

FTP Brute Force Script  (0) 2011.12.15
프로젝트 개요  (0) 2011.12.15

+ Recent posts