Merge branch 'Tib3rius:main' into main

This commit is contained in:
Asim Aziz 2022-08-07 23:34:05 +01:00 committed by GitHub
commit d6aa77e78c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 34 additions and 6 deletions

View File

@ -64,6 +64,7 @@ Additionally the following commands may need to be installed, depending on your
``` ```
curl curl
dnsrecon
enum4linux enum4linux
feroxbuster feroxbuster
gobuster gobuster
@ -87,7 +88,7 @@ wkhtmltopdf
On Kali Linux, you can ensure these are all installed using the following commands: On Kali Linux, you can ensure these are all installed using the following commands:
```bash ```bash
sudo apt install seclists curl enum4linux feroxbuster gobuster impacket-scripts nbtscan nikto nmap onesixtyone oscanner redis-tools smbclient smbmap snmp sslscan sipvicious tnscmd10g whatweb wkhtmltopdf sudo apt install seclists curl dnsrecon enum4linux feroxbuster gobuster impacket-scripts nbtscan nikto nmap onesixtyone oscanner redis-tools smbclient smbmap snmp sslscan sipvicious tnscmd10g whatweb wkhtmltopdf
``` ```
### Installation Method #1: pipx (Recommended) ### Installation Method #1: pipx (Recommended)

View File

@ -1,6 +1,6 @@
from autorecon.plugins import PortScan from autorecon.plugins import PortScan
from autorecon.config import config from autorecon.config import config
import re import re, requests
class AllTCPPortScan(PortScan): class AllTCPPortScan(PortScan):
@ -33,7 +33,18 @@ class AllTCPPortScan(PortScan):
if match: if match:
target.info('Discovered open port {bmagenta}tcp/' + match.group(1) + '{rst} on {byellow}' + target.address + '{rst}', verbosity=1) target.info('Discovered open port {bmagenta}tcp/' + match.group(1) + '{rst} on {byellow}' + target.address + '{rst}', verbosity=1)
service = target.extract_service(line) service = target.extract_service(line)
if service: if service:
# Check if HTTP service appears to be WinRM. If so, override service name as wsman.
if service.name == 'http' and service.port in [5985, 5986]:
wsman = requests.get(('https' if service.secure else 'http') + '://' + target.address + ':' + str(service.port) + '/wsman', verify=False)
if wsman.status_code == 405:
service.name = 'wsman'
wsman = requests.post(('https' if service.secure else 'http') + '://' + target.address + ':' + str(service.port) + '/wsman', verify=False)
else:
if wsman.status_code == 401:
service.name = 'wsman'
services.append(service) services.append(service)
else: else:
break break

View File

@ -22,5 +22,17 @@ class QuickTCPPortScan(PortScan):
process, stdout, stderr = await target.execute('nmap {nmap_extra} -sV -sC --version-all' + traceroute_os + ' -oN "{scandir}/_quick_tcp_nmap.txt" -oX "{scandir}/xml/_quick_tcp_nmap.xml" {address}', blocking=False) process, stdout, stderr = await target.execute('nmap {nmap_extra} -sV -sC --version-all' + traceroute_os + ' -oN "{scandir}/_quick_tcp_nmap.txt" -oX "{scandir}/xml/_quick_tcp_nmap.xml" {address}', blocking=False)
services = await target.extract_services(stdout) services = await target.extract_services(stdout)
for service in services:
# Check if HTTP service appears to be WinRM. If so, override service name as wsman.
if service.name == 'http' and service.port in [5985, 5986]:
wsman = requests.get(('https' if service.secure else 'http') + '://' + target.address + ':' + str(service.port) + '/wsman', verify=False)
if wsman.status_code == 405:
service.name = 'wsman'
wsman = requests.post(('https' if service.secure else 'http') + '://' + target.address + ':' + str(service.port) + '/wsman', verify=False)
else:
if wsman.status_code == 401:
service.name = 'wsman'
await process.wait() await process.wait()
return services return services

View File

@ -17,7 +17,7 @@ from autorecon.io import slugify, e, fformat, cprint, debug, info, warn, error,
from autorecon.plugins import Pattern, PortScan, ServiceScan, Report, AutoRecon from autorecon.plugins import Pattern, PortScan, ServiceScan, Report, AutoRecon
from autorecon.targets import Target, Service from autorecon.targets import Target, Service
VERSION = "2.0.24" VERSION = "2.0.25"
if not os.path.exists(config['config_dir']): if not os.path.exists(config['config_dir']):
shutil.rmtree(config['config_dir'], ignore_errors=True, onerror=None) shutil.rmtree(config['config_dir'], ignore_errors=True, onerror=None)

View File

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "autorecon" name = "autorecon"
version = "2.0.24" version = "2.0.25"
description = "A multi-threaded network reconnaissance tool which performs automated enumeration of services." description = "A multi-threaded network reconnaissance tool which performs automated enumeration of services."
authors = ["Tib3rius"] authors = ["Tib3rius"]
license = "GNU GPL v3" license = "GNU GPL v3"
@ -10,9 +10,11 @@ packages = [
] ]
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.7" python = "^3.8"
appdirs = "^1.4.4" appdirs = "^1.4.4"
colorama = "^0.4.4" colorama = "^0.4.5"
impacket = "^0.10.0"
requests = "^2.28.1"
toml = "^0.10.2" toml = "^0.10.2"
Unidecode = "^1.3.1" Unidecode = "^1.3.1"

View File

@ -1,4 +1,6 @@
appdirs appdirs
colorama colorama
impacket
requests
toml toml
unidecode unidecode