首页 > 代码库 > 20169217 2016-2017-2 《网络攻防实践》第八周学习总结
20169217 2016-2017-2 《网络攻防实践》第八周学习总结
教材内容总结和扩展
一、Linux操作系统基本框架概述
Linux发展现状
Linux 作为一种操作系统正在拥有越来越多的用户,也逐渐被应用于更多的领域。随着Linux 的快速发展,并且凭借着诸多优点,Linux 正逐步在打破Windows 的垄断地位。就Linux 的本质来说,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等。Linux Kernel(内核)并不负责提供用户强大的应用程序,没有编译器、系统管理工具、网络工具、Office 套件、多媒体、绘图软件等,这样的系统也就无法发挥其强大功能,用户也无法利用这个系统工作,因此有人便提出以Linux Kernel 为核心再集成搭配各式各样的系统程序或应用工具程序组成一套完整的操作系统,经过如此组合的Linux 套件即称为Linux 发行版。
Linux系统结构 Linux 和 Unix 文件系统被组织成一个有层次的树形结构。文件系统的最上层是 /,或称为 根目录。在 Unix 和 Linux 的设计理念中,一切皆为文件——包括硬盘、分区和可插拔介质。这就意味着所有其它文件和目录(包括其它硬盘和分区)都位于根目录中。例如:/home/jebediah/cheeses.odt 给出了正确的完整路径,它指向 cheeses.odt 文件,而该文件位于 jebediah 目录下,该目录又位于 home 目录,最后,home 目录又位于根(/) 目录下。 在根 (/) 目录下,有一组重要的系统目录,在大部分 Linux 发行版里都通用。
二、Linux操作系统安全机制
经过十年的发展,Linux的功能在不断增强,其安全机制亦在逐步完善。按照TCSEC评估标准,目前Linux的安全级基本达到了C2,更高安全级别的Linux系统正在开发之中。
下面我们来看一看Linux已有的安全机制,这些机制有些已被标准的Linux所接纳,有些只是提供了“补丁”程序。
PAM机制
PAM(Pluggable Authentication Modules)是一套共享库,其目的是提供一个框架和一套编程接口,将认证工作由程序员交给管理员,PAM允许管理员在多种认证方法之间作出选择,它能够改变本地认证方法而不需要重新编译与认证相关的应用程序。
PAM的功能包括:
加密口令(包括DES以外的算法);
对用户进行资源限制,防止DOS攻击;
允许随意Shadow口令;
限制特定用户在指定时间从指定地点登录;
引入概念“client plug-in agents”,使PAM支持C/S应用中的机器——机器认证成为可能。
PAM为更有效的认证方法的开发提供了便利,在此基础上可以很容易地开发出替代常规的用户名加口令的认证方法,如智能卡、指纹识别等认证方法。
入侵检测系统
入侵检测技术是一项相对比较新的技术,很少有操作系统安装了入侵检测工具,事实上,标准的Linux发布版本也是最近才配备了这种工具。尽管入侵检测系统的历史很短,但发展却很快,目前比较流行的入侵检测系统有Snort、Portsentry、 Lids等。
利用Linux配备的工具和从因特网下载的工具,就可以使Linux具备高级的入侵检测能力,这些能力包括:
记录入侵企图,当攻击发生时及时通知管理员;
在规定情况的攻击发生时,采取事先规定的措施;
发送一些错误信息,比如伪装成其他操作系统,这样攻击者会认为他们正在攻击一个Windows NT 或Solaris系统。
加密文件系统
加密技术在现代计算机系统安全中扮演着越来越重要的角色。加密文件系统就是将加密服务引入文件系统,从而提高计算机系统的安全性。有太多的理由需要加密文件系统,比如防止硬盘被偷窃、防止未经授权的访问等。
目前Linux已有多种加密文件系统,如CFS、TCFS、CRYPTFS等,较有代表性的是TCFS(Transparent CryptogrAPhic File System)。它通过将加密服务和文件系统紧密集成,使用户感觉不到文件的加密过程。TCFS不修改文件系统的数据结构,备份与修复以及用户访问保密文件的语义也不变。
TCFS能够做到让保密文件对以下用户不可读:
合法拥有者以外的用户;
用户和远程文件系统通信线路上的偷听者;
文件系统服务器的超级用户。
而对于合法用户,访问保密文件与访问普通文件几乎没有区别。
安全审计
即使系统管理员十分精明地采取了各种安全措施,但还会不幸地发现一些新漏洞。攻击者在漏洞被修补之前会迅速抓住机会攻破尽可能多的机器。虽然Linux不能预测何时主机会受到攻击,但是它可以记录攻击者的行踪。
Linux还可以进行检测、记录时间信息和网络连接情况。这些信息将被重定向到日志中备查。
日志是Linux安全结构中的一个重要内容,它是提供攻击发生的唯一真实证据。因为现在的攻击方法多种多样,所以Linux提供网络、主机和用户级的日志信息。例如,Linux可以记录以下内容:
记录所有系统和内核信息;
记录每一次网络连接和它们的源IP地址、长度,有时还包括攻击者的用户名和使用的操作系统;
记录远程用户申请访问哪些文件;
记录用户可以控制哪些进程;
记录具体用户使用的每条命令。
在调查网络入侵者的时候,日志信息是不可缺少的,即使这种调查是在实际攻击发生之后进行。
强制访问控制
强制访问控制(MAC,Mandatory Access Control)是一种由系统管理员从全系统的角度定义和实施的访问控制,它通过标记系统中的主客体,强制性地限制信息的共享和流动,使不同的用户只能访问到与其有关的、指定范围的信息,从根本上防止信息的失泄密和访问混乱的现象。
传统的MAC实现都是基于TCSEC中定义的MLS策略,但因MLS本身存在着这样或那样的缺点(不灵活、兼容性差、难于管理等),研究人员已经提出了多种MAC策略,如DTE、RBAC等。由于Linux是一种自由操作系统,目前在其上实现强制访问控制的就有好几家,其中比较典型的包括SElinux、RSBAC、MAC等,采用的策略也各不相同。
NSA推出的SELinux安全体系结构称为 Flask,在这一结构中,安全性策略的逻辑和通用接口一起封装在与操作系统独立的组件中,这个单独的组件称为安全服务器。SELinux的安全服务器定义了一种混合的安全性策略,由类型实施 (TE)、基于角色的访问控制 (RBAC) 和多级安全(MLS) 组成。通过替换安全服务器,可以支持不同的安全策略。SELinux使用策略配置语言定义安全策略,然后通过checkpolicy 编译成二进制形式,存储在文件 /ss_policy中,在内核引导时读到内核空间。这意味着安全性策略在每次系统引导时都会有所不同。策略甚至可以通过使用 security_load_policy 接口在系统操作期间更改(只要将策略配置成允许这样的更改)。
RSBAC的全称是Rule Set Based Access Control(基于规则集的访问控制),它是根据Abrams和LaPadula提出的Generalized Framework for Access Control(GFAC)模型开发的,可以基于多个模块提供灵活的访问控制。所有与安全相关的系统调用都扩展了安全实施代码,这些代码调用中央决策部件,该部件随后调用所有激活的决策模块,形成一个综合的决定,然后由系统调用扩展来实施这个决定。RSBAC目前包含的模块主要有MAC、RBAC、ACL等。
MAC是英国的Malcolm Beattie针对Linux 2.2编写的一个非常初级的MAC访问控制,它将一个运行的Linux系统分隔成多个互不可见的(或者互相限制的)子系统,这些子系统可以作为单一的系统来管理。MAC是基于传统的Biba完整性模型和BLP模型实现的,但作者目前似乎没有延续他的工作。
防火墙
防火墙是在被保护网络和因特网之间,或者在其他网络之间限制访问的一种部件或一系列部件。
Linux防火墙系统提供了如下功能:
访问控制,可以执行基于地址(源和目标)、用户和时间的访问控制策略,从而可以杜绝非授权的访问,同时保护内部用户的合法访问不受影响。
审计,对通过它的网络访问进行记录,建立完备的日志、审计和追踪网络访问记录,并可以根据需要产生报表。
抗攻击,防火墙系统直接暴露在非信任网络中,对外界来说,受到防火墙保护的内部网络如同一个点,所有的攻击都是直接针对它的,该点称为堡垒机,因此要求堡垒机具有高度的安全性和抵御各种攻击的能力。
其他附属功能,如与审计相关的报警和入侵检测,与访问控制相关的身份验证、加密和认证,甚至VPN等。
三、Linux系统远程攻防技术
1、Linux远程口令字猜测攻击
2、Linux网络服务远程渗透攻击
3、攻击Linux客户端程序和用户
4、攻击Linux路由器和监听器
四、Linux系统本地安全攻防技术
1、Linux本地特权提升
2、Linux系统上的消踪灭迹
3、Linux系统远程控制后门程序
视频学习总结
1、KaliSecurity - 漏洞利用之SET
Social Engineering Toolkit (SET)是一个开源、Python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库。 该版本的SET可植入多种powershel并进行任意端口的转发,同时SET不会触及硬盘且使用已经进入白名单的进程,因此不会触发杀毒软件的报警。
2、KaliSecurity - 嗅探欺骗与中间人攻击
Kali嗅探欺骗与中间人攻击,以下是过程截图。
为kali设置开启端口转发,设置sslstrip
ettercap的准备:配置文件,打开图形化界面
Ettercap使用
打开ettercap,选择sniff选项-unified sniffing-选择网卡-hosts选项:先scan for hosts,等扫描完了选host list。
然后start就可以了 可以看到扫描到了三个主机 把网关安排到target 1 ,想攻击的目标放到target 2
mitm选项卡选择arp poisioning
3、KaliSecurity - 权限维持之后门
权限维持包含Tunnel工具集、Web后门、系统后门三个子类。其中系统后门与Web后门统称为后门,都是为渗透测试后,为方便再次进入系统而留下的恶意程序。
1、WEB后门
Weevely
Weevely是一款使用pythoon编写的webshell工具(集webshell生成和连接于一身,仅限于安全学习教学之用,禁止非法用途),可以算作是linux下的一款菜刀替代工具(限于php),某些模块在win上无法使用。
2、系统后门
Cymothoa系统后门
cymothoa -10500 -s -0 -y 2333 (注入2333端口),如果成功,可以连接2333端口返回一个shell
dbd理解为加密版的nc
监听端:dbd -l -p 2333 -e /bin/bash -k password
攻击端:dbd 127.0.0.1 2333 -k password
sbd和dbd用法相同
U3-Pwn
与Metasploit Payload结合使用的工具,菜单可以单刀多针对移动光驱设备如光驱镜像,u盘等。
四、Kali权限维持之Tunnel
权限维持包括Tunnel工具集、web后门、系统后门三个子类。Tunnel工具集包含了一系列用于建立通信隧道、代理的工具:
1、CryptCat
Netcat有网络工具中的瑞士军刀之称,但是它本身建立的隧道是不加密的,于是有了cryptcat。与dbd/sbd使用也类似。
2、DNS2TCP
DNS tunnel即DNS通道。从名字上看就是利用DNS查询过程建立起隧道,传输数据。
在酒店等公共场所,通常有wifi信号,但当访问第一个网站时,可能会弹出窗口,需要输入用户名密码,登陆后才可以继续上网(该技术一般为透明http代理)。但有时会发现获取到的dns地址是有效的,并且可以进行dns查询,这时可以使用DNS tunnel技术来实现免费上网。
DNS tunnel原理:通过特定服务器,让局域网内的DNS服务器为我们实现数据转发。DNS tunnel实现的工具有很多,比如:OzymanDNS, tcp-over-dns, heyoks, iodine, dns2tcp
3、Iodine
4、Miredo
Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道转换,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。
5、Proxychains
内网渗透测试经常会用到一款工具,如我们使用Meterpreter开设一个Socks4a代理服务,通过修改/etc/prosychains.conf配置文件,加入代理,即可使其他工具如sqlmap、namp直接使用代理扫描内网。
如proxychain namp 10.0.0.1/24
6、Proxytunnel
Proxytunnel可以通过标准的Https代理来连接远程服务器,这是一个代理,实现了桥接的功能。特别用于通过SSH进行Http(s)传输
Prosytunnel可用于:
使用http(s)代理(http connect 命令)创建通讯通道
为OpwnSSH写一个客户端驱动,并创建基于SSH连接的http(s)代理
作为一个独立的应用,可以连接到远程服务器
7、Ptunnel
借助ICMP数据包建立隧道通信
8、Pwant
内网下通过UDP通信
9、sslh
一个ssl/ssh端口复用工具,sslh可以在同一个端口上接受https,ssh和openvpn连接。这使得通过443端口连接ssh服务器或者openvpn服务器同时在该端口上提供https服务成为可能。sslh可以作为一个研究端口复用的例子。
错题总结
下面的Linux命令中,more,less用来分页查看文件内容
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 .为起点,以你所要到的目录为终点。
Metasploit中msfpayload命令用来生成 payload 或者 shellcode。
Exploit Database为 ExploitDB 官方维护的一个项目,通过searchsploit可以方便的借助关键词搜索漏洞信息。
下面在Windows中可以进行远程控制的是Netcat,Meterpreter。
下列漏洞信息库中,安全漏洞命名索引的事实标准是CVE。
Windows安全中心中的功能包括防火墙,病毒防护。
Window远程登录用户的身份认证是Netlogon负责的。
Windows的NTFS文件系统基于ACL来保证文件资源读/写的安全性。
Windows中,下面的模块或服务处在用户态下:kernel32.dll,LSASS。
Windows执行体中的内核对应系统中的ntoskrnl.exe包含基本的操作系统内核服务。
学习进度条
上周学习进度完成良好。
学习感悟
上周的小测错题较多,发现我在看书的过程中细节看的不是很到位,以后看书要多注意细节,并且在书上多进行标注。
20169217 2016-2017-2 《网络攻防实践》第八周学习总结