一.基础概念
不能单纯的以端口辨别服务。很多网络服务是漏洞频发的高危对象,对网络上的特定服务进行扫描,往往能让我们少走弯路,增加渗透成功的几率。确定开放端口后,通常会对相应端口上所运行服务的信息进行更深入的挖掘,通常称为服务查点。
二.各类主要服务
-
Banner捕获(最主要最简单,也是最不准确)
连接服务器的端口,利用其返回的banner信息,但可能是管理员伪造的。
【软件开发商软件名称,服务类型,版本号--可直接发现已知的漏洞,但如果不是很熟悉的话,需要长时间查找资料】
必须建立完整的TCP连接,才能直接获得banner
结合另类服务识别:1、特征行为和响应字段;2不同的响应可用于识别底层系统
- nc
nc -nv 192.168.1.107 80
- dmitry
dmitry -pb 192.168.1.107
- nmap
nmap -sT 192.168.1.107 -p 22 --script=banner.nse
- amap
amap(专门用于发现开放端口后的服务的工具)
amap -b 192.168.1.107 25 #-b参数,也可指定端口范围,使用grep on可过滤不开放端口返回结果
-
服务识别
Banner信息抓取能力比较有限,而且不一定准确。
发现端口后应用的版本,基于版本,到其官网寻找其漏洞,针对性的找其利用代码,或者利用逆向工程或模糊测试发现其漏洞。
- nmap
nmap 192.168.1.107 -p1-100 -sV
- amap(没nmap详细,但也有其优点)【可作为nmap的验证工具】
amap 192.168.1.107 1-100 -qb #q显示清晰,b显示更多信息
-
操作系统识别
识别操作系统,因为操作系统在开启时,便默认开放些服务;针对老版本系统的漏洞进行渗透,提权、获得操作权限。
- Nmap
nmap -O 192.168.1.1 #-O 参数用于检测主机系统 #结合端口判断特征
- Xprobe2(专门用于识别操作系统,更为详细,但不是很准确)
xprobe2 192.168.1.115
- 被动操作系统识别
基于抓包分析,可部署在网络出口处,则可被动检测
p0f #直接输入,即可实现被动监听,还可能发现些证书信息
可以结合ARP地址欺骗识别全网OS
-
SNMP扫描(简单网络管理协议)
客户端使用UDP161端口,服务端使用UDP161端口;与DHCP相似,基于UDP,使用67、68。服务器用单号
若SNMP配置不当,则会产生漏洞。属于网络管理员最容易配置疏漏的服务。有两个community strings,一个只读,一个可写。
基于SNMP,进行网络设备监控,如:交换机、防火墙、服务器,CPU等其系统内部信息。基本都可以监控到。
community:登录证书,容易被管理员遗忘修改其特征字符 #可用字典破解community
MIB库:MIB Tree
【SNMP配置】
- onesixtyone
onesixtyone 192.168.1.115 public
能扫出硬件信息,当返回信息较少时,可能已经被修改community,可使用下一条指令
dpkg -L onesixtyone ###查询字典
onesixtyone -c dict.txt -i hosts -o my.log -w 100 #字典爆破community
- snmpwalk
snmpwalk 192.168.1.115 -c public -v 2c #能查出更多的信息 -v指定版本,2c使用比较广泛#能查出MIB库ID号,安装的软件
snmpwalk -c public -v 2c 1.1.1.1 1.3.6.1.4.1.77.1.2.25 #OID查询用户账号
snmpcheck -t 192.168.20.199
snmpcheck -t 192.168.20.199 -c private -v 2
snmpcheck -t 192.168.20.199 -w
-
识别边界防火墙
为了去绕过和躲避。
原理图
nmap -p22 192.168.1.141 -sA
根据其对SYN和ACK包的应答,去匹配上图类型
-
SMB扫描
Server Message Block 协议。与其他标准的[TCP/IP协议]不同,SMB协议是一种复杂的协议,因为随着Windows计算机的开发,越来越多的功能被加入到协议中去了,很难区分哪些概念和功能应该属于Windows操作系统本身,哪些概念应该属于SMB 协议。因为该协议很复杂,所以是微软历史上出现安全问题最多的协议。
- nmap
nmap -v -p139,445 192.168.1.0/24
扫描其固定开放的端口139,445,但是无法准确判断其为windows系统
- 高级扫描
nmap 192.168.1.141 -p139,445 --script=smb-os-discovery.nse #用于发现smb协议的脚本
扫描windows系统smb协议是否有漏洞
由于从NMAP 6.49beta6开始,smb-check-vulns.nse脚本被取消了。它被分为smb-vuln-conficker、•smb-vuln-cve2009-3103、smb-vuln-ms06-025、smb-vuln-ms07-029、smb-vuln-regsvc-dos、smb-vuln-ms08-067这六个脚本。用户根据需要选择对应的脚本。如果不确定执行哪一个,可以使用smb-vuln-*.nse来指定所有的脚本文件,进行全扫描。
nmap -v -p139,445 --script=smb-vuln-*.nse --script-args=unsafe=1 192.168.1.115 -Pn #unsafe=1:高强度扫描,可能造成宕机,可选为0(安全扫描) #-Pn:有防火墙过滤包,也继续进行扫描
- Nbtscan
-R:使用本地端口137,兼容性好,可发现老版本的系统,扫描结果最全
支持网段扫描
优点:可跨网段扫描mac地址,如果防火墙过滤不够好的话
- enum4linux
在linux系统下枚举出windows系统,不支持网段扫描,但结果非常详细
enum4linux -a 192.168.1.141
-
SMTP扫描
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
SMB扫描针对机器去发现其漏洞,SMTP扫描为主动发现目标系统的邮件账号(被动信息收集也能收集到一些)。用途:社会工程学
- 初级方法
nc -nv 192.168.1.107 25 #连接25端口
VRFY root
- nmap
Nmap 前提:做了端口扫描知道目标主机开启25端口
nmap smtp.163.com -p25 --script=smtp-enum-users.nse --script-args=smtp-enum-users.methods={VRFY} #尝试枚举账号 #指定使用什么方式,默认用root账号,也可加别的参数(指定字典)
smtp-user-enum -M VRFY -U users.txt -t 10.0.0.1 #指定字典扫描邮箱账号:
nmap smtp.163.com -p25 --script=smtp-open-relay.nse #扫描邮件开放中继:【如果开放了邮件中继,所有人都可以使用该邮件服务器】
8.负载均衡识别
负载均衡从其应用的地理结构上分为本地负载均衡(Local Load Balance)和全局负载均衡(Global Load Balance,也叫地域负载均衡),本地负载均衡是指对本地的服务器群做负载均衡,全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
简单来说是DNS,即同一个域名对应不同IP。
分类:基于web的服务负载均衡经常使用Nginx、Apache应用层负载均衡
- Lbd(直接加域名,或者加IP)
lbd www.sina.com
9.WAF识别
WAF(Web Application Firewall)的中文名称叫做“Web应用防火墙”,利用国际上公认的一种说法,WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。通过从上面对WAF的定义中,我们可以很清晰的了解到,WAF是一种工作在应用层的、通过特定的安全策略来专门为Web应用提供安全防护的产品。
WAF攻防实战:基于规则WAF过滤【可绕过】,基于机器学习结合语法词法分析的WAF将成为主流,几乎可防止所有的SQL注入
- wafw00f
wafw00f -l
wafw00f http://www.sina.com
- nmap
nmap www.sina.com --script=http-waf-detect.nse
网友评论