计算机/网安 面试例题(五)
内网渗透
00-内网渗透的流程
拿到跳板后,先探测一波内网存活主机,用net user /domian命令查看跳板机是否在域内,探测存活主机、提权、提取hash、进行横向移动,定位dc位置,查看是否有能直接提权域管的漏洞,拿到dc控制权后进行提权,然后制作黄金票据做好维权,清理一路过来的日志擦擦脚印
01-白银票据与黄金票据的原理
金票
在 Kerberos 认证中,Client 通过 AS(身份认证服务)认证后,AS 会给 Client 一个Logon Session Key 和 TGT,而 Logon Session Key 并不会保存在 KDC 中,krbtgt 的NTLM Hash 又是固定的,所以只要得到 krbtgt 的 NTLM Hash,就可以伪造 TGT 和Logon Session Key 来进入下一步 Client 与 TGS 的交互。而已有了金票后,就跳过AS 验证,不用验证账户和密码,所以也不担心域管密码修改
银票
如果说黄金票据是伪造的 TGT,那么白银票据就是伪造的 ST。在 Kerberos 认证的第三步,Client 带着 ST 和Authenticator3 向 Server 上的某个服务进行请求,Server 接收到 Client 的请求之后,通过自己的 Master Key 解密 ST,从而获
得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server 用户的 Hash 就可以伪造出一个 ST,且不会经过 KDC,但是伪造的门票只对部分服务起作用
金票和银票的区别
- 获取的权限不同
- 认证流程不同
- 加密方式不同
02-针对kerbores的攻击有哪些?
1. 用户名爆破
2. 密码喷洒和密码爆破
3. Kerberoasting
4. ASRepRoasting
5. 黄金票据和白银票据
6. MS14-068
7. 非约束委派、约束委派、基于资源的约束委派
8. 票据传递(ptt/ptk/ptc)
9. mimikatz加密降级攻击(万能钥匙)
10. 使用恶意的kerberos证书做权限维持
03-黄金票的条件要求
1.域名称[AD PowerShell模块:(Get-ADDomain).DNSRoot]
2.域的SID 值[AD PowerShell模块:(Get-ADDomain).DomainSID.Value](就是域成员SID值去掉最后的)
3.目标服务器的 FQDN
4.可利用的服务
5.域的KRBTGT账户NTLM密码哈希
6.需要伪造的用户名一旦攻击者拥有管理员访问域控制器的权限,就可以使用Mimikatz来提取KRBTGT帐户密码哈希值
04-横向连接方式
$IPC、Psexec、WMI、Schtasks、AT、SC、WINRM
05-如何获取内网中机器数量
可以使用命令net user /domian
使用扫描器扫一下
06-内网环境不出网怎么办?
1.通过webshell实现内网socket代理
2.正向链接
3.ssh隧道
4.协议不同出网的方式不同,如dns对应dnscat2 tcp对应
5.测试是否是特定协议或端口出网
07-kerberos协议认证
Kerberos是一种网络身份认证的协议,协议设计目的是通过使用秘钥加密技术为客户端/服务器应用程序提供强身份验证。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意的读取、修改和插入数据。
在以上情况下,Kerberos作为一种可信任的第三方认证服务,通过传统的密码技术执行认证服务。
Kerberos认证流程:
DC,Domain Controller,域控
KDC,Key Distribution Center,秘钥分发中心
AD,Account Database,账户数据库
AS,Authentication Server,身份验证服务
TGS,Ticket Granting Server,票据授予服务
TGT,Ticket Granting Ticket,票据中心授予的票据先去AS身份验证服务,返回身份验证,带着身份验证去TGS拿票据,带着拿回来的票据去服务器。
08-mimikatz使用方法
mimikatz是一款强大的系统密码破解获取工具。可以破解哈希值,是一个可加载的Meterpreter模块。
如果system的权限无法执行执行。需要先进行提权。
在meterpreter中输入run post/multi/recon/local_exploit_sugge ster,进行提权漏洞检测。
09-票据伪造
票据分为黄金票据和白银票据。
黄金票据是伪造TGT
伪造黄金票据必须拿到域控管理员的权限才可以。
伪造黄金票据的要求
- 域名城
- 域SID值
- 域的KRBTGT账户NTLM哈希密码
- 伪造用户名
10-拿下边界机器如何内网渗透?
拿下机器后,使用代理访问内网
Windows环境:reGeorg与proxifier
Linux环境:reGeorg与proxychains,
使用nmap等工具进行扫描,发现web服务的主机和其它信息。有时这些边界机器上会记录一些内网服务器上的一些信息(用户 ssh known_hosts hosts 防火墙设置 记录、内网之间好多waf 规则基本都是空,大多数waf防外部威胁,这时候可以拿到探测的内部一些开放的端口判断进行渗透,通常用户这里基本是统一命名的,拿到的各种记录 会暴露出部分内网通讯的ip。
11-windows、Linux下操作命令
1、Regedit 查看策略表
2、Msconfig 查看系统配置
3、Taskmgr 启动任务管理器
4、Eventvwr,msc 打开日志的命令
5、Gpedit.msc 打开本地组策略
6、Compmgmt.msc 计算机管理
7、Lusrmgr.msc 打开用户与组
8、Taskschd 打开计划任务
9、Net user xxx /add 添加用户
10、Net localgroup administrators xxxx /add 把某用户放到管理员组里面11、Net session 查询当前会话
12、Net start 查看当前运行的服务
13、Net use 查看当前共享连接
15、Net share xxx /del 删除共享的链接
16、查看隐藏用户可以去,用户管理
17、Findstr /s /I “hellow” ** 18查询包含hellow 的关键字
查看帐号文件 cat /etc/passwd
查看历史命令记录文件和命令 cat ~/.history
history //显示终端执行过的命令
history 10//显示最近10条终端执行过的命令
Ctrl+r //搜索已经执行过的命令
查看网站日志
先进入日志文件所在目录(`/var/log`),然后使用 `tail -f `日志文件`.log` 命令进行查看(查看的命令有:`cat`(查看全部)、`tail`(查看最后多少行)、`head`(查看最开始多少)、`more`,配合`grep`使用)
查看cpu占用率
top`,简化版`top -bn 1 -i -c
查看ssh登陆日志
lastlog` 会列出所有用户最近登陆的信息(引用的是`/var/log/lastlog`文件中的信息),只看`ssh`的话就`cat /var/log/lastlog
查看是否有其他ssh登陆在线
通过`who`命令检查当前在线用户
在`/var/log/secure`可以看到登陆的情况在`/var/log/btmp`中可以查看到登陆失败的记录(可通过`lastb`命令进行检查)在`/var/log/lastlog`中可以查看最近登陆的记录 (可通过`last`命令进行检查)
如果在`ssh`的配置文件里(一般在`/etc/ssh/sshd_config`)和`syslog`配置文件中对日志文件做过定制的话那么需要根据具体情况定位日志文件
查看中间件的日志
进入/var/log下然后进入要查看的中间件日志目录进行查看
分析命令被替换
对linux几个指令集进行md5sum定期验证,md5sum如果变了那说明指令变了,然后对指令集进行还原
12-linux常见的提权办法
1.uid提权 (find / -perm -u=s -type f 2>/dev/null)
2.(sudo git help config !/bin/bash或者!'sh'完成提权)
3、脏牛提权
4、内核提权
5、环境劫持
6、suid提权
7、cve-2021-4034
8、docker提权
13-权限维持
Windows
1.替换系统文件类(shift 后门,放大镜后门)
2.修改注册表类
自启动项、屏幕保护程序注册表、用户登陆初始化、登录脚本、映像劫持、影子账户、AppCertDlls 注册表项、AppInit_DLLs 注册表项、文件关联、用户登陆初始化、xx.Netsh Helper DLL
3.文件类
自启动文件夹、office Word StartUp 劫持
4.计划任务
schtasks 、WMI、bitsadmin
Linux
1.预加载型动态链接库后门
2.strace 后门
3.SSH 后门
4.SUID 后门
5.inetd 服务后门
6.协议后门
7.vim 后门
8.PAM 后门
9.进程注入
10.Rootkit
11.端口复用
14-拿到shell后如何接管域控
如果拿到的就是域内用户,定位一下域控,提取本机`hash`看域管是否登陆过本机,是否有域用户的进程之类的注入域用户进程窃取下权限,然后使用一些域内漏洞来提权到域管从而接管域控,然后通过`dcsync`权限维持或者`adminsdhound`权限维持,也可以修改机器账号的`useraccount`位 8192权限维持
15-内网渗透搭建隧道常见的攻击
frp、ew、ssh、Neo-reGeorg、netsh、Lcx
===========
网络层:Ipv6情况、icmp情况、Gre隧道0
传输层:Tcp 隧道、udp 隧道 常规端口转发
应用层:ssh隧道、http隧道、https隧道、dns隧道
16-内网横向扩展具体方法?
密码喷洒、IPC$、WMI、mimikatz、PTH、MS14-068、web漏洞、系统漏洞
17-KDC服务默认开放哪些端口
88 kerberos krb5、464kerberos kpasswd(v5)
18-桌面有管理员会话,想要做会话劫持怎么做
提权到system权限,然后去通过工具,就能够劫持任何处于已登录用户的会话,而无需获得该用户的登录凭证。
终端服务会话可以是连接状态也可以是未连接状态
19-域内攻击方法
MS14-068、Roasting攻击离线爆破密码、非约束性委派、基于资源的约束委派、ntlm relay、CVE-2021-42287/CVE-2021-42278
20-抓取密码的话会怎么抓
procdump+mimikatz 转储然后用mimikatz离线读取
Sam获取然后离线读取
21-什么版本之后抓不到密码
Windows server 2012之后,或者打了补丁
抓不到的话怎么办
翻阅文件查找运维等等是否记录密码。或者hash传递、或者获取浏览器的账号密码
22-psexec和wmic的区别
psexec会记录大量日志,wmic不会记录日志并且更为隐蔽
23-横向渗透命令执行手段
psexec,wmic,smbexec,winrm,net use共享+计划任务+type命令
24-内网的白名单 如何突破?
利用已在白名单中的软件执行目标代码,甚至发动无文件攻击
白名单污染
暴力破解白名单防护软件
25-内网135端口具体有哪些利用方式?
爆破用户、wmic执行命令进行横向
26-域控定位
cmd定位
net group "Domain controllers" /Domain //查询域控
net time /domain//方式来定位域控,显示域控时间
DNS解析记录定位
nslookup -type=all _ldap._tcp.dc._msdcs.tubai.com` //若当前主机dns为域内dns,则可以通过解析记录定位
端口探测定位
扫描内网中同时开放`389`、`636`与`53`的机器,`389`默认是`LDAP`协议端口,`636`端口是`LDAPS`,`53`端口默认是DNS端口,主要用于域名解析,通过DNS服务器可以实现域名与ip地址之间转换,他们都是域控机器开放的端口
SPN扫描定位:
由于`SPN`本身就是正常的`kerberos`请求,所以扫描隐蔽,它不同于`TCP`与`UDP`常规端口扫描。大部分windows已经自带`setspn.exe`,且此操作无需管理权限
命令:setspn -T tubai.com -Q /
扫描结果中根据:`CN=AD-SERVER,OU=Domain Controllers,DC=tubai,DC=com`来进行域控的定位
27-域管定位
net group "Domain Admins" /domain //查询域管理员
此外还可以通过一些工具定位:PSloggedon.exe、PVefindaduser.exe、powerView.ps1
28-mimikatz是从哪个进程抓hash?
lsass.exe
29-win2012 无法破解hash 怎么上桌面
hash pth传递
30-正向和反向shell
正向Shell
攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况
反向Shell
被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况
31-入侵Linux服务器后需要清除哪些日志?
web日志,如 apache 的 access.log,error.log。直接将日志清除过于明显,一般使用 sed 进行定向清除
e.g. sed -i -e ‘/192.169.1.1/d’
history 命令的清除,也是对~/.bash_history 进行定向清除
wtmp日志的清除,/var/log/wtmp
登录日志清除 /var/log/secure
32.Windows提权的若干办法?
A.系统漏洞提权
1-通过 Webshell 命令行执行systeminfo 命令查看系统是否打了提权补丁,未打补丁的统可通过 github 下载系统提权漏洞 exp 进行提权,KB2592799、KB3000061、KB2592799等。
2-通过 Webshell 找网站读写执行目录,把 cs 马或提权 exp 上传到对方服务器(如果cmd无法执行命令可单独上传 cmd.exe 到对方服务器,菜刀终端设置为 setp c:\XXX\cmd.exe)
B.sc 命令提权(administrator–>system)
例如:sc Create syscmd binPath= “cmd /K start” type= own type= interactsc start systcmd,就得到了一个system权限的cmd环境
C.不带引号的服务路径
当服务路径带空格的时候,路径空格目录前面一断就会当作文件执行,如
C:\ProgramFiles\MSBuild 这个目录,攻击者只要在c盘创建名为 Program.exe 的木马,最后只要系统重启就会执行 C:\Program.exe 文件。
D.不安全的服务权限提升
即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,我们用木马替换服务调用的默认文件。
E.绕过系统 UAC 提升
可通过 msf 里面的 getsystem 绕过 UAC,也可以通过 kail 模块的exploit/windows/local/bypassuac_injection、exploit/windows/local/bypassuac_vbs、exploit/windows/local/ask 绕过 UAC
33-如何内网渗透?
第一种方法
在具备Webshell的情况下,通过Webshell直接上传CS木马到对方服务器运行,在CS软件上面开启 SocksProxy代理,把 kail 直接通过cs socksProxy代理攻击内网进行横向渗透。
第二种方法
通过reGeorg+Proxifie进行内网渗透,把 tunnel.nosocket.php 脚本通过Webshell上传到 Web 站点目录进行访问,在本地自己电脑上面执行
reGeorgSocksProxy.py -p 9999 –u http://IP 地址/tunnel.nosocket.php,最后配置 Proxifier 本地代理地址与端口进行横向内网渗透。
34-内网横向渗透一般攻击技巧
1、通过 nmap、nessus 扫描整个内网 ip 主机漏洞,如如 ms08-067、ms17-010、ms12-020、ms15-035、ms19-0708、永恒之蓝2代、cve-2017-7494(samba)、cve-2014-6271(破壳)、php cgi 等相关漏洞。
2、通过 nmap 扫内网 80、8080 端口,看内网是否存在大量 Web 站点,如果存在进行手工或工具对 Web 站点进行漏洞检测,如注入、命令执行、反序列化、文件上传、弱口令等相关漏洞。
3、通过 ntscan、Bruter、hydra 工具对内网弱口令探测,如果发现一个服务器弱口令,可以通过这个弱口令跑整个内网,一般密码一样。
4、适当的对内网主机进行 ARP 抓取密码。
5、如果内网有 AD 域的情况下,可以通过 MS14-068 漏洞、黄金票据、白银票据进行域控攻击,拿下域控就等于基本拿下整个内网。
35-windows cmd如何下载文件
1.certutil.exe
2.powershell
3.bitsadmin
4.vbs
5.ftp
36-隐藏痕迹
1.跳板
2.代理服务器
3.Tor
4.日志
5.清除历史记录
6.粉碎文件
37-MySQL如何拿webshell?
38-Hash和NTML hash区别
NTLM Hash(NT LAN Manager)是支持Net NTLM认证协议及本地认证过程中的一个重要参数。其长 度为32位,由数字与字母组成。它的前身是LM Hash,目前基本淘汰,两者相差不大,只是使用的加密 算法不同。
ntml hash生成方式 将明文口令转换成十六进制的格式 转换成Unicode格式,即在每个字节之后添加0x00对Unicode字符串作MD4加密,生成32位十六进制数字串
39-内网中的信息收集技术
#主机信息收集
1.网络配置 ipconfig /all
2.操作系统 systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
3.软件信息 systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
4.服务信息 wmic /namespace:\root\securitycenter2 path antivirusproduct GET displayName,productState,pathToSignedProductExe
5.用户列表 net user
6.本地管理员信息 net localgroup administrators
7.端口信息 netstat –ano
8.补丁信息 wmic qfe get Caption,Description,HotFixID,InstalledOn 9.查防火墙 netsh firewall show config
#域内信息收集
是否有域 使用ipconfig /all命令可以查看网关IP地址、DNS的IP地址以及判断当前主机是否在域内:通过反 向解析查询命令nslookup来解析域名的IP地址,使用解析出来的IP地址进行对比,判断域控制器和 DNS服务器是否在同一台服务器上
登录域信息 net config workstation
域内信息收集
ICMP探测内网 for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.174.%I | findstr "TTL="
ARP探测内网
端口信息收集
查询域信息 net view /domain
查询域主机 net view /domain:XXX
查询域用户 net group /domain
查找域控 Nslookup -type=SRV _ldap._tcp net time /domain net group "Domain Controllers" /domain
查域用户信息 net user /domain
查询域管理员 net group "Domain Admins" /domain
查询域sid信息 whoami /all
框架与中间件
00-python哪些框架出现过漏洞?
flask的模板注入模板注入和常见Web注入的成因一样,也是服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致了敏感信息泄露、代码执行、GetShell等问题。
模板字符串中字符串拼接或替换可能会导致敏感信息泄露,获取变量值如果开发者在flask使用字符串格式化,来将用户输入动态地加入到模板字符串中,而不是通过render_template_string函数,该函数不会对输入进行实体转义将URL传递进入模板内容当中,会导致xss的产生。
还可以利用模板中html标签属性字段绕过xss过滤。
Django出现过目录遍历漏洞
01-常见的解析漏洞?
a、IIS 6.0 /xx.asp/xx.jpg "xx.asp"是文件夹名
b、IIS 7.0/7.5 默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
c、Nginx 版本小于等于 0.8.37,利用方法和IIS7.0/7.5一样,Fast-CGI关闭情况下也可利用。空字节代码 xxx.jpg.php
d、Apache上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
e、lighttpd xx.jpg/xx.php
02-ISS服务器做哪些方面保护措施?
1. 保持 Windows 升级:
2. 使用 IIS 防范工具
3. 移除缺省的 Web 站点
4. 如果你并不需要 FTP 和 SMTP 服务,请卸载它们
5. 有规则地检查你的管理员组和服务:
6. 严格控制服务器的写访问权限
7. 设置复杂的密码
8. 减少/排除 Web 服务器上的共享
9. 禁用 TCP/IP 协议中的 NetBIOS:
10. 使用 TCP 端口阻塞
11. 仔细检查*.bat 和*.exe 文件: 每周搜索一次*.bat
12. 管理 IIS 目录安全:
13. 使用 NTFS 安全:
14. 管理用户账户
15. 审计你的 Web 服务器
03-struts2框架漏洞原理
(1)struts 是 java 的 web 框架
(2)采取 OGNL 表达式,处理 view 层数据字符串到 controller 层转换成 java对象
04-weblogic权限绕过
CVE-2020-14882
远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic 管理控制台。 攻击者可以构造特殊请求的URL,即可未授权访问到管理后台页面,访问后台后是一个低权限的用 户,无法安装应用, 也无法直接执行任意代码。
CVE-2020-14883
允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个HTTP 请求在远程Weblogic 服务器上以未授权的任意用户身份执行命令。
漏洞利用
第一种方法是通过com.tangosol.coherence.mvel2.sh.ShellSession
第二种方法是通过 com.bea.core.repackaged.springframework.context.support.FileSystemX mlApplic ationContext
欢迎打赏