Малка Π·Π°Π΄Π½Π° Π²Ρ€Π°Ρ‚Π° Π½Π° Flask ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ Π² Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΡ€Π΅ΠΆΠ°

Π₯Π΅ΠΉ Π₯Π°Π±Ρ€!

Наскоро Π³Π»Π΅Π΄Π°Ρ… ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π° вСрсия Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ β€žΠšΠ°ΠΊ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ своС собствСно ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ във Flask.β€œ И Ρ€Π΅ΡˆΠΈΡ… Π΄Π° консолидирам знанията си Π² някакъв ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π”ΡŠΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ… ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° напиша ΠΈ ΠΌΠΈ Ρ…Ρ€ΡƒΠΌΠ½Π° идСята: β€žΠ—Π°Ρ‰ΠΎ Π΄Π° Π½Π΅ направя ΠΌΠΈΠ½ΠΈ-Π±Π΅ΠΊΠ΄ΠΎΡ€ във Flask?β€œ

ΠŸΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° внСдряванС ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Π·Π°Π΄Π½Π°Ρ‚Π° Π²Ρ€Π°Ρ‚Π° Π²Π΅Π΄Π½Π°Π³Π° сС появиха Π² Π³Π»Π°Π²Π°Ρ‚Π° ΠΌΠΈ. Но Ρ€Π΅ΡˆΠΈΡ… Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° направя списък с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Π·Π°Π΄Π½Π°Ρ‚Π° Π²Ρ€Π°Ρ‚Π°:

  1. Π—Π½Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° отварятС уСбсайтовС
  2. Π˜ΠΌΠ°Ρ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ командния Ρ€Π΅Π΄
  3. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° отварятС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, снимки, Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅

И Ρ‚Π°ΠΊΠ°, ΠΏΡŠΡ€Π²Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ лСсна Π·Π° изпълнСниС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° Π·Π° ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€. Π Π΅ΡˆΠΈΡ… Π΄Π° внСдря Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€