前言,这本书比我想象中的简单,但是一天就看了三百多页,因为真的没有什么很精彩的内容,所以前面四章就总结成这一篇的内容了,再者,真的一个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来确定主机的存活了,也就有了各种方法,各种工具。

而怎样确定主机是否存活也就基于上面这个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

-sn:ping扫描 - 禁用端口扫描,如果在局域网,你会发现被扫的主机还会返回目标主机的mac地址。

-iL<输入的文件>:从输入的主机/网络的列表,你可以等个***在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之类大家比较关心的服务,在此基础上就得想到底是什么版本有没有漏洞,如果有的话最好没有的话可能就只能暴力破解或者通过社工去解决了。

Kali Linux Network Scanning Cookbook读书笔记之nmap相关推荐

  1. Linux设备驱动程式之读书笔记(二) [转]

    http://www.sudu.cn/info/html/edu/code/20070102/286543.html setlevel.c 非常实用 google 查找 #define _syscal ...

  2. 【SQL.Cookbook读书笔记】——1检索记录

    SQL.Cookbook读书笔记 前言 1检索记录 1.1从表中检索所有行和列 1.2从表中检索部分行(where) 1.3查找满足多个条件的行(where.and.or) 1.4从表中检索部分列 1 ...

  3. 【Kali Linux 渗透测试】学习笔记

    Kali Linux 渗透测试 文章目录 Kali Linux 渗透测试 介绍 一. 渗透测试标准 二. 安装 三. 定制 网络配置 更新升级 安裝软件包 并发线程限制 电源优化 快捷键 四. 试验环 ...

  4. Kali Linux 1.0 新手折腾笔记

    昨天折腾了 Kali Linux 1.0,把大概的配置过程记录下来,希望对想接触或使用Kali Linux的同学有所帮助. 请注意: 1.本文为面向新手的教程,没技术含量,没事瞎折腾,感觉好玩-..如 ...

  5. 鸟哥的linux私房菜内容,《鸟哥的Linux私房菜》读书笔记

    Linux 学习笔记 System Infouname -a 查看系统内核.位数 uname -m 查看系统位数 lsb_release -a 查看系统版本 cat /etc/issue 查看系统版本 ...

  6. 《鸟哥linux私房菜》读书笔记

    读书目的:了解linux操作系统主要功能框架,为运用这些功能打基础 读书收获:一个操作系统最基本的功能就是要可以使用上面的文件,所以对操作系统的运用必然要学习磁盘管理.文件管理,如果事务繁多可以利用脚 ...

  7. 《鸟哥Linux私房菜》读书笔记0\1\2\3\4章

    文章目录 一.计算机硬件和Linux的诞生(对应第0.1章): 二.磁盘(对应第2章): 1.MBR--Master Boot Record(过时) 2.GPT--GUID partition tab ...

  8. linux POSIX 信号集,读书笔记:第10章 Posix信号量 (6)

    <UNIX网络编程:卷2>P203-P204:图10-33.10-34 生产者和消费者之间使用多个缓冲区 ----------------------------------------- ...

  9. 20135320赵瀚青LINUX第十八章读书笔记

    概述:调试工作艰难是内核级开发区别于用户级开发的一个显著特点 18.1准备开始 内核调试往往是一个令人挠头不已的漫长过程.幸运的是,在这些费劲的问题中也有不少比较简单而且容易消灭的小bug,运气好你可 ...

最新文章

  1. cookie关键字_我遇过的最难的Cookie问题
  2. MongoDB 分页查询的方法及性能
  3. DW数据仓库与ODS的区别
  4. Visual Studio附加到进程调试
  5. python正则匹配html标签_Python正则获取、过滤或者替换HTML标签的方法
  6. linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...
  7. android音乐进度条设计代码,【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等...
  8. CSS3 帧动画分段,CSS3 animation实现逐帧动画效果
  9. memcache、redis
  10. win10新建文件夹必须刷新才能显示
  11. testlink批量执行用例
  12. 魔兽和星际最大差别是什么?
  13. 自媒体账号如何注册申请
  14. SQL数据库无法附加
  15. bp是什么意思贷款利率,利率上bp是什么意思
  16. MPU6050原始数据分析——学习笔记
  17. 写给全球Web3er:“低碳时代”下的Web3,何去何从?
  18. python调用python脚本
  19. cmake:基于MDK(Keil)的Nationstech.N32G45x平台交叉编译工具链定义
  20. 大数据主要学些什么?(大数据学习路线图)

热门文章

  1. 成立十个月,融资五个亿,创新奇智完成超4亿人民币A轮和A+轮融资
  2. CNCC2018 即将开幕,报名优惠截止倒计时5天!
  3. 配置机器学习训练环境太麻烦?开源工具Parris说一键就搞定
  4. 谷歌升级AutoML,可用于大规模图像分类和物体检测
  5. 加州将放宽无人车路测标准:没方向盘也行,没人类驾驶员也行
  6. 关于降低锁的竞争程度------从奶爸的角度思考
  7. .Net中的加密解密
  8. 解决vmware报错:Mac OS X is not supported with binary translation.
  9. Docker应用基础
  10. mikadonic-RHCE——NFS服务配置图解