Windows基础2(病毒编写)
Windows基础2(病毒编写)
Windows基础之病毒编写学习笔记
声明
学习视频笔记均来自B站UP主" 泷羽sec",如涉及侵权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
常见端口对应的服务以及漏洞
21 FTP
23 tenlnet
80 web
81-89 可能是web,有些人因为某些原因,不使用80端口,将其更换为81-89端口
443 ssl,旧版本存在心脏滴血漏洞,以及存在一些其它web漏洞
445 smb
1433 msqql
1521 oracle
2082/2083 cpanel 主机管理系统登陆(国外用的较多)
2222 da 虚拟主机管理系统登陆(国外较多)
3128 squid 代理默认端口-漫游内网
3306 mysql
3312/3311 kangle 主机管理系统登陆
3389 远程桌面
5432 postgreSQL
5900 vnc 远程桌面分享系统(VNC(Virtual Network Computing)是一种远程控制软件,允许用户通过图形界面远程访问和控制另一台计算机。)
6379 redis(未授权)
7001/7002 weblogic 默认弱口令,反序列化
7778 kloxo 主机控制面板登陆
8000-9090 一些常见的web端口,有些运维喜欢把管理后台开在这些非80端口上面
8080 tomacat、wdcp主机管理系统 默认弱口令
8080,、8089、9090 jboss
8083 vestacp 主机管理系统(国外较多)
8649 ganglia
8888 宝塔 主机管理默认端口
10000 virtuamin/webmin 服务器虚拟主机管理系统
11211 memcache 未授权访问
27017、27018 mongodb 未授权访问
28017 mongodb 统计系统页面
常用的cmd命令
1、echo
echo /? (查看echo的帮助提示)
echo 1 (输出1)
echo 1 >1.txt (输出1,并重定向到1.txt文件)
echo 45678 >>1.txt (把内容追加到1.txt文件)
2、dir
dir 展示当前目录的文件
dir 展示当前目录的所有文件(含隐藏文件)
3、c: d: 等和cd
d: 切换到d盘
c: 切换到c盘
cd filename 进入到文件夹filename中,注意这里使用的是相对路径,若是使用绝对路径可为cd c:/user/filename等
cd . 进入当前目录
cd … 回退到上一级目录
4、tree(文件树状图)
tree /? 查看帮助文档
tree /f 显示每个文件夹中的名称,如tree C:\Users\Administrator /f
tree /a 使用ascii字符,而不使用扩展字符,如tree C:\Users\Administrator /a
(在渗透测试中比较常用)
5、md创建目录和rd删除目录
md是mkdir的缩写(二者作用一致)
md kkk (在当前目录创建名为kkk的文件夹)
rd kkk (在当前目录删除名为kkk的文件夹)
tab 补全功能,例如rd k(tab键),就可以将文件夹名补全为kkk等
6、ipconfig
ipconfig 显示当前的网络状态、IP配置,一般用这个命令查看网络本机IP地址,排查网络问题
ipconfig /all 把本机所有的网络信息打印出来
7、cls(清屏)
8、copy(复制拼接文件)
copy /? 查看帮助文档
copy 1.txt …/1.txt 把1.txt复制到上一级目录
copy 1.txt C:/Users/Administrator/Desktop/1.txt 把1.txt复制到用户名为Administrator的桌面目录下
copy 1.txt …/2.txt 把1.txt文件复制到上一级目录,并重命名为2.txt
copy命令也可以用来拼接,如1.txt(内容为123)、2.txt(内容为456),copy 1.txt+2.txt 3.txt,此时查看3.txt内容便是
需要注意的是copy的/b命令,该命令常用语制作图片木马,不带 /b 的 copy 命令用于复制单个文件或整个目录(文件夹),而/b 选项用于以二进制模式复制文件。
为什么说不带/b的copy命令只用于复制单个文件或整个目录?这是因为如果文件不以二进制的形式来结合的话,会使复制后的文件遭到破坏。但是为什么上面的copy命令不带/b操作又能成功呢?
在查询了AI后,AI给出了解释:
所以上边我的1.txt和2.txt都是文本文件,不涉及二进制数据,这样的情况下不带/b的copy命令才能够成功,那么我们看一下使用不带含有/b的copy命令将含有二进制数据的文件结合会是怎样的
可以看到,生成的3.png文件的大小为13字节,这与1.png文件的81867字节相差甚远,且3.png文件无法打开,如果我们尝试用带/b参数的copy命令又会怎样呢?
可以看到,使用/b参数后生成的4.png文件大小为81873字节,正好是1.png和2.txt两个文件大小之和,且4.png可以正常打开,从外观上看与1.png无所差别,这就是为什么我们使用copy命令来制作图片马的原因。(放在画图工具里自己拉的图,请勿介意大小,因为两张图片其实是一样大的,只是我没拉好)
9、move(文件移动)
move …/1.txt 4.txt(把上一级目录的1.txt文件移动到本级目录,并且重命名为4.txt
与copy不同的是,copy是复制,使用copy命令除了目的路径会生成文件外,源路径的文件并不会消失,而move是移动,源路径的文件消失,转移到目的路径上
10、ren(重命名)
ren 4.txt 5.txt (把4.txt重命名为5.txt)
11、del(删除)
del 1.txt 2.txt 3.txt (删除1.txt、2.txt、3.txt这三个文件)
这个命令所删除的文件是永久删除的,不会进入回收站
12、ping(一般用于探测主机是否存货)
ping /? (查看命令帮助文档)
-t (一直ping)
-l XX (指定发送XX字节的数据包,Windows为-l,Linux为-s)
13、type(显示文本文件的内容)
首先用echo abcagaengpiengpag >> 1.txt
type 1.txt 便可以看到打印出了abcagaengpiengpag
14、reg(注册表)
reg /? (查看帮助文档)
-
添加注册表项: 使用
reg add
命令可以添加新的子项或值到注册表中。基本语法如下:reg add KeyName [/v EntryName | /ve] [/t DataType] [/s Separator] [/d Value] [/f]
-
KeyName
指定子项的完全路径,如HKLM\Software\Microsoft\Windows\CurrentVersion
。 -
/v EntryName
指定要添加的值的名称。 -
/t DataType
指定值的数据类型,如REG_SZ
、REG_DWORD
等。 -
/d Value
指定新注册表项的值。 -
/f
表示强制覆盖,不提示确认。
-
-
删除注册表项: 使用
reg delete
命令从注册表中删除项或子项。基本语法如下:reg delete KeyName [/v EntryName | /ve | /va] [/f]
-
KeyName
指定子项的完全路径。 -
/v EntryName
删除子项下的特定项。 -
/va
删除指定子项下的所有项。 -
/f
表示强制删除,不提示确认。
-
-
查询注册表: 使用
reg query
命令查询注册表中的项和值。基本语法如下:reg query KeyName [/v EntryName | /ve] [/s]
-
KeyName
指定子项的完全路径。 -
/v EntryName
返回特定的项及其值。 -
/s
递归查询所有子项和值。
-
-
导出注册表: 使用
reg export
命令将注册表项导出到文件中。基本语法如下:reg export KeyName FileName
-
KeyName
指定子项的完全路径。 -
FileName
指定导出文件的名称和路径。
-
-
导入注册表: 使用
reg import
命令将包含导出的注册表项的文件复制到本地计算机的注册表中。基本语法如下:reg import FileName
-
FileName
指定要导入的文件名称和路径。
-
-
保存注册表: 使用
reg save
命令将指定的子项、项和注册表值的副本保存到指定文件中。基本语法如下:reg save KeyName FileName
-
KeyName
指定子项的完全路径。 -
FileName
指定所创建的文件的名称和路径。
-
-
恢复注册表: 使用
reg restore
命令将保存的子项和项写回到注册表。基本语法如下:reg restore KeyName FileName
-
KeyName
指定子项的完全路径。 -
FileName
指定要恢复的文件名称和路径。
-
编辑注册表之前应该备份计算机上任何有价值的数据,因为不当的操作可能会严重损坏系统。
15、nslookup(探测域名信息)
nslookup www.baidu.com
nslookup -d www.baidu.com(查看历史解析记录)
16、find(查找)
find /? 查看帮助文档
先在1.txt中输入各种字符串并分行,而后通过find命令进行查找
find /n “a” 1.txt (在1.txt文件中查找带有a参数的字段并显示行号)
/v 显示不包含字符串的行
/c 在找到的字符串周围显示指定数量的文本行
/I 忽略大小写
17、tasklist(任务列表 显示出当前的进程名称等信息)
18、taskklii(杀死进程)
taskkill /?(查看帮助文档)
琢磨了许久,没能找到用进程杀死360或者火绒的方法,留待后续再尝试一下,有知道的朋友也可以告诉一下,谢谢。
19、ver、winver(显示版本)
20、start(启动命令)
例如 start cmd(打开cmd)
start calc(打开计算器)
start ping www.baidu.com -t(启动ping命令并执行-t参数)
21、systeminfo(查看整个系统的信息)
可以查看一些比较重要的信息,例如补丁的信息。在内网渗透过程中,有时候需要进行提权的一个操作,就需要通过补丁信息来查看操作系统缺少哪些相关补丁,而后通过这些补丁对应的漏洞去进行提权或其他渗透方法。
22、logoff(注销)
logoff /?(查看帮助文档)
在后期提权成功的话,需要用到3389远程登陆桌面,可能会碰到系统已经是连接状态,这个时候可以使用logoff命令将对方的登陆状态注销掉,但是需要注意的是如果对方在远程会话中进行了工作但未保存,强制注销可能会导致未保存的数据丢失,可能引发一系列后果,所以慎用。
23、shutdown(关机)
shutdown /?(查看帮助文档)
24、telnet(协议工具)
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。
控制面板-程序-打开或关闭Windows功能-telnet客户端(勾选)
25、arp(ip与MAC地址的映射关系)
arp /?(查看帮助文档)
arp -a(用于发现同一网络有哪些主机,假设通过内网渗透获取了一台内网机器,可以通过这条命令查看当前内网有哪些主机,以助于横向移动)
26、at(定时计划)
例如,要在每周的周一、周二中午12点运行 notepad.exe,可以使用以下命令
at 12:00 PM /every:mon,tue notepad.exe
列出所有的计划
删除计划
at 1 /delete
27、net(服务)
net stop telnet(关闭telnet服务)
net start telnet(开启telnet服务)
net user (查看当前用户)
net user admin 123 /add(增加一个用户名为admin,密码为123的用户)
net user admin(查看普通用户admin的权限,当前属于Users组)
net user administrator(查看管理员用户administrator权限,当前为adminisrators组)
net localgroup administrators admin /add(进行提权操作,将admin用户提权为管理员权限)
net user admin /delete(删除admin用户)
了解了基本命令后,可以开始练习编写bat(批处理文件)病毒
在编写之前,我们需要了解一下,病毒是什么?
网络病毒是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
经测试,无法删除内置账户(Administrator),需要获取管理员权限。
写在最后的总结,请记住:
渗透测试一定要遵守法律!渗透测试一定要遵守法律!渗透测试一定要遵守法律!