SlideShare a Scribd company logo
1 of 18
A beginner’s guide to contributing to an
Open Source Project
Module Making in recon-ng
NovaHackers June 2013Micah Hoffman @WebBreacher
Who am I?
 Micah Hoffman - @WebBreacher
 Internal penetration tester
 Recon-ng module-maker
 SANS Mentor
 Appalachian Trail hiker
NovaHackers June 2013Micah Hoffman @WebBreacher
The Setup
 Wanted to learn a new language
 Needed a reason/direction
 Thought about contributing to some tool
 No coding experience
 Found recon-ng
 Fit with my work tasks
 Fit with the programming language I use (python)
 How do you contribute?
NovaHackers June 2013Micah Hoffman @WebBreacher
Recon-ng (Highlights)
Language Python (2.7)
Code Management Git (bitbucket.org)
Owner Tim Tomes - @LaNMaSteR53
Purpose Web Reconnaissance
framework
NovaHackers June 2013Micah Hoffman @WebBreacher
Code Management - git
 Make account on bitbucket.org
 Fork recon-ng repository (copy into your
account)
 Set up your computer to work on the code
 Python, IDE/Text Editor (syntax highlighting
helps)
 git
 Learn about git
 Lotsa docs on Interwebs
 Fork, Clone, Pull, Add, Commit, Push, Branch
NovaHackers June 2013Micah Hoffman @WebBreacher
What will the module do?
 Generally the hardest part for me
 Get ideas:
 Twitter, coworkers/friends, web sites you use
 Keep a log of ideas
 Overall function of my module
 User enters information
 recon-ng retrieves data from site
 Parse response data for something
 Display
NovaHackers June 2013Micah Hoffman @WebBreacher
Google IDs
 Thought:
 Google Analytics and Google AdSense codes are
used on multiple sites
 Means that sites are related somehow
 Same developers?
 Same maintainers?
 Same owners?
 Simple Regexes to locate codes
 ["'](UA-d+)
 ["'](pub-d+)
NovaHackers June 2013Micah Hoffman @WebBreacher
Find a web app for lookups
NovaHackers June 2013Micah Hoffman @WebBreacher
Look at response/results
NovaHackers June 2013Micah Hoffman @WebBreacher
Results parse-able?
• Yes!
• Regex: <div class="row"><a[^>]*>(.+?)</a>
NovaHackers June 2013Micah Hoffman @WebBreacher
Make the module
 RTFM – recon-ng
 https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Home
 Examine other modules
NovaHackers June 2013Micah Hoffman @WebBreacher
The code
NovaHackers June 2013Micah Hoffman @WebBreacher
The results
NovaHackers June 2013Micah Hoffman @WebBreacher
Submission and Review
 Git add/commit/push to your account
 Create a “pull” request to pull into tool’s main
trunk
 Module will be reviewed and commented on
 Address issues/comments
 Resubmit
 Lather, rinse, repeat
 Pull request accepted and merged
 Git clone the main branch

 Move to the next module
NovaHackers June 2013Micah Hoffman @WebBreacher
Bonus: dev_diver
 How about a module that takes a
hacker/coder nym and checks coding sites
for it?
 Introducing dev_diver (not in recon-ng yet!)
 Got the module…just need a hacker name
 Volunteers?
NovaHackers June 2013Micah Hoffman @WebBreacher
Thanks for volunteering Rob!
“mubix” it is!
NovaHackers June 2013Micah Hoffman @WebBreacher
Bonus: dev_diver
7,946 photos
NovaHackers June 2013Micah Hoffman @WebBreacher
Micah Hoffman @WebBreacher
http://webbreacher.blogspot.com/
Questions?

More Related Content

Viewers also liked

Protecting confidential files using SE-Linux
Protecting confidential files using SE-LinuxProtecting confidential files using SE-Linux
Protecting confidential files using SE-Linux
Giuseppe Paterno'
 
How to make an e learning module
How to make an e learning moduleHow to make an e learning module
How to make an e learning module
TooNey Krongpho
 

Viewers also liked (16)

Protecting confidential files using SE-Linux
Protecting confidential files using SE-LinuxProtecting confidential files using SE-Linux
Protecting confidential files using SE-Linux
 
Audit
AuditAudit
Audit
 
SHOWDOWN: Threat Stack vs. Red Hat AuditD
SHOWDOWN: Threat Stack vs. Red Hat AuditDSHOWDOWN: Threat Stack vs. Red Hat AuditD
SHOWDOWN: Threat Stack vs. Red Hat AuditD
 
How To Train Your Python
How To Train Your PythonHow To Train Your Python
How To Train Your Python
 
Open Audit
Open AuditOpen Audit
Open Audit
 
Linux audit framework
Linux audit frameworkLinux audit framework
Linux audit framework
 
Dealing with Linux Malware
Dealing with Linux MalwareDealing with Linux Malware
Dealing with Linux Malware
 
Bringing Infosec Into The Devops Tribe: Q&A With Gene Kim and Pete Cheslock
Bringing Infosec Into The Devops Tribe: Q&A With Gene Kim and Pete CheslockBringing Infosec Into The Devops Tribe: Q&A With Gene Kim and Pete Cheslock
Bringing Infosec Into The Devops Tribe: Q&A With Gene Kim and Pete Cheslock
 
Whitepaper: User Audit Options for Linux and Solaris
Whitepaper: User Audit Options for Linux and SolarisWhitepaper: User Audit Options for Linux and Solaris
Whitepaper: User Audit Options for Linux and Solaris
 
Python build your security tools.pdf
Python build your security tools.pdfPython build your security tools.pdf
Python build your security tools.pdf
 
MySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionMySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise Edition
 
2009-08-11 IBM Teach the Teachers (IBM T3), Linux Security Overview
2009-08-11 IBM Teach the Teachers (IBM T3), Linux Security Overview2009-08-11 IBM Teach the Teachers (IBM T3), Linux Security Overview
2009-08-11 IBM Teach the Teachers (IBM T3), Linux Security Overview
 
Network Security and Analysis with Python
Network Security and Analysis with PythonNetwork Security and Analysis with Python
Network Security and Analysis with Python
 
Linux Security Scanning with Lynis
Linux Security Scanning with LynisLinux Security Scanning with Lynis
Linux Security Scanning with Lynis
 
How to make an e learning module
How to make an e learning moduleHow to make an e learning module
How to make an e learning module
 
Handling of compromised Linux systems
Handling of compromised Linux systemsHandling of compromised Linux systems
Handling of compromised Linux systems
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Module Making in recon-ng

  • 1. A beginner’s guide to contributing to an Open Source Project Module Making in recon-ng NovaHackers June 2013Micah Hoffman @WebBreacher
  • 2. Who am I?  Micah Hoffman - @WebBreacher  Internal penetration tester  Recon-ng module-maker  SANS Mentor  Appalachian Trail hiker NovaHackers June 2013Micah Hoffman @WebBreacher
  • 3. The Setup  Wanted to learn a new language  Needed a reason/direction  Thought about contributing to some tool  No coding experience  Found recon-ng  Fit with my work tasks  Fit with the programming language I use (python)  How do you contribute? NovaHackers June 2013Micah Hoffman @WebBreacher
  • 4. Recon-ng (Highlights) Language Python (2.7) Code Management Git (bitbucket.org) Owner Tim Tomes - @LaNMaSteR53 Purpose Web Reconnaissance framework NovaHackers June 2013Micah Hoffman @WebBreacher
  • 5. Code Management - git  Make account on bitbucket.org  Fork recon-ng repository (copy into your account)  Set up your computer to work on the code  Python, IDE/Text Editor (syntax highlighting helps)  git  Learn about git  Lotsa docs on Interwebs  Fork, Clone, Pull, Add, Commit, Push, Branch NovaHackers June 2013Micah Hoffman @WebBreacher
  • 6. What will the module do?  Generally the hardest part for me  Get ideas:  Twitter, coworkers/friends, web sites you use  Keep a log of ideas  Overall function of my module  User enters information  recon-ng retrieves data from site  Parse response data for something  Display NovaHackers June 2013Micah Hoffman @WebBreacher
  • 7. Google IDs  Thought:  Google Analytics and Google AdSense codes are used on multiple sites  Means that sites are related somehow  Same developers?  Same maintainers?  Same owners?  Simple Regexes to locate codes  ["'](UA-d+)  ["'](pub-d+) NovaHackers June 2013Micah Hoffman @WebBreacher
  • 8. Find a web app for lookups NovaHackers June 2013Micah Hoffman @WebBreacher
  • 9. Look at response/results NovaHackers June 2013Micah Hoffman @WebBreacher
  • 10. Results parse-able? • Yes! • Regex: <div class="row"><a[^>]*>(.+?)</a> NovaHackers June 2013Micah Hoffman @WebBreacher
  • 11. Make the module  RTFM – recon-ng  https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Home  Examine other modules NovaHackers June 2013Micah Hoffman @WebBreacher
  • 12. The code NovaHackers June 2013Micah Hoffman @WebBreacher
  • 13. The results NovaHackers June 2013Micah Hoffman @WebBreacher
  • 14. Submission and Review  Git add/commit/push to your account  Create a “pull” request to pull into tool’s main trunk  Module will be reviewed and commented on  Address issues/comments  Resubmit  Lather, rinse, repeat  Pull request accepted and merged  Git clone the main branch   Move to the next module NovaHackers June 2013Micah Hoffman @WebBreacher
  • 15. Bonus: dev_diver  How about a module that takes a hacker/coder nym and checks coding sites for it?  Introducing dev_diver (not in recon-ng yet!)  Got the module…just need a hacker name  Volunteers? NovaHackers June 2013Micah Hoffman @WebBreacher
  • 16. Thanks for volunteering Rob! “mubix” it is! NovaHackers June 2013Micah Hoffman @WebBreacher
  • 17. Bonus: dev_diver 7,946 photos NovaHackers June 2013Micah Hoffman @WebBreacher