여러 테스트를 하다 보면 패킷생성 툴을 이용 하게 되는데
간단 하지만 기능은 무시 할 수 없는 툴을 소개 하고자 한다.
스캐너로 유명한 NMAP 의 또 다른 기능 Nping 을 소개한다.
Nping 은 네트워크 패킷 생성 도구이자, 그 응답의 시간측정, 분석 기능을 제공한다.
Nping 은 다양한 프로토콜을 지원하고 각 프로토콜의 헤더를 조정할 수 있다.
Ping 과 같이 어렵지 않게 사용할 수 있다.
네트워크 성능 측정에도 이용될 수 있는데, ARP Poisong, DoS 공격 등과 같은 트래픽 생성도 가능하다.
Nping 은 2009년 구글 Summer of Code 로 부터 처음 시작되었다고 한다.
주요기능은,
- TCP, UDP, ICMP, ARP 패킷 생성
- 여러개의 호스트 및 포트 지정 가능
- Non 루트 유저를 위한 모드 제공
- 고급사용을 위한 에코모드
- 이더넷 프레임 생성 지원
- IPv6 지원
- 리눅스, 맥, 윈도우 에서 동작
- 자유롭게 커스트마이징이 가능
설치는 Nmap 사이트를 통해 nmap 을 설치 하게 되어지면
Dos 창 및 쉘에서 nping 을 실행 할 수 있게 되어진다.
아래는Nmap 공식 사이트 링크 이다.
Nping 도움말을 보면 누구나 쉽게 사용할 수 있을 만큼 어렵지 않다.
다양한 옵션이 존재하고 몇 가지 사용 예제를 등록 해본다.
[Nping 옵션 ]
------------------------------------------------------------------------------------------------------
C:\>nping
Nping 0.6.46 ( http://nmap.org/nping )
Usage: nping [Probe mode] [Options] {target specification}
TARGET SPECIFICATION:
Targets may be specified as hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.*.1-24
PROBE MODES:
--tcp-connect : Unprivileged TCP connect probe mode.
--tcp : TCP probe mode.
--udp : UDP probe mode.
--icmp : ICMP probe mode.
--arp : ARP/RARP probe mode.
--tr, --traceroute : Traceroute mode (can only be used with
TCP/UDP/ICMP modes).
TCP CONNECT MODE:
-p, --dest-port <port spec> : Set destination port(s).
-g, --source-port <portnumber> : Try to use a custom source port.
TCP PROBE MODE:
-g, --source-port <portnumber> : Set source port.
-p, --dest-port <port spec> : Set destination port(s).
--seq <seqnumber> : Set sequence number.
--flags <flag list> : Set TCP flags (ACK,PSH,RST,SYN,FIN...)
--ack <acknumber> : Set ACK number.
--win <size> : Set window size.
--badsum : Use a random invalid checksum.
UDP PROBE MODE:
-g, --source-port <portnumber> : Set source port.
-p, --dest-port <port spec> : Set destination port(s).
--badsum : Use a random invalid checksum.
ICMP PROBE MODE:
--icmp-type <type> : ICMP type.
--icmp-code <code> : ICMP code.
--icmp-id <id> : Set identifier.
--icmp-seq <n> : Set sequence number.
--icmp-redirect-addr <addr> : Set redirect address.
--icmp-param-pointer <pnt> : Set parameter problem pointer.
--icmp-advert-lifetime <time> : Set router advertisement lifetime.
--icmp-advert-entry <IP,pref> : Add router advertisement entry.
--icmp-orig-time <timestamp> : Set originate timestamp.
--icmp-recv-time <timestamp> : Set receive timestamp.
--icmp-trans-time <timestamp> : Set transmit timestamp.
ARP/RARP PROBE MODE:
--arp-type <type> : Type: ARP, ARP-reply, RARP, RARP-reply.
--arp-sender-mac <mac> : Set sender MAC address.
--arp-sender-ip <addr> : Set sender IP address.
--arp-target-mac <mac> : Set target MAC address.
--arp-target-ip <addr> : Set target IP address.
IPv4 OPTIONS:
-S, --source-ip : Set source IP address.
--dest-ip <addr> : Set destination IP address (used as an
alternative to {target specification} ).
--tos <tos> : Set type of service field (8bits).
--id <id> : Set identification field (16 bits).
--df : Set Don't Fragment flag.
--mf : Set More Fragments flag.
--ttl <hops> : Set time to live [0-255].
--badsum-ip : Use a random invalid checksum.
--ip-options <S|R [route]|L [route]|T|U ...> : Set IP options
--ip-options <hex string> : Set IP options
--mtu <size> : Set MTU. Packets get fragmented if MTU is
small enough.
IPv6 OPTIONS:
-6, --IPv6 : Use IP version 6.
--dest-ip : Set destination IP address (used as an
alternative to {target specification}).
--hop-limit : Set hop limit (same as IPv4 TTL).
--traffic-class <class> : : Set traffic class.
--flow <label> : Set flow label.
ETHERNET OPTIONS:
--dest-mac <mac> : Set destination mac address. (Disables
ARP resolution)
--source-mac <mac> : Set source MAC address.
--ether-type <type> : Set EtherType value.
PAYLOAD OPTIONS:
--data <hex string> : Include a custom payload.
--data-string <text> : Include a custom ASCII text.
--data-length <len> : Include len random bytes as payload.
ECHO CLIENT/SERVER:
--echo-client <passphrase> : Run Nping in client mode.
--echo-server <passphrase> : Run Nping in server mode.
--echo-port <port> : Use custom <port> to listen or connect.
--no-crypto : Disable encryption and authentication.
--once : Stop the server after one connection.
--safe-payloads : Erase application data in echoed packets.
TIMING AND PERFORMANCE:
Options which take <time> are in seconds, or append 'ms' (milliseconds),
's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m, 0.25h).
--delay <time> : Adjust delay between probes.
--rate <rate> : Send num packets per second.
MISC:
-h, --help : Display help information.
-V, --version : Display current version number.
-c, --count <n> : Stop after <n> rounds.
-e, --interface <name> : Use supplied network interface.
-H, --hide-sent : Do not display sent packets.
-N, --no-capture : Do not try to capture replies.
--privileged : Assume user is fully privileged.
--unprivileged : Assume user lacks raw socket privileges.
--send-eth : Send packets at the raw Ethernet layer.
--send-ip : Send packets using raw IP sockets.
--bpf-filter <filter spec> : Specify custom BPF filter.
OUTPUT:
-v : Increment verbosity level by one.
-v[level] : Set verbosity level. E.g: -v4
-d : Increment debugging level by one.
-d[level] : Set debugging level. E.g: -d3
-q : Decrease verbosity level by one.
-q[N] : Decrease verbosity level N times
--quiet : Set verbosity and debug level to minimum.
--debug : Set verbosity and debug to the max level.
EXAMPLES:
nping scanme.nmap.org
nping --tcp -p 80 --flags rst --ttl 2 192.168.1.1
nping --icmp --icmp-type time --delay 500ms 192.168.254.254
nping --echo-server "public" -e wlan0 -vvv
nping --echo-client "public" echo.nmap.org --tcp -p1-1024 --flags ack
SEE THE MAN PAGE FOR MANY MORE OPTIONS, DESCRIPTIONS, AND EXAMPLES
------------------------------------------------------------------------------------------------------
[Nping example]
# These can be run with no privileges ******************************************
/* Do simple TCP connect()s to one host */
nping --tcp-connect google.com
/* Do simple TCP connect()s to multiple hosts */
nping --tcp-connect google.com ask.com yahoo.com bing.com
/* Send an UDP packet with 100 bytes of random data */
nping --udp google.com -p 53 --data-length 100
/* Try to TCP connect() to a range of ports */
nping --tcp-connect google.com -p75-85 -c 1
# These require root access ****************************************************
# Send TCP Syn with the ECN flag also set
sudo nping --tcp google.com --flags syn,ecn -p80,443
# Send UDP packet with a bogus checksum from port 1337
sudo nping --udp --badsum --source-port 1337 -p 53 google.com -v6
# Send ARP requests to 192.168.1.1
sudo nping --arp 192.168.1.1
# Send ARP requests to all host in network 192.168.1.0 (inter-probe delay = 100ms)
sudo nping --arp 192.168.1.0/24 --delay 100
# Send 300 TCP packets at a rate of 100pkts/sec
sudo nping --tcp google.com --rate 100 -c 300
# Send ICMP echo request wit custom ID and Seq fields
sudo nping google.com --icmp --icmp-type echo --icmp-id 31337 --icmp-seq 1
# Send ICMP echo reply
sudo nping google.com --icmp --icmp-type echo-reply
# Send ICMP Parameter problem with custom pointer
sudo nping google.com --icmp --icmp-type parameter-problem --icmp-param-pointer 9
# Send ICMP Source Quench
sudo nping google.com --icmp --icmp-type source-quench -v6
# Send ICMP Time Exceeded because time exceeded during reassembly
sudo nping google.com --icmp --icmp-type te --icmp-code frag-exc -v5
# Send ICMP Router Advertising with 2 entries
sudo nping google.com --icmp --icmp-type 9 --icmp-advert-entry 1.1.1.1,300 --icmp-advert-entry 33.33.33.33,12345 -v6
한가지 팁 중 테스틀 위해 지속적으로 패킷을 발생 해야 할 경우 기본 5번 패킷 을 발생하기 때문에
아래 첨부 한 화면 처럼 -c 0 옵션 을 주면 되어진다.
위와 같은 툴을 이용 할 때는 테스트 목적으로 이용 하길 권합니다.
'[IT 관련 지식] > [Security]' 카테고리의 다른 글
SSH Brute-force 공격 (0) | 2014.09.01 |
---|---|
iptables 시간 정책 (0) | 2014.08.16 |
오픈SSL 보안취약점 (0) | 2014.05.10 |
웹캠 훔쳐보기 해킹 비상 (0) | 2014.05.10 |
iptables 이용한 icmp 차단 (0) | 2013.02.25 |