PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap...

66
JOSE MANUEL ORTEGA @JMORTEGAC Ethical hacking with Python tools

Transcript of PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap...

Page 1: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

JOSE MANUEL ORTEGA

@JMORTEGAC

Ethical hacking with

Python tools

Page 2: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

https://speakerdeck.com/jmortega

Page 3: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

INDEX

Introduction Python pentesting

Modules(Sockets,Requests,BeautifulSoup,Shodan)

Analysis metadata

Port scanning & Checking vulnerabilities

Advanced tools

Pentesting-tool

Page 4: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Python Pentesting

Multi platform

Prototypes and proofs of concept(POC)

Many tools and libraries focused on security

OSINT and Pentesting tools

Very good documentation

Page 5: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Python Pentesting

Page 6: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

http://sparta.secforce.com/

Page 7: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

The Harvester

Page 8: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

The Harvester

Page 9: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

W3AF

Page 10: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Tools

Scapy Capturing and analysing network packets

FiMap Detecting RFI/LFI vulnerabilites

XSScrapy Detecting XSS vulnerabilites

Page 11: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Sockets Port scan

import socket #TCP sock = socket(socket.AF_INET,socket.SOCK_STREAM)

result = sock.connect_ex(('127.0.0.1',80)) if result == 0: print "Port is open" else: print "Port is filtered"

Page 12: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Sockets Port scan

Page 13: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Socket resolving IP/domain

Page 14: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Banner server

Page 15: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Banner server

Page 16: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Requests

Page 17: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Checking headers

Page 18: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Checking headers

Page 19: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Requests

import requests http_proxy = "http://10.10.10.10:3000" https_proxy = "https://10.10.10.10:3000" proxyDict = { "http" : http_proxy, "https" : https_proxy }

r = requests.get(url,proxies=proxyDict)

Page 20: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Requests Authentication

Page 21: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

BeautifulSoup

Page 22: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Internal/external links

Page 23: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Internal/external links

Page 24: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Extract images and documents

Page 25: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Scrapy

Page 26: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Web Scraping

Page 27: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Shodan

Page 28: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

https://developer.shodan.io

Page 29: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Shodan

import shodan SHODAN_API_KEY = "insert your API key here" api = shodan.Shodan(SHODAN_API_KEY)

Page 30: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Shodan

Page 31: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

https://www.shodan.io/host/136.243.32.71

Page 32: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Shodan

Page 33: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Shodan

Page 34: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

BuiltWith

pip install builtwith

builtwith.parse(‘https://ep2016.europython.eu’)

Page 35: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Analysis metadata

Page 36: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Analysis metadata

Page 37: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Analysis metadata

Page 38: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Port Scanning

Page 39: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Python-nmap

Automating port scanning

Synchronous and asynchronous modes

import nmap # Synchronous nm = nmap.PortScanner() # nm.scan(‘ip/range’,’port_list’) results = nm.scan('127.0.0.1', '22,25,80,443')

Page 40: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

NmapScanner

Page 41: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

NmapScanner

for port in port_list: NmapScanner().nmapScan(ip, port)

Page 42: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

NmapScanner Async

#Asynchronous nm_async = nmap.PortScannerAsync() def callback_result(host, scan_result): print '------------------' print host, scan_result nm_async.scan(hosts='192.168.1.0/30', arguments='-sP', callback=callback_result) while nm_async .still_scanning(): print("Waiting >>>") nm_async.wait(2)

Page 43: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

NmapScanner Async

Page 44: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Scripts Nmap

Page 45: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Scripts Nmap

Programming routines allow to find potential vulnerabilities in a given target

First check if the port is open

Detect vulnerabilities in the service port openned

nm.scan(arguments="-n -A -p3306 --script=/usr/share/nmap/scripts/mysql-info.nse")

Page 46: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Mysql Scripts Nmap

Page 47: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Check FTP Login Anonymous

Page 48: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Check FTP Login Anonymous

Page 49: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Check Webs sites

pip install pywebfuzz

https://github.com/disassembler/pywebfuzz

Page 50: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

PyWebFuzz

from pywebfuzz import fuzzdb import requests logins = fuzzdb.Discovery.PredictableRes.Logins domain = "http://192.168.56.101" for login in logins: print “Checking... "+ domain + login response = requests.get(domain + login) if response.status_code == 200: print "Login Resource: " +login

Page 51: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

PyWebFuzz

Page 53: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Heartbleed

Page 54: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Heartbleed

Page 55: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Advanced tools

Page 56: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Metasploit

python-msfrpc

Page 57: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Metasploit API call

Calls in msgpack format

Page 58: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Nexpose

Tool developed by Rapid7 for scanning and vulnerability discovery.

It allows programmatic access to other programs via HTTP/s requests.

BeautifulSoup to obtain data from vulnerabilities server

Page 59: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Nexpose

Page 60: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Pentesting tool

Page 61: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

https://github.com/jmortega/python-pentesting

Page 62: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

https://github.com/jmortega/europython_ethical_hacking

Page 63: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

References & libs

http://docs.shodanhq.com

http://docs.python-requests.org/en/master/

http://scrapy.org

http://xael.org/pages/python-nmap-en.html

http://www.pythonsecurity.org/libs

https://github.com/dloss/python-pentest-tools

http://kali-linux.co/2016/07/12/python-tools-for-penetration-testers%E2%80%8B/

https://github.com/PacktPublishing/Effective-Python-Penetration-Testing

Page 64: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Books

Page 65: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

Books

Page 66: PenTest using Python · PDF fileTools Scapy Capturing and analysing network packets FiMap Detecting RFI/LFI vulnerabilites XSScrapy Detecting XSS vulnerabilites

THANK YOU!