《Python黑帽子-黑客与渗透测试编程之道》先介绍了网络方面的基础知识和原始socket、著名的网络工具scapy;通过讲解python的网络库(urllib、requests、lxml和BeautifulSoup)的使用,扫描网络系统结构、破解目录和文件位置、破解HTML登录表单等场景;介绍Burp Suite并编写攻击插件,并基于GitHub服务的C&C通信的木马编写,讨论在Windows下的木马常用功能,以及Windows的系统提权;还介绍了数据渗漏和攻击取证相关的渗透。
codes---------------------------------------本书代码 +---ch01------------------------------------第1章 设置你的Python环境 | +---hello.py----------------------------P7 示例代码 +---ch02------------------------------------第2章 基础的网络编程工具 | +---tcp_client.py-----------------------P10 TCP客户端 | +---udp_client.py-----------------------P11 UDP客户端 | +---tcp_server | | +---tcp_server.py-------------------P12 TCP服务端 | | +---tcp_client_send.py--------------P13 TCP客户端给服务端发送测试数据包 | +---netcat.py---------------------------P14 取代netcat | +---tcp_proxy.py------------------------P22 TCP代理 | +---ssh_cmd.py--------------------------P30 基于Paramiko的SSH通信 | +---ssh_rcmd.py-------------------------P33 让一台SSH服务器给SSH客户端发送命令 | +---ssh_server.py-----------------------P34 SSH服务器 | +---rforward.py-------------------------P38 SSH隧道 +---ch03------------------------------------第3章 编写流量嗅探器 | +---sniffer.py--------------------------P45 简单的原始socket嗅探器 | +---sniffer_ip_header_decode.py---------P53 IP解码器 | +---sniffer_with_icmp.py----------------P57 ICMP解码器 | +---scanner.py--------------------------P58 在整个子网进行主机扫描 +---ch04------------------------------------第4章 Scapy:网络的掌控者 | +---mail_sniffer.py---------------------P64 嗅探邮箱协议 | +---bpf_demo.py-------------------------P67 BPF示例 | +---arper.py----------------------------P70 ARP投毒 | +---recapper.py-------------------------P76 pcap文件处理 | +---detector.py-------------------------P81 人脸检测 +---ch05------------------------------------第5章 Web攻击 | +---urllib_demo.py----------------------P88 urllib库的使用 | +---requests_demo.py--------------------P88 requests库的使用 | +---lxml_demo.py------------------------P89 lxml库的使用 | +---beautifulsoup_demo.py---------------P90 BeautifulSoup库的使用 | +---mapper.py---------------------------P92 拓印WordPress系统结构 | +---bruter.py---------------------------P99 暴力破解目录和文件位置 | +---wordpress_killer.py-----------------P104 暴力破解HTML登录表单 +---ch06------------------------------------第6章 编写Burp插件 | +---bhp_fuzzer.py-----------------------P115 Burp模糊测试插件 | +---bhp_bing.py-------------------------P125 在Burp中调用Bing搜索 | +---bhp_wordlist.py---------------------P132 利用网页内容生成暴破字典 +---ch07------------------------------------第7章 基于GitHub服务的C&C通信 | +---bhptrojan---------------------------P140 木马仓库 | +---git_trojan.py-----------------------P143 构建基于GitHub通信的木马 +---ch08------------------------------------第8章 Windows下的木马常用功能 | +---keylogger.py------------------------P151 键盘记录 | +---screenshotter.py--------------------P155 截取屏幕 | +---shell_exec.py-----------------------P157 以Python风格执行shellcode | +---sandbox_detect.py-------------------P160 沙箱检测 +---ch09------------------------------------第9章 数据渗透 | +---cryptor.py--------------------------P166 文件内容的加密和解密 | +---email_exfil.py----------------------P169 基于电子邮件的数据渗透 | +---transmit_exfil.py-------------------P171 基于文件传输的数据渗透 | +---paste_exfil.py----------------------P172 基于Web服务器的数据渗透 | +---exfil.py----------------------------P176 数据渗漏 +---ch10------------------------------------第10章 Windows系统提权 | +---bhservice.py------------------------P182 模拟受害服务 | +---process_monitor.py------------------P185 利用WMI监视进程 | +---process_monitor_token.py------------P189 Windows系统的令牌权限 | +---file_monitor.py---------------------P191 文件监控 | +---file_monitor_code_injection.py------P194 代码注入 +---ch11------------------------------------第11章 攻击取证 | +---aslrcheck.py------------------------P210 查找ASLR(地址空间布局随机)保护进程 docs----------------------------------------配套资料 requirements.txt----------------------------运行环境依赖包
Mini-Conda Python 3.8 Windows环境
pip install -r requirements.txt
pip freeze > requirements.txt
本书属于渗透测试入门实战级别,每一章节都配备了大量的代码,并采用Kali虚拟机进行渗透测试实战。
- 第1章,主要从搭建Python编程环境开始,搭建Kali Linux虚拟机环境,并搭建VS Code IDE集成开发环境,运行hello.py程序。
- 第2章,主要介绍了
socket
库的网络编程基本知识,包括基于socket
的TCP客户端/服务端、UDP客户端的实现,自编程实现netcat
,通过实现TCP代理连接FTP服务器,基于Paramiko
实现SSH通信,并简要介绍了SSH隧道的基本知识。 - 第3章,主要介绍了流量嗅探器的实现,使用
socket
实现简单的嗅探器,并逐步实现IP、ICMP层的解码。 - 第4章,主要基于
Scapy
库实现邮箱身份凭证窃取(主要基于BPF语法对常用邮件协议端口进行监听)、ARP投毒、pcap文件处理(对数据包中的图片使用OpenCV
库对人脸进行检测)。 - 第5章,主要介绍了常见的Web攻击,包括基本工具库使用(
urllib
、requests
、lxml
、beautifulsoup4
)、基于requests
实现拓印WordPress系统结构(检测资源的连接情况)、基于requests
和字典文件实现目录和文件位置的暴力破解、基于lxml
和request
实行HTML登录表单(通过3个阶段:初始化阶段、循环阶段、请求阶段)。 - 第6章,主要基于
Jython
编写Burp Suite插件(只能使用Python2版本,不支持Python3.x),包括Burp模糊测试、调用Bing搜索、利用网页内容生成暴破字典(读取HTTP响应数据,从文本数据中剥离HTML标签,并利用正则表达式抽取内容生成密码字典)。 - 第7章,主要基于在GitHub上构建木马模块仓库,并利用
github3
库连接GitHub,并从其自动下载python代码,import到受害机器的Python Lib库中,执行木马脚本。 - 第8章,主要基于
pyWinHook
和pywin32
库对Windows进行木马攻击,实现键盘记录(通过抓取活跃窗口和相关的进程ID,并使用HookKeyboard
方法进行键盘监控)、屏幕截取(基于win32gui获取屏幕大小进行截图)、执行shellcode(将shellcode写入内存缓冲区,并构建函数指针,执行函数)、沙箱检测(监控键盘输入和鼠标单击事件,根据设定的阈值判断是否处于沙箱中) - 第9章,主要实现渗漏加密数据的攻击,包括加密解码(基于
zlib
库实现RSA的文件内容加密解码)、电子邮件渗漏、文件传输渗漏(基于ftplib
库连接FTP服务器)、Web服务器渗漏,最后使用字典调度的方式将前面的几个工具合在一起,对pastebin.com网站进行渗漏 - 第10章,主要介绍Windows系统提权的方法,首先编写并在Windows中注册受害服务(主要是模拟文件的拷贝和删除操作),利用WMI监控进程(将进程的信息打印输出),并基于Windows令牌权限获取进程的权限,最后对文件目录进行监控,对受害服务的操作进行监控(还可以在其中进行代码注入,从而获得SYSTEM权限)
- 第11章,主要利用
Volatility
工具,通过对示例Window系统快照的分析:
- 使用
windows.info
插件分析设备基本情况 - 使用
registry.printkey
插件读取注册表键的所有键值 - 使用
windows.cmdline
插件列出每个进程的命令行参数分析用户当时的行为与意图 - 使用
windows.pslist
插件列出在运行的所有进程的详细信息 - 使用
windows.pstree
插件获取进程的继承关系 - 使用
windows.hashdump
插件查看用户密码 - 使用
windows.malfind
插件查找同时具有读、写和执行三个权限的内存区域,从而分析病毒的进程 - 使用
windows.netscan
插件列出持有的网络连接,分析可疑的连接
最后实现一个Volatility插件,用于找出ASLR(地址空间布局随机化)保护的进程。