Skip to content

Commit

Permalink
Merge pull request #198 from BloodHoundAD/JsonUpdate
Browse files Browse the repository at this point in the history
2.0
  • Loading branch information
rvazarkar authored Aug 7, 2018
2 parents ecc4286 + b717015 commit 9aae6da
Show file tree
Hide file tree
Showing 78 changed files with 10,283 additions and 4,611 deletions.
Binary file modified Ingestors/DebugBuilds/SharpHound.exe
Binary file not shown.
Binary file modified Ingestors/DebugBuilds/SharpHound.pdb
Binary file not shown.
Binary file modified Ingestors/SharpHound.exe
Binary file not shown.
395 changes: 220 additions & 175 deletions Ingestors/SharpHound.ps1

Large diffs are not rendered by default.

39 changes: 38 additions & 1 deletion LICENSE-3RD-PARTY.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,41 @@ jQuery-UI
All files located in the node_modules and external directories are
externally maintained libraries used by this software which have their
own licenses; we recommend you read them, as their terms may differ from
the terms above.
the terms above.


stream-json
This library is available under the terms of the modified BSD license. No external contributions
are allowed under licenses which are fundamentally incompatible with the BSD license that this library is distributed under.

The text of the BSD license is reproduced below.

-------------------------------------------------------------------------------
The "New" BSD License:
**********************

Copyright (c) 2005-2018, Eugene Lazutkin
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Eugene Lazutkin nor the names of other contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html>
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="src/css/font-awesome.min.css">
<link type="text/css" rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css">
<link type="text/css" rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
<link type="text/css" rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap-theme.min.css">
<link type="text/css" rel="stylesheet" href="src/css/styles.css">
Expand Down
1 change: 0 additions & 1 deletion main.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ const electron = require('electron')
var platform = require('os').platform()
// Module to control application life.
const app = electron.app
const Tray = electron.Tray
const Menu = electron.Menu

// Module to create native browser window.
Expand Down
22 changes: 16 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bloodhound",
"version": "1.5.2",
"version": "2.0.0",
"description": "Graph Theory for Active Directory",
"keywords": [
"Graph",
Expand Down Expand Up @@ -50,22 +50,32 @@
"webpack-hot-middleware": "^2.21.0"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^5.1.1",
"async": "^2.6.0",
"bootstrap": "^3.3.7",
"bootstrap-3-typeahead": "^4.0.2",
"dagre": "^0.7.4",
"electron-store": "^1.3.0",
"eventemitter2": "^4.1.0",
"fast-csv": "^2.4.1",
"fontfaceobserver": "^2.0.13",
"image-size": "^0.6.3",
"image-type": "^3.0.0",
"is-zip-file": "^1.0.2",
"jquery": "^3.2.1",
"linkurious": "^1.5.1",
"md5-file": "^4.0.0",
"mustache": "^2.3.0",
"neo4j-driver": "^1.5.2",
"react": "^16.2.0",
"neo4j-driver": "^1.6.2",
"prop-types": "^15.6.2",
"react": "^16.4.2",
"react-bootstrap": "^0.32.0",
"react-dom": "^16.2.0",
"react-dom": "^16.4.2",
"react-if": "^2.1.0",
"react-images": "^0.5.19",
"react-photo-gallery": "^6.1.2",
"react-transition-group": "^2.2.1",
"unzipper": "^0.8.9"
"stream-json": "^1.1.0",
"unzipper": "^0.8.9",
"uuid": "^3.3.2"
}
}
80 changes: 54 additions & 26 deletions src/AppContainer.jsx
Original file line number Diff line number Diff line change
@@ -1,31 +1,53 @@
import React, { Component } from 'react';
import GraphContainer from './components/Graph';
import SearchContainer from './components/SearchContainer/SearchContainer';
import SpotlightContainer from './components/Spotlight/SpotlightContainer';
import LogoutModal from './components/Modals/LogoutModal';
import CancelUploadModal from './components/Modals/CancelUploadModal';
import ClearWarnModal from './components/Modals/ClearWarnModal'
import ClearConfirmModal from './components/Modals/ClearConfirmModal'
import ClearingModal from './components/Modals/ClearingModal'
import LoadingContainer from './components/Float/LoadingContainer';
import GenericAlert from './components/Float/Alert';
import RawQuery from './components/RawQuery';
import MenuContainer from './components/Menu/MenuContainer';
import ExportContainer from './components/Float/ExportContainer';
import Settings from './components/Float/Settings'
import ZoomContainer from './components/Zoom/ZoomContainer'
import QueryNodeSelect from './components/Float/QueryNodeSelect'
import SessionClearModal from './components/Modals/SessionClearModal'
import About from './components/Modals/About.jsx'
import { CSSTransition, TransitionGroup } from 'react-transition-group';
import React, { Component } from "react";
import GraphContainer from "./components/Graph";
import SearchContainer from "./components/SearchContainer/SearchContainer";
import SpotlightContainer from "./components/Spotlight/SpotlightContainer";
import LogoutModal from "./components/Modals/LogoutModal";
import DeleteEdgeModal from "./components/Modals/DeleteEdgeModal";
import DeleteNodeModal from "./components/Modals/DeleteNodeModal";
import AddNodeModal from "./components/Modals/AddNodeModal";
import AddEdgeModal from "./components/Modals/AddEdgeModal";
import CancelUploadModal from "./components/Modals/CancelUploadModal";
import ClearWarnModal from "./components/Modals/ClearWarnModal";
import ClearConfirmModal from "./components/Modals/ClearConfirmModal";
import ClearingModal from "./components/Modals/ClearingModal";
import LoadingContainer from "./components/Float/LoadingContainer";
import GenericAlert from "./components/Float/Alert";
import RawQuery from "./components/RawQuery";
import MenuContainer from "./components/Menu/MenuContainer";
import ExportContainer from "./components/Float/ExportContainer";
import Settings from "./components/Float/Settings";
import ZoomContainer from "./components/Zoom/ZoomContainer";
import QueryNodeSelect from "./components/Float/QueryNodeSelect";
import SessionClearModal from "./components/Modals/SessionClearModal";
import About from "./components/Modals/About.jsx";
import HelpModal from "./components/Modals/HelpModal.jsx";
import NodeEditor from "./components/Float/NodeEditor";
import { CSSTransition, TransitionGroup } from "react-transition-group";

export default class AppContainer extends Component {
componentDidMount(){
document.addEventListener('dragover', function(event){
event.preventDefault();
return false;
}, false)

document.addEventListener('drop', function(event){
event.preventDefault();
if (jQuery("#tabcontainer").has(jQuery(event.target)).length === 1){
emitter.emit("imageupload", event)
}else{
emitter.emit("filedrop", event)
}

return false;
}, false)
}

render() {
return (
<TransitionGroup className="max">
<CSSTransition classNames="mainfade"
appear
timeout={1000}>
<TransitionGroup className="max">
<CSSTransition classNames="mainfade" appear timeout={1000}>
<div className="max">
<GenericAlert />
<ExportContainer />
Expand All @@ -34,6 +56,10 @@ export default class AppContainer extends Component {
<GraphContainer />
<SearchContainer />
<LogoutModal />
<DeleteEdgeModal />
<DeleteNodeModal />
<AddNodeModal />
<AddEdgeModal />
<ClearWarnModal />
<ClearConfirmModal />
<ClearingModal />
Expand All @@ -45,9 +71,11 @@ export default class AppContainer extends Component {
<ZoomContainer />
<QueryNodeSelect />
<About />
<NodeEditor />
<HelpModal />
</div>
</CSSTransition>
</TransitionGroup>
);
};
}
}
}
40 changes: 23 additions & 17 deletions src/components/Float/Alert.jsx
Original file line number Diff line number Diff line change
@@ -1,47 +1,53 @@
import React, { Component } from 'react';
import { Alert } from 'react-bootstrap';
import React, { Component } from "react";
import { Alert } from "react-bootstrap";


export default class GenericAlert extends Component {
constructor(){
constructor() {
super();
this.state = {
visible: false,
text: "No data returned from query",
timeout: null
};

emitter.on('showAlert', this._show.bind(this));
emitter.on('hideAlert', this._dismiss.bind(this));
emitter.on("showAlert", this._show.bind(this));
emitter.on("hideAlert", this._dismiss.bind(this));
}

_dismiss(){
this.setState({visible: false});
_dismiss() {
this.setState({ visible: false });
}

_show(val){
_show(val) {
clearTimeout(this.state.timeout);
var t = setTimeout(function(){
this._dismiss();
}.bind(this), 2500);

var t = setTimeout(
_ => {
this._dismiss();
},
2500
);

this.setState({
visible: true,
text: val,
timeout: t
});

}

render() {
if (this.state.visible){
if (this.state.visible) {
return (
<Alert className="alertdiv" bsStyle="danger" onDismiss={this._dismiss.bind(this)}>
<Alert
className="alertdiv"
bsStyle="danger"
onDismiss={x => this._dismiss}
>
{this.state.text}
</Alert>
);
}else{
} else {
return null;
}

}
}
Loading

0 comments on commit 9aae6da

Please sign in to comment.