해커의 언어, 치명적 파이썬 – CHAPTER 2 침투 테스트 – 포트 스캐너 만들기

 

Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다.
연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다.

VIOLENT_PYTHON_S
[구매하기]

해커의 언어, 치명적 파이썬 – CHAPTER 1 소개
해커의 언어, 치명적 파이썬 – CHAPTER 2 침투 테스트 – 포트 스캐너 만들기
해커의 언어, 치명적 파이썬 – CHAPTER 2 침투 테스트 – SSH 봇넷 구축하기
해커의 언어, 치명적 파이썬 – CHAPTER 2 침투 테스트 – FTP와 웹을 이용한 대규모 공격
해커의 언어, 치명적 파이썬 – CHAPTER 2 침투 테스트 – 컨피커 노력하면 된다

2.1 소개: 모리스 웜 – 오늘날에도 유효할까?
– 모리스웸이 사용한 공격기법 3가지
1. sendmail 프로그램 취약점
2. finger 데몬의 취약점
3. 사용자 이름과 패스워드 목록을 이용한 원격쉘(RSH)으로 공격

2.2 포트 스캐너 만들기
– 정보수집은 모든 사이버 공격의 첫단계
– 열려있는 TCP 포트를 찾기 위해 스캔
– IP주소와 Tcp port 를 알아야 연결 가능.
– 3way handshaking (http://charmpa.egloos.com/1491449)

2.2.1 TCP 풀 커넥트 스캔
– socket API import
* socket.gethostbyname(hostname)
* socket.gethostbyaddr(ip_address)
* socket.socket([family[, type[, proto]]])
* socket.create_connection(address[, timeout[, source_address]])
– TCP 스캔은 TCP 처음 연결 시 일어나는 3-웨이 핸드쉐이킹을 탐지하는 기법이다. 만약 핸드쉐이킹이 정상적으로 완료되었다면, 해당 TCP 포트는 정상적으로 열려 있는 것으로 판단할 수 있다. 서비스 거부 공격을 막기 위해, 포트 스캐너는 핸드쉐이킹 직후 연결을 종료한다. 이 방식은 일반적인 소켓 connect()를 이용하기 때문에, Nmap 등의 프로그램에서는 이 방식을 연결 스캔(connect scan)으로 부른다.

– TCP 풀 커넥트 스캔을 위한 5단계
1. 호스트 이름과 스캐닝 할 포트 목록을 입력
2. 호스트이름을 IPv4 인터넷 주소로 변환
3. 각 포트마다 연결 시도
4. 서비스 판단을 위한 가비지 데이터 전송
5. 어플리케이션에서 전송하는 배너값읽음

2.2.2 애플리케이션 배너 가져오기
– 열려있는 포트를 발견하면, 데이터를 전송하고, 응답을 기다림.
– 응 답을 수집하면, 공격대상과 포트에서 실행되는 어플리케이션을 알수 있다.

2.2.3 쓰레드 사용하기
– 각소켓이 스캔을 하는 데 보통 수 초가 소요
– 순차적으로 스캔하는 것보다 동시에 스캔하는것이 빠름
– 쓰레드 사용 -> 동시에 화면에 출력, 알아보기 힘들고, 순서도 안맞음
– 세마포어를 사용해 lock을 걸어 한번에 하나의 쓰레드만 화면에 출력할수 있도록 구현

실행결과 :

2.2.4 Nmap 포트 스캐너 통합하기
– Nmap은 ACK, RST, FIN, SYN-ACK 등 다양한 기능 지원
– Nmap은 결과를 xml 형태로 저장
– XML 구문분석 라이브러리로 파이썬에서 값을 읽어옴(python-nmap 설치)
– 다른 종류의 포트 스캔
* TCP SYN SCAN : 하프오픈 스캔, SYN 패킷 보내고, 마지막 ACK를 안보냄, RST를 받으면 닫혀있음
* TCP NULL SCAN : TCP 플래그 헤더를 0으로 설정, RST를 받으면 닫혀있음
* TCP FIN SCAN : FIN을 전송(TCP 연결 종료), RST를 받으면 닫혀있음
* TCP XMAS SCAN : PSH, FIN, URG TCP 플래그를 활성화, RST를 받으면 닫혀있음

실행결과 :

 

This entry was posted in Python/Ruby/Perl, Reading and tagged , . Bookmark the permalink.

3 Responses to 해커의 언어, 치명적 파이썬 – CHAPTER 2 침투 테스트 – 포트 스캐너 만들기

댓글 남기기