服务扫描

本贴最后更新于 2181 天前,其中的信息可能已经时移世异

服务扫描

• 识别开放端口上运行的应用

• 识别目标操作系统

• 提高攻击效率

• Banner 捕获

• 服务识别

• 操作系统识别

• SNMP 分析

• 防火墙识别

服务扫描

• Banner

• 软件开发商

• 软件名称

• 服务类型

• 版本号

• 直接发现已知的漏洞和弱点

• 连接建立后直接获取 Banner

• 另类服务识别方法

• 特征行为和响应字段

• 不同的响应可用于那个与识别底层操作系统

SNMP

• 简单网络管理协议

• Community Strings

• 信息查询或重新配置

• 识别和绕过防火墙筛选

服务扫描————Banner

nc -nv ip port

Python socket

• socket 模块用于连接网络服务

• import socket • bangrab = socket.socket(socket.AF_INET,socket.SOCK_STREAM) • bangrab.connect(("192.168.1.1",21)) •bangrab.recv(4096) //recv()接收数据 >'220(vsftpd 2.3.4)\r\n' • bangrab.close() //关闭对象 • exit()

• 有些系统或软件 Banner 不允许抓取,recv 函数无返回将挂起

• ./ban_grab.py 192.168.1.1 1 100


banner_grab.py

#!/usr/bin/python import socket import select import sys if len(sys.argv) != 4: print "Usage ./banner_grab.py [target-ip] [first port] [last port]" print "Example ./banner_grab.py 192.168.1.1 1 100" print "EXample will grab banners for TCP ports 1 though 100 on 192.168.1.1" exit() ip = sys.argv[1] start = int(sys.argv[2]) end = int(sys.argv[3]) for port in range(start,end): try: bangrab = socket.socket(socket.AF_INET,socket.SOCK_STREAM) bangrab.connect((ip,port)) ready = select.select([bangrab],[],[],1) if ready[0]: print "TCP Port" + str(port) + "-" + bangrab.recv(4096) bangrab.close() except: pass

服务扫描————Banner

• dmitry -p 172.16.36.135 • dmitry -pb 172.16.36.135

• nmap -sT 1.1.1.1 -p 22 --script=banner

服务扫描————Banner

• amap -B 172.16.36.135 21 • amap -B 172.16.36.135 1-65535 • amap -B 172.16.36.135 1-65535 | grep on

服务扫描————服务识别

  • Banner 信息抓取能力有限

  • nmap 响应特征分析识别服务

  • 发送系列复杂的嗅探

  • 依据响应特征 signature

nc -nv ip port

nmap ip -p port -sV

• amap 192.168.1.134 80 • amap 172.16.36.135 20-30 • amap 172.16.36.135 20-30 –q • amap 172.16.36.135 20-30 -qb

操作系统识别

  • 操作系统识别技术

  • 种类繁多

  • 好产品采用多种技术组合

  • TTL 起始值

  • WIndows:128(65~128)

  • Linux/Unix:64(1-64)

  • 某些 UNix:255

nmap 使用多种技术识别操作系统

  • nmap 192.168.1.1 -O

  • 系统服务特征


• xprobe2 1.1.1.1

• 结果有误差


  • 被动操作系统识别

  • IDS

  • 抓包分析

  • 被动扫描

  • p0f:监听流量,分析数据包,猜测目标操作系统(命令:p0f)

  • 结合 ARP 地址欺骗识别全网 OS

SNMP 扫描

snmp:(简单网络管理协议),服务端一般为 UDP161,客户端 162 端口;明文传输

  • snmp

  • 信息的金矿

  • 经常被错误配置

  • public/private/manager

  • MIB Tree

  • SNMP Management Information Base (MIB)

  • 树形的网络设备管理功能数据库

  • 1.3.6.1.4.1.77.1.2.25

  • onesixtyone 1.1.1.1 public

  • onesixtyone -c dict.txt -i hosts -o my.log -w 100(i:主机列表文件)


• snmpwalk 192.168.20.199 -c public -v 2c (c:community,v:smp版本) • 用户 • 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

Server Message Block 协议(服务器消息块)

常用端口 139、445

  • 微软历史上出现安全问题最多的协议

  • 实现复杂

  • 默认开放

  • 文件共享

  • 空会话未身份认证访问(SMB1)

  • 密码策略

  • 用户名

  • 组名

  • 机器名

  • 用户、组 SID

版本 操作系统
SMB1 Windows 2000/xp/Windows 2003
SMB2 Windows Vista SP1/Windows 2008
SMB2.1 Win 7/Windows 2008 R2
SMB3 Win 8/Windows 2012
• nmap -v -p139,445 192.168.60.1-20 • nmap 192.168.60.4 -p139,445 --script=smb-os-discovery.nse • nmap -v -p139,445 --script=smb-check-vulns --script-args=unsafe=1 1.1.1.1 • nbtscan -r 192.168.60.0/24 • enum4linux -a 192.168.60.10

• nc -nv 1.1.1.1 25 • VRFY root • nmap smtp.163.com -p25 --script=smtp-enum-users.nse --script-args=smtp-enumusers.methods={VRFY} • nmap smtp.163.com -p25 --script=smtp-open-relay.nse • smtp-user-enum -M VRFY -U users.txt -t 10.0.0.1 • ./smtp.py

SMTP 扫描

通常运行在 25 端口

• nc -nv 1.1.1.1 25 • VRFY root • nmap smtp.163.com -p25 --script=smtp-enum-users.nse --script-args=smtp-enumusers.methods={VRFY} • nmap smtp.163.com -p25 --script=smtp-open-relay.nse • smtp-user-enum -M VRFY -U users.txt -t 10.0.0.1

smtp.py

#!/usr/bin/python import socket import sys if len(sys.argv) != 2: print "Usage smtp.py ,<username>" sys.exit(0) s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) connect = connect(("192.168.1.1",25)) banner = s.recv(1024) print banner s.send("VRFY" + sys.argv[1] + '\r\n') result = s.recv(1024) print result s.close()

##防火墙识别

  • 通过检查回包,可能是别端口是否经过防火墙过滤

  • 设备多种多样,结果存在一定误差

Send Response Type
SYN NO Filtered
ACK RST Filtered
Syn SYN+ACK/SYN+RST Filtered
ACK NO Filtered
SYN SYN+ACK/SYN+RST Unfiltered/OPEN
ACK RST Unfiltered/OPEN
SYN NO CLosed
ACK NO CLosed

防火墙识别

  • nmap 有系列防火墙过滤检测功能

  • nmap -sA 192.168.1.1 -p 22

负载均衡识别

分为广域网负载均衡和服务器负载均衡

  • 广域网负载均衡原理为 DNS 轮询,一个域名解析到多个 IP;智能 DNS,链路质量判断

• HTTP-Loadbalancing

• Nginx

• Apache

  • loading balancing detector

• lbd www.baidu.com

• lbd mail.163.com

WAF 识别

  • WEB 应用防火墙
• wafw00f -l (l:列出能检测的WAF) • wafw00f http://www.microsoft.com • nmap www.microsoft.com --script=http-waf-detect.nse

nmap 的常用参数

主机发现

* iR(num hosts):choose random target * --exclude [host1] [host2]:不扫这些地址/网络 * sL:相当于计算子网掩码功能 * Pn:有防火墙的时候应用,扫主机 * PS/PA/PU/PY:分别为TCP:SYN/ACK、UDP、SCTP发现端口 * PE/PP/PM:icmp echo、timestamp、netmask * PO:ip扫描 * n:不做dns解析 * --dns-server:用指定的dns服务器 * --traceroute:路由追踪

端口发现

nmap 默认用 syn 扫描

* sU:UDP扫描 * sI [zombie host]:Idle scan * b [ftp relay host]:ftp bounce scan * -p U: :UDP -p T: :TCP * F:fast mode, * r:连续扫描

服务扫描

* sV:nmap利用集成的特征库进行匹配 ##Firewall/IDS EVASION AND SPOOF * D [decoy1] [decoy2] [decoy3]...:伪造更多的IP地址去扫描目标,从而隐蔽自己的地址 * S [ip1] [dst.ip]:欺骗源地址,同时会建议你加e参数指定网络接口 * g [port]:欺骗源端口 * --proxies [url1] [url2] [url3] ...:使用代理 * --data [ hex string]:增加data字段(必须为16进制数) * --data-string [string]:ASCII string * --spoof-mac [mac address]:欺骗mac * badsum:check sum差错校验,发送不完整包
  • Kali
    12 引用 • 5 回帖 • 1 关注

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...