윈도우즈 환경에서 nmap 파이썬 모듈을 사용하기 위해 인터넷 자료를 찾아보았지만
잘 정리된 문서가 없는 것 같다.
그래서 직접 실행을 하면서 정리해보았다.
1. 설치 방법
http://xael.org/norman/python/python-nmap/
다음의 사이트에서 모듈 파일을 다운받는다.
참고로 파이썬 2.7 버전을 쓰시는 사용자는 다음 파일을 다운받으면 된다.
압축을 푼 뒤
다음 명령어를 사용해 모듈을 설치한다.
python setup.py install |
2. 모듈 분석
1) nmap.PortScanner
- 예제 :
>>> import nmap >>> nm = nmap.PortScanner() >>> nm.scan('127.0.0.1', '22-443') >>> nm.command_line() u'nmap -oX - -p 22-443 -sV 127.0.0.1' >>> nm.scaninfo() {u'tcp': {'services': u'22-443', 'method': u'connect'}} >>> nm.all_hosts() [u'127.0.0.1'] >>> nm['127.0.0.1'].hostname() u'localhost' >>> nm['127.0.0.1'].state() u'up' >>> nm['127.0.0.1'].all_protocols() [u'tcp'] >>> nm['127.0.0.1']['tcp'].keys() [80, 25, 443, 22, 111] >>> nm['127.0.0.1'].has_tcp(22) True >>> nm['127.0.0.1'].has_tcp(23) False >>> nm['127.0.0.1']['tcp'][22] {'state': u'open', 'reason': u'syn-ack', 'name': u'ssh'} >>> nm['127.0.0.1'].tcp(22) {'state': u'open', 'reason': u'syn-ack', 'name': u'ssh'} >>> nm['127.0.0.1']['tcp'][22]['state'] u'open' |
- 정보 : 포트 스캐너 기능
- 구현 : 클래스
- 다음과 같은 방식으로 사용
portScanner = nmap.PortScanner() portScanner['ip address'].함수이름() 또는 portScanner.함수이름() |
- 함수 종류
- all_hosts() : 정렬된 모든 호스트의 리스트를 반환
- command_line() : 스캔에 쓰인 커맨드라인 반환
- get_nmap_last_output() : nmap이 출력한 가장 최근 문자열(디버깅 용도)
- has_host(host) : 결과에 해당 호스트가 존재하는지 확인
- listscan(hosts='127.0.0.1') : 스캔을 하지는 않지만 타겟 호스트를 해석한 뒤 호스트 목록을 반환
- nmap_version() : nmap의 버전 출력
- scan(hosts='127.0.0.1', ports=None, arguments='-sV') : 주어진 호스트를 스캔
- hosts : 도메인또는 IP 주소
예제 'scanme.nmap.org' 또는 '198.116.0-255.1-127' 또는 '216.163.128.20/20'
- ports : 포트
예제 : '22,53,110, 143-4564'
- arguments : 인자
예제 '-sU -sX -sC'
- scaninfo() : scaninfo 구조체 반환
예제 : {u'tcp': {'services': u'22', 'method': u'connect'}}
- scanstats() : scanstats 구조체 반환
예제 : {'uphosts': u'3', 'timestr': u'Thu Jun 3 21:45:07 2010', 'downhosts': u'253', 'totalhosts': u'256', 'elapsed': u'5.79'}
'개발 > Python' 카테고리의 다른 글
Python(파이썬)으로 URL, IP 추출 (0) | 2016.11.13 |
---|---|
matplotlib 이용해 파일 사용 흔적 확인 (0) | 2015.10.16 |
py2exe 를 사용해 파이썬 코드를 exe 실행파일로 만들기 (1) | 2015.03.10 |
windows에서 pip 설치 및 사용하기 (0) | 2015.03.09 |
파이썬을 이용해 텍스트파일의 개행 제거하기 (0) | 2014.12.02 |