Здрав будь, люд хекерский. Сегодня, поведаю я вам, как можно сделать автоматический пентест средствами w3af api. Напомню, что это достаточно неплохой фаззер. По мере развития этого скрипта буду обновлять этот топик. А пока код автоматический запускает api, сканирует с заданным профилем, проверяет каждые 10 секунд статус и в итоге создает отчет в домашней директории и закрывает коннект.
Понадобится
w3af Последней версии
P.S. клиент api можно установить через pip;
Код нашего фаззера
Понадобится
w3af Последней версии
P.S. клиент api можно установить через pip;
Код:
pip install w3af_api_client
Код нашего фаззера
Код:
from w3af_api_client import Connection, Scan, Finding
from threading import Thread, current_thread
import sys
import time
import json
from subprocess import Popen, PIPE
proc = Popen("python /w3af/w3af_api", shell=True, stdout=PIPE, stderr=PIPE)
time.sleep(5) # Ждём пока запустится api
conn = Connection('http://192.168.1.237:5000/')
scan_profile = file('/root/.w3af/profiles/SooLFaa.pw3af').read() # Профиль создаем за ранее в w3af
target = []
target.append(sys.argv[1]) # Добавляем в таргет
scan = Scan(conn, 0)
scan.start(scan_profile, target) # отсылаем на сканирование
time.sleep(5)
status = json.loads(json.dumps(scan.get_status()))["status"] # получаем текущий статус санирования
print status
while status == 'Running': # Пока не будет статус Stopping
time.sleep(10)
status = json.loads(json.dumps(scan.get_status()))["status"]
proc.close()# Убиваем коннект с api