This commit is contained in:
Oran Nadler 2018-05-15 16:42:51 +03:00
parent f6ebf0b51c
commit 2724e671f7
3 changed files with 32 additions and 5 deletions

View File

@ -2,7 +2,7 @@ import hashlib
import binascii
import copy
import flask_restful
from pthreport import PassTheHashReport, Machine
from pthreport import PassTheHashReport, Machine, get_report_html
from cc.auth import jwt_required
from cc.services.edge import EdgeService
@ -19,6 +19,11 @@ class PthMap(flask_restful.Resource):
return \
{
"graph": {
"nodes": [{"id": x, "label": Machine(x).GetIp()} for x in v],
"edges": [{"id": str(s) + str(t), "from": s, "to": t, "label": label} for s, t, label in e]
},
"report_html": get_report_html()
}

View File

@ -1229,3 +1229,23 @@ def main():
print """</div>"""
if __name__ == "__main__":
main()
from cStringIO import StringIO
import sys
class Capturing(list):
def __enter__(self):
self._stdout = sys.stdout
sys.stdout = self._stringio = StringIO()
return self
def __exit__(self, *args):
self.extend(self._stringio.getvalue().splitlines())
del self._stringio # free up some memory
sys.stdout = self._stdout
def get_report_html():
with Capturing() as output:
main()
return "\n".join(output)

View File

@ -29,6 +29,7 @@ class PassTheHashMapPageComponent extends AuthComponent {
super(props);
this.state = {
graph: {nodes: [], edges: []},
report_html: "",
selected: null,
selectedType: null,
killPressed: false,
@ -55,7 +56,7 @@ class PassTheHashMapPageComponent extends AuthComponent {
this.authFetch('/api/pthmap')
.then(res => res.json())
.then(res => {
this.setState({graph: res});
this.setState({graph: res["graph"], report_html: res["report_html"]});
this.props.onStatusChange();
});
};
@ -70,6 +71,7 @@ class PassTheHashMapPageComponent extends AuthComponent {
<div>
<Graph graph={this.state.graph} options={options} />
</div>
<div>{this.state.report_html}</div>
</Col>
</div>
);