第一章信息收集-扫描技术与抓包分析
扫描和抓包分析
信息收集
主要收集目标主机的相关信息,主要包括端口、服务、漏洞等信息
信息收集手段多样,可借助的工具也多种多样
端口扫描:Nmap
漏洞扫描:awvs\appsacn\openvas\nessus等
TCP数据包头格式:0~65535
源端口占16位:0~15
保留:0
知名端口:1-1024(系统服务用的,比如:邮件,网站,ftp,还有开发都会用的端口等)
Data offset:偏移量,每增加1,报头长度增加4字节
Window Size:窗口(控制流量(滑动窗口控制机制) )
TCP协议-TCP标志位
- ACK Acknowledgment 确认标志
- RST Rsest 复位标志(TCP建立之后想断开,重设)
- URG Urgent 紧急标志
- SYN Synchronize 建立连接标志
- PSH Push 推标志
- FIN Finish 结束标志(完成)
三次握手
过程:
SYN=1
——————————————>
SYN=1,ACK在对方序列号+1
<——————————————
ACK在对方序列号+1
RST连接断开
ICMP协议
Internet Control Message Protocol,是IP的一部分,在IP协议栈中必须实现。属于网络层协议
用途:
-网关或者目标机器利用ICMP通讯
-当出现问题是,提供反馈信息用于报告错误
- 0 Echo Reply Ping命令(用的最多)
- 3 Destination Unreachable 目标不可达(路由不可达)
特点:
-其控制能力并不用于保证传输的可靠性
-它本身也不是可靠传输的
-并不用来反映ICMP报文的传输情况
常见端口号:
21 FTP
22 SSH 远程登录
23 Telnet 远程登录管理(明文协议,抓包可取得密码,不安全,逐渐被SSH被淘汰)
Windows系统命令在WINDOWS/system32中存放
telnet在win10中没有,在windows2003中有,可以在windows2003中的系统命令中找,复制到win10的系统命令中使用
25 SMTP 邮件发送
53 DNS 域名与IP地址转换(UDP服务)
80 HTTP 超文本传输
110 POP3 接收邮件
161 SNMP 网络管理
加密协议:
443 HTTPS 在链路中对数据进行加密
513 Rlogin 远程登录(UNIX)
1433 MS SQL Server 微软
1521 Oracle
3306 MySQL 被Oracle收购
3389 RDP 远程桌面
8080 Proxy 代理
端口扫描之王-Nmap
Nmap扫描过程:
▪主机发现 参数-P0:直接扫描端口服务(有些主机的防火墙会屏蔽扫描使扫描不到主机)
▪端口扫描
▪服务和版本探测
▪操作系统探测
▪防火墙IDS躲避和哄骗
▪输出结果
nmap扫描目标:
▪格式:
主机ip或域名
▪网段(CIDR格式)
例如:-Nmap 192.168.10.0/24 or 205.1.1.8/1
▪参数
-iL <inputfilename>(从列表中输入)
-iR <hostnum>(随机选择目标)
例子:nmap -sS -PS80 -iR 0 -p 80 注:iR 0掉膘互联网所有主机
(假设知道摄像头的端口服务,可以扫描指定区域的所有摄像头,利用弱口令破解)
弱口令:容易被人猜测或破解工具破解的口令。
主机发现:
-sP (ping扫描)非特权用户执行,就发送一个SYN报文(用connect()系统调用)到目标机的80端口,当特权用户扫描局域网上目标主机时,会发送ARP请求(-PR)
-P0 (无ping)禁止主机发现
-PS [postlist](TCP SYN Ping)未开发,收到rst
-PA [postlist](TCP ACK Ping)未开发,收到rst
-PS:发送一个设置了SYN标志位的空TCP报文,默认端口80;
-PA:发送一个设置了TCP标志位的空报文,默认端口80.
以上两个参数一般用于绕过 状态检测防火墙,可以两者结合使用。
状态防火墙:会在包出去时,记录状态,回来时,优先匹配状态检测表,不符合的话再匹配防火墙规则。
-PU [postlist](UDP Ping)发送一个空的(除非指定了--data-length UDP报文发送到指定的端口)
目标机器端口时关闭的,UDP探测得到一个ICMP端口无法到达的回应报文,证明目标机器存在,否则不会有回应报文。
该扫描优势:可以穿过只过滤TCP的防火墙和过滤器
-PR [APP Ping]
端口扫描:
Nmap定义端口类型:
-open(开放的) -filtered(被过滤的) -open|filtered(开放或被过滤的)
-close(关闭的) -unfiltered(未被过滤的) -close|filtered(关闭或被过滤的)
Nmap默认扫描端口:
1到1024端口以及nmap-servies设置端口
-p 1-50或者-p 1-65535或者-p-
端口扫描常用类型:
-sS(TCP SYN扫描)速度快。优点:隐蔽性较全连接扫描好,一般系统对这种半扫描很少记录;缺点:通常构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。
-sT(TCP connect()扫描)全连接扫描(三次握手)。优点:稳定可靠,不需特殊权限;缺点:扫描不隐蔽。服务器日志会记录下大量密集的连接和错误记录,并容易被IDS发现。
-sU(UDP扫描)速度慢,用于探测udp协议端口。优点:可以和syn扫描结合,探测tcp和udp协议;缺点:速度慢。
-sN;-sF;-sX(TCP Null,FIN,and Xmas)扫描。优点:隐秘;缺点:通常适用于UNIX目标主机,如Mirosoft Windows,许多Cisco设备。BSDI,以及IBM OS/400则不适用。
-sA(TCP ACK扫描)
-sW(TCP窗口扫描)
服务和版本探测:
原理:利用2200个nmap-services数据库与收到的信息进行匹配判断版本。
-sV (开启服务的版本探测)按回车显示进度条
--version-intensity <intensity> (设置 版本扫描强度)
强度值0-9,默认是7。数值越高,强度越大
--version-trace (跟踪版本扫描活动)
操作系统探测:
cmd中:ping之后,TTL=128/64可知对方操作系统
-O (启用操作系统探测)
--osscan-limit (针对指定的目标进行操作系统检测)
--osscan-guess; --fuzzy (推测操作系统检测结果)
当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认 进行这种匹配,使用上述任一个选项使得Nmap的推测更加有效。
防火墙/IDS躲避和哄骗:
-f (报文分段);
--mtu (使用指定的MTU);
-D <decoy|[,decoy2][,ME]......> (使用诱饵隐蔽扫描)
-S <IP_Address> (源地址哄骗)
-source-port <portnumber> (源端口哄骗)
-spoof-mac <mac address,prefix,or vendor name> (MAC地址哄骗)
保存和输出:
-oN 标准保存 例如:nmap -F -oN test1.txt 127.0.0.1
-oX XML保存 例如:nmap -F -oX test1.xml 127.0.0.1
-oG Grep保存 例如:nmap -F -oG test1.txt 127.0.0.1
-oA 保存到所有格式 例如:nmap -F -oA testA 127.0.0.1
-packet-trace 跟踪显示每一个扫描数据包
例子:Nmap -oX result.xml 192.168.43.117 到处扫描结果到XML文件中
漏洞扫描原理:
1.根据返回的版本信息进行判断漏洞是否存在(若已有226.0版本的漏洞,在226.1版本就还可能有,但有可能在补丁中修复了之前版本的漏洞,还有就是版本信息可以更改)
2.发送漏洞利用参数,根据返回值进行判断
数据库漏洞扫描器:
ISS Datebase Scanner
集成漏洞扫描器:
Nessus
WEB扫描:
Awvs (针对web扫描)(网站最终运行是在操作系统上)new scan---扫描向导输入URL---Default---1.选择登录序列 2.已知登录名和密码
Appscan 创建新的扫描---常规扫描---输入URL---记录---选择登录序列---Default