设为首页 收藏本站
查看: 1407|回复: 0

[经验分享] Kali Linux Network Scanning Cookbook读书笔记之nmap

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-4 09:01:55 | 显示全部楼层 |阅读模式
前言,这本书比我想象中的简单,但是一天就看了三百多页,因为真的没有什么很精彩的内容,所以前面四章就总结成这一篇的内容了,再者,真的一个nmap几乎秒了其他所有工具,所以直接介绍nmap,netcat就是附带了。


1.主机存活扫描
2.端口扫描
3.指纹识别


主要工具:Nmap
首先介绍万能的nmap基本参数。
用法:nmap的[扫描类型(S)] [选项] {目标说明}
主机发现:
  -SL:列表扫描 - 简单列表的目标进行扫描
  -sn:ping扫描 - 禁用端口扫描
  -pn:把所有主机在线 - 跳过主机发现
  -PS / PA / PU / PY [portlist]:TCP SYN / ACK,UDP或SCTP发现给定的端口
  -PE / PP / PM:ICMP回声,时间戳和网络掩码请求,发现探头
  -PO [协议列表]:IP协议Ping
  -n / -R:决不做DNS解析/始终解析[默认:有时]
  --dns-服务器<SERV1 [,serv2上],...>:指定自定义DNS服务器
  --system-DNS:使用操作系统的DNS解析器
  --traceroute:跟踪跳路径每个主机
SCAN方法:
  -sS / ST / SA / SW / SM:TCP SYN /TCP全连接()/ ACK /窗/迈蒙扫描
  -sU:UDP扫描
  -sN / SF / SX:TCP空,FIN,以及Xmas扫描
  --scanflags <标志>:自定义TCP扫描标志
  -si <僵尸主机[:probeport]>:空闲扫描
  -sy / SZ:SCTP INIT / COOKIE-ECHO扫描
  -so:IP协议扫描
  -b <FTP中继主机>:FTP反弹扫描
端口规范和扫描顺序:
  -p <端口范围>:仅扫描指定的端口
    例如:-p22; -p1-65535; -p U:53111137,电话:21-25,80,139,8080,S:9
  -F:快速模式 - 扫描比默认的扫描较少的端口
  -r:连续扫描端口 - 不随机
  --top-端口<编号>:扫描<编号>最常见的端口
  --port比率<比率>:端口扫描比更常见的<比率>
服务/版本检测:
  -sV:探索开放的端口,确定服务/版本信息
  --version强度<级别>:设定从0(亮)到9(尝试所有探头)
  --version光:限制为最有可能的探头(强度2)
  --version全:尝试每一个探头(强度9)
  --version追踪:显示详细的版本扫描活动(调试)
SCRIPT SCAN:
  -sC:相当于--script =默认
  --script = <Lua脚本>:<Lua脚本>是一个逗号分隔列表
           目录,脚本文件或脚本类别
  --script-的参数 = <N1 = V1,[N2 = V2,...]>:提供参数的脚本
  --script-ARGS文件=文件名:在文件中提供NSE脚本的args
  --script追踪:显示发送和接收的所有数据
  --script-数据库更新:更新脚本数据库。
  --script-HELP = <Lua脚本>:关于脚本显示帮助。
           <Lua脚本>是一个逗号分隔的脚本文件或列表
           脚本类别。
OS检测:
  -O:启用操作系统检测
  --osscan限制:限制OS检测到有希望的目标
  --osscan猜测:猜猜OS更积极
时序和性能:
  选择内搭<时间>是在几秒钟内,或追加'MS'(毫秒)
  的“(秒),”M“(分),或'H'(小时)的值(例如,30分钟)。
  -T <0-5>:设置时序模板(更高更快)
  --min-主机组/ MAX-主机组<大小>:并行主机扫描组大小
  --min,并行/ MAX-并行<numprobes>:并行的探讨
  --min-RTT超时/ MAX-RTT超时/初始RTT超时<时间>:指定
      探索往返时间。
  --max-重试<尝试>:大写的端口扫描探测重发数。
  --host超时<时间>:在此之后漫长放弃目标
  --scan延迟/ - 最大扫描延迟<时间>:调整探头之间的延迟
  --min率<编号>:发送数据包没有<编号>每秒慢
  --max率<编号>:每秒速度不发送数据包比<编号>
防火墙/ IDS躲避和欺骗:
  -f; --mtu <值>:分片报文(可选择的w /给出MTU)
  -D <decoy1,decoy2 [,ME],...>:披风带有诱饵扫描
  -S <IP地址>:欺骗源地址
  -e <IFACE>:使用指定接口
  -g / - 源端口<端口编号>:使用特定端口号
  --proxies <URL1,[URL2] ...>:通过HTTP连接继电器/ SOCKS4代理
  --data长度<编号>:追加随机数据发送的数据包
  --IP-选项<选项>:指定IP选项的包发送
  --ttl <值>:设置IP时间到现场直播
  --spoof-MAC <MAC地址/前缀/供应商名称>:欺骗你的MAC地址
  --badsum:用一个假的TCP / UDP / SCTP校验和发送的数据包
输出:
  -on / -oX / -Os / -oG <文件>:正常,XML输出扫描,S | <RIPT kIddi3
     和的grepable格式,分别以给定文件名。
  -oA <基本名>:输出三大格式一次
  -v:增加冗余级别(使用-vv或更多更好的效果)
  -d:提高调试级别(使用-dd或更多更好的效果)
  --reason:显示端口处于特定状态的原因
  --open:只显示打开(或可能打开)端口
  --packet追踪:显示发送和接收的所有数据包
  --iflist:打印主机接口和路线(调试)
  --log-错误:记录错误/警告正常格式输出文件
  --append输出:追加到而不是撞指定输出文件
  --resume <文件名>:恢复中止扫描
  --stylesheet <路径/ URL>XSL样式表来转换XML输出至HTML
  --webxml:从Nmap.Org参考样式表更便携XML
  --no-样式表:防止关联的XSL样式表W / XML输出
MISC:
  -6:启用IPv6的扫描
  -A:启用操作系统检测,检测版本,脚本扫描,和traceroute
  --datadir <目录>:指定自定义的Nmap数据文件位置
  --send-ETH / - 发送-IP:发送使用原始的以太网帧或IP数据包
  --privileged:假设该用户是完全特权
  --unprivileged:假设用户缺乏原始套接字权限
  -V:打印版本号
  -h:打印此帮助摘要页面。
示例:
  NMAP -v -A scanme.nmap.org
  NMAP -v -sn 192.168.0.0/16 10.0.0.0/8
  NMAP -v -ir 10000 -Pn -p 80
一:主机存活
首先确定主机存活,最简单的当然就是ping了,但是由于防火墙或者其他过滤机制就不能简单的通过ping来确定主机的存活了,也就有了各种方法,各种工具。
QQ截图20151104090141.png
而怎样确定主机是否存活也就基于上面这个OSI七层模型了,书中主要也就是针对234层扫描,一到七层协议依次是,物理层,数据链路层,网络层,传输层,回话层,表示层,应用层,像对应的意思是,硬件(电子器件),物理地址(如MAC地址,存在ARP等协议),逻辑IP地址(IPv4,IPv6等),服务端的传输协议(TCP,UDP),在上面就不是很重要了,反正书中也没怎么提。
再就是每层的优缺点了。
第2层发现用ARP的缺点如下:
优点:
非常快
高度可靠
缺点:
无法找到远程系统(非路由协议)
第3层的发现与ICMP的缺点如下:
优点:
可以发现远程系统(路由协议)
还是比较快
缺点:
比ARP发现慢
通常是由防火墙过滤
第4层的发现与TCP的缺点如下:
优点:
可以发现远程系统(路由协议)
更可靠的比ICMP(过滤器是不太常见的或有选择地实施)
缺点:
状态防火墙的过滤器可产生不可靠的结果
彻底的发现可能耗时
Arp发现最简单的命令当然就是arp了。
root@End:~# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.148.254          ether   00:50:56:fb:89:70   C                     eth0
192.168.148.1            ether   00:50:56:c0:00:08   C                     eth0
192.168.148.2            ether   00:50:56:ef:21:57   C                     eth0


然后就是nmap 。
root@KaliLinux:~# nmap 172.16.36.136 –sn
root@KaliLinux:~# nmap 172.16.36.0-255 –sn
root@KaliLinux:~# nmap -iL iplist.txt –sn
  -snping扫描 - 禁用端口扫描,如果在局域网,你会发现被扫的主机还会返回目标主机的mac地址。
-iL<输入的文件>:从输入的主机/网络的列表,你可以等个vpn在arp一下就有复制很多IP地址让你扫着玩了。
而UDP,TCP四层协议扫描,其中TCP三次握手得说明一下,TCP三次握手的意思就是主机A通过TCP协议连接主机B,先发个SYN包给B,B收到后返回个ACK包,A响应后再回个ACK包建立连接,也就可以完全的相互通信了,所以nmap有个很有意思的参数就是sS,意思是在主机B响应发的SYN包后不发起第三次握手,那么TCP三次握手就不会完成就不是完整的TCP连接,那么就不会被主机B记录,也就是比较安全的扫描方式。
root@KaliLinux:~#  nmap 172.16.36.135 -PU53 –sn
root@KaliLinux:~#  nmap -iL iplist.txt -sn -PU53
-PU表示使用UDP协议,-PU53当然就是扫描UDP53端口了。
nmap 172.16.36.135 -PA80 –sn
-PA ACK模式,如最前面的nmap参数,nmap有很多的扫描方式
-sN / SF / SX
-sS / ST / SA / SW / SM
笔者常用-sS  –sF –sA 如果你发现某种扫描技术不能很好的出结果就换着来吧,总能把要被扫的主机扫出来
二:端口扫描
root@KaliLinux:~# nmap 172.16.36.0-255 -sU -p 53
-sU UDP扫描,其实应用于UDP的服务不多,多数都是TCP。
root@KaliLinux:~# nmap -iL iplist.txt -sU -p 123
root@KaliLinux:~# nmap -sS 172.16.36.135 -p 80
root@KaliLinux:~# nmap -sS 172.16.36.135 -p 21,80,443
Starting Nmap 6.25 ( http://nmap.org ) at 2013-12-17 21:46 EST
Nmap scan report for 172.16.36.135
Host is up (0.00038s latency).
Not shown: 977 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
root@KaliLinux:~# nmap -sS 172.16.36.135 -p 0-65535
系统一共有65535个可用端口,如果你想更仔细的发现一些端口的话可以把端口范围设置为0到65535,这样可能会发现有意思的服务。
5900/tcp  open  vnc
6000/tcp  open  X11
6667/tcp  open  irc
6697/tcp  open  unknown
8009/tcp  open  ajp13
root@KaliLinux:~# nmap -sS -iL iplist.txt -p 80
-sS 半开放式扫描,在前面有提过,因为不会响应第三次TCP握手,所以不会被目标主机记录,比较安全,因为有些目标主机可能会根据攻击者的一些扫描方式而触动一些防火墙规则而IP被列入黑名单,所以sS的扫描方式就要安全的多了。
三:指纹识别
指纹识别当然就是为了识别特点端口运行的服务及其版本,大多数服务会自己的标识,在你连接后就会在响应包里包含,其中的一些细节当然不用我们操心,交给nmap就够了。
这里有个小工具短小精悍netcat。
-c shell命令为`-e';使用/ bin / sh的,以执行[危险!!]
-e文件名程序Exec之后连接[危险!]
-b允许广播
-g网关源路由跳点[S],多达8个
-G NUM源路由指针:4,8,12,...
-h这个克鲁夫特
找来线-i秒延迟间隔,端口扫描
        -k套接字设置keepalive选项
-l监听模式,用于入站所连接
-n纯数字IP地址,DNS不
交通-o文件的十六进制转储
-p port本地端口号
-r随机本地和远程端口
EOF后退出的标准输入和秒的延迟-q秒
-s地址本地源地址
-T TOS设置服务类型
-t回答TELNET协商
-u UDP模式
-v详细[使用两次,更详细]
-w秒超时连接和最终净读取
-z零I / O模式[用于扫描
用于识别某个服务可以使用如下命令
root@End:~# netcat -vn 172.16.36.135 22
SSH-2.0-OpenSSH_4.3
root@End:~# netcat –vn 172.16.36.135 3306
4
5.0.77C
        )X]MH_(Fi]tQy,md,Ks'
root@End:~# netcat –vn 172.16.36.135 21
220 ProFTPD 1.3.2e Server (ProFTPD)


返回结果极其的快,你甚至可以用一个脚本去执行一些你想要的结果如:
root@End:~# for x in $(seq 1 100);do nc -nvz 64.6.255.13 $x ;done
而nmap当然就更简单了
root@KaliLinux:~# nmap -sT 172.16.36.135 -p 22 --script=banner
root@KaliLinux:~# nmap -sV 172.16.36.135
root@KaliLinux:~# nmap -sT 172.16.36.135 –O
-O  用于识别目标机器系统。
-sV  用于识别已开放端口的服务及其版本。

总结而言,本书前面一大部分就是在扯淡,会用nmap基本就够了,所以其他工具就不写了,写了也是滥竽充数。


而扫描的重点在于先确定主机是否存活或者找出其ip地址甚至mac地址,在这个基础上在确定所开的服务,比如ftp,ssh,vnc,MySQL之类大家比较关心的服务,在此基础上就得想到底是什么版本有没有漏洞,如果有的话最好没有的话可能就只能暴力破解或者通过社工去解决了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-134783-1-1.html 上篇帖子: supervisor进程监控 下篇帖子: host、nslookup和dig命令的使用 读书笔记 Network Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表