Hi Habr!
O chionn ghoirid choimhead mi dreach a chaidh a luchdachadh sìos den t-sruth prògramadh “Mar a chruthaicheas tu an tagradh lìn agad fhèin ann am Flask.” Agus cho-dhùin mi mo chuid eòlais a dhaingneachadh ann am pròiseact air choreigin. Airson ùine mhòr cha robh fios agam dè a sgrìobhas mi agus thàinig am beachd thugam: “Carson nach dèan thu cùl-raon beag ann am Flasg?”
Nochd a ’chiad roghainnean airson buileachadh agus comasan an backdoor sa bhad nam cheann. Ach chuir mi romhpa liosta de chomasan backdoor a dhèanamh sa bhad:
- Faigh eòlas air mar a dh’fhosglas tu làraich-lìn
- Faigh cothrom air loidhne-àithne
- A bhith comasach air prògraman, dealbhan, bhideothan fhosgladh
Mar sin, tha a’ chiad phuing air leth furasta a bhuileachadh le bhith a’ cleachdadh modal brobhsair lìn. Cho-dhùin mi an dàrna puing a chuir an gnìomh a’ cleachdadh modal os. Agus tha an treas fear cuideachd tron mhodal os, ach cleachdaidh mi “ceanglaichean” (barrachd air sin nas fhaide air adhart).
A ' sgrìobhadh am frithealaiche
Mar sin, * drumroll * còd an fhrithealaiche gu lèir:
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')
Tha mi air a’ chòd gu lèir a dhumpadh mu thràth, tha an t-àm ann a’ bhrìgh a mhìneachadh.
Bidh a h-uile còd a 'ruith air a' choimpiutair ionadail air port 5000. Gus eadar-obrachadh leis an fhrithealaiche, feumaidh sinn iarrtas JSON POST a chuir.
Structar iarrtas JSON:
{‘command’: ‘comecommand’, ‘data’: ‘somedata’}
Uill, tha e ciallach gur e ‘àithne’ an àithne a tha sinn airson a chur an gnìomh. Agus 's e 'data' na h-argamaidean àithne.
Faodaidh tu iarrtasan JSON a sgrìobhadh agus a chuir a-steach gus eadar-obrachadh leis an fhrithealaiche le làimh (cuidichidh iarrtasan thu). No faodaidh tu neach-dèiligidh tòcan a sgrìobhadh.
A 'sgrìobhadh neach-dèiligidh
Còd:
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
Mìneachaidhean:
An toiseach, tha am modal iarrtasan air a thoirt a-steach (airson eadar-obrachadh leis an fhrithealaiche). Gu h-ìosal tha tuairisgeul air na gnìomhan tòiseachaidh is deuchainn. Agus an uairsin bidh an cearcall anns a bheil an draoidheachd a 'tachairt. An do leugh thu an còd? Mar sin tuigidh tu brìgh na draoidheachd a tha a’ tachairt anns a’ chearcall. Cuir a-steach an àithne - tha e air a chur gu bàs. Shell - òrdughan airson an loidhne-àithne (tha an loidsig far sgèile).
Deuchainn - thoir sùil a bheil am frithealaiche a’ ruith (backdoor)
Ceangal - cleachdadh “ath-ghoirid”
Openweb - a 'fosgladh làrach-lìn
Fàg - fàg an neach-dèiligidh
Suidhich - a 'suidheachadh ip a' choimpiutair agad air an lìonra ionadail
Agus a-nis barrachd mu dheidhinn ceangal.
Tha faidhle link.txt ri taobh an fhrithealaiche. Tha ceanglaichean ann (làn shlighe) gu faidhlichean (bhideothan, dealbhan, prògraman).
Tha an structar mar a leanas:
полный_путь>описание
полный_путь>описание
An toradh
Tha frithealaiche backdoor againn airson smachd a chumail air coimpiutair air lìonra ionadail (taobh a-staigh lìonra wi-fi). Gu teicnigeach, is urrainn dhuinn an neach-dèiligidh a ruith bho inneal sam bith aig a bheil eadar-theangair python.
PS Chuir mi an àithne suidhichte gus an tèid IP eadar-dhealaichte a thoirt do choimpiutair air an lìonra ionadail, faodar atharrachadh gu dìreach anns a’ chleachdaiche.
Source: www.habr.com