常用命令

cmd命令

会持续补充。

systeminfo | findstr /b /c:“OS 名称” /c:“修补程序”

echo %username% #差不多等同于whoami(返回主机名/用户名)

hostname

ipconfig /all

type file.txt #获取文件内容

routeprint # 查看路由表

arp -A #显示所有可用接口的arp

#以上三条命令可以了解防火墙规则以及活动网络连接

netstat -ano

-a #显示所有连接和侦听端口

-n #以数字形式显示地址和端口号

-o #显示拥有的与每个连接关联的进程 ID

tasklist /svc # 显示正在运行的程序以及启动的服务

net start #枚举开启的服务(无参数时)


WMIC

WMIC(Windows Management Instrumentation Command-Line,Windows管理工具命令行)。wmic有两种运行方式:命令行模式以及wmic后面直接跟命令运行。

#wmic的一些基本用法 可以利用 wmic /? or wmic 对象名称 /?

比如:wmic process get /?

#查看wmic对象可用属性

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
wmic process where(description="cmd.exe") get executablepath or >> cmd.txt
#查询cmd的路径并输出 或 保存到cmd.txt文件中

wmic process list brief
#列出进程的核心信息类似任务管理器

wmic serivce where caption="zhudongfangyu" call stopservice
wmic serivce where name="zhudongfangyu" call stopservice
#停止zhudongfangyu服务,注意name和caption是有区别的name="服务名称"、caption="显示名称"。

wmic process get description,executablepath
#获取进程名称及路径

wmic product get name,version or wmic product list brief
#查看安装的软件

wmic process call create "taskmgr.exe"
#创建一个进程

wmic computersystem get Name, Domain, Manufacturer/format:list
#获取系统用户名、所属域、制造商

wmic datafile where name='C:\Users\user1\Desktop\cmd.txt' get /format:list
#获取文件属性,包括:压缩方法、创建日期、文件大小、是否可读、是否为系统文件、加密状态及加密类型等

wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /c:"KB..."
#获取已安装补丁的信息

wmic nteventlog where filename='system' cleareventlog
#清理系统日志

sc

sc是用于服务控制管理器和服务进行通信的命令行程序。

用法:

​ sc <server> [command] [service name] <option1> <option2>..

​ 选项 <server> 的格式为: “\\ServerName”

1
2
3
4
#提升系统权限为system(sc命令在运行时被赋予了system权限)
sc create sesshijack binpat= "cmd /c start" type= own type= interact
sc start sesshijack
#注意这里属性值前要加空格,另外似乎只有在xp上可以利用,本地2008会有弹窗提示,需点击查看信息才可以获得交互式shell。

注:其实感觉在已经拿到了administrator权限以后需要操作注册表用这个方法也还是可以的~

schtasks

允许管理员创建、删除、查询、更改、运行、和中止本地或远程系统上的计划任务

SCHTASKS /parameter [arguments]

部分参数详情(schtasks /create /?):

/RU username 指定任务在其下运行的“运行方式”用户账户(用户上下文)。

/TN taskname 指定唯一识别这个计划任务的名称。

/TR taskrun 指定在这个计划时间运行的程序的路径和文件吗。

/ST starttime 指定运行任务的开始时间。如果未指定 /ST,则默认值为当前时间。/SC ONCE 必需有此选项(每时、每天、每月等)。

msiexec

msiexec.exe,系统进程,是Windows Installer的一部分。用于安装Windows Installer安装包(MSI)。

部分参数详解(msiexec /?):

/i 安装或配置产品

/q 隐藏安装界面

1
2
3
4
#msf生成后门文件test.msi
msfvenom -f msi -p windows/exec CMD=calc.exe > test.msi
#安装并执行后门
msiexec /i test.msi

注:这里/q /i 两个参数顺序不能变。


admin权限提升至system

通过sc命令

1
2
sc create sesshijack binpat= "cmd /c start" type= own type= interact
sc start sesshijack

通过计划任务

通过system权限启动的进程,默认情况下不在用户桌面显示。

1
2
3
4
5
6
#创建以system权限运行的服务
schtasks /create /TN service1 /SC DAILY /ST 00:36 /TR notepad.exe /RU SYSTEM
#查看服务状态
schtasks /query /TN service1
#删除服务
schtasks /delete /TN service /F

1
2
at 00:00 notepad.exe
#太简单了不上图了,命令行需要以管理员权限运行。

通过利用psexec

psexec是一个命令行工具,允许用户在远程系统上执行进程并将控制台输出重定向到本地系统,以便应用程序看起来在本地运行,可以自下面的windows sysinternals处下载。

#用到的参数详解

-accepteula 抑制许可证对话框的显示。

-s 在系统账户中运行远程进程。

-d 不等待进程终止(非交互式)。

1
2
3
4
#以system权限启动进程
psexec.exe -accepteula -s -d notepad.exe
#通过-i参数,使system权限的进程在用户桌面显示
psexec.exe -accepteula -s -i -d notepad.exe

这里有一点需要注意,命令行需要以管理员权限运行,否则执行pesexec会提示错误“Couldn’t install PSEXESVC service:拒绝访问。”

Meterpreter

没有复现该方法,有机会再补上吧,文末三好师傅原文可以看到具体方法。

利用MSIExec获得system权限

没有复现该方法,有机会再补上吧,文末三好师傅原文可以看到具体方法。

利用token复制获得system权限

没有复现该方法,有机会再补上吧,文末三好师傅原文可以看到具体方法。

利用Capcom.sys获得system权限

没有复现该方法,有机会再补上吧,文末三好师傅原文可以看到具体方法。

注:今天太累了准备睡觉,明天继续。


windows sysinternals

sysinternals

accesschk

该工具可以自动化j检测我们是否拥有一个windows服务的写权限。

accesschk “username” c:\windows\system32

#查看username用户对c:\windows\system32目录的操作权限

accesschk

参考

渗透技巧——从Admin权限切换到System权限