Files
rengine/web/startScan/migrations/0001_initial.py
T
2024-06-19 08:42:46 +05:30

393 lines
23 KiB
Python

# Generated by Django 3.2.23 on 2024-06-19 02:43
from django.conf import settings
import django.contrib.postgres.fields
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('targetApp', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('scanEngine', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='CountryISO',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('iso', models.CharField(blank=True, max_length=10)),
('name', models.CharField(blank=True, max_length=100)),
],
),
migrations.CreateModel(
name='CveId',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=100)),
],
),
migrations.CreateModel(
name='CweId',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=100)),
],
),
migrations.CreateModel(
name='DirectoryFile',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('length', models.IntegerField(default=0)),
('lines', models.IntegerField(default=0)),
('http_status', models.IntegerField(default=0)),
('words', models.IntegerField(default=0)),
('name', models.CharField(blank=True, max_length=500, null=True)),
('url', models.CharField(blank=True, max_length=5000, null=True)),
('content_type', models.CharField(blank=True, max_length=100, null=True)),
],
),
migrations.CreateModel(
name='DirectoryScan',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('command_line', models.CharField(blank=True, max_length=5000, null=True)),
('scanned_date', models.DateTimeField(null=True)),
],
),
migrations.CreateModel(
name='Dork',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('type', models.CharField(blank=True, max_length=500, null=True)),
('url', models.CharField(blank=True, max_length=10000, null=True)),
],
),
migrations.CreateModel(
name='Email',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('address', models.CharField(blank=True, max_length=200, null=True)),
('password', models.CharField(blank=True, max_length=200, null=True)),
],
),
migrations.CreateModel(
name='Employee',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(blank=True, max_length=1000, null=True)),
('designation', models.CharField(blank=True, max_length=1000, null=True)),
],
),
migrations.CreateModel(
name='EndPoint',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('source', models.CharField(blank=True, max_length=200, null=True)),
('http_url', models.CharField(max_length=30000)),
('content_length', models.IntegerField(blank=True, default=0, null=True)),
('page_title', models.CharField(blank=True, max_length=30000, null=True)),
('http_status', models.IntegerField(blank=True, default=0, null=True)),
('content_type', models.CharField(blank=True, max_length=100, null=True)),
('discovered_date', models.DateTimeField(blank=True, null=True)),
('response_time', models.FloatField(blank=True, null=True)),
('webserver', models.CharField(blank=True, max_length=1000, null=True)),
('is_default', models.BooleanField(blank=True, default=False, null=True)),
('matched_gf_patterns', models.CharField(blank=True, max_length=10000, null=True)),
],
),
migrations.CreateModel(
name='IpAddress',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('address', models.CharField(blank=True, max_length=100, null=True)),
('is_cdn', models.BooleanField(default=False)),
('version', models.IntegerField(blank=True, null=True)),
('is_private', models.BooleanField(default=False)),
('reverse_pointer', models.CharField(blank=True, max_length=100, null=True)),
('geo_iso', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.countryiso')),
],
),
migrations.CreateModel(
name='Port',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('number', models.IntegerField(default=0)),
('service_name', models.CharField(blank=True, max_length=100, null=True)),
('description', models.CharField(blank=True, max_length=1000, null=True)),
('is_uncommon', models.BooleanField(default=False)),
],
),
migrations.CreateModel(
name='S3Bucket',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(blank=True, max_length=500, null=True)),
('region', models.CharField(blank=True, max_length=500, null=True)),
('provider', models.CharField(blank=True, max_length=100, null=True)),
('owner_id', models.CharField(blank=True, max_length=250, null=True)),
('owner_display_name', models.CharField(blank=True, max_length=250, null=True)),
('perm_auth_users_read', models.IntegerField(default=0)),
('perm_auth_users_write', models.IntegerField(default=0)),
('perm_auth_users_read_acl', models.IntegerField(default=0)),
('perm_auth_users_write_acl', models.IntegerField(default=0)),
('perm_auth_users_full_control', models.IntegerField(default=0)),
('perm_all_users_read', models.IntegerField(default=0)),
('perm_all_users_write', models.IntegerField(default=0)),
('perm_all_users_read_acl', models.IntegerField(default=0)),
('perm_all_users_write_acl', models.IntegerField(default=0)),
('perm_all_users_full_control', models.IntegerField(default=0)),
('num_objects', models.IntegerField(default=0)),
('size', models.IntegerField(default=0)),
],
),
migrations.CreateModel(
name='ScanHistory',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('start_scan_date', models.DateTimeField()),
('scan_status', models.IntegerField(choices=[(-1, -1), (0, 0), (1, 1), (2, 2), (3, 3)], default=-1)),
('results_dir', models.CharField(blank=True, max_length=100)),
('celery_ids', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=100), blank=True, default=list, size=None)),
('tasks', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=200), null=True, size=None)),
('stop_scan_date', models.DateTimeField(blank=True, null=True)),
('used_gf_patterns', models.CharField(blank=True, max_length=500, null=True)),
('error_message', models.CharField(blank=True, max_length=300, null=True)),
('aborted_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='aborted_scans', to=settings.AUTH_USER_MODEL)),
('buckets', models.ManyToManyField(blank=True, related_name='buckets', to='startScan.S3Bucket')),
('domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='targetApp.domain')),
('dorks', models.ManyToManyField(blank=True, related_name='dorks', to='startScan.Dork')),
('emails', models.ManyToManyField(blank=True, related_name='emails', to='startScan.Email')),
('employees', models.ManyToManyField(blank=True, related_name='employees', to='startScan.Employee')),
('initiated_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='initiated_scans', to=settings.AUTH_USER_MODEL)),
('scan_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='scanEngine.enginetype')),
],
),
migrations.CreateModel(
name='Subdomain',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=1000)),
('is_imported_subdomain', models.BooleanField(default=False)),
('is_important', models.BooleanField(blank=True, default=False, null=True)),
('http_url', models.CharField(blank=True, max_length=10000, null=True)),
('screenshot_path', models.CharField(blank=True, max_length=1000, null=True)),
('http_header_path', models.CharField(blank=True, max_length=1000, null=True)),
('discovered_date', models.DateTimeField(blank=True, null=True)),
('cname', models.CharField(blank=True, max_length=5000, null=True)),
('is_cdn', models.BooleanField(blank=True, default=False, null=True)),
('cdn_name', models.CharField(blank=True, max_length=200, null=True)),
('http_status', models.IntegerField(default=0)),
('content_type', models.CharField(blank=True, max_length=100, null=True)),
('response_time', models.FloatField(blank=True, null=True)),
('webserver', models.CharField(blank=True, max_length=1000, null=True)),
('content_length', models.IntegerField(blank=True, default=0, null=True)),
('page_title', models.CharField(blank=True, max_length=1000, null=True)),
('attack_surface', models.TextField(blank=True, null=True)),
('directories', models.ManyToManyField(blank=True, related_name='directories', to='startScan.DirectoryScan')),
('ip_addresses', models.ManyToManyField(blank=True, related_name='ip_addresses', to='startScan.IpAddress')),
('scan_history', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.scanhistory')),
('target_domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='targetApp.domain')),
],
),
migrations.CreateModel(
name='SubScan',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('type', models.CharField(blank=True, max_length=100, null=True)),
('start_scan_date', models.DateTimeField()),
('status', models.IntegerField()),
('celery_ids', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=100), blank=True, default=list, size=None)),
('stop_scan_date', models.DateTimeField(blank=True, null=True)),
('error_message', models.CharField(blank=True, max_length=300, null=True)),
('engine', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='scanEngine.enginetype')),
('scan_history', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='startScan.scanhistory')),
('subdomain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='startScan.subdomain')),
('subdomain_subscan_ids', models.ManyToManyField(blank=True, related_name='subdomain_subscan_ids', to='startScan.Subdomain')),
],
),
migrations.CreateModel(
name='Technology',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(blank=True, max_length=500, null=True)),
],
),
migrations.CreateModel(
name='VulnerabilityReference',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('url', models.CharField(max_length=5000)),
],
),
migrations.CreateModel(
name='VulnerabilityTags',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=100)),
],
),
migrations.CreateModel(
name='Waf',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=500)),
('manufacturer', models.CharField(blank=True, max_length=500, null=True)),
],
),
migrations.CreateModel(
name='Vulnerability',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('source', models.CharField(blank=True, max_length=200, null=True)),
('template', models.CharField(blank=True, max_length=100, null=True)),
('template_url', models.CharField(blank=True, max_length=2500, null=True)),
('template_id', models.CharField(blank=True, max_length=200, null=True)),
('matcher_name', models.CharField(blank=True, max_length=500, null=True)),
('name', models.CharField(max_length=2500)),
('severity', models.IntegerField()),
('description', models.TextField(blank=True, null=True)),
('impact', models.TextField(blank=True, null=True)),
('remediation', models.TextField(blank=True, null=True)),
('extracted_results', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=5000), blank=True, null=True, size=None)),
('cvss_metrics', models.CharField(blank=True, max_length=500, null=True)),
('cvss_score', models.FloatField(blank=True, default=None, null=True)),
('curl_command', models.CharField(blank=True, max_length=15000, null=True)),
('type', models.CharField(blank=True, max_length=100, null=True)),
('http_url', models.CharField(max_length=10000, null=True)),
('discovered_date', models.DateTimeField(null=True)),
('open_status', models.BooleanField(blank=True, default=True, null=True)),
('hackerone_report_id', models.CharField(blank=True, max_length=50, null=True)),
('request', models.TextField(blank=True, null=True)),
('response', models.TextField(blank=True, null=True)),
('is_gpt_used', models.BooleanField(blank=True, default=False, null=True)),
('cve_ids', models.ManyToManyField(blank=True, related_name='cve_ids', to='startScan.CveId')),
('cwe_ids', models.ManyToManyField(blank=True, related_name='cwe_ids', to='startScan.CweId')),
('endpoint', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.endpoint')),
('references', models.ManyToManyField(blank=True, related_name='vuln_reference', to='startScan.VulnerabilityReference')),
('scan_history', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.scanhistory')),
('subdomain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.subdomain')),
('tags', models.ManyToManyField(blank=True, related_name='vuln_tags', to='startScan.VulnerabilityTags')),
('target_domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='targetApp.domain')),
('vuln_subscan_ids', models.ManyToManyField(blank=True, related_name='vuln_subscan_ids', to='startScan.SubScan')),
],
),
migrations.AddField(
model_name='subdomain',
name='technologies',
field=models.ManyToManyField(blank=True, related_name='technologies', to='startScan.Technology'),
),
migrations.AddField(
model_name='subdomain',
name='waf',
field=models.ManyToManyField(blank=True, related_name='waf', to='startScan.Waf'),
),
migrations.CreateModel(
name='ScanActivity',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('title', models.CharField(max_length=1000)),
('name', models.CharField(max_length=1000)),
('time', models.DateTimeField()),
('status', models.IntegerField()),
('error_message', models.CharField(blank=True, max_length=300, null=True)),
('traceback', models.TextField(blank=True, null=True)),
('celery_id', models.CharField(blank=True, max_length=100, null=True)),
('scan_of', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.scanhistory')),
],
),
migrations.CreateModel(
name='MetaFinderDocument',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('doc_name', models.CharField(blank=True, max_length=1000, null=True)),
('url', models.CharField(blank=True, max_length=10000, null=True)),
('title', models.CharField(blank=True, max_length=1000, null=True)),
('author', models.CharField(blank=True, max_length=1000, null=True)),
('producer', models.CharField(blank=True, max_length=1000, null=True)),
('creator', models.CharField(blank=True, max_length=1000, null=True)),
('os', models.CharField(blank=True, max_length=1000, null=True)),
('http_status', models.IntegerField(blank=True, default=0, null=True)),
('creation_date', models.CharField(blank=True, max_length=1000, null=True)),
('modified_date', models.CharField(blank=True, max_length=1000, null=True)),
('scan_history', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.scanhistory')),
('subdomain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.subdomain')),
('target_domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='targetApp.domain')),
],
),
migrations.AddField(
model_name='ipaddress',
name='ip_subscan_ids',
field=models.ManyToManyField(related_name='ip_subscan_ids', to='startScan.SubScan'),
),
migrations.AddField(
model_name='ipaddress',
name='ports',
field=models.ManyToManyField(related_name='ports', to='startScan.Port'),
),
migrations.CreateModel(
name='GPTVulnerabilityReport',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('url_path', models.CharField(max_length=2000)),
('title', models.CharField(max_length=2500)),
('description', models.TextField(blank=True, null=True)),
('impact', models.TextField(blank=True, null=True)),
('remediation', models.TextField(blank=True, null=True)),
('references', models.ManyToManyField(blank=True, related_name='report_reference', to='startScan.VulnerabilityReference')),
],
),
migrations.AddField(
model_name='endpoint',
name='endpoint_subscan_ids',
field=models.ManyToManyField(blank=True, related_name='endpoint_subscan_ids', to='startScan.SubScan'),
),
migrations.AddField(
model_name='endpoint',
name='scan_history',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.scanhistory'),
),
migrations.AddField(
model_name='endpoint',
name='subdomain',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.subdomain'),
),
migrations.AddField(
model_name='endpoint',
name='target_domain',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='targetApp.domain'),
),
migrations.AddField(
model_name='endpoint',
name='techs',
field=models.ManyToManyField(blank=True, null=True, related_name='techs', to='startScan.Technology'),
),
migrations.AddField(
model_name='directoryscan',
name='dir_subscan_ids',
field=models.ManyToManyField(blank=True, related_name='dir_subscan_ids', to='startScan.SubScan'),
),
migrations.AddField(
model_name='directoryscan',
name='directory_files',
field=models.ManyToManyField(blank=True, related_name='directory_files', to='startScan.DirectoryFile'),
),
migrations.CreateModel(
name='Command',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('command', models.TextField(blank=True, null=True)),
('return_code', models.IntegerField(blank=True, null=True)),
('output', models.TextField(blank=True, null=True)),
('time', models.DateTimeField()),
('activity', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.scanactivity')),
('scan_history', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='startScan.scanhistory')),
],
),
]