识别开放端口上运行的应用
得到了开放的端口就得到了入侵的途径,下面就是侵入系统的方法了
所以我们需要对每个端口上运行着什么服务,哪种操作系统,哪一款防火墙等信息
--Banner捕获
--服务识别
--操作系统识别
--snmp分析(利用snmp配置不当)
--防火墙识别
…….
Banner信息获取
Banner主要包括下面的内容
---软件开发商
---软件名称
---服务类型
---版本号
-直接发现漏洞
NC
nc -nv 192.168.1.1 22
Dmitry
dmitry –pb 192.168.1.1
nmap
nmap -sT 192.168.1.1 --script=banner
--script 使用nmap的脚本,nmap中有大量的脚本
在Kali中目录为 /usr/share/nmap/scripts
amap
一款专门用来查询服务信息的软件
amap -B 192.168.1.1 1-65535
服务扫描
根据服务的指纹与指纹库的比对,得出结论
amap
amap 192.168.1.1 1-100 –qb
Nmap
nmap –sV 192.168.1.1
没有对比就没有伤害。同样的端口范围,扫描出来的详细程度差距太大
操作系统识别
操作系统识别主要依赖的就是各个操作系统给我们反馈的信息中一些特殊字段不同
TTL 值判断
不过的系统的TTL值是不一样的
Windows: 128 (65--128)
Linux/Unix: 64 (1--64)
某些Unix: 255
当然仅仅凭借这一点来判断是不准确的,因为这个是可以人为修改的
xprobe2
专门用来识别操作系统的工具
xprode2 192.168.1.1
效果实在是太差劲了,连win7都没有识别出来(不推荐)
nmap
nmap –O 192.168.1.106
nmap 识别出是windows7 ,2008,8.1中的一个,看来windows系统之间的黏性还是挺大的。
P0f
这个工具还是挺有意思的,直接在命令行输入p0f,之后我们访问网站时候就会自动分析了
它也支持将抓取的流量包进行读取识别
防火墙识别
通过检查回包,可能识别端口是否经过防火墙过滤
设备多种多样,结果存在一定误差
四种方法
都是先发SYN,之后发ACK包
1. SYN ---> 没有回应
ACK ---> RST
被过滤了
2. SYN ---> 回应 SYN ACK / SYN RST
ACK ---> 没有回应
被过滤了
3. SYN ---> 返回SYN ACK/SYN RST
ACK ---> 返回RST
开放
4. SYN ---> 没有回应
ACK ---> 没有回应
关闭
nmap –sA 192.168.1.1
可以看出这个模式是在不建立连接的情况下发送ACK包,从而判断防火墙对这种数据包的反应,如果没有过滤,那么应该直接给我们返回一个RST,就像图中那样,如果被过滤了可能就是没有回包!
负载均衡识别
负载均衡一般分为两种,广域网负载均衡和服务器负载均衡
广域网负载均衡主要是基于智能DNS,根据请求响应时间等进行一下请求的流向划分
服务器负载均衡使用Nginx或者apache等进行应用层负载均衡
lbd (load balancingdetector)
lbd www.hasee.com
看看qq吧
lbd www.qq.com
WAF 识别(Web Application Firewall)
Waf 应用防火墙搞Web的应该很熟悉了,大部分是基于规则匹配来进行检测的,对于这种防火墙,我们只需要不断测试它的规则,之后想办法绕过。
还有现在比较主推的就是基于机器学习的防火墙,最近关于机器学习比较火,很久以前就有人提出过“机器学习 安全“的想法,现在也都实现了。
Wafw00f
wafw00f https://www.baidu.com
这是能够识别的waf
拿QQ来试试吧
可以看出qq采用的是IBM Web Application Security
Nmap
nmap www.microsoft.com --script=http-waf-detect
可以看到并没有识别出具体是哪一款WAF
还有一些工具检测waf是其中的一项功能,比如我们熟悉的sqlmap
服务扫描就到这里就结束了
-END-