一、网络攻防实验环境的搭建与测试
Linux攻击机IP
Linux靶机IP
Windows攻击机IP
Windows靶机IP
Linux-Linux
Linux-Windows
Windows-Windows
Windows-Linux
二、教材学习
1.Linux操作系统发展与现状
在统一内核代码库的基础上,Linux开源社区根据不同用户群体的需求,也发展出数量众多的操作系统发行版,流行的包括Ubuntu、Debian、Fedora、CentOS、RHEL、OpenSUSE和Slackware等。Linux操作系统之所以会成为目前最受关注的系统之一,主要原因是它的开放源代码与免费。
2.Linux系统结构
一套基于Linux内核的完整操作系统叫做Linux操作系统,Linux操作系统的结构包括Linux内核,一些GUN运行库和工具,命令行Shell,图形界面X窗口系统及相应桌面环境,并包含数千种从办公包、编译器、文本编辑器、科学工具到网络服务的应用软件。Linux操作系统内核的总体结构属于一种典型的宏内核结构,并非Linux的前驱——Minix所采用的微内核结构。在Linux内核中,在硬件抽象层的各类设备驱动程序可以完全访问硬件设备,方便地以模块化形式设置,并在系统运行期间可直接通过LKM机制装载或卸载。在硬件抽象层之上是内核服务功能模块,包括进程管理、内存管理、文件系统、设备控制与网络这五个子系统;而这些内核模块通过系统调用接口向用户态的GUN运行库及工具、命令行Shell、X窗口以及应用软件提供服务。
3. Linux的文件系统管理机制
Linux内核使用了虚拟文件管理VFS机制,通过设备驱动程序访问特定硬件设备,VFS虚拟文件管理为用户进程提供了一组通用的文件系统调用函数。Ext家族文件系统是Linux内核中缺省采用的文件系统格式,使用索引节点来记录文件信息,作用类似于Windows FAT32文件系统的分配表,包含了文件长度、创建及修改时间、权限、所属关系、磁盘中位置等信息。
4. Linux的安全审计机制主要通过三个主要的日志子系统来实现
①连接时间日志②进程统计日志③错误日志记录。Linux系统事件日志在文件系统中的存储路径集中在/var/log目录。除了这些事件日志之外,Linux内核还集成了审计守护进程。
5.针对Linux系统的攻击也遵循着系统攻击统一的逻辑流程
攻击者首先利用踩点、扫描和查点等技术手段来收集关于目标Linux系统的信息,然后攻击者从远程网络发掘某个监听网络服务中的安全漏洞或配置弱点,来获取本地Shell访问权,而一旦获得Shell访问权,攻击者就已经在目标Linux系统上获得了立足之地,而转入本地攻击的环节,通常会利用各类提权技术获取Linux系统最高的Root用户权限,之后就可以根据他们的入侵意图而为所欲为了。
6.远程网络上入侵Linux系统的主要方法
①对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击②发掘Linux系统某个监听网络服务的安全漏洞并进行利用,从而为攻击者提供本地Shell的访问权③通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段④在Linux系统作为连接多个网络的路由器,或者打开“混杂模式”实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。
7.针对Linux本地特权提升攻击的防范技术与措施
看紧这些拥有特权的代码,才是防止Linux服务器被普通用户获取Root根用户权限的关键。对于一些不必要设置SUID特权的程序,应尽量地加以移除,而确实需要SUID特权的程序软件包,管理员应该更加将其加入自己的优先关注列表,通过配置软件自动更新计划任务,并更频繁地关注和了解这些软件包所被发现的零日安全漏洞,从而避免遭受针对这些SUID特权程序的本地提权攻击危害。
8. Linux系统上的消踪灭迹
Linux系统的主要审计日志集中在/var/log目录下,主要由系统核心进程、syslogd与各个网络服务提供事件审计功能。查看/etc/syslog.conf配置文件内容,来了解系统当前正在实施的审计事件类型以及日志的存储位置。在/var/log目录下攻击者往往需要改动messages、auth、secure、wtmp和xferlog等日志文件,对于文本格式的文件,使用vi、emacs等文本编辑工具就可以进行日志清理操作。Linux系统中的很多Shell程序都记录运行过的历史使命,以提供检索和重复执行命令的功能。攻击者还可以通过“unset HISTFILE;unset SAVEHIST”命令来禁止Shell的历史记录功能特性。应对日志清理攻击的一种方法途径是将日志信息写到难以修改的媒介上,支持只许添加标志扩展属性的文件系统就是这样的一种媒介。更好更容易实施的方法是使用syslog网络日志机制把关键的日志信息发送到另一台严密防护的安全日志服务器上去。
视频学习
视频三十一:Kali漏洞利用之SET
Social Enginnering Toolkit(SET)是一个开源、Python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库。是开源的社会工程学套件,通常结合metasploit来使用。漏洞工具集/social Engineering Toolkit/setoolkit
视频三十二:Kali嗅探欺骗与中间人攻击
Linux下的中间人攻击套路是一样的,这里介绍进行ARP欺骗、DNS欺骗和嗅探以及会话劫持的方法。
(1)为Kali设置开启端口转发
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward 修改为1
(2)设置ssltrip
为了劫持SSL数据,需要https数据变为http:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081
视频三十三:权限维持之后门
权限维持包含Tunnel工具集、Web后门、系统后门三个子类。其中系统后门与Web后门统称为后门,都是为渗透测试后,为方便再次进入系统而留下的恶意程序。
WEB后门
(1)Weevely
Weevely是一款使用pythoon编写的webshell工具(集webshell生成和连接于一身,仅限于安全学习教学之用,禁止非法用途),可以算作是linux下的一款菜刀替代工具(限于php),某些模块在win上无法使用。
视频三十四: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)Socat
可以在不同协议上进行转发数据
视频三十五:Kali逆向工程工具
逆向工程是根据已有的东西和结果,通过分析来推导具体的实现方法。比如看到别人的某个exe程序能够做出某种漂亮的动画效果,可以通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程;不仅仅是反编译,而且还要推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
(1)Edb-Debugger
EDB(Evan's Debugger)是一个基于Qt4开发的二进制调试工具,主要是为了跟OllyDbg工具看齐,通过插件体系可以进行功能的扩充,当前只支持Linux。
(2)Ollydbg
经典的Ring3级调试器,是一个动态调试工具,将IDA与SoftICE结合起来的思想。在Kali下是Wine方式运行的Ollydbg。
本周学习进度
完成了课本第八章的学习,完成了kali第31~35集的学习。