misc: add shodan internetdb command
This commit is contained in:
		
							parent
							
								
									4c7e038866
								
							
						
					
					
						commit
						66c963190d
					
				
					 1 changed files with 59 additions and 0 deletions
				
			
		| 
						 | 
					@ -327,3 +327,62 @@ arsched.callback = async function (msg, line) {
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
hf.registerCommand(arsched);
 | 
					hf.registerCommand(arsched);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const REGEX_IPV4 = /^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$/;
 | 
				
			||||||
 | 
					const shodan = new Command("shodan");
 | 
				
			||||||
 | 
					shodan.category = CATEGORY;
 | 
				
			||||||
 | 
					shodan.helpText = "Look up an IP on Shodan InternetDB";
 | 
				
			||||||
 | 
					shodan.callback = async function (msg, line) {
 | 
				
			||||||
 | 
					  if (!line || line == "") return "Arguments required.";
 | 
				
			||||||
 | 
					  if (!REGEX_IPV4.test(line)) return "Invalid IP address.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const data = await fetch("https://internetdb.shodan.io/" + line).then((res) =>
 | 
				
			||||||
 | 
					    res.json()
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return {
 | 
				
			||||||
 | 
					    embed: {
 | 
				
			||||||
 | 
					      title: `Results for \`${data.ip}\``,
 | 
				
			||||||
 | 
					      fields: [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: "Hostnames",
 | 
				
			||||||
 | 
					          value:
 | 
				
			||||||
 | 
					            data.hostnames.length > 0
 | 
				
			||||||
 | 
					              ? data.hostnames.map((str) => `\`${str}\``).join("\n")
 | 
				
			||||||
 | 
					              : "None",
 | 
				
			||||||
 | 
					          inline: true,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: "Open ports",
 | 
				
			||||||
 | 
					          value: data.ports.length > 0 ? data.ports.join(", ") : "None",
 | 
				
			||||||
 | 
					          inline: true,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: "Tags",
 | 
				
			||||||
 | 
					          value:
 | 
				
			||||||
 | 
					            data.tags.length > 0
 | 
				
			||||||
 | 
					              ? data.tags.map((str) => `\`${str}\``).join(", ")
 | 
				
			||||||
 | 
					              : "None",
 | 
				
			||||||
 | 
					          inline: true,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: "CPEs",
 | 
				
			||||||
 | 
					          value:
 | 
				
			||||||
 | 
					            data.cpes.length > 0
 | 
				
			||||||
 | 
					              ? data.cpes.map((str) => `\`${str}\``).join("\n")
 | 
				
			||||||
 | 
					              : "None",
 | 
				
			||||||
 | 
					          inline: true,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: "Vulnerabilities",
 | 
				
			||||||
 | 
					          value:
 | 
				
			||||||
 | 
					            data.vulns.length > 0
 | 
				
			||||||
 | 
					              ? data.vulns.map((str) => `\`${str}\``).join("\n")
 | 
				
			||||||
 | 
					              : "None",
 | 
				
			||||||
 | 
					          inline: true,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					hf.registerCommand(shodan);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue