2017-2018-2 20179202 主机探测、扫描、协议分析 第三周作业
一、KaliSecurity(6-10)
信息收集之主机探测
主机探测指识别目标机器是否可用(是否在线)。由于IDS(入侵检测系统)和IPS(入侵保护系统)的存在,测试过程中还要考虑对各种保护措施的探测,如WAF、防火墙、负载均衡等。
netenum
netenum 是ip段生成工具,可用用来测试主机是否在线。
netenum 192.168.0.0/24 生成ip段
netenum 192.168.0.0/24 >test 生成列表重定向到文件中,将test文件作为另一个扫描器的输入文件
使用 netenum 对 C 段扫描,首先用ping baidu.com
获得 IP 地址,netenum 123.125.144.0/24 3 3表示延时3s
测试哪些主机在线(不靠谱,如果有防火墙就绕不过去)。
fping
netenum 多用于生成 ip 列表,而 fping 可显示可达和不可达。
fping -h 查看帮助
fping -g 123.125.144.0/24 测试主机在线情况
nbtscan
nbtscan 内网扫描,借助 NetBIOS 服务获取一定信息
arping
arping 探测目标 MAC 地址(注意测试本网段其他地址,测试本机地址没用)
netdiscover
netdiscover 探测内网信息,既可以以被动模式嗅探存活的主机,也可以以主动模式扫描主机。
dmitry
使用 dmitry 获取目标详细信息,包括whois、tcp port。
WAF 探测
WAF(Web应用防护系统)是对防护措施的探测
LBD
使用 LBD(负载平衡检测器)对目标是否存在负载均衡检测。检测机制基于DNS解析,HTTP头,从中找到服务器应答之间的差异。可帮助发现多个ip映射同一个域名。若攻击者要做针对性的测试(如DDOS)要对多个ip实施同时打击,这样才会产生效果。
负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。
2.信息收集之主机扫描
通过主机探测,确定测试目标地址后,往往需要对主机信息做更完整的扫描,这个过程需要过目标主机开放的端口、服务以及主机名、主机操作系统等信息。
- TCP connect()最基本扫描方式。如果端口处于侦听状态,则 connect() 成功。该方式不需任何权限,任何用户都有权使用,且多线程速度快,但易被发觉,并被过滤
- TCP SYN 半开放扫描,不打开完整TCP连接。返回SYN|ACK侦听状态,返回RST,没有处于侦听状态。不会在目标主机上留下记录,但必须本地有root权限才能建立SYN数据包,现在的防火墙也有针对SYN的过滤
- TCP FIN,关闭的端口会用适当的RST来回复FIN数据包,打开的忽略对FIN的回复。
Nmap
Nmap 是一款网络扫描和主机检测的非常有用的工具,有命令行界面和图形用户界面,其可以完成以下任务:
- 主机探测:探测网络上的主机,例如列出相应TCP、icmp请求、开放特别端口的主机
- 端口扫描:探测目标主机所开放的端口(HTTP 80;HTTPS 43;Telnet 23;FTP 21;SSH(安全登录)、SCP(文件传输)、端口重定向 22;SMTP 25;POP3 110; WebLogic 7001;TOMCAT 8080;Oracle 1521;MySQL 3306)
- 版本检测:探测目标主机的网络服务,判断其服务名称及版本号
- 系统检测:探测目标主机的操作系统及网络设备的硬件特性
- 支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言
nmap将端口分为open(开放)、filtered(被过滤)、 closed(关闭)、unfiltered(未被过滤):
- open:目标主机的应用程序在监听
- closed:端口没有监听,但随时可能打开
- filtered:存在firewall,阻碍了端口访问
- unfiltered:无法确定开放与否。
nmap 会默认发送一个 arp 的 ping 数据包,探测目标主机在1-10000范围内所开放的端口。
nmap 192.168.200.125
nmap -vv 192.168.200.125 对扫描结果进行详细输出
nmap -p1-500 192.168.200.125 扫描1-500之间的端口(p-port)
nmap -p80,443,22,8080 192.168.200.125 扫描指定端口
nmap -sP 192.168.200.125 sP设置扫描方式为 ping 扫描,测试主机是否在线(s表示方式)
当有一组 IP 地址来扫描时,而且不知道哪一个是可达的时非常有用。
nmap -sP 192.168.200.0/24 扫描一个c段的主机在线情况,类似于 fping
nmap -traceroute 192.168.200.125 进行路由跟踪
nmap -O 192.168.200.125 操作系统探测(O-OS)
nmap -sV 192.168.200.125
版本检测用来扫描目标主机和端口上运行的软件的版本。它不是用来扫描目标主机上开放的端口,但需要从开放的端口获取信息来判断软件的版本。
nmap -A 192.168.1.160 扫描结果详细(A-all)
nmnap -sS <target IP>
S指的是 SYN 扫描是使用频率最高的扫描选项,又称为半开放扫描,它不打开一个完全的TCP连接(不需要3次握手),执行得很快,效率高,不会产生任何会话,目标主机几乎不会把连接记入系统日志。
nmnap -sT <target IP>
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描。
nmap -sF <target IP>
F指的是 FIN 扫描。有时因为有防火墙的存在或目标主机可能有 IDS 和 IPS 系统的存在,防火墙会阻止 SYN 数据包,因此 SYN 扫描不是最佳的扫描模式。FIN 扫描发送一个 FIN 标志的数据包,不需要完成TCP的握手。可利用 FIN 扫描方式探測防火墙状态,收到 RST 回复说明该端口关闭,否则说明是 open 或 filtered 状态。
nmap -sA〈target IP>
A 指的是 ACK 扫描:利用ACK扫描判断端口是否被过滤。针对 ACK 探测包,未被过滤的端口(无
论打开、关闭)会回复RST包。
nmap -Pn <target 1P>
不使用默认的探测检查,而是对目标进行一个完整的端口扫描,不用 ping 来发现 ping 不通主机但开放的端口。当扫描一个有防火墙保护而封锁 ping 探测主机时非常有用。
Zenmap 是 Nmap 的图形化界面:
信息收集之指纹识别
指纹识别是识别目标主机的操作系统版本与应用版本,可以进一步探测操作系统与应用级别的漏洞从而可以从这一级别进行渗透测试。
1.Banner抓取
Banner抓取是最基础、最简单的指纹识别技术,而且在不需要其他专门的工具的情况下就可以做。操作简单,通常获取的信息也相对准确。严格的讲,banner抓取是应用程序指纹识别而不是操作系统指纹识别。Banner信息并不是操作系统本身的行为,是由应用程序自动返回的,比如apathe、exchange。
curl -I www.freebuf.com
curl命令是一个利用URL规则在命令行下工作的文件传输工具。
-I: 只显示请求头信息
namp(主动指纹识别的工具)
对前面介绍的nmap参数组合应用:
p0f(被动指纹识别的工具)
p0f不会向目标发送具体探测数据,只是被动的接收数据分析,一般无法被探查发现。在网络分析方面功能强大,可以用它来分析NAT、负载均衡、应用代理等。
首先在终端中输入p0f:
打开浏览器输入网页,即可对截获的流量、数据包加以分析:
Whatweb(web指纹识别工具)
Whatweb是基于Ruby语言的开源网站指纹识别软件,能够识别各种关于网站的详细信息如CMS类型、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等等。
whatweb www.freebuf.com
针对具体的WEB CMS如wordpress(PHP语言开发的博客平台),可使用WPScan等工具进行CMS的指纹枚举。探知可能存在的插件,主题模板等信息。
wpscan -u www.freebuf.com
信息搜集之协议分析
1.SMB协议分析
Acccheck
Acccheck可用来对帐户密码执行字典式攻击。
之前介绍的nbtscan也是基于SMB协议。
2.SMTP协议分析
nmap、smtp-user-enum 针对stmp服务器25端口,进行用户名枚举的工具,用以探测服务器已存在邮箱账户。
swaks(邮件发送测试工具)
3.SNMP协议分析
SNMP enumerator
SNMP enumerator 测试开放SNMP协议的ip地址
4.SSL分析
SSL (Secure Socket Layer)安全套接字层协议,通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。工具有sslscan(扫描服务器SSL接受的加密方式,公钥等其他信息)、sslstrip(结合内网arp嗅探进行arp欺骗)等。
漏洞分析之OpenVAS安装
完成前期信息搜集工作后,需要针对性的实施漏洞分析与扫描的过程,OpenVAS为Kali下自带的一款综合漏洞扫描器,是开放式风险评估工具,可以检测远程系统和应
用程序中的安全问题。
OpenVAS包括一个中央服务器和一个图形化的前端。服务器准许用户运行几种不同
的W络漏洞测试(以Nessus攻击脚本语言编写)。
Kali Rolling版本已经没有默认安装Openvas了,需要重新下载:
apt-get install openvas 安装openvas
openvas-setup 然后开始配置Openvas
二、读书笔记
将视频中没有提到的内容进行整理:
1.网络拓扑侦察
- 类unix:traceroute
- windows:tracert
2.网络扫描
- 主机扫描:使用ICMP协议的Ping扫描、使用TCP协议的主机扫描、使用UDP协议的主机扫描。
- 端口扫描
- 系统类型探查
3.网络查点
网络查点包括了对目标系统的主动连接与查询,应该被记入日志或触发入侵检测系统报警。针对已知的弱点,对识别出来的服务进行可以更充分更有针对性的探查,来寻找真正可以攻击的入口以及攻击过程中可能需要的关键数据。网络服务旗标抓取工具有telnet、netcat等。
三、Nessus扫描情况
首先选择policies,先建立自定义policies,然后选择Scans,Policy处
选择刚才新建的:
点击 Launch Scan 开始扫描,得到结果: