唐小风

安全工程师这些年

漏洞复核简单格式

漏洞名称:XXXX【未修复】

漏洞地址:

漏洞证明:

整改建议:


CTF平台搭建

安装环境:Ubuntu14.04 64位

http://mirrors.163.com/ubuntu-releases/14.04/ubuntu-14.04.5-server-amd64.iso


安装docker

sudo apt-get install -y docker.io

host头攻击验证py脚本

from urllib import request

import sys

import re

url=sys.argv[1]

header={'Host' : 'www.eth10.com'}


req=request.Request(url,headers=header)

u = request.urlopen(req)

resp = u.read()


if re.match('.*www.eth10.com',str(resp)):

    print('漏洞存在')

else:

    print('不存在该漏洞')


域名转IP-py脚本

#coding:utf-8

#build by LandGrey

#2018-06-22


import socket


def URL2IP():

   for oneurl in urllist.readlines():

       url=str(oneurl.strip())[7:]

       print (url)

       try:

           ip =socket.gethostbyname(url)

           print (ip)

           iplist.writelines(str(ip)+"\n")

       except:

           print ("this URL 2 IP ERROR ")


try:

    urllist=open("D:\\urllist.txt","r")

    iplist=open("D:\\iplist.txt","w")

    URL2IP()

    urllist.close()

    iplist.close()

    print ("complete !")

except:

    print ("ERROR !")


修改ssh22端口

1、修改SSH远程登录端口为1211


# vi/etc/ssh/sshd_config


Port 1211                        #把’#Port 22’修改为’Port 1211’;


#AddressFamilyany


#ListenAddress0.0.0.0


#ListenAddress::


# servicesshd restart     #重启SSH服务;


 


2、防火墙添加端口


默认下iptables只开启了一部分端口,使用额外端口如’1211’需要在iptables中添加白名单


# iptables-I INPUT -p tcp --dport 2201 -j ACCEPT


#service iptables save


第一条命令即时生效但重启后会失效,所以需要保存该命令到iptables配置文件中,路径:/etc/sysconfig/iptables,


 


3、安全增强篇


先增加一个普通权限的用户并设置密码:


# useradd xiaozui


# passwd woiit.net


 


服务器禁止ROOT远程登录:


# vi/etc/ssh/sshd_config


#LoginGraceTime2m


#PermitRootLoginno          #将’PermitRootLoginyes’改为’ PermitRootLogin no’


#StrictModesyes


#MaxAuthTries6


#MaxSessions10


# servicesshd restart         #重启SSH服务;




远程管理用普通用户xiaozui登录,然后用 suroot 切换到root用户拿到最高权限。


了解OWASP top 10

(要求能知道了解这些类型漏洞,大概原理,防护手段等)

10项最严重的 Web 应用程序安全风险

A1:2017- 注入

A2:2017- 失效的身份认证 

A3:2017- 敏感信息泄露

A4:2017- XML 外部实体(XXE)

A5:2017- 失效的访问控制

A6:2017- 安全配置错误

A7:2017- 跨站脚本(XSS)

A8:2017- 不安全的反序列化

A9:2017- 使用含有已知漏洞的组件

A10:2017- 不足的日志记录和监控

A1:2017-注入

将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS 注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预 期命令或访问数据。

A2:2017-失效的身 份认证

通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌, 或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。

A3:2017-敏感数据泄露

许多Web应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗数据和PII数据。攻击者可 以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据 容易受到破坏,因此,我们需要对敏感数据加密,这些数据包括:传输过程中的数据、存储的数据 以及浏览器的交互数据。

A4:2017-XML 外部 实体(XXE)

许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者可以利用外部实体窃 取使用URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻 击。

A5:2017-失效的访 问控制

未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数 据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

A6:2017-安全配置 错误

安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云 存储、错误的 HTTP 标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所 有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。

A7:2017跨站脚本(XSS)

当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或 JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器 中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点

A8:2017-不安全的 反序列化

不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以 利用它们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。

A9:2017-使用含有 已知漏洞的组件

组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏 洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组 件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响。

A10:2017不足的日志记录和 监控

不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持 续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超 过200天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。


安服支撑中心角色定义

安全运维:

  • 负责相关网络设备调试,安全设备调试,设备巡检。各类漏洞整改工作。
  • 并有能力对发生的安全事件进行分析和溯源。能支撑应急响应工作等。

安全预警:

  • 负责关注安全最前沿的技术,关注最新的漏洞通报,并且持续跟踪,有能力编写相关漏洞测试POC,以及批量检测工具。

安全检测:

  • 负责客户系统的漏洞检测:包括主机漏洞扫描,web漏洞扫描,安全基线检测。
  • 有能力对恶意程序分析,app逆向分析。
  • 能做移动端安全检测。

安全培训:

  • 能依据不同的培训群体编写不同层次的培训课件。
  • 能搭建各类的漏洞练习实操环境。
  • 能出各类笔试试题。

安全管理:

  • 擅长项目管理,能编写和制定大多数安全管理规范。
  • 用能力做售前技术支撑,能编写项目技术方案书。
  • 能够管理安全团队,把控安全团队能力均衡,并能制定相应的考核办法和晋升手段,让团队在良性的竞争条件下成长。


虚拟机14版本下载

Workstation 14 Pro for Windows
https://www.vmware.com/go/getworkstation-win

Workstation 14 Pro for Linux
https://www.vmware.com/go/getworkstation-linux

激活密钥:

AU5WA-0EF9M-0811P-REP5X-ZFK9A
ZV382-6VX96-H81LP-1ZZG9-PVKF4
GU34A-41G4Q-H88CY-3WPNT-XUK8F


OSI七层与TCP/IP五层网络架构详解

OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助。今天偶又复习了一下:

 

(1)OSI七层模型

 

OSI中的层 功能 TCP/IP协议族

应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

表示层 数据格式化,代码转换,数据加密 没有协议

会话层 解除或建立与别的接点的联系 没有协议

传输层 提供端对端的接口 TCP,UDP

网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP

数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU

物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2

 

 


 

 

(2)TCP/IP五层模型的协议

 

应用层

传输层

网络层

数据链路层

物理层

 

物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层

数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)

网络层:路由器、三层交换机

传输层:四层交换机、也有工作在四层的路由器

 

 

 

二、TCP/UDP协议

 

TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复 用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、 流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要 有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系 统)、TFTP(通用文件传输协议)等.

TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点

 

三、OSI的基本概念

OSI是Open System Interconnect的缩写,意为开放式系统互联。

OSI七层参考模型的各个层次的划分遵循下列原则:

1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。

2、同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。

3、七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。

4、不同节点的同等层按照协议实现对等层之间的通信。

 

第一层:物理层(PhysicalLayer),

规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械 特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率 距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组 操作规程,是指在物理连接的建立、维护、交换信息是,DTE和DCE双放在各电路上的动作系列。在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。

 

第二层:数据链路层(DataLinkLayer):

在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。

 

第三层是网络层

在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。如 果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地 址解析协议(ARP)。有关路由的一切事情都在这第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。

 

第 四层是处理信息的传输层

第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的 数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所为透明的传输是指在通信过程中 传输层对上层屏蔽了通信传输系统的具体细节。传输层协议的代表包括:TCP、UDP、SPX等。

 

第五层是会话层

这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,而是统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。

 

第六层是表示层

这一层主要解决拥护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

 

第七层应用层

应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

 

除了层的数量之外,开放式系统互联(OSI)模型与TCP/IP协议有什么区别?

 

开放式系统互联模型是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之一。开放式系统互联模型中没有清楚地描绘TCP/IP协议,但是在解释TCP/IP协议时很容易想到开放式系统互联模型。两者的主要区别如下:

 

TCP/IP协议中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。

 

TCP/IP协议中的传输层并不能总是保证在传输层可靠地传输数据包,而开放式系统互联模型可以做到。TCP/IP协议还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传输。

 

TCP/UDP协议

 

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。

 

TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。

 

TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点。

 

OSI是Open System Interconnect的缩写,意为开放式系统互联。