教材内容
linux操作系统基本框架概述
系统特点:
- 兼容UNIX :API 兼容,管理命令和各种工具:
- 源码开放
- 支持各种硬件平台,支持多CPU
- Linux 平台上存在大量的应用软件,以及应用开发工具
- 多种不同发行版: RedHat(RHEL,Fedora, CentOS, …),Ubuntu,Debian, …
优势:
- 开放源代码与免费
- 跨平台的硬件支持
- 丰富的软件支持
- 多用户多任务
- 可靠的安全性
- 良好的稳定性
- 完善的网络功能
linux安全机制
身份认证:
- linux用户(root根用户、普通用户、系统用户)
- linux用户组(具有相同特征的用户账号集合)
- linux本地登录用户认证机制(控制台)
- linux远程登录用户认证机制(ssh服务)
- Linux的统一身份认证中间件——PAM(可插入身份认证模块)
授权与访问控制:
- 文件所有者(chown命令)
- 文件的访问权限(读、写、执行,chmod命令)
- 文件的特殊执行权限
linux内存管理
- 在i386 机器上,每个进程有独立的4G 虚存空间
- 32位线性地址—— 利用硬件的分页机制
- 内核的代码段和数据段被映射到3G 以上的空间中
- 用户态下的代码实际可申请的虚存空间为0-3GB
- 每个进程用两套段描述符来访问内存,分别用来访问内核态和用
- 户态下的内存空间
- 在用户态下,代码不可能访问3G 以上的地址空间,如果要访问内
- 核空间,必须通过系统调用或者中断
- Linux 对虚存的管理使用vma(virtual memory area) 机制
- 页交换机制:缺页中断、页面换入
linux网络服务远程渗透攻击
- Linux网络服务的远程渗透攻击
- Linux内核中的网络协议栈实现
- LAMP Web网站构建解决方案中的网络服务
- FTP、Samba等文件共享服务
- 电子邮件收发服务
- 其他网络服务
linux安全防范措施
- 禁用所有不必要的网络服务
- 尽量选择更安全的网络协议与服务软件,并使用最佳安全实践进行部署
- 及时更新网络服务版本
- 使用xinetd、防火墙为linux网络服务添加网络访问控制机制
- 建立入侵检测与应急响应计划流程
视频学习
set
SET(Social Engineering Toolkit)是一个开源、python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库。是开源的社会工程学利用套件,通常结合metasploit来使用。
set钓鱼攻击
此攻击向量主要目的是为了发送存在恶意软件的钓鱼邮件。相应的payload可以选择不同的漏洞。
网站攻击框架
可以开放一个WEBServer服务,如果对方访问此页面,若系统存在漏洞触发条件,则会被植入后门。如Java Applet Attack方法就需要目标有Java运行环境。
介质感染攻击
借助Autorun.inf执行exploit得到一个返回的shell,结合metasploit创建后门。
创建payload和监听器
创建一个返回的Payload并开启监听,与metasploit给出的payload类似。
群发邮件攻击
可以把垃圾邮件或带有病毒的邮件发送到邮件列表。支持导入列表并向列表中的每个人发送邮件。
无限接入点攻击
无线接入点攻击会创建一个虚拟无线AP,通过接入点ap可以抓取所有连接的设备的流量。
二维码攻击
填入一个危险的URL,使得被攻击者扫描二维码自动访问页面中招。
powershell攻击
针对Vista以上的Powershell的攻击模块。
嗅探欺骗和中间人攻击实验
为kali设置开启端口转发:
echo 1 /proc/sys/net/ipv4/ip_forward
设置ssltrip
为了劫持ssl数据,需要使https数据变为http:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081
让sslstrip在8081端口监听:
ssltrip -l 8081
ettercap
ettercap是一套用于中间人攻击的工具。和dsniff套件齐名。支持插件和过滤脚本,直接将账号、密码显示出来,不用人工提取数据。如果是第一次中间人攻击操作,那么要对kali下的etteracp做点配置。
使用步骤如下:
- 配置文件是/etc/ettercap/etter.conf,首先要将ec_uid、ec_gid都变为0。
- 然后找到linux分类下的if you use iptables这一行,将下面两行的注释(“#”号)去掉,打开转发。
- 打开图形化界面 ettercap -G
- 选择嗅探网卡 默认eth0
- 打开ettercap,选择hosts选项:先scan for hosts,等扫描完了选host list。
- 将网关add to target 1/想攻击的目标add to target 2,mitm选项卡arppoisoning,然后start sniffing。
- 查看被监听主机之间的所有连接信息,依次点击View--Connections。
Dsniff套装介绍
Dsniff套装主要是arpspoof和dsniff,前者用来进行arp欺骗,后者用于嗅探。
-c:打开半双工TCP流,允许在使用arpspoof时进行正确的嗅探操作
-d:启动调试模式
-f:以/etc/service格式从文件中加载触发器(也就是口令嗅探的服务类型)
-I:使用特定的网络接口
-m:使用dsniff.magic文件通过在magic文件中定义的特征尝试自动判断协议
-n:不执行主机查找
-r:从前面保存的会话中读取被嗅探的数据
-s:最多对报文的前个字节进行嗅探,如果用户名和口令信息包含在随后的默认1024字节界限中
-t:使用格式port/proto=servise;来加载一个以逗号界定的触发器集;
权限维持
(1)Weevely
Weevely是一款使用python编写的webshell工具,集webshell生成和连接于一身,生成后门的代码是经过base64编码的,后门中所使用的函数都是常用的字符串处理函数,被作为检查规则的eval、system等函数都不会直接出现在代码中,从而可以致使后门文件绕过后门查找工具的检查,隐蔽性较好,可以算作是linux下的一款菜刀替代工具(限于php),某些模块在windows上无法使用。
通过命令weevely generate test ~/1.php,生成一个名字为1.php,密码为test的后门。
将1.php拷贝到靶机192.168.199.139 /var/www/路径下,即将后门上传到web。
输入命令weevely http://192.168.199.139/1.php test,用weevely连接后门(连接后为设置的密码),即可获得一个webshell,然后就可以随意使用终端了。
(2)WeBaCoo
WeBaCoo(Web Backdoor Cookie)script-kit 是一个小巧的、隐蔽的php后门,它提供了一个可以连接远程web服务器并执行php代码的终端。WebaCoo使用HTTP响应头传送命令结果,shell命令经base64编码后隐藏在Cookie中,即其通信内容均通过cookie头传输。
将2.php文件拷贝到靶机192.168.199.139的 Web 根目录(/var/www/)下,输入命令
webacoo -t -u http://192.168.199.139/2.php
kali逆向工具
1.Edb-Debugger
EDB(Evan's Debugger)是一个基于Qt4开发的二进制调试工具,主要是为了跟OllyDbg工具看齐,通过插件体系可以进行功能的扩充,当前只支持Linux。
2.Ollydbgs是经典的Ring3级调试器,是一个动态调试工具,将IDA与SoftICE结合起来的思想。在Kali下是Wine方式运行的Ollydbg。
3.jad是一个Java反编译工具
4.Radare2 是一款开放源代码的逆向工程平台,它可以反汇编、调试、分析和操作二进制文件。
5.APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。
6.Clang、Clang++
Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器。Clang++是clang的另一个升级版本,使用方法其实都是一样的。clang类似于gcc编译器,clang++类似于gc++编译器。
7.D2j-des2jar反汇编dex文件到jar文件。进而可以使用其他工具查看源代码。
8.Flasm
主要功能是用于直接修改swf文件里的脚本actionscript。
swf转fla文件的软件不能确保100%还原,如果只是修改as脚本代码,flasm是最佳的选择,因为他只修改脚本,资源数据不做修改。
9.Javasnoop
教材实践
课上活动已完成
Black Hat Python3 Chapter7、8
这周第八章第一个代码堪称经典,然而再python3下尝试过各种姿势后不得不放弃,原因如下:
1.pyhook安装繁琐,需要的swig工具试过各种版本后才装好,安装可参照:https://blog.csdn.net/u013560932/article/details/78732250/。也可以下载包到本地进行本地安装。
2.pyhook即便装好后,python3运行依然会有问题,具体体现在进程名称中出现中文时,详见Python的KeyboardSwitch() missing 8解决方法
3.安装2中链接的包时,出现了各种新的问题,尤其是visual c++ 14.0微软官网已经不提供下载了。
部分运行结果:
因此本周重点放在了第七章的代码。我做的工作主要有两点:
1.转成python3会在某个文件调用中出现charmap格式无法解码的问题,有人在stack overflow提问过这个问题,但没有有效的解答,我在该问题下做出了回答,详见 Traceback Error: Lookup Error: unknown encoding charmap,简单来说就是将出错文件中的代码修改一下,不会影响我们自己代码的运行。
2.源代码登录时写的是明文的用户名和密码,这个很不利于我们的账户安全,我在自己的代码中使用了token连接github,更加安全,更方便管理。
代码运行结果如下:
代码链接
第七章代码新建了单独的仓库:https://github.com/ChosenOne95/chapter7/tree/master
第八章:https://github.com/ChosenOne95/black-hat-python3/tree/master/Chapter%208