|
1 | 1 | #!/usr/bin/env perl |
2 | 2 | # |
3 | | -# $Id: onyphe,v f6e25824c774 2025/03/04 14:57:46 gomor $ |
| 3 | +# $Id: onyphe,v 6200d9520468 2025/03/14 14:28:43 gomor $ |
4 | 4 | # |
5 | 5 | use strict; |
6 | 6 | use warnings; |
@@ -89,17 +89,19 @@ GetOptions( |
89 | 89 | # ASD APIs: |
90 | 90 | "asd-pivot-query=s" => \$lopts{'asd-pivot-query'}, |
91 | 91 | "asd-domain-tld=s" => \$lopts{'asd-domain-tld'}, |
92 | | - "asd-domain-ns=s" => \$lopts{'asd-domain-ns'}, |
93 | | - "asd-domain-mx=s" => \$lopts{'asd-domain-mx'}, |
94 | 92 | "asd-domain-certso=s" => \$lopts{'asd-domain-certso'}, |
95 | 93 | "asd-domain-wildcard=s" => \$lopts{'asd-domain-wildcard'}, |
96 | | - "asd-domain-exist=s" => \$lopts{'asd-domain-exist'}, |
97 | 94 | "asd-certso-domain=s" => \$lopts{'asd-certso-domain'}, |
98 | 95 | "asd-certso-wildcard=s" => \$lopts{'asd-certso-wildcard'}, |
99 | 96 | "asd-org-inventory=s" => \$lopts{'asd-org-inventory'}, |
100 | | - "asd-ip-whois=s" => \$lopts{'asd-ip-whois'}, |
101 | 97 | "asd-ip-inventory=s" => \$lopts{'asd-ip-inventory'}, |
| 98 | + "asd-subnet-inventory=s" => \$lopts{'asd-subnet-inventory'}, |
102 | 99 | "asd-vhost-inventory=s" => \$lopts{'asd-vhost-inventory'}, |
| 100 | + "asd-score-inventory=s" => \$lopts{'asd-score-inventory'}, |
| 101 | + "asd-dns-domain-ns=s" => \$lopts{'asd-dns-domain-ns'}, |
| 102 | + "asd-dns-domain-mx=s" => \$lopts{'asd-dns-domain-mx'}, |
| 103 | + "asd-dns-domain-soa=s" => \$lopts{'asd-dns-domain-soa'}, |
| 104 | + "asd-dns-domain-exist=s" => \$lopts{'asd-dns-domain-exist'}, |
103 | 105 | "asd-task-id=s" => \$lopts{'asd-task-id'}, |
104 | 106 | "asd-task-poll=s" => \$lopts{'asd-task-poll'}, |
105 | 107 | "asd-task-list" => \$lopts{'asd-task-list'}, |
@@ -195,8 +197,14 @@ my $opp_json_cb = sub { |
195 | 197 | $opp->process_as_json(\@results, $opl); |
196 | 198 | }; |
197 | 199 |
|
198 | | -# Set default values for arguments: |
199 | | -$lopts{aslines} = 1 unless defined($lopts{aslines}); |
| 200 | +# Exception for ASD Score Inventory API: |
| 201 | +if (defined($lopts{'asd-score-inventory'}) && !defined($lopts{aslines})) { |
| 202 | + $lopts{aslines} = 0; |
| 203 | +} |
| 204 | +else { |
| 205 | + # Set default values for arguments: |
| 206 | + $lopts{aslines} = 1 unless defined($lopts{aslines}); |
| 207 | +} |
200 | 208 |
|
201 | 209 | my $opp_cb = $lopts{aslines} ? $opp_json_cb : $opp_perl_cb; |
202 | 210 |
|
@@ -421,6 +429,14 @@ elsif (defined($asd_api_opt)) { |
421 | 429 | my $v = $lopts{$asd_api_opt}; |
422 | 430 | $oa->$asd_api_func($v, $params, $opp_cb, $opl); |
423 | 431 | } |
| 432 | + elsif ($asd_api_opt =~ m{^asd-pivot}) { |
| 433 | + my $v = $lopts{$asd_api_opt}; |
| 434 | + $params->{field} = $lopts{field} if defined $lopts{field}; |
| 435 | + $params->{astask} = $lopts{astask} if defined $lopts{astask}; |
| 436 | + $params->{includep} = $lopts{includep} if defined $lopts{includep}; |
| 437 | + $params->{excludep} = $lopts{excludep} if defined $lopts{excludep}; |
| 438 | + $oa->$asd_api_func($v, $params, $opp_cb, $opl); |
| 439 | + } |
424 | 440 | else { |
425 | 441 | $params->{astask} = $lopts{astask} if defined $lopts{astask}; |
426 | 442 | $params->{trusted} = $lopts{trusted} if defined $lopts{trusted}; |
@@ -467,8 +483,8 @@ API options: |
467 | 483 | -import <0|1> turn off/on import of results into ONYPHE |
468 | 484 | -trusted <0|1> turn off/on trusted results from ONYPHE ASD APIs |
469 | 485 | -field <FIELD> use given field to set field param on API call |
470 | | - -includep <WORD1,WORD2,...,WORD3> use given inclusion patterns on param API call |
471 | | - -excludep <WORD1,WORD2,...,WORD3> use given exclusion patterns on param API call |
| 486 | + -includep <WORD1,WORD2,...,WORD3> use given inclusion patterns on param API call |
| 487 | + -excludep <WORD1,WORD2,...,WORD3> use given exclusion patterns on param API call |
472 | 488 |
|
473 | 489 | General APIs: |
474 | 490 |
|
@@ -499,30 +515,35 @@ Ondemand APIs: |
499 | 515 | -ondemand-scope-hostname 'HOSTNAME' launch a scan against given hostname |
500 | 516 | -ondemand-scope-hostname-bulk 'input.txt' launch a scan against a given list of hostname from an input file |
501 | 517 | -ondemand-scope-port PORT launch a scan against a given port on full IPv4 address space |
502 | | - -ondemand-scope-result \$scan_id retrieve a scope scan results given a scan ID |
| 518 | + -ondemand-scope-result SCAN_ID retrieve a scope scan results given a scan ID |
503 | 519 | -ondemand-resolver-domain 'DOMAIN' launch a DNS enumeration and resolution against given domain |
504 | 520 | -ondemand-resolver-domain-bulk 'input.txt' launch a DNS enumeration and resolution against a given list of domain from an input file |
505 | | - -ondemand-resolver-result \$scan_id retrieve a resolver scan results given a scan ID |
| 521 | + -ondemand-resolver-result SCAN_ID retrieve a resolver scan results given a scan ID |
506 | 522 |
|
507 | 523 | ASD APIs: |
508 | 524 |
|
509 | | - -asd-pivot-query OQL -field FIELD search unique values for a given field from an OQL query |
510 | | - -asd-domain-tld DOMAIN1,DOMAIN2,...|input.txt search related domains by TLDs |
511 | | - -asd-domain-ns DOMAIN1,DOMAIN2,...|input.txt search related domains by using nameservers |
512 | | - -asd-domain-mx DOMAIN1,DOMAIN2,...|input.txt search related domains by using MX records |
| 525 | + -asd-pivot-query OQL -field FIELD search unique value(s) for a given field from an OQL query |
| 526 | + -asd-domain-tld DOMAIN1,DOMAIN2,...|input.txt search related domain(s) by TLDs |
513 | 527 | -asd-domain-certso SO1,SO2,...|input.txt search domain(s) belonging to given subject orgnanization(s) |
514 | 528 | -asd-domain-wildcard DOMAIN1,DOMAIN2,...|input.txt search domain(s) matching given wildcard(s) |
515 | | - -asd-domain-exist DOMAIN1,DOMAIN2,...|input.txt search existing domain(s) |
516 | 529 | -asd-certso-domain DOMAIN1,DOMAIN2,...|input.txt search subject organization(s) belonging to given domain(s) |
517 | 530 | -asd-certso-wildcard SO1,SO2,...|input.txt search subject organization(s) matching given wildcard(s) |
518 | | - -asd-org-inventory INVENTORY.txt search hosting organization(s) for given inventory data |
519 | | - -asd-ip-whois INVENTORY.txt search subnet(s) belonging to given inventory data |
520 | | - -asd-ip-inventory INVENTORY.txt search ip value(s) for given inventory data |
521 | | - -asd-vhost-inventory INVENTORY.txt search forward value(s) for given inventory data |
522 | | - -asd-task-id TASKID retrieve an ASD Task results for given task ID |
523 | | - -asd-task-poll TASKID retrieve an ASD Task results by polling given task ID |
| 531 | + -asd-org-inventory INVENTORY.txt search hosting organization(s) for given inventory data |
| 532 | + -asd-ip-inventory INVENTORY.txt search ip(s) for given inventory data |
| 533 | + -asd-subnet-inventory INVENTORY.txt search subnet(s) belonging to given inventory data |
| 534 | + -asd-vhost-inventory INVENTORY.txt search forward(s) for given inventory data |
| 535 | + -asd-score-inventory INVENTORY.txt search risks for given inventory, compute a score and returns data |
| 536 | + -asd-task-id TASK_ID retrieve an ASD Task results for given task ID |
| 537 | + -asd-task-poll TASK_ID retrieve an ASD Task results by polling given task ID |
524 | 538 | -asd-task-list list all tasks, actually running or finished |
525 | | - -asd-task-kill kill a given task ID |
| 539 | + -asd-task-kill TASK_ID kill a given task ID |
| 540 | +
|
| 541 | + WARNING: the following APIs will execute DNS requests: |
| 542 | +
|
| 543 | + -asd-dns-domain-ns DOMAIN1,DOMAIN2,...|input.txt search related domain(s) by using nameservers |
| 544 | + -asd-dns-domain-mx DOMAIN1,DOMAIN2,...|input.txt search related domain(s) by using MX records |
| 545 | + -asd-dns-domain-soa DOMAIN1,DOMAIN2,...|input.txt search related domain(s) by using SOA records |
| 546 | + -asd-dns-domain-exist DOMAIN1,DOMAIN2,...|input.txt search existing domain(s) |
526 | 547 |
|
527 | 548 | EOF |
528 | 549 | ; |
|
0 commit comments