파이핑에 의한 nmap 사용에 대해 문의 드립니다.
포트번호 IP주소.. 순서로 된 파일 정보를 받아서, nmap 으로 해당 IP:포트를 체크하고자 하는데, 파이핑에 의한 실행이 잘 안됩니다.;; 목록파일인 new 라는 파일의 내용이 다음과 같습니다.
# cat new
80 192.168.111.100
기본적으로 사용했던 명령의 형태는 다음과 같은데, 에러가 납니다.
# cat new | xargs -t -i nmap -sV -p {}
nmap -sV -p 80 192.168.111.100
Starting Nmap 6.40 ( http://nmap.org ) at 2016-06-13 17:04 KST
Error #487: Your port specifications are illegal. Example of proper form: "-100,200-1024,T:3000-4000,U:60000-"
QUITTING!
헌데, 출력된 명령문을 마우스로 긁어서 프롬프트상에 붙여넣고 실행하면 잘됩니다. 결과가 잘 나옵니다.
# nmap -sV -p 80 192.168.111.100
Starting Nmap 6.40 ( http://nmap.org ) at 2016-06-13 16:54 KST
Nmap scan report for 192.168.111.100
Host is up (0.000069s latency).
PORT STATE SERVICE VERSION
80/tcp closed http
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.17 seconds
해서, 읽은 파일내용에 보이지않는 무언가가 있나 싶어서, 앞뒤 공백, 캐리지리턴, 뉴라인 기호까지 있다면 제거하고 nmap 으로 보냈는데도, 마찬가지 에러가 나더군요.
# cat new | sed 's/^ *//; s/ *$//; s/\r//; s/\n//' | xargs -t -i nmap -sV -p {}
nmap -sV -p 80 192.168.111.100
Starting Nmap 6.40 ( http://nmap.org ) at 2016-06-13 17:18 KST
Error #487: Your port specifications are illegal. Example of proper form: "-100,200-1024,T:3000-4000,U:60000-"
QUITTING!
헌데, 동일 파일을 윈도우상에서 nmap으로 돌리면, 잘 됩니다. 여기선 파이핑은 아니고 for /f 문을 이용한거지만요.
Z:\>for /f "usebackq tokens=1,2" %A in (`type new`) do nmap -sV -p %A %B
Z:\>nmap -sV -p 80 192.168.111.100
Starting Nmap 7.12 ( https://nmap.org ) at 2016-06-13 17:23 ´eCN¹I±¹ C¥AØ
½A
Nmap scan report for 192.168.111.100
Host is up (0.00s latency).
..중략..
Nmap done: 1 IP address (1 host up) scanned in 2.70 seconds
리눅스에서 제가 사용한 명령문에 어떤부분이 문제일까요? xargs 사용에 문제점이 있었을까요? 조언 좀 부탁드리겠습니다. 감사합니다.
nmap -sV -p "80
nmap -sV -p "80 192.168.111.100" 처럼 실행되기 때문에 그렇습니다.
아, 그런 점이 있었군요. -i 옵션이 파이핑 된
아, 그런 점이 있었군요. -i 옵션이 파이핑 된 결과를 한꺼번에 보내느라 큰따옴표 처리를 하나 보군요. 조언 감사합니다.
문제점을 알려주셔서, 덕분에 해결책을 찾았습니다.
문제점을 알려주셔서, 덕분에 해결책을 찾았습니다. 감사합니다 ^^
댓글 달기