教材学习
1. linux操作系统基本框架概述
发展出众多操作系统发行版:ubuntu、debian、fedora、centos、rhel、opensuse和stackware等。
优势
- 开放源代码与免费
- 跨平台的硬件支持
- 丰富的软件支持
- 多用户多任务
- 可靠的安全性
- 良好的稳定性
- 完善的网络功能
linux系统结构
- Linux进程与线程管理机制
- Linux内存管理机制
- Linux文件系统管理机制
- Linux设备控制机制
- Linux网络机制
- Linux系统调用机制
2. linux操作系统安全机制
linux操作系统的核心安全机制主要是身份认证、授权与访问控制、安全审计三个部分。
linux身份认证
- linux用户(root根用户、普通用户、系统用户)
- linux用户组(具有相同特征的用户账号集合)
- linux本地登录用户认证机制(控制台)
- linux远程登录用户认证机制(ssh服务)
- Linux的统一身份认证中间件——PAM(可插入身份认证模块)
linux授权与访问控制
- 文件所有者(chown命令)
- 文件的访问权限(读、写、执行,chmod命令)
- 文件的特殊执行权限
- Linux访问控制机制的不足与改进
linux安全审计
主要通过三个主要的日志子系统来实现
- 连接时间日志
- 进程统计日志
- 错误日志记录
3. linux系统远程攻防技术
linux远程口令字猜测攻击
-
1)针对ssh、telnet、ftp、http等服务的口令猜测攻击是互联网所面临的攻陷系统最普遍的攻击模式。
-
2)自动化远程口令猜测工具(brutus、thc hydra、cain and abel) p286
-
3)最佳防御措施:使用不宜猜中的强口令字
linux网络服务远程渗透攻击
最重要的攻击渠道——对监听网络服务安全漏洞的渗透利用。
- Linux网络服务的远程渗透攻击
- Linux内核中的网络协议栈实现
- LAMP Web网站构建解决方案中的网络服务
- FTP、Samba等文件共享服务
- 电子邮件收发服务
- 其他网络服务
安全防范措施:
- 禁用所有不必要的网络服务
- 尽量选择更安全的网络协议与服务软件,并使用最佳安全实践进行部署
- 及时更新网络服务版本
- 使用xinetd、防火墙为linux网络服务添加网络访问控制机制
- 建立入侵检测与应急响应计划流程
攻击Linux客户端程序和用户
攻击linux路由器与防火墙
攻击监听器&入侵检测器(libpcap抓包库、tcpdump命令行程序、wireshark网络监听与协议分析软件、snort入侵检测系统)
4. linux系统本地安全攻防技术
linux本地特权提升
- linux用户口令字破解
- 利用sudo的缺陷进行特权提升
- 利用用户态SUID程序漏洞进行特权提升
- 针对SUID程序的本地缓冲区溢出攻击
- 针对SUID程序的符号链接攻击
- 针对SUID程序的竞争条件攻击
- 针对SUID程序的共享函数库攻击
- 利用内核空间代码漏洞进行特权提升
- 利用系统配置不当实施本地特权提升
linux系统上的消踪灭迹
清理系统上的日志记录,从而有效地抹掉自己的行动踪迹。
linux系统远程控制后门程序
linux系统上植入远程控制后门程序的类型有:特洛伊木马化的系统程序、命令行后门工具以及图形化后门工具。
视频学习
Kali漏洞利用之SET
Social Engineering Toolkit(SET)是一个开源、Python驱动的社会工程学渗透测试工具。提供了非常丰富的攻击向量库。是开源的社会工程学利用套件,通常结合metasploit来使用。
Kali嗅探欺骗与中间人攻击
1.输入命令为Kali设置开启端口转发
2.设置ssltrip
执行命令iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081,将所有的80请求转发到了8081上。
3.ettercap的准备
配置文件是/etc/ettercap/etter.conf,允许iptables转发。
ettercap -G 打开图形化界面。点击Sniff->Unified sniffing 。
4.使用Hosts -> Scan for hosts找到网络上的主机
选择窗口中要作为攻击目标的IP地址,然后点击窗口底部的 Add to Target 1,然后把网关安排到Target 2。选择 Mitm —> Arp poisoning —> Sniff remote connections。
目标主机上使用命令arp -a查看ARP地址表,可以看到ARP欺骗成功
选择 Start —> Start sniffing 开始监听,这时目标主机的所有流量都是通过攻击者的主机出去的。当处于同一个局域网的受害者访问网页进行登陆时,密码就可以被记录下来。
5.Dsniff套装介绍
Dsniff套装主要是arpspoof和dsniff,前者用来进行arp欺骗,后者用于嗅探。
6.会话劫持
7.图片截获
利用Driftnet这款工具我们可以看到被攻击者在访问网站的图片。
8.DNS欺骗
利用Dsniff套装中的dnsspoof或者ettercap的dnsspoof插件,我们可以完成对受害者的dns欺骗。
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通信中,选定某个文件,转存到本地当前工作目录。
Kali权限维持之后门
1.WEB后门
(1)Weevely
Weevely是一款使用python编写的webshell工具,集webshell生成和连接于一身,生成后门的代码是经过base64编码的,后门中所使用的函数都是常用的字符串处理函数,被作为检查规则的eval、system等函数都不会直接出现在代码中,从而可以致使后门文件绕过后门查找工具的检查,隐蔽性较好,可以算作是linux下的一款菜刀替代工具(限于php),某些模块在windows上无法使用。
(2)WeBaCoo(Web Backdoor Cookie)script-kit 是一个小巧的、隐蔽的php后门,它提供了一个可以连接远程web服务器并执行php代码的终端。WebaCoo使用HTTP响应头传送命令结果,shell命令经base64编码后隐藏在Cookie中,即其通信内容均通过cookie头传输。
2、系统后门
(1)Cymothoa系统后门
Cymothoa是一款可以将 shellcode 注入到现有进程的后门工具。它所注入的后门程序应当能够与被注入的进程共存,获取和原进程相同的权限。
(2)Dbd
Dbd 可以理解为加密版的 Netcat(或者叫 nc),仅仅只支持 TCP/IP 连接。Sbd与Dbd非常相似,也是 Netcat 的克隆,使用 AES-CBC-128 和 HMAC-SHA1 加密。
(3)U3-Pwn
与Metasploit Payload结合使用的工具,菜单可以单刀多针对移动光驱设备如光驱镜像,u盘等。
(4)Intersect
输入2列出可以使用的模块
输入1创建后门脚本,自由添加功能组件(输入需要的模块名即可加入该模块,这里我们以bshell模块为例)后,:creat生成一个shell。接下来设置Intersect脚本名、temp directory(临时文件地址)、enable logging、bind port、remote host)、remote port)、proxy port 、xor cipher key。这样会在/usr/share/intersect/Scripts/路径下生成shell.py
Kali权限维持之Tunnel
权限维持包含Tunnel工具集、Web后门、系统后门三个子类。Tunnel工具集包含了一系列用于创建通信隧道、代理的工具。
-
cryptcat
-
DNS2TCP
什么是DNS Tunnel?原理是什么?
-
Miredo
Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道链接,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。 -
Proxytunnel
Proxytunnel可通过标准的HTTPS代理来连接远程服务器,这是一个代理,实现了桥接的功能。特别用于通过SSH进行HTTP(S)传输。 -
ptunnel
借助icmp数据包建立隧道通信。 -
pwnat
内网下通过udp通信。 -
socat
可以在不同协议上进行转发数据。 -
sslh
是一个ssl/ssh端口复用工具,sslh可以在同一个端口上接受https,ssh和openvpn连接,这使得通过443端口连接ssh服务器或者openvpn服务同时在该端口上提供https服务成为可能,sslh可以作为一个研究端口复用的例子。
Kali逆向工程工具
逆向工程是根据已有的东西和结果,通过分析来推导出具体的实现办法。比如看到别人写的某个exe程序能够做出某种漂亮的动画效果,你通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程:不仅仅是反编译,而且还要推导出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
-
edb-debugger
图形化界面,基于qt4开发的二进制调试工具,主要是为了跟ollydbg工具看齐,通过插件体系可进行功能的扩充。 -
Ollydbg
-
Jad——一个Java反编译工具
-
Radare2
radare2是一款开放源代码的逆向工程平台,它可以反汇编、调试、分析和操作二进制文件。 -
Recstudio——反编译工具
-
Apktool
APKTool是google提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framewo-res框架。
-
Clang 、Clang++
Clang是一个C语言、C++、Objective C、Objective C++语言的轻量级编译器。 -
D2j-dex2jar
反编译dex文件到jar文件,进而可以用其他工具查看源代码。 -
Flasm
flasm主要功能是用于直接修改swf文件里的脚本actionscript。
- Javasnoop
Javasnoop是一个java应用程序安全测试工具,它允许你以拦截的方法,篡改数据和hack运行在你计算机上的java应用程序。通常在没有源代码的情况下,测试java客户端的安全性最好的结果是不可预知的,最坏的结果是不切实际的。