Title: Bacon
1Bacon
- A Penetration and Auditing Framework
Hernan Gips gipsh_at_rubic.cc
2Common problems
- A lot of independent tools uses same input
- Most tools are developed in c/c
- Tools run in certain platforms
- Tools need to be modified
- Others
3Solution Bacon
- A flexible and extendible Framework oriented to
the security community.
4Overview
- Based on .NET Framework
- Modular Architecture
- Multi language support
- Opensource
- Multiplatform
- Fully OO Design
5What Bacon is not
- An automatic penetration tool
- hack-in-a-minute tool
- A static tool
6Framework
- Ability to load modules
- Keeps session information
- Provides entities to store specific information
like targets, ports, services, etc - Provides libraries for proxing, sniffing, etc.
7Framework
- Bacon is multiplatform.
- Runs with
- .NET Framework
- Mono
- Any ECMA VM implementation
8 Architecture
9Internal Context
- The framework provides information entities
oriented to security and networking.
GenericList
Network
TargetCollection
ServiceCollection
Target
Service
10Internal Context
- Each module has RW access to the context.
- Internal implementation uses XML
- Developer can use the entities or directly access
via generic XPath queries.
11Internal Context
Target
Context
SMTP VRFY Dictionary Attack
Session data
POP3 Brute force Attack
Mail Addresses
Users
Google Mails Finder
12Modules
- Each module is a DLL compiled in .NET
- Framework loads modules using reflection.
- Modules are multithreading
- Each module runs on an different Application
Domain
13Modules Reflection
- A developer may creates its own plugin in any
language that generates .NET assembly.
14Modules
- Well known languages
- C
- VB.NET
- C.NET
- Not so well known
- IronPython
- Boo
15Modules
- Every modules inherits from Bacon.Plugin abstract
class - This class provides two methods
- Start()
- Stop()
- Module has facilities to
- Access the context
- Log debug information
16Modules
- Example module source code in C
Plugin("Test", "plugin for testing
purposes") public class TestPlugin
Bacon.Plugin Command("listdump", "command
to test something") . . Command(listus
ers", "command to test something")
17Modules
- Modules has commands defined on it
- Each command has different parameters
Command("hack", "hacks something") class
HackCommand Bacon.Command public
override void Execute() .
18Modules
Plugins Loader
Plugins Manager
19Modules
20Modules Module chaining
Network Scan ICMP
TCP port scanner connect()
Web directory finder
Web file finder
input 192.168.0.0/24
Targets
Services
Report Generator
Dirs
Files
Dictionary
XML
21Remoting
- The Framework exposes its own interface like a
remote service. - This is useful to create distributed attacks.
22Framework Interface
- Integrated Command Line Console
23Framework Interface
- Uses Winforms
- Each module may provide its own GUI
24Framework Interface
-
- You may create your own interface. (i.e. a web
interface) - You may also create a common GUI generator for
each module
25Framework Services
- ProxyLib Service
- SniffLib Service
- FuzzLib Service
- Other
26Framework ProxyLib
- Creates simple proxies
- HTTP, Sockets, etc
- Hook to events
27State of Dev
- Bacon got sponsored!
- The framework architecture is mostly closed
- We are working on creating new modules and a nice
GUI.
28Future
- Module creation process ? Now
- Opensource official release ? 3 Months
- Community site release ? 1 Month
29Conclusion
- We want to create a standard framework for
pentesting and auditing networks and
applications. - We want the security community uses it and
develops module for the framework
30Any Questions?
31The End.
- Hernan Gips
- gipsh_at_rubic.cc