1 of 65

PENTEST�COLLABORATION�FRAMEWORK �Armory

gitlab.com/invuls/pentest-projects/pcf

2 of 65

Shaposhnikov Ilya

  • Rostelecom, RedTeam member�
  • Student at Bauman Moscow State University�
  • Captain of “Invuls” security team and “SFT0” CTF university team�
  • IoT security researcher

#WHOAMI

3 of 65

Network offensive project types

4 of 65

Network offensive project types

S

SOLO

One person does all the work.

5 of 65

Network offensive project types

S

P

PAIR

Multiple testers.

SOLO

One person does all the work.

6 of 65

Network offensive project types

T

S

P

PAIR

Multiple testers.

SOLO

One person does all the work.

TEAM

Whole team is involved.

7 of 65

Main work problems:

8 of 65

scope.txt

Storage of initiation information about the project

Main work problems:

9 of 65

scope.txt

Storage of initiation information about the project

Network

Information about network obtained during testing

Main work problems:

10 of 65

3

scope.txt

Storage of initiation information about the project

Network

Information about network obtained during testing

Report

Generating reports

Main work problems:

11 of 65

3

4

scope.txt

Storage of initiation information about the project

Network

Information about network obtained during testing

Report

Generating reports

Teamwork

Team collaboration

Main work problems:

12 of 65

3

5

4

scope.txt

Storage of initiation information about the project

Network

Information about network obtained during testing

Report

Generating reports

Storage

Keeping all projects in a single standard

Teamwork

Team collaboration

Main work problems:

13 of 65

3

5

4

scope.txt

Storage of initiation information about the project

Network

Information about network obtained during testing

Exchange

Fast transmission of vulnerability information without reporting

Report

Generating reports

Storage

Keeping all projects in a single standard

Teamwork

Team collaboration

Main work problems:

14 of 65

scope.txt

hosts.xls

id_rsa

domains.txt

client.ovpn

network

Problem №1: project initial information

  • Scope�
    • Networks�
    • Domains�
    • Final goals�
  • Connection intructions�
  • Project timing�
  • Testers

1

2

15 of 65

Problem №2: network testing information

  • Network�
    • Domains�
    • Opened ports/services�
  • Issues�
    • Credentials�
    • Vulnerabilities�
  • Integration with tools

16 of 65

Problem №3: teamwork

17 of 65

Problem №3: teamwork

  • “Oh, I have already scanned this host for opened ports!”�

18 of 65

Problem №3: teamwork

  • “Oh, I have already scanned this host for opened ports!”�
  • “Did anyone bruted directories at …?”�

19 of 65

Problem №3: teamwork

  • “Oh, I have already scanned this host for opened ports!”�
  • “Did anyone bruted directories at …?”�
  • “You can find credentials at whatsapp/jira or …�better take this USB storage :)”

20 of 65

Problem №3: teamwork

  • “Oh, I have already scanned this host for opened ports!”�
  • “Did anyone bruted directories at …?”�
  • “You can find credentials at whatsapp/jira or …�better take this USB storage :)”�
  • “There is a heardbleed at … Why noone told me about it?!”

21 of 65

Problem №4: report creation

  • ~ 100 issues�~ 100 report pages�~ (100 x N) wasted time�
  • Identical templates but same wasted time every project�
  • No pentester likes report creation�
  • Same report standarts for whole team

22 of 65

Problem №5: fast information exchange

23 of 65

Problem №5: fast information exchange

  • “I need to create a report only 1 critical vulnerability? Can I just send its description to system administrator?”

24 of 65

Problem №5: fast information exchange

  • “I need to create a report only 1 critical vulnerability? Can I just send its description to system administrator?”�
  • > Can you send me a vulnerability of … project? There is the same issue inside mine project. ��< No problems, but I can’t give you all project information due to security. Wait an hour, will try to export information from it.

25 of 65

Problem №6: projects storage

  • “We need an NFS server for our projects!”��
  • “Who can tell me where to find a report for second pentest of XXX company?”��
  • “Let’s check first if they fixed previously found vulnerabilities? Oh... Where are they?.. and who tested this before?”

26 of 65

Current solutions

27 of 65

Current solutions

01

PAID

Utilities for which full functionality is available only with a paid subscription

1

28 of 65

Current solutions

01

02

ONLINE

Online utilities, which are not always safe to store information about projects in the cloud

2

PAID

Utilities for which full functionality is available only with a paid subscription

1

29 of 65

Current solutions

01

02

03

ONLINE

Online utilities, which are not always safe to store information about projects in the cloud

2

PAID

Utilities for which full functionality is available only with a paid subscription

1

DEPRECATED

Outdated utilities, the most famous of which is Lair Framework.

3

Lair

Framework

30 of 65

31 of 65

Pentest Collaboration Framework

  • Opensource -> Free�
  • Cross-Platform: Python v3.9�
  • Portable: Flask + SQLite3�
  • Easy installation�
  • Cloud support�
  • Tools integration�
  • … and more features!

32 of 65

Pentest Collaboration Framework

Disadvantages:�

  • Slower�
    • Python + Flask�
    • SQLite3 (portability)�
  • No react interface yet�
  • Some requests are extrimely slow due to many operations (example: large scan import)�
  • No websocket support yet

33 of 65

First steps into

34 of 65

Step #0: Framework installation

Choose your runtime options

35 of 65

Step #0: Framework installation

01

Docker

Usually takes up a lot of space

1

Choose your runtime options

36 of 65

Step #0: Framework installation

01

02

Standalone

You only need Python and git on your computer

2

Docker

Usually takes up a lot of space

1

Choose your runtime options

37 of 65

Step #0: Framework installation

01

02

03

Standalone

You only need Python and git on your computer

2

Docker

Usually takes up a lot of space

1

Cloud

Installation on the cloud using these buttons on the PCF repository page

3

Choose your runtime options

38 of 65

Step #0: Framework installation

Config editing

39 of 65

Step #0: Framework installation

Config editing

Scheduled database backup

Database: SQLite3 or PostgreSQL

40 of 65

Step #0: Framework installation

Config editing

Scheduled database backup

Website speed & security

Database: SQLite3 or PostgreSQL

41 of 65

Step #0: Framework installation

Config editing

Scheduled database backup

Website speed & security

Additional authorization

Database: SQLite3 or PostgreSQL

42 of 65

Step #0: Framework installation

Config editing

Scheduled database backup

Website speed & security

Additional authorization

HTTPS

Database: SQLite3 or PostgreSQL

43 of 65

Path of PCF “hero"

44 of 65

Path of PCF “hero"

WORKSPACE

Special workplace for users & teams

45 of 65

Step #1: Workspaces

46 of 65

Step #1: Workspaces

Config

Logs

Templates

API Tokens

User info

47 of 65

Step #1: Workspaces

Config

Logs

Templates

API Tokens

User info

Teams

Admins

48 of 65

Step #1: Workspaces

Config

Logs

Templates

API Tokens

User info

Projects

Teams

Admins

49 of 65

Path of PCF “hero"

WORKSPACE

Special workplace for users & teams

PROJECT�MODERATION

Moderation and usage instructions

50 of 65

Step #2: Projects moderation

51 of 65

Path of PCF “hero"

WORKSPACE

Special workplace for users & teams

PROJECT�MODERATION

Moderation and usage instructions

PROJECT�INFORMATION

Types of information which can be stored

52 of 65

Step #3: Project information

Network information

  • IP
    • Ports�
    • Domains�
    • Comments�
    • Check status�
    • OS�
  • Networks�
  • Hosts/Ports export tool

53 of 65

Step #3: Project information

Issues storage

  • Connection with..
    • ip
    • ip : port
    • hostname
    • hostname : port
  • Share URL
  • Issues templates
  • Proof-of-Concept
    • Image
    • Text

54 of 65

Step #3: Project information

Notes & Files

  • Notes can be connected with hosts�
  • Save scanner output�
  • Personal notes�
  • Project files �(example: keys)

55 of 65

Step #3: Project information

Discovered credentials

  • Table with credentials�
  • Multiple credentials import from txt (example: from .csv)�
  • Fast hash check with 10k popular passwords�
  • Export credentials

56 of 65

Step #3: Project information

External tools integration

  • Import
    • Nmap
    • Nessus
    • Qualys
    • . . .
  • Export
    • ip / port
    • credentials
  • Scan
    • Shodan
    • ipwhois

57 of 65

Step #3: Project information

Sniffers - HTTP sniffer

58 of 65

Path of PCF “hero"

WORKSPACE

Special workplace for users & teams

PROJECT�MODERATION

Moderation and usage instructions

PROJECT�INFORMATION

Types of information which can be stored

INFORMATION�EXPORT

Reports generation & JSON export

59 of 65

Step #4: Data export

  • JSON-data�
  • Report - python jinja engine�
    • txt/html/tex/…�
    • zip (txt/html/tex/…)�
    • docx

60 of 65

Path of PCF “hero"

WORKSPACE

Special workplace for users & teams

PROJECT�MODERATION

Moderation and usage instructions

PROJECT�INFORMATION

Types of information which can be stored

API

Special interface for communicating with PCF

INFORMATION�EXPORT

Reports generation & JSON export

61 of 65

Step #5: API

62 of 65

DEMO!

63 of 65

#TODO

  • Flask -> Django�
  • Vue.js�
  • Websockets�
  • ORM database�
  • Net-NTLM sniffer
  • More tool integrations�
  • Network graph update�
  • Google cloud support

64 of 65

Questions?

Repo 🚀: gitlab.com/invuls/pentest-projects/pcf

Chat 💬: t.me/PentestCollaborationFramework

Demo: pcf-hacktivitycon.herokuapp.com

Contacts: @drakylar (vk.com, telegram, facebook, linkedin, discord), iljashaposhnikov@gmail.com

65 of 65

THE END?

Repo 🚀: gitlab.com/invuls/pentest-projects/pcf

Chat 💬: t.me/PentestCollaborationFramework

Demo: pcf-hacktivitycon.herokuapp.com

Contacts: @drakylar (vk.com, telegram, facebook, linkedin, discord), iljashaposhnikov@gmail.com