{"id":20673063,"url":"https://github.com/relph1119/black-hat-python-2nd","last_synced_at":"2025-04-19T19:11:24.141Z","repository":{"id":48188263,"uuid":"495221895","full_name":"Relph1119/black-hat-python-2nd","owner":"Relph1119","description":"《Python黑帽子-黑客与渗透测试编程之道》(Black Hat Python, 2nd Edition)阅读笔记","archived":false,"fork":false,"pushed_at":"2022-05-27T08:41:57.000Z","size":1753,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-04T12:40:21.546Z","etag":null,"topics":["blackhat-python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Relph1119.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-23T01:33:29.000Z","updated_at":"2023-02-12T13:07:45.000Z","dependencies_parsed_at":"2022-09-13T07:50:35.591Z","dependency_job_id":null,"html_url":"https://github.com/Relph1119/black-hat-python-2nd","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relph1119%2Fblack-hat-python-2nd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relph1119%2Fblack-hat-python-2nd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relph1119%2Fblack-hat-python-2nd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Relph1119%2Fblack-hat-python-2nd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Relph1119","download_url":"https://codeload.github.com/Relph1119/black-hat-python-2nd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224970142,"owners_count":17400294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blackhat-python","python3"],"created_at":"2024-11-16T20:39:57.773Z","updated_at":"2024-11-16T20:39:58.268Z","avatar_url":"https://github.com/Relph1119.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 《Python黑帽子-黑客与渗透测试编程之道》阅读笔记\n\n\u0026emsp;\u0026emsp;《Python黑帽子-黑客与渗透测试编程之道》先介绍了网络方面的基础知识和原始socket、著名的网络工具scapy；通过讲解python的网络库（urllib、requests、lxml和BeautifulSoup）的使用，扫描网络系统结构、破解目录和文件位置、破解HTML登录表单等场景；介绍Burp Suite并编写攻击插件，并基于GitHub服务的C\u0026C通信的木马编写，讨论在Windows下的木马常用功能，以及Windows的系统提权；还介绍了数据渗漏和攻击取证相关的渗透。\n\n## 项目结构\n\u003cpre\u003e\ncodes---------------------------------------本书代码\n+---ch01------------------------------------第1章 设置你的Python环境\n|   +---hello.py----------------------------P7 示例代码\n+---ch02------------------------------------第2章 基础的网络编程工具\n|   +---tcp_client.py-----------------------P10 TCP客户端\n|   +---udp_client.py-----------------------P11 UDP客户端\n|   +---tcp_server\n|   |   +---tcp_server.py-------------------P12 TCP服务端\n|   |   +---tcp_client_send.py--------------P13 TCP客户端给服务端发送测试数据包\n|   +---netcat.py---------------------------P14 取代netcat\n|   +---tcp_proxy.py------------------------P22 TCP代理\n|   +---ssh_cmd.py--------------------------P30 基于Paramiko的SSH通信\n|   +---ssh_rcmd.py-------------------------P33 让一台SSH服务器给SSH客户端发送命令\n|   +---ssh_server.py-----------------------P34 SSH服务器\n|   +---rforward.py-------------------------P38 SSH隧道\n+---ch03------------------------------------第3章 编写流量嗅探器\n|   +---sniffer.py--------------------------P45 简单的原始socket嗅探器\n|   +---sniffer_ip_header_decode.py---------P53 IP解码器\n|   +---sniffer_with_icmp.py----------------P57 ICMP解码器\n|   +---scanner.py--------------------------P58 在整个子网进行主机扫描\n+---ch04------------------------------------第4章 Scapy：网络的掌控者\n|   +---mail_sniffer.py---------------------P64 嗅探邮箱协议\n|   +---bpf_demo.py-------------------------P67 BPF示例\n|   +---arper.py----------------------------P70 ARP投毒\n|   +---recapper.py-------------------------P76 pcap文件处理\n|   +---detector.py-------------------------P81 人脸检测\n+---ch05------------------------------------第5章 Web攻击\n|   +---urllib_demo.py----------------------P88 urllib库的使用\n|   +---requests_demo.py--------------------P88 requests库的使用\n|   +---lxml_demo.py------------------------P89 lxml库的使用\n|   +---beautifulsoup_demo.py---------------P90 BeautifulSoup库的使用\n|   +---mapper.py---------------------------P92 拓印WordPress系统结构\n|   +---bruter.py---------------------------P99 暴力破解目录和文件位置\n|   +---wordpress_killer.py-----------------P104 暴力破解HTML登录表单\n+---ch06------------------------------------第6章 编写Burp插件\n|   +---bhp_fuzzer.py-----------------------P115 Burp模糊测试插件\n|   +---bhp_bing.py-------------------------P125 在Burp中调用Bing搜索\n|   +---bhp_wordlist.py---------------------P132 利用网页内容生成暴破字典\n+---ch07------------------------------------第7章 基于GitHub服务的C\u0026C通信\n|   +---bhptrojan---------------------------P140 木马仓库\n|   +---git_trojan.py-----------------------P143 构建基于GitHub通信的木马\n+---ch08------------------------------------第8章 Windows下的木马常用功能\n|   +---keylogger.py------------------------P151 键盘记录\n|   +---screenshotter.py--------------------P155 截取屏幕\n|   +---shell_exec.py-----------------------P157 以Python风格执行shellcode\n|   +---sandbox_detect.py-------------------P160 沙箱检测\n+---ch09------------------------------------第9章 数据渗透\n|   +---cryptor.py--------------------------P166 文件内容的加密和解密\n|   +---email_exfil.py----------------------P169 基于电子邮件的数据渗透\n|   +---transmit_exfil.py-------------------P171 基于文件传输的数据渗透\n|   +---paste_exfil.py----------------------P172 基于Web服务器的数据渗透\n|   +---exfil.py----------------------------P176 数据渗漏\n+---ch10------------------------------------第10章 Windows系统提权\n|   +---bhservice.py------------------------P182 模拟受害服务\n|   +---process_monitor.py------------------P185 利用WMI监视进程\n|   +---process_monitor_token.py------------P189 Windows系统的令牌权限\n|   +---file_monitor.py---------------------P191 文件监控\n|   +---file_monitor_code_injection.py------P194 代码注入\n+---ch11------------------------------------第11章 攻击取证\n|   +---aslrcheck.py------------------------P210 查找ASLR（地址空间布局随机）保护进程\ndocs----------------------------------------配套资料\nrequirements.txt----------------------------运行环境依赖包\n\u003c/pre\u003e\n\n\n## 运行环境\n### Python版本\nMini-Conda Python 3.8 Windows环境\n\n### 批量导入环境依赖包\n```shell\npip install -r requirements.txt\n```\n\n### 批量导出环境中所有依赖包\n```shell\npip freeze \u003e requirements.txt\n```\n\n## 阅读总结\n\u0026emsp;\u0026emsp;本书属于渗透测试入门实战级别，每一章节都配备了大量的代码，并采用Kali虚拟机进行渗透测试实战。\n1. 第1章，主要从搭建Python编程环境开始，搭建Kali Linux虚拟机环境，并搭建VS Code IDE集成开发环境，运行hello.py程序。\n2. 第2章，主要介绍了`socket`库的网络编程基本知识，包括基于`socket`的TCP客户端/服务端、UDP客户端的实现，自编程实现`netcat`，通过实现TCP代理连接FTP服务器，基于`Paramiko`实现SSH通信，并简要介绍了SSH隧道的基本知识。\n3. 第3章，主要介绍了流量嗅探器的实现，使用`socket`实现简单的嗅探器，并逐步实现IP、ICMP层的解码。\n4. 第4章，主要基于`Scapy`库实现邮箱身份凭证窃取（主要基于BPF语法对常用邮件协议端口进行监听）、ARP投毒、pcap文件处理（对数据包中的图片使用`OpenCV`库对人脸进行检测）。\n5. 第5章，主要介绍了常见的Web攻击，包括基本工具库使用（`urllib`、`requests`、`lxml`、`beautifulsoup4`）、基于`requests`实现拓印WordPress系统结构（检测资源的连接情况）、基于`requests`和字典文件实现目录和文件位置的暴力破解、基于`lxml`和`request`实行HTML登录表单（通过3个阶段：初始化阶段、循环阶段、请求阶段）。\n6. 第6章，主要基于`Jython`编写Burp Suite插件（只能使用Python2版本，不支持Python3.x），包括Burp模糊测试、调用Bing搜索、利用网页内容生成暴破字典（读取HTTP响应数据，从文本数据中剥离HTML标签，并利用正则表达式抽取内容生成密码字典）。\n7. 第7章，主要基于在GitHub上构建木马模块仓库，并利用`github3`库连接GitHub，并从其自动下载python代码，import到受害机器的Python Lib库中，执行木马脚本。\n8. 第8章，主要基于`pyWinHook`和`pywin32`库对Windows进行木马攻击，实现键盘记录（通过抓取活跃窗口和相关的进程ID，并使用`HookKeyboard`方法进行键盘监控）、屏幕截取（基于win32gui获取屏幕大小进行截图）、执行shellcode（将shellcode写入内存缓冲区，并构建函数指针，执行函数）、沙箱检测（监控键盘输入和鼠标单击事件，根据设定的阈值判断是否处于沙箱中）\n9. 第9章，主要实现渗漏加密数据的攻击，包括加密解码（基于`zlib`库实现RSA的文件内容加密解码）、电子邮件渗漏、文件传输渗漏（基于`ftplib`库连接FTP服务器）、Web服务器渗漏，最后使用字典调度的方式将前面的几个工具合在一起，对pastebin.com网站进行渗漏\n10. 第10章，主要介绍Windows系统提权的方法，首先编写并在Windows中注册受害服务（主要是模拟文件的拷贝和删除操作），利用WMI监控进程（将进程的信息打印输出），并基于Windows令牌权限获取进程的权限，最后对文件目录进行监控，对受害服务的操作进行监控（还可以在其中进行代码注入，从而获得SYSTEM权限）\n11. 第11章，主要利用`Volatility`工具，通过对示例Window系统快照的分析：\n- 使用`windows.info`插件分析设备基本情况\n- 使用`registry.printkey`插件读取注册表键的所有键值\n- 使用`windows.cmdline`插件列出每个进程的命令行参数分析用户当时的行为与意图\n- 使用`windows.pslist`插件列出在运行的所有进程的详细信息\n- 使用`windows.pstree`插件获取进程的继承关系\n- 使用`windows.hashdump`插件查看用户密码\n- 使用`windows.malfind`插件查找同时具有读、写和执行三个权限的内存区域，从而分析病毒的进程\n- 使用`windows.netscan`插件列出持有的网络连接，分析可疑的连接\n\n最后实现一个Volatility插件，用于找出ASLR（地址空间布局随机化）保护的进程。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelph1119%2Fblack-hat-python-2nd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frelph1119%2Fblack-hat-python-2nd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelph1119%2Fblack-hat-python-2nd/lists"}