提及内网定位,无论针对内网查找资料还是针对分外人物都是非常实用的一项技能。这里把目前能够利用的手段&工具都逐一进行讲解。
0x02 做事器(机器)定位
网络域以及域内用户信息

常用网络域信息命令:
Net useNet viewTasklist /vIpconfig /all net group /domain 得到所有域用户组列表net group “domain admins” /domain 得到域管理员列表net group “enterprise admins” /domain 得到企业管理员列表net localgroup administrators /domain 获取域内置administrators组用户(enterprise admins、domain admins)net group “domain controllers” /domain 得到域掌握器列表net group “domain computers” /domain 得到所有域成员打算机列表net user /domain 得到所有域用户列表net user someuser /domain 得到指定账户someuser的详细信息net accounts /domain 得到域密码策略设置,密码是非,缺点锁定等信息nltest /domain_trusts 获取域信赖信息
net view 看机器注释或许能得到当前活动状态的机器列表,tasklist可以得到当前机器跑着的域账号。
构造剖析
从打算机名获取ipv4地址:
利用nbtstat命令可以实现:nbtstat -a DC1,ping命令也可以实现:
C:\Documents and Settings\Administrator\Desktop>ping -n 1 DC1 -4Pinging DC1.centoso.com [192.168.206.100] with 32 bytes of data:Reply from 192.168.206.100: bytes=32 time<1ms TTL=128Ping statistics for 192.168.206.100: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
如果打算机名很多的时候,可以利用bat批量ping获取ip:
@echo offsetlocal 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)))
末了可以把所有得到domain admins账号再net user 下,为这些信息按内容分别建立文件进行剖析。
例如:
Users.txt 存放和用户信息有关的内容Group.txt 存放和分组信息干系的内容信息网络的姿势:
人事组织构造图例如:
像这种人事组织构造图,很多公司和企业的外部站点上就有。然后结合剖析人事资料里干系员工全称与域内用户名对应关系,就能很快定位到须要定位的职员利用的机器。
内部邮箱如果你能进某个用户内部邮箱,也可以从邮件头提取有用的信息。找寻跟目标用户来往的邮件,仔细查看邮件头。“X-Originating-IP”头常常会涌现,这就可以让你追踪到目标IP。
工具常用工具:Dsquery/Dsget,Ldifde,Csvde,Adexplorer,Adfind,wmi,powershell…
工具利用参考:低级域渗透系列 – 01. 基本先容&信息获取
注:掌握扫描的频率和速率,可以大大降落触发IDS的风险,针对windows机器,可以考虑用wmi脚本和powershell脚本进行扫描,低频扫描可以很随意马虎的绕过IDS的规则,同时可以考虑利用内网管理工具利用的相同协议进行扫描探测。Tips:
内网无工具扫描
http://rinige.com/index.php/archives/112/
一条 cmd 命令办理:
for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1 | find /i \公众ttl\"大众
ping 全体 c 段,只输出有相应的主机。
% H\"大众 g% Q+ _6 q- P7 t
更变态的:
4 o4 g8 X- v9 x& w
域机器对应 IP
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.)
把 net view 的结果,挨个 ping 一遍,并输出机器名和 ip 地址。
找主机名
for /l %i in (1,1,255) do @ping -a 10.0.1.%i -w 1 -n 1 | find /i \"大众Pinging\"大众
B 段查找
for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i \"大众Pinging\"大众
Win7
for /l %i in (1,1,255) do @ping -a 10.0.1.%i -w 1 -n 1 | find /i \公众Pinging\"大众for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i \"大众Pinging\"大众
改成
for /l %i in (1,1,255) do @ping -a 10.0.1.%i -w 1 -n 1 | find /i \"大众Ping\"大众for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i \"大众Ping\公众
就可以兼容 Win7 了。(Win7 ping -a 输出结果关键词为 “Ping”)
其余findstr /i “pinging” 或 findstr /i “ping” 可以换成 findstr “[” 的 可以适宜多措辞环境
0x03 文件定位
结合做事器定位总结出文件定位的大致思路:
定位人力资源主管个人机定位人力资源干系文档存放位置从人力资源文档中找干系人定位干系人的机器监视干系人事情时存放文档的位置列出存放文档做事器的目录文件定位须要把稳的点:
产品名称内部名称项目卖力人项目团队生产部(分公司,工厂,代工厂)履历
FTPSMBDCNETLOGON\产品管理系统(仓库管理系统)各种数据库其他做事器(分公司,工厂,代工厂)定位文件做事器请参考上一节定位做事器(机器),定位到文件做事器和某个人,对付文件定位来说该当会事半功倍。这里就不过多阐述了。
参考:后渗透攻防的信息网络
0x04 管理员定位
工具
psloggedon.exe
系统自带工具。通过考验注册表里HKEY_USERS的key值来查询谁上岸过机器,同样也调用到了NetSessionEnum API。某些功能须要管理员权限
netsess.exe
netsess.exe的事理也是调用NetSessionEnum API,并且在远程主机上无需管理员权限。
PVEFindADUser.exe
用于列举域用户以及上岸过特定系统的用户,须要管理员权限。工具描述:corelan
netview.exe
利用WinAPI列举系统,利用 NetSessionEnum 来找寻上岸sessions, 利用NetShareEnum来找寻共享 , 利用 NetWkstaUserEnum 来列举上岸的用户。它也能查询共享入口和有代价用户,还能利用延迟和抖动。绝大部分功能不须要管理员权限。
Nmap的Nse脚本
如果你有域账户或者本地账户,你可以利用Nmap的smb-enum-sessions.nse 脚本来获取远程机器的登录session,并且不须要管理员权限。
参考:
nmap加载nse脚本在内网渗透中的利用-上nmap加载nse脚本在内网渗透中的利用-下Smbexec&Veil-Pillage
然后Smbexec有个 checkda模块,它可以检测域管进程和域管上岸。Veil-Pillage有它的 user_hunter 和group_hunter 模块,这两个工具都须要管理员权限。
hunter
hunter是一款利用 Windows API 调用来列举跳板机上的用户登录信息的工具,无需管理员权限
Active Directory
你可以通过AD信息来识别一些连接到做事器的用户
参考:
http://www.harmj0y.net/blog/redteaming/trusts-you-might-have-missed/http://www.sixdub.net/2014/11/offensive-event-parsing-bringing-home-trophies/PowerShell
上面也曾提到针对windows机器,可以考虑用wmi脚本和powershell脚本进行扫描,低频扫描可以很随意马虎的绕过IDS的规则。PowerShell有很多方法Windows Api并且绕过白名单。
参考:
通过PowerShell访问Windows ApiPowerView
PowerView 里面有一些功能可以赞助找寻定位关键用户。要找到目标对应的用户时Get-UserProperties 将会提取所有用户的属性,并且Invoke-UserFieldSearch可以根据通配符来找寻特定用户的干系属性。这可以缩小目标搜索范围。比如说:我们利用这些功能来找Linux管理员组和其干系的成员,就可以追踪和键盘记录他们的putty/ssh会话。
Invoke-UserHunter 功能可以找到域内特定用户群。它支持一个用户名,用户列表,或域组查询,并支持一个主机列表或查询可用的主机域名。它会利用 Get-NetSessions 和Get-NetLoggedon(调用NetSessionEnum和 NetWkstaUserEnum API) 对每个做事器跑一遍而且会比较结果筛选出目标用户集。而且这个工具不须要管理员权限。
命令参考:
Get-NetGroups -> Get-NetGroupGet-UserProperties -> Get-UserPropertyInvoke-UserFieldSearch -> Find-UserFieldGet-NetSessions -> Get-NetSessionInvoke-StealthUserHunter -> Invoke-UserHunter -StealthInvoke-UserProcessHunter -> Invoke-ProcessHunter -Username XGet-NetProcesses -> Get-NetProcessGet-UserLogonEvents -> Get-UserEventInvoke-UserEventHunter -> Invoke-EventHunter
Invoke-StealthUserHunter 只要一个查询就可以获取域内所有用户, 从user.HomeDirectories提取所有用户, 并且会对每个做事器进行Get-NetSessions 获取。无需利用 Invoke-UserHunter对每台机器操作,这个办法的暗藏性就更高一点,但是涉及到的机器面不一定那么全。
一样平常默认利用Invoke-StealthUserHunter ,除非找不到我们所需,才会去利用Invoke-UserHunter方法。
Invoke-UserProcessHunter是PowerView 的新功能。利用Get-NetProcesses cmdlet 来列举远程机器的tasklists和进程探求目标用户。这个列举功能须要管理员权限。
Get-UserLogonEvents cmdlet可以查询查询登录事宜(如:ID 4624)远程主机,Invoke-UserEventHunter 查询特定用户在域控上面的上岸日志,须要域管理权限。
参考:
The Diamond Model and Network Based Threat Replication其他一些姿势
内部邮箱如果你能进某个用户内部邮箱,也可以从邮件头提权有用的信息。找寻跟目标用户来往的邮件,仔细查看邮件头。“X-Originating-IP”头常常会涌现,这就可以让你追踪到目标IP。
查找域管进程Scott Sutherland (@_nullbind) 2012年写了篇查找域管进程的文章。 个中详细讲述了如何利用tasklist和nbtscan的批处理来扫描机器及用户。不过远程tasklist的时候,须要本地管理员权限。
参考:
hunt for domain admin processes
0x05 总结
内网渗透,不是大略的耍泼皮的说”可内网渗透”或者“内网漫游”,有着更高更深的任务和需求,有着更多设备和报警及防护软件(如Bit9,惠普ARCsight,Mandiant等等)的打破,有着更多网络拓扑和构造须要清晰洞察,有着更多的域控和域须要盘踞。 定位到内网管理员或者管理员上过的机器或者定位到文件和某个人,对付内网渗透来说该当会事半功倍。
0x06 参考
http://www.mottoin.com/92978.htmlhttp://weibo.com/p/1001603825952793692575https://github.com/l3m0n/pentest_studyhttp://www.harmj0y.net/blog/penetesting/i-hunt-sysadmins/