Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/relph1119/black-hat-python-2nd
《Python黑帽子-黑客与渗透测试编程之道》(Black Hat Python, 2nd Edition)阅读笔记
https://github.com/relph1119/black-hat-python-2nd
blackhat-python python3
Last synced: about 8 hours ago
JSON representation
《Python黑帽子-黑客与渗透测试编程之道》(Black Hat Python, 2nd Edition)阅读笔记
- Host: GitHub
- URL: https://github.com/relph1119/black-hat-python-2nd
- Owner: Relph1119
- Created: 2022-05-23T01:33:29.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-05-27T08:41:57.000Z (over 2 years ago)
- Last Synced: 2023-03-04T12:40:21.546Z (over 1 year ago)
- Topics: blackhat-python, python3
- Language: Python
- Homepage:
- Size: 1.67 MB
- Stars: 11
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 《Python黑帽子-黑客与渗透测试编程之道》阅读笔记
《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----------------------------运行环境依赖包## 运行环境
### Python版本
Mini-Conda Python 3.8 Windows环境### 批量导入环境依赖包
```shell
pip install -r requirements.txt
```### 批量导出环境中所有依赖包
```shell
pip freeze > requirements.txt
```## 阅读总结
本书属于渗透测试入门实战级别,每一章节都配备了大量的代码,并采用Kali虚拟机进行渗透测试实战。
1. 第1章,主要从搭建Python编程环境开始,搭建Kali Linux虚拟机环境,并搭建VS Code IDE集成开发环境,运行hello.py程序。
2. 第2章,主要介绍了`socket`库的网络编程基本知识,包括基于`socket`的TCP客户端/服务端、UDP客户端的实现,自编程实现`netcat`,通过实现TCP代理连接FTP服务器,基于`Paramiko`实现SSH通信,并简要介绍了SSH隧道的基本知识。
3. 第3章,主要介绍了流量嗅探器的实现,使用`socket`实现简单的嗅探器,并逐步实现IP、ICMP层的解码。
4. 第4章,主要基于`Scapy`库实现邮箱身份凭证窃取(主要基于BPF语法对常用邮件协议端口进行监听)、ARP投毒、pcap文件处理(对数据包中的图片使用`OpenCV`库对人脸进行检测)。
5. 第5章,主要介绍了常见的Web攻击,包括基本工具库使用(`urllib`、`requests`、`lxml`、`beautifulsoup4`)、基于`requests`实现拓印WordPress系统结构(检测资源的连接情况)、基于`requests`和字典文件实现目录和文件位置的暴力破解、基于`lxml`和`request`实行HTML登录表单(通过3个阶段:初始化阶段、循环阶段、请求阶段)。
6. 第6章,主要基于`Jython`编写Burp Suite插件(只能使用Python2版本,不支持Python3.x),包括Burp模糊测试、调用Bing搜索、利用网页内容生成暴破字典(读取HTTP响应数据,从文本数据中剥离HTML标签,并利用正则表达式抽取内容生成密码字典)。
7. 第7章,主要基于在GitHub上构建木马模块仓库,并利用`github3`库连接GitHub,并从其自动下载python代码,import到受害机器的Python Lib库中,执行木马脚本。
8. 第8章,主要基于`pyWinHook`和`pywin32`库对Windows进行木马攻击,实现键盘记录(通过抓取活跃窗口和相关的进程ID,并使用`HookKeyboard`方法进行键盘监控)、屏幕截取(基于win32gui获取屏幕大小进行截图)、执行shellcode(将shellcode写入内存缓冲区,并构建函数指针,执行函数)、沙箱检测(监控键盘输入和鼠标单击事件,根据设定的阈值判断是否处于沙箱中)
9. 第9章,主要实现渗漏加密数据的攻击,包括加密解码(基于`zlib`库实现RSA的文件内容加密解码)、电子邮件渗漏、文件传输渗漏(基于`ftplib`库连接FTP服务器)、Web服务器渗漏,最后使用字典调度的方式将前面的几个工具合在一起,对pastebin.com网站进行渗漏
10. 第10章,主要介绍Windows系统提权的方法,首先编写并在Windows中注册受害服务(主要是模拟文件的拷贝和删除操作),利用WMI监控进程(将进程的信息打印输出),并基于Windows令牌权限获取进程的权限,最后对文件目录进行监控,对受害服务的操作进行监控(还可以在其中进行代码注入,从而获得SYSTEM权限)
11. 第11章,主要利用`Volatility`工具,通过对示例Window系统快照的分析:
- 使用`windows.info`插件分析设备基本情况
- 使用`registry.printkey`插件读取注册表键的所有键值
- 使用`windows.cmdline`插件列出每个进程的命令行参数分析用户当时的行为与意图
- 使用`windows.pslist`插件列出在运行的所有进程的详细信息
- 使用`windows.pstree`插件获取进程的继承关系
- 使用`windows.hashdump`插件查看用户密码
- 使用`windows.malfind`插件查找同时具有读、写和执行三个权限的内存区域,从而分析病毒的进程
- 使用`windows.netscan`插件列出持有的网络连接,分析可疑的连接最后实现一个Volatility插件,用于找出ASLR(地址空间布局随机化)保护的进程。