Domainim是用于组织网络扫描的快速域侦察工具。该工具旨在简要概述使用Osint,Bruteforcing,DNS Resolvation等技术,概述组织的结构。
功能
当前功能(v1.0.1) - 子域枚举(2个引擎+ bruteforcing) - 用户友好的输出- 解决记录(IPv4)
虚拟主机名枚举反向DNS查找
检测通配符子域(用于蛮力)
基本的TCP端口扫描子域被接受为输入
导出结果到JSON文件
有一些功能正在进行中。有关更多详细信息,请参见计划的功能。
该项目的灵感来自Sublist3r。端口扫描仪模块基于NIMSCAN。
安装
您可以从Source-克隆存储库中构建此仓库
git克隆[emailProtected] :pptx704/domainim构建二进制敏捷构建运行二进制二进制./domainim域[ - ports=ports],或者,您只需从发布页面下载二进制文件即可。请记住,仅对基于Debian的系统对二进制进行测试。
用法
./domainim域[-ports=端口| -p:ports] [-wordlist=filename | l:fileName [-rps=int | -r:int]] [-dns=dns | -d:dns] [-out=filename | -O:fileName]域是要枚举的域。它也可以是一个子域。 - 端口| -p是要扫描的端口的字符串规范。它可以是以下- 全部- 扫描所有端口(1-65535)无- 跳过端口扫描(默认)TN -scan -scan tn -top n端口(与NMAP相同)。即T100扫描前100个端口。最大值为5000。如果n大于5000,则将设置为5000。单个值- 扫描单个端口。即80扫描端口80范围值- 扫描一系列端口。即80-100扫描端口80至100逗号分隔值- 扫描多个端口。即80,443,8080扫描端口80,443和8080组合- 扫描上述组合。即80,443,8080-8090,T500扫描端口80,443,8080至8090和前500个端口-DNS | -d是DNS服务器的地址。这应该是有效的IPv4地址,并且可以选择包含端口号A.B.C.D-在端口53 A.B.C.D#N上使用A.B.C.D的DNS服务器- 在端口e -onderlist上使用A.B.C.D使用DNS Server | -l- WordList文件的路径。这用于蛮力子域。如果文件无效,则将跳过蛮力。您可以从秘书中获得单词列表。发行页中还提供了单词列表。 -rps | -r-蛮力期间每秒提出的请求数。默认值为1024 req/s。值得注意的是,DNS查询是分批进行的,仅在上一个完成后才进行下一个批次。由于Quries可以受到限制,因此增加值并不总是保证更快的结果。 - 出口| -o-输出文件的路径。输出将以JSON格式保存。文件名必须以.json结尾。 Examples - ./domainim nmap.org --ports=all - ./domainim google.com --ports=none --dns=8.8.8.8#53 - ./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500 - ./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt -outFile=results.json-- ./domainim mysite.com -ports=t50,5432,7000-9000 -dns=1.1.1.1.1
可以使用./domainim -help或./domainim -h访问帮助菜单。
用法:
domainim域[-ports=端口| -p:ports] [-wordlist=fileName | l:fileName [-rps=int | -R:INT]] [-DNS=DNS | -d:dns] [-out=filename | -O:FileName]
domainim(-h | -help)
Options:
-h, - 螺旋显示此屏幕。
-p, - 端口端口进行扫描。 [default:`none']
可以是``all',`n',`tn',单个值,范围值,组合
-l, - 子域bruteforcing的词列表列表。突袭被跳过无效的文件。
-d, - DNS IP和DNS解析器的端口。应该是具有可选端口的有效IPv4 [Default:系统默认]
-r,-rps DNS查询每秒[default: 1024 req/s]
-o, - 输出JSON文件,将保存输出。文件名必须以“ .json”结尾
示例:
domainim domainim.com -p:t500 -l:wordlist.txt -dns:1.1.1.1.1#53 -ET=results.json
domainim sub.domainim.com -ports=all -dns:8.8.8.8 -t:1500 -O3:Results.json结果json schema的结果如下-
[
{
'subdomain':字符串,
'data': [
'ipv4':字符串,
'vhosts': [string],
'reverse_dns':字符串,
'ports': [int]
这是给出的
}
]可以在此处找到nmap.org的示例JSON。
欢迎
贡献
捐款。随时打开拉动请求或问题。
计划的功能
[x] TCP端口扫描[] UDP端口扫描支持[]解决AAAA记录(IPV6)[X]自定义DNS Server [X]使用WordList [] force ofert force bruteforcruction添加bruteForcorings [] DIR和文件拆除
其他人
[X]遇到错误(v0.2.0)[X]更新详细输出[x]显示了更长的操作的进度栏[]添加单个端口扫描进度栏[]添加测试[]添加测试[]添加注释和DocStrings
其他注释
此项目仍然处于早期阶段。我知道有几个局限性。
我正在使用的两个引擎(我称它们为引擎,因为Sublist3R这样做)当前具有某种响应限制。 dnsdumpster.com'dnsdumpster最多可以获取100个子域。 CRT.SH还会在结果过多的情况下随机将结果随机。 CRT.SH的另一个问题是,它有时会返回一些SQL错误。因此,对于某些域,对于不同的运行,结果可能会有所不同。我计划将来添加更多引擎(至少是蛮力引擎)。
端口扫描仪仅具有PING响应时间+ 750ms超时。这可能会导致虚假负面因素。由于Domainim并非用于端口扫描,而是为了提供快速概述,因此可以接受此类情况。但是,我计划添加一个标志来增加超时。出于同样的原因,未显示过滤的端口。对于更全面的端口扫描,我建议使用NMAP。 Domainim也不会绕过率限制(如果有的话)。
看来Vhostnames的打印方式似乎在桌子上带来了重新估计。
以下印刷可能是更好的-
ack.nmap.org,essess.nmap.org,nmap.org,research.nmap.org,scannme.nmap.org,svn.nmap.org,www.nmap.org
↳45.33.49.119
↳反向DNS: ack.nmap.org。但是以前在测试时,我发现并非所有IP都通过相同的VhostNames共享。这就是为什么我决定以这种方式保持它的原因。
DNS服务器可能具有某种限制速率。这就是为什么我为每个查询的IPv4添加随机延迟(在0-300ms之间)。这是不是要使DNS服务器立即获得所有查询,而是以更自然的方式获取所有查询。对于ButeForcing方法,默认情况下该值在0-1000ms之间,但可以使用-rps |可以更改该值。 -t标志。
困扰我的一个特殊限制是,DNS解析器不会将所有IP返回一个域。因此,有必要进行多个查询以获取全部(或大多数)IPS。但是话又说回来,不可能知道有多少个IP的域名。我仍然必须为此提出解决方案。另外,NIM-NDNS不支持CNAME记录。因此,如果域具有CNAME记录,将无法解决。我正在等待作者的回应。
目前,如果发现可能的通配符子域,则会跳过蛮力。这是因为,如果一个域具有通配符子域,则BruteForcing将解决所有可能的子域的IPv4。但是,这也会跳过有效的子域(即,即使不是通配符值,也会跳过scanme.nmap.org)。我将添加一个- 野蛮人| -fb旗以后迫使爆炸。
对于子域输入的VHOST枚举也是如此。由于以给定子域结束的URL返回,因此不考虑类似域的子域。例如,scannme.nmap.org不会为ack.nmap.org打印,而是可能是ack.nmap.org。我可以搜索nmap.org的所有子域,但这却打败了将子域作为输入的目的。
许可证
MIT许可证。有关全文,请参见许可证。