# 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')), ], ), ]