amass是由owasp维护的,帮助用户收集目标企业的外网资产
看到这里,无论你是渗透测试工程师、审计员、安全研究人员、CISO、或者是IT管理员,都值得使用amass评估自己组织所暴露的攻击面
一定要在墙外机器访问,因为很多接口是需要翻qiang的
centos 7下安装 amass
yum -y install wget screen git
# 安装go
wget -qO- https://raw.githubusercontent.com/zcorky/zgvm/master/install | bash
source ~/.bashrc
zgvm install v1.18
source ~/.zshrc
# 直接安装 在 $GOPATH/bin
go install -v github.com/OWASP/Amass/v3/...@master
# 怎样查看$GOPATH
go env | grep GOPATH
# 查看安装结果
which amass
# 源代码 安装 可以进行调试
# 在GOPATH文件夹中新建 bin、pkg、src 3个文件夹
# 下载代码到 src目录 git clone https://github.com/OWASP/Amass
# 进入程序目录
cd Amass
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
# 安装依赖包
go mod init Amass
go mod tidy
go mod vendor
# 编译源码
go build cmd/amass/*.go
# 调试运行 由于main.go函数被分隔成多个文件,因此需要使用*代替main
go run cmd/amass/*.go
# 此时直接修改 当前目录下代码 即可生效 如将format/print.go version变量修改 保存 执行如下命令看到结果
go run cmd/amass/*.go -version
amass -h
amass intel -help
情报收集功能,可以搜索组织信息, 比如域名whois关联到更多主域名 ,组织的IP段, IP地址开放的端口
amass intel -list #显示所有使用的数据源
amass intel -active -whois -d rong360.com -o whois-amass-ip.txt -ip -src #基于whois进行信息搜集 ,存在误报情况,因此搜索出来域名后,建议解析域名和查询域名的备案号(公司主体)进一步确认是否与目标组织是一致的 为什么没有ip显示呢
amass intel -active -whois -d rong360.com # 直接将结果输出到控制台 便于web层的封装
amass intel -org Facebook 查询组织ip段 没有成功过
amass intel
amass enum -active -v -src -ip -d rong360.com -json new-amass-rong360.com.json -dir rong360.com
https://viewdns.info/reversewhois/?q=rong360 根据whois查询域名
amass enum -passive -d owasp.org -src 被动模式查询,更快,但是不准确
amass enum -active -v -src -ip -brute -min-for-recursive 2 -d rong360.com -json new-amass-rong360.com.json -dir rong360.com
遍历子域名 -src显示源 -ip 获得ip -brute暴力破解 -json 输出格式 -dir 保存数据在特定目录下
amass viz -d3 -d rong360.com
会在当前目录下生成一个d3格式的html文件 展示域名关系
amass track -config /root/amass/config.ini -dir amass4owasp -d owasp.org -last 2
比较最后两次扫描的差异
amass track -history -d rong360.com
比较两次查询结果是否相同
amass 脚本编写 扩展
amass intel -list
在main.go看到是intel子命令 在
cmd\amass\intel.go
进行响应
在line 181 调用 main.go的 GetAllSourceInfo 进行处理,其中 datasrcs.GetAllSources 实现代码 在 datasrcs\sources.go 的GetAllSources 实现的
只有几个数据源是使用 go代码实现的 ,其他数据源 在 sys.Config().AcquireScripts() (datasrcs\scripting\script.go) 调用 resources 目录下内置lua脚本进行实现的 。
在 datasrcs\scripting\script.go 的 dispatch 实现了不同的类型 对应lua的不同函数 如 requests.WhoisRequest 对应 Horizontal
GB/T 24363-2009 信息安全技术 信息安全应急响应计划规范
GB/T 28827.3-2012 信息技术服务 运行维护 第3部分:应急响应规范
GB/Z 20986-2007 信息安全技术 信息安全事件分类分级指南
owasp ASVS应用安全验证标准 4.0.3 中文版
owasp 无服务器应用安全风险 TOP 10 2019年翻译