[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만 바꿔주면 되는거라서...) 
저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'[+] 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 모듈을 손봐야 할 것 같다... ㅠㅠ 
저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'[+] 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가 모두 다른것을 볼 수 있다. 
저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'[+] 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 패킷을 받는 것을 볼 수 있다. 

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'[+] 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 - 서버에서 로그인 확인 장면]

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

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

+ Recent posts

티스토리 툴바