Giter Club home page Giter Club logo

lair's Introduction

lair

Lair is a reactive attack collaboration framework and web application built with meteor.

Deploy

Getting Started

Information on how to install, run, build, and develop the project are available in the wiki.

Maintainers

Tom Steele

Dan Kottmann

Security

If you identify any security issues in the project, please contact the maintainers privately. We will work with you to resolve the issue. Your support is highly appreciated.

lair's People

Contributors

0xdevalias avatar chrismgeiger avatar djkottmann avatar ilyaglow avatar jamesbcook avatar sequel7 avatar stevecoward avatar tomsteele avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lair's Issues

Host OS list doesn't sort correctly

Under unknown contexts the OS list under the Host > OS tab does not sort correctly. Occasionally changing the weighting of a specific OS causes the wrong OS fingerprint weight to adjust.

Export page

Create a complete export page that allows for granular selection of what to export.

Create project from existing

Add an option to create a project from existing sources. Essentially, create a new project from existing projects. There should be options to include only certain projects, specific IPs/CIDRs, and certain tags (see #5).

[Feature Request] One-click Copy PID to clipboard

Add a javascript button (and perhaps associated hotkey) that copies the current PID to the system clipboard.

The double-click highlight gets more than you want (at least in chrome) and slow-drag highlighting, is well, a drag.

[Vulnerabilities] Confirmed Boolean

I noticed in the json output for a project for a specific vulnerability there is a boolean titled "confirmed", however I don't see anything in the UI to toggle this setting.

Was this stubbed out for future use or am I missing the UI element for this?

I think it would be helpful. We tend to use the colors for this, but I think a seperate flag/boolean is more appropriate.

[Vulnerabilities] Currently able to create a vulnerability with no name

You're currently able to create a vulnerability with no name, even though it should be required.

  • Check for this in the add new vulnerability form

In addition to this, when a vulnerability has no name, you're unable to go to the details page for it as the link is missing.

  • If a vulnerability has no name, use a default string (eg. [blank]) to link to the details)

Add vulnerability to service typeahead problem

On the service, add vulnerability view (project//services//vulnerabilities/new) the "Title" text box does not perform the typehead lookup correctly. If a double-quote is present in any vuln title then the lookahead only retrieves a single character.

Grouping/Tagging Hosts (and other entries?)

I think it would be a useful feature to be able to assign hosts to one or more arbitrarily named groups (eg. database servers, SAP installations, etc)

To implement this in a more extensible/reusable way, you could assign 0 or more 'tags' to an entry/host/vulnerability/etc.

You would then be able to view a list of (new page?) all entries matching the specified tag/group of tags (eg. #windows #databases #prod), as well as using them in the search/filter options.

Being able to bulk assign a group of hosts (checkbox + button on hosts page) to a tag or group of tags would be useful.

[Notes] Ability to associate 'global' notes to a particular port/service/etc

This would allow you to associate a global note attached to a particular service/port/ combination, etc. This would show up for that service/port wherever it appears (on all hosts, etc)

Ideally, these global notes would be able to persist between projects.

I see this as being an easy way to provide helpful notes/knowledge base (eg. tools to use for further investigation of that service, command line options, notes of things to remember/investigate further, etc) This would enhance the information sharing aspects, especially allowing newer/less experienced team members to benefit more from the wisdom of those more experienced testers.

'@' character in Mongo Password causes issues with nodejs

I get the following with an '@' in my mongo password:

screen shot 2014-04-20 at 9 22 24 pm
'''
Enter a new lair database username: sudo
Enter password: ( @sudo in this case)
MongoDB shell version: 2.4.8
connecting to: 127.0.0.1:11015/admin
Sun Apr 20 21:19:37.206 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
Starting Lair http server on 127.0.0.1:11016
Starting Lair https to http proxy on 10.37.102.2:11013

Access Lair at https://10.37.102.2:11013/
Drones can access the mongodb instance at mongodb://sudo:@[email protected]:11014/lair?ssl=true
'''
Without the character, lair starts and connects to mongo

screen shot 2014-04-20 at 9 25 46 pm

'''
lair-v1.0.4-darwin-x64 $ ./start.sh 10.37.102.2
Starting stunnel on 10.37.102.2:11014
Starting MongoDB on 127.0.0.1:11015
Have you previously added mongodb users? [y/n] y

Enter lair database username: root
Enter password: Starting Lair http server on 127.0.0.1:11016
Starting Lair https to http proxy on 10.37.102.2:11013

Access Lair at https://10.37.102.2:11013/
Drones can access the mongodb instance at mongodb://root:[email protected]:11014/lair?ssl=true
'''

Highlight Exploitable Vulnerabilities

When importing Nessus results can the vulnerabilities that are tagged by Nessus as exploitable by Metasploit, Core, or Canvas be marked as critical so that I don't have to hunt for them? The Nessus output includes the XML tag <exploit_framework_metasploit> and similar tags for Core and Canvas. Also you could add a note to show which Metasploit module is referenced in the Nessus output.

Unauthenticated user email account enumeration

It is currently possible to enumerate all user account email addresses. We were aware of this during development, it is a common issue amongst Meteor.js apps. Occurrence in Lair is because we needed a way to get the amount of users, so we publish the user data set prior to authentication. Should be able to fix with a server side call.

Paginate results for hosts and services

Pages that return complete lists of available services or hosts should be paginated using one of the many packages on atmosphere. If this is not used, large projects will load extremely slowly.

Enable persistent host filtering by color

Currently, the filtering options on the Hosts view page do not persist after leaving the Hosts page. All color filtering options clear when leaving and coming back to the Host page.

[Services] Color and link to hosts on right hand side

I'm not sure that colouring can be changed on an individual line as it's currently implemented (and changing it from a textfield would lose the ability to ctrl-a)

I'm thinking the addition of 2 icons to the left/right of each line of the ip address list.

  • The first would show the current color for that host, and clicking on it would change the color.
  • The second would allow linking through to the associated host entry.

It may also be beneficial to provide an onhover option (3rd icon?) giving a summary of the host. This could use the same code that would be required by #42

[Hosts] Host summary onhover of IP address

This would be a convenience/UI enhancement to display an onhover dialog box with a summary of the details for a host.

I would think this should have a expandable headings for each main tab (services, vulnerabilities, operating systems, notes, hostnames, credentials)

These would show a number after them (eg. [+] Services (13)), and would be collapsed by default.

Any information/details that doesn't need to be collapsed would be shown as a string above the expandable headings.

An alternative to showing all this information onhover of the IP address would be to show it onhover for each particular cell/column. (Eg. hovering over the hostname for a particular entry would show the weighted list of all hostnames (and allow you to change the weighting/add new/etc?)

[Scripts] Menu option/page (similar to notes) for storing scripts + sitewide ability to run them

The current notes/developer console option is a good interim solution, but I think going forward it would be useful to have a seperate 'scripts' page.

This would allow you to save scripts (as you currently can with notes), but also specify the page/pages/etc where they can be run.

This would be coupled with a sitewide option to execute scripts on the current page (could be a button/dialog, dropdown showing avaialble scripts for the current context, keyboard shortcut #36 , etc)

This could also implement either a link, or a direct ability to load scripts from the Lair Browser Scripts repo (or alternatively allow adding your own personal repo/sources as well)

[Services] Search/filtering UI enhancements

When you click on a cell (to filter by that cell I believe?), you should fill the details for the filter into the relevant search boxes above.

Include a reset/clear button next to search (same effect as clearing them all and pressing search, but makes life a little easier)

Add support for RPM based Linux

start.sh script should have support for CentOS, Fedora, etc. Everything works except for compilation of stunnel. Addition to script should include elif for /etc/issue and check yum for openssl-dev.

[Hosts] Add a tab to host notes to display a summary of all service notes

This would be a new tab on the host notes page that allows you to view an amalgamation of all service/port notes for that host.

These would have the service/port associated with them shown (own column, header, ?) so they can be differentiated.

You would be able to add/edit/etc the notes as you can for each port.

[Services] Weighted list of names for services/product name/etc (Like Operating System)

Allowing services/product names to be specified with a weighted list (like operating systems) would allow more flexibility with recording information without losing potentially useful details.

Eg. nmap figures out it's http, another tool decides it's a tomcat server, we manually figure out that it's a specific implementation that makes use of tomcat.

This way we would preserve all of the information along the way (without having to make assumptions/rely on memory/etc)

Show last modified time

For all of the "Last Modified By" fields, it would be cool to be able to see the time that it occurred.

This could be an additional column, but to save screen space having it display onhover would probably be even better.

[Files] Add support for file upload

I think it would be useful to add support for uploading files as well as just linking to files (might already be a feature you're planning?)

This would make it easier to store all the other data that doesn't quite fit into Lair currently.

It would also make it possible for drones to upload the raw/unparsed file to be stored as evidence (this could then be linked from the 'updated by tool' or similar?)

Services view, remove vulnerability fails

When viewing an individual service, clicking on the 'vulnerabilities' tab, selected one or more vulnerabilities, and clicking 'remove' fails. It appears the vulnerability id is undefined.

start.sh fails if not in same directory

If you're not in the same directory as start.sh, it fails due to being unable to find files.

This could be enhanced to check/cd into the correct directory at the start of execution.

[Vulnerabilities] Button to edit vulnerability title/etc

It would be good to have a button to be able to manually edit the title, CVSS, etc for an already existing vulnerability.

  • You could include an inline edit link (and delete link?) for each vulnerability at /project/[uniqueid]/vulnerabilities
  • Include an edit button near the delete button at /project/[uniqueid]/vulnerabilities/[vulnid]

Built in console to run CLI tools

Was thinking about this today. Wonder if there is a way to possibly have a console built into the GUI. Then you can run nmap, nikto, sqlmap, etc and have the outputs automatically loaded into the DB.

Port table in services view

When a query has been performed on the services view, a sub table should be rendered which allows the client to toggle the color of ports for each host.

Replace deprecated 'addUser' Mongo call

MongoDB's 'addUser' command has been deprecated as of version 2.6. New releases of Mongo will include version 2.6.1+ of Mongo. Replace all instances of 'addUser' with Mongo's new method 'createUser'.

[UI/Functionality] Keyboard shortcuts (both sitewide where appropriate and specific on individual pages)

Being able to use keyboard shortcuts to navigate the features of the site, as well as specific functions on each page would increase usability/efficiency.

I envision this to work something like keyboard shortcuts on Github/GMail/etc

Could support vim style shortcuts as well as other custom ones?

Eg.

  • ? -> Show the available keyboard shortcuts
  • s or / for search -> Focus the search box so that additional text typed applies to it.
  • etc

Metasploit drone

Need a way to sync data back and forth with the Metasploit PostgreSQL database. Ideally, this would be done using some sort of pub/sub type functionality and require no user interaction, a run once type of service.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.