black-hat-rust-chapter02

阅读笔记-第二章

Posted by 汤汤 on November 25, 2024

来自 black-hat-rust

写在前面

chapter02-侦察

侦察 reconnaissance

1. 分类:主动vs被动

被动侦察:在不与目标直接交互的前提下,获取目标某些信息(chapter5)

被动侦察:可能被防火墙或蜜罐监测到

2. 资产发现 asset discovery

传统上的资产:IP地址、服务器、域名、网络
现代意义上的资产:社交网络账号、开源代码仓库、物联网对象等

3. 使用rust实现第一个扫描器

  • 基本目标:找到目标的子域名、并扫描每个域名下面的常见端口
  • 进阶:增加更多的功能

4. Rust中的错误处理

  • Rust使用枚举类型result表示正确或错误的情况。
  • rust中的errors是强类型的,大都是枚举类型
    • 在库函数中,多使用thiserror接口(crate)下的Error类型
    • 在程序中,多使用anyhow接口(crate)下的Error类型
thiserror::Error

适用场景:适合创建自定义的错误类型

use thiserror::Error;

// 属性宏
#[derive(Error, Debug, Clone)]
pub enum Error{
  #[error("Usage:...")]
  CliUsage,
}
anyhow::Error

适用场景:无需关心具体的错误类型,只需要关注如何处理错误 :sound: :sound:这里的anyhow::Error本身就是一个类型。

fn main() -> Result<(), anyhow::Error>{
  // ...
}
option交互
iterator交互

#