2013年12月6日星期五

NMAP基本使用



基本语法:
#nmap [扫描方式] [命令选项] {目标}

扫描目标格式
IPv4 地址: 192.168.1.1
IPv6 地址:AABB:CCDD::FF%eth0
主机名:www.target.tgt
IP 地址范围:192.168.0-255.0-255
掩码格式:192.168.0.0/16
使用列表文件:-iL <filename>

设置扫描端口
无端口范围时扫描1000 个常用端口
-F 扫描100个最常用端口
-p<port1>-<port2>   指定端口范围
-p<port1>,<port2>,…. 端口列表
-pU:53,U:110,T20-445  TCP&UDP结合
-r   线性扫描(不是随机扫描)
–top-ports <n>   扫描n个最常用端口
-p-65535    忽略初始端口,nmap从端口1开始扫描
-p0-        忽略结束端口,nmap扫描至65535端口
-p-         扫描0-65535端口

脚本引擎
-sC 运行默认脚本
–script=<ScriptName>
 运行个人脚本或批量脚本
–script-args=<Name1=value1,…>
 使用脚本参数列表
–script-updatedb
 更新脚本数据库
值得关注的脚本
完整版nmap脚本引擎的脚本在http://nmap.org/nsedoc/
一些特别有用的脚本包括:
dns-zone-transfer:尝试从dns服务器上拖一个AXFR请求的区域文件
$nmap –script dns-zone-transfer.nse –script-args dns-zone-transfer.domain=<domain> -p53 <hosts>
http-robots.txt:在发现的web服务器中获取robots.txt文件
$nmap –script http-robots.txt <hosts>
smb-brute:通过自动猜解尝试爆破username 和password组合
$nmap –script smb-brute.nse -p445 <hosts>
smb-psexec: 用登陆凭据作为脚本参数,在目标机器上运行一系列程序
$nmap –script smb-psexec.nse –script-args=smbuser=<username>,smbpass=<password>[,config=<config>] -p445 <hosts>
脚本种类
nmap 的脚本种类包括但不限于下面种类:
auth:利用或绕过目标主机的访问控制
broadcast:通过本地网络广播发觉不包含在命令行内的主机
brute:针对目标主机猜解密码,支持各类协议,包括:http,SNMP,      IAX,MySQL,VNC等。
default:当出现“-sC”或“-A”命令时此脚本自动运行
discovery:通过公开的资源信息,SNMP协议,目录服务等获取更多目标主机信息。
dos:会造成目标主机拒绝服务
exploit:尝试exploit目标
external:与不在目标列表的第三方系统交互
fuzzer: 在网络协议的规定内发送意想不到的请求
intrusive:可能会使目标崩溃,消耗过度的资源,或者通过恶意行为冲击目标系统
malware:在目标主机上寻找恶意软件感染迹象
safe:尽量不用负面的方式影响目标
version:估计目标主机显示的软件或协议版本
vul:判断目标主机是否存在一个已知漏洞

深入扫描命令
-Pn  不探测扫描(假定所有主机都存活)
-PB  默认探测扫描(探测端口:TCP 80,445&ICMP)
-PS<portlist>  tcp探测扫描
-PE  ICMP Echo Request
-PP  ICMP Timestamp Request
-PM  ICMP Netmask Request

扫描类型
-sP  只探测主机在线情况
-sS  SYN扫描(隐身扫描)
-ST  TCP扫描
-sU  UDP扫描
-sV  系统版本检测
-O   操作系统识别
–scanflags  指定TCP标识位(设置URG, ACK, PSH,RST,SYN,FIN位)
细粒度的时间选项
–min-hostgroup/max-hostgroup <size>  平行的主机扫描组的大小
–min-parallelism/max-parallelism <numprobes>  并行探测
–min-rtt-timeout/max-rtttimeout/initial-rtt-timeout <time>   指定每轮探测的时间
–max-retries <tries>    扫描探测的上限次数设定
–host-timeout <time>    设置timeout时间
–scan-delay/–max-scan-delay <time>  调整两次探测之间的延迟
–min-rate <number>     每秒发送数据包不少于<number>次

时序选项
-T0  偏执的:非常非常慢,用于IDS逃逸
-T1  猥琐的:相当慢,用于IDS逃逸
-T2  有礼貌的:降低速度以消耗更小的带宽,比默认慢十倍
-T3  普通的:默认,根据目标的反应自动调整时间模式
-T4  野蛮的:假定处在一个很好的网络环境,请求可能会淹没目标
-T5  疯狂的:非常野蛮,很可能会淹没目标端口或是漏掉一些开放端口

输出格式
-oN  标准输出
-oG  好理解的格式
-ox  xml格式
-oA<basename>  用<basename>生成以上格式的文件

misc选项
-n  禁止反向IP地址查找
-6  只是用 IPv6
-A  是用几个命令:OS 探测,版本探测,脚本扫描,traceroute
–reason 列出nmap的判断:端口开放,关闭,被过滤。



--------------------世界从这里改变-----------------------------------



1 获取远程主机的系统类型及开放端口

nmap -sS -P0 -sV -O <target>

nmap -sS  -p- -P0 -O



-sS SYN 扫描 (又称半开放,或隐身扫描)
-P0 允许你关闭 ICMP pings.
-sV 打开系统版本检测
-O 尝试识别远程操作系统

其它选项:
-A 同时打开操作系统指纹和版本检测
-v 详细输出扫描情况.

nmap -sS -P0 -A -v < target >

2 列出开放了指定端口的主机列表

nmap -sT -p 80 -oG – 192.168.1.* | grep open

3 在网络寻找所有在线主机

nmap -sP 192.168.0.*

或者也可用以下命令:

nmap -sP 192.168.0.0/24

指定 subnet

4 Ping 指定范围内的 IP 地址

nmap -sP 192.168.1.100-254

5 在某段子网上查找未占用的 IP

nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp

6 在局域网上扫找 Conficker 蠕虫病毒

nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 192.168.0.1-254

7 扫描网络上的恶意接入点 (rogue APs).

nmap -A -p1-85,113,443,8080-8100 -T4 --min-hostgroup 50 --max-rtt-timeout 2000 --initial-rtt-timeout 300 --max-retries 3 --host-timeout 20m --max-scan-delay 1000 -oA wapscan 10.0.0.0/8

8  使用诱饵扫描方法来扫描主机端口

sudo nmap -sS 192.168.0.10 -D 192.168.0.2

9 为一个子网列出反向 DNS 记录

nmap -R -sL 209.85.229.99/27 | awk '{if($3=="not")print"("$2") no PTR";else print$3" is "$2}' | grep '('

10) 显示网络上共有多少台 Linux 及 Win 设备?

sudo nmap -F -O 192.168.0.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) device"

没有评论:

发表评论