当前位置: 首页 > news >正文

一行简单的管道命令快速创建、原型化复杂的功能

新书速递

shell是用户和操作系统之间的桥梁,用户通过命令行或shell脚本在类Unix操作系统中执行各种操作就依赖于shell。作为最常用的shell之一,bash自1989年正式发布以来,广泛应用于多种操作系统,众多Linux发行版和Solaris等系统将其作为默认使用的shell,Windows和macOS等其他系统也支持bash。

 

bash最初是由Brian Fox为GNU编写的开源shell,用于替代 Bourne shell。BASH是Bourne-Again SHell的缩写,这是一个双关语,其发音与born-again相同,而Bourne则是在向Unix系统Bourne shell的作者 Stephen Bourne致敬。

 

市面上有很多介绍Linux命令行和shell脚本编程的书籍,其中对从每一个命令参数到系统内核都有详细的说明。也不乏众多优秀的网络安全读物,既有对各类常用黑客工具的全面介绍,也有深入到底层对安全漏洞的分析。而本书则是为数不多的结合网络安全运维介绍bash的技术书籍之一,书中从攻击、防御和分析三个场景介绍了bash的用法,不仅阐述了技术原理,也提供了具体的代码实例,每章末还提供了练习题以加深读者的理解。

 

目录

前言1

第一部分 基础

第1章 命令行入门9

1.1 命令行定义9

1.2 为什么选择bash9

1.3 命令行示例10

1.4 在Windows上运行Linux和bash10

1.4.1 Git Bash10

1.4.2 Cygwin11

1.4.3 Linux版Windows子系统11

1.4.4 Windows命令提示符及PowerShell11

1.5 命令行基础12

1.5.1 命令、参数、内建指令和关键字12

1.5.2 标准输入/输出/错误13

1.5.3 重定向和管道14

1.5.4 在后台运行命令15

1.5.5 从命令行到脚本16

1.6 总结16

1.7 练习题17

第2章 bash入门18

2.1 输出18

2.2 变量18

2.3 输入20

2.4 条件语句20

2.5 循环24

2.6 函数25

2.6.1 函数参数26

2.6.2 返回值26

2.7 bash中的模式匹配27

2.8 编写第一个脚本—检测操作系统类型29

2.9 总结29

2.10 练习题30

第3章 正则表达式入门31

3.1 使用的命令31

3.1.1 grep31

3.1.2 grep和egrep32

3.2 正则表达式元字符33

3.2.1 “.”元字符33

3.2.2 “?”元字符33

3.2.3 “*” 元字符33

3.2.4 “+”元字符34

3.2.5 分组34

3.2.6 方括号和字符类34

3.2.7 回调引用36

3.2.8 量词37

3.2.9 锚和单词边界38

3.3 总结38

3.4 练习题38

第4章 防御和攻击原则39

4.1 网络安全39

4.1.1 保密性39

4.1.2 完整性40

4.1.3 可用性40

4.1.4 不可否认性40

4.1.5 身份验证40

4.2 攻击生命周期40

4.2.1 前期侦察41

4.2.2 初步入侵41

4.2.3 建立立足点42

4.2.4 升级特权42

4.2.5 内部侦察42

4.2.6 横向运动42

4.2.7 维护驻留43

4.2.8 完成任务43

4.3 总结43

第二部分 使用bash进行安全运维防御

第5章 数据收集47

5.1 使用的命令48

5.1.1 cut48

5.1.2 file49

5.1.3 head50

5.1.4 reg50

5.1.5 wevtutil50

5.2 收集系统信息51

5.2.1 使用SSH远程执行命令52

5.2.2 收集Linux日志文件52

5.2.3 收集Windows日志文件53

5.2.4 收集系统信息55

5.2.5 收集Windows注册表59

5.3 搜索文件系统59

5.3.1 按文件名搜索60

5.3.2 搜索隐藏文件60

5.3.3 按文件大小搜索61

5.3.4 按时间搜索62

5.3.5 搜索内容63

5.3.6 按文件类型搜索63

5.3.7 按消息摘要值搜索67

5.4 数据传输69

5.5 总结69

5.6 练习题70

第6章 数据处理71

6.1 使用的命令71

6.1.1 awk71

6.1.2 join72

6.1.3 sed73

6.1.4 tail74

6.1.5 tr74

6.2 处理带分隔符的文件75

6.2.1 遍历带分隔符的数据76

6.2.2 按字符位置处理77

6.3 处理XML78

6.4 处理JSON79

6.5 聚合数据81

6.6 总结82

6.7 练习题83

第7章 数据分析84

7.1 使用的命令84

7.1.1 sort84

7.1.2 uniq85

7.2 熟悉Web服务器访问日志86

7.3 数据排序和整理87

7.4 统计数据出现频次87

7.5 统计数据总数91

7.6 用直方图显示数据93

7.7 发现数据的唯一性98

7.8 识别异常数据99

7.9 总结102

7.10 练习题102

第8章 实时日志监控103

8.1 监控文本日志103

8.2 监控Windows日志106

8.3 生成实时直方图106

8.4 总结111

8.5 练习题111

第9章 工具:网络监控112

9.1 使用的命令112

9.1.1 crontab112

9.1.2 schtasks113

9.2 第1步:创建端口扫描程序113

9.3 第2步:与之前的输出进行比较115

9.4 第3步:自动化和通知118

9.4.1 在Linux中安排任务119

9.4.2 在Windows中安排任务120

9.5 总结120

9.6 练习题121

第10章 工具:文件系统监控122

10.1 使用的命令122

10.2 步骤1:对文件系统进行基线化123

10.3 步骤2:检测基线的变化124

10.4 步骤3:自动化和通知126

10.5 总结129

10.6 练习题129

第11章 恶意软件分析131

11.1 使用的命令131

11.1.1 curl131

11.1.2 vi132

11.1.3 xxd133

11.2 逆向工程134

11.2.1 十六进制、十进制、二进制和ASCII转换134

11.2.2 用xxd分析135

11.3 提取字符串137

11.4 VirusTotal接口137

11.4.1 通过哈希值搜索数据库138

11.4.2 扫描文件142

11.4.3 扫描URL、域名和IP地址143

11.5 总结143

11.6 练习题144

第12章 格式化和报告145

12.1 使用的命令145

12.2 使用HTML格式化显示和打印146

12.3 创建Dashboard150

12.4 总结154

12.5 练习题154

第三部分 使用bash进行渗透试验

第13章 侦察157

13.1 使用的命令157

13.2 网站爬虫 158

13.3 自动化的横幅爬取159

13.4 总结163

13.5 练习题163

第14章 脚本混淆164

14.1 使用的命令164

14.1.1 base64164

14.1.2 eval165

14.2 语法混淆165

14.3 逻辑混淆167

14.4 加密169

14.4.1 密码学入门169

14.4.2 加密脚本170

14.4.3 创建包装器171

14.4.4 创建自己的加密算法172

14.5 总结178

14.6 练习题178

第15章 工具:命令行fuzzer179

15.1 实现180

15.2 总结183

15.3 练习题183

第16章 建立立足点185

16.1 使用的命令185

16.2 单行后门186

16.2.1 反向SSH186

16.2.2 bash后门187

16.3 自定义远程访问工具188

16.4 总结192

16.5 练习题193

第四部分 使用bash进行安全管理

第17章 用户、组和权限197

17.1 使用的命令197

17.1.1 chmod197

17.1.2 chown198

17.1.3 getfacl198

17.1.4 groupadd198

17.1.5 setfacl198

17.1.6 useradd199

17.1.7 usermod199

17.1.8 icacls199

17.1.9 net200

17.2 用户和组200

17.2.1 创建Linux用户和组200

17.2.2 创建Windows用户和组201

17.3 文件权限和访问控制列表203

17.3.1 Linux文件权限203

17.3.2 Windows文件权限204

17.4 进行批量更改205

17.5 总结206

17.6 练习题206

第18章 编写日志条目207

18.1 使用的命令207

18.1.1 eventcreate207

18.1.2 logger208

18.2 编写Windows日志208

18.3 编写Linux日志209

18.4 总结210

18.5 练习题210

第19章 工具:系统可用性监控211

19.1 使用的命令211

19.2 实现212

19.3 总结214

19.4 练习题214

第20章 工具:软件清单215

20.1 使用的命令215

20.1.1 apt216

20.1.2 dpkg216

20.1.3 wmic217

20.1.4 yum217

20.2 实现218

20.3 识别其他软件219

20.4 总结220

20.5 练习题220

第21章 工具:验证配置222

21.1 实现222

21.2 总结227

21.3 练习题227

第22章 工具:账户审核228

22.1 网站Have I Been Pwned228

22.2 检查密码是否被泄露228

22.3 检查泄露的电子邮件地址231

22.4 总结234

22.5 练习题235

第23章 结论236

 

 

上下滑动查看

编辑推荐

本书是结合网络安全运维介绍bash技术的实用指南。

书中从攻击防御和分析三个场景介绍bash的用法,详细讲解如何在命令行使用bash shell完成数据收集与分析、入侵检测、逆向工程与管理等工作。

全书共分为四部分

第一部分介绍防御和攻击的原则,命令行和bash基础,以及正则表达式;

第二部分介绍数据收集和分析、实时日志监控和恶意软件分析;

第三部分介绍用于命令行模糊化和远程访问的脚本混淆和工具;

第四部分介绍安全管理知识,涉及用户、组和权限、设备和软件目录等。

实拍图

更多精彩新书

上新 | 零基础想入门PWA?看这本书错不了
上新 | 火币董事长李林推荐,教你从0到1学习区块链技术
上新 | 上新了!国内首本从原理与实践角度全面讲解InfluxDB的宝藏书

上新 | OpenShift : 通往云原生、DevOps、微服务和Serverless的大门

上新 | “计算机伦理学”——计算机科学专业的必修课


相关文章:

  • 数据分析师的案头工具书都在这了
  • 薅当当羊毛的机会又!双!!叒!!!叕!!!来了
  • 520 情人节 :属于Python 程序员的脱单攻略大合集(视频版)
  • 高端科普系列——领略前沿科学的魅力
  • 周志明虚拟机最新版,大厂面试必备宝典
  • 对话阿里云 MVP:跨界半生,不改赤子之心
  • 想一探Greenplum内核的奥秘?这场直播不容错过!
  • 创建字节跳动之前,张一鸣读过哪些硬核技术书?
  • 周志华领衔撰写,历时4年,宝箱书问世!
  • 【第6期】R语言是什么?怎么学?
  • 学数据分析/挖掘应该先学Python,还是R语言?
  • 未来已来,看智能制造如何改变世界 |《铸魂》线上新书发布会
  • 为什么腾讯监控的大数据平台选择了这款数据库?
  • 杭州某公司真实案例:7步搞定上云迁移
  • 机器学习「宝箱」中的「七种武器」:周志华领衔新书《机器学习理论导引》问世(赠书)...
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 78. Subsets
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Babel配置的不完全指南
  • CSS 提示工具(Tooltip)
  • FastReport在线报表设计器工作原理
  • Git 使用集
  • gitlab-ci配置详解(一)
  • gops —— Go 程序诊断分析工具
  • java 多线程基础, 我觉得还是有必要看看的
  • JAVA 学习IO流
  • java正则表式的使用
  • js ES6 求数组的交集,并集,还有差集
  • Lucene解析 - 基本概念
  • node学习系列之简单文件上传
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Travix是如何部署应用程序到Kubernetes上的
  • vue2.0项目引入element-ui
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 闭包--闭包作用之保存(一)
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 读懂package.json -- 依赖管理
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 前端面试之闭包
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 数组大概知多少
  • Spring第一个helloWorld
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​520就是要宠粉,你的心头书我买单
  • ​低代码平台的核心价值与优势
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #pragma pack(1)
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)JAVA使用POI操作excel
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (三)docker:Dockerfile构建容器运行jar包