搜索
查看: 996|回复: 0

提权(1)信息收集

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2017-6-11 13:27:18 | 显示全部楼层 |阅读模式
看到不少朋友在后渗透阶段的时候比较没有思路,我决定自己出一套提权的总结,归纳我所学习的。
提权,这里说的提权实际上指的是纵向的提权,从webshell权限到system权限
0x01 引言
通常,我们在渗透过程中很有可能只获得了一个系统的Guest或User权限。低的权限级别将会使我们受到很多的限制,所以必须将访问权限从Guset提升到User,再到Administrator,最后到SYSTEM级别。
渗透的最终目的是获取服务器的最高权限,即Windows操作系统中管理员账号的权限,或LINUX操作系统中root账户权限。
提升权限的方式分为两类。
l  纵向提权:低权限角色获得高权限角色的权限。比如,一个webshell权限通过提权之后拥有了管理员的权限,那么这种提权就是纵向提权。
l  横向提权:获取同级别角色的权限。比如,通过已经攻破的系统A获取B的账户密码。
一般在web渗透中我们都是通过纵向提权,而后渗透也就是内网渗透或者域渗透了。
这一步的渗透还是少不了信息的收集,信息的收集一般用windows的一些命令来进行收集,进大马,跑目录….还记得当年的提权三字经么,简直是信仰。当然有些东西现在仍然适用。
首先要介绍的是windows常用的命令
1、whoami
如果是我,我一定会在拿到webshell或者进入大马的时候用这个命令
这个命令是干嘛的呢,我想百度会告诉大家答案。
不排除有傻到极点的管理员权限配置不当,或者有一些简便的web容器,比如小旋风啊,phpstudy等等都是管理员(administrator)权限,如果一开始是管理员权限,那我我们几乎可以对这个系统进行操作,根本不用花费力气去提权什么的。只需想办法远程桌面连接,或者上个远控等操作,然后就可以为所欲为了。
2、tasklist
用来显示运行在本地或远程计算机上的所有进程,带有多个执行参数。
tasklist /svc
显示每个进程中的服务信息
至于其他的参数,如果有必要大家可以自己去挖掘使用,我使用得比较少。
为什么第二个命令是这个呢?在这个杀毒与waf横行的年代,我只想看看这个计算机上运行什么服务。不然内核溢出要么做什么操作都被限制,而你依然一无所知。
感觉一些常见的进程名还是要记住的,
winlogon.exe 用户登录进程
explorer.exe 资源管理器
Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称
Safedog.exe 安全狗
360tray.exe  360安全卫士的进程
avp.exe  的系统进程是
KMService.exe 金山毒霸的系统进程
STRAY.EXE和RAVMOND 瑞星的进程
PinyinUp.exe 搜狗升级进程
等等,就不一一列举了
3、netstat
Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
这个也是最常用的几个命令之一,一般用netstat -an 来显示所有连接的端口并用数字表示。
但是我更喜欢用netstat –ano,这样子连它的PID也出来了。
PID是进程运行时系统随机为进程分配的,并不代表专门的进程。

来个实例,比如说找3389的端口。
假设目标的机器开启了远程桌面服务(Remote Desktop Protocol,简称RDP),但是RDP端口被改了,又假设注册表不能读取,那么我觉得这就是一个好方法了。
首先先用tasklist /svc |findstr "svchost.exe"这条命令
这里介绍下findstr这个命令,和Linux下的find差不多,很好用的。
它的用途是查找指定的一个或多个文件文件中包含(或通过参数 /V来控制不包含)某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。而且这个命令是支持正则的。
我们这样就找到了包含svchost.exe的进程和PID号了。
Ok,我测试的机器是2003,那么RDP服务对面的PID是2648,也就是TermService这个服务对应的。
是9999,我特意改的,只为了验证。
如果是win7以上的系统,那么就是关注CryptSvc, Dnscache, LanmanWorkstation 这个服务
4、ipconfig
ipconfig可用于显示当前的TCP/IP配置的设置值
俗气一点的说法,就是查看ip
5、net user
这个可以说是最基本的了,可以参考百度自行学习。
总结到最后的一条命令是:net user vaf vaf /add&net localgroup administrators vaf /add
5、systeminfo
这条命令也是基础的命令之一,该命令是Windows中用于显示关于计算机及其操作系统的详细配置信息,包括操作系统配置、安全信息、产品 ID 和硬件属性,如 RAM、磁盘空间和网卡和补丁信息等。
命令返回的结果如下图
很明显,这个返回的信息太过驳杂,太多了。
我们可以这样子来:  systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
/B 在一行的开始配对模式。
/C:string 使用指定字符串作为文字搜索字符串。
我们就可以先看看我们连接的什么类型的操作系统,由于中文环境下,"OS Name"为"OS 名称","OS Version"为"OS 版本"
所以我们的命令为:systeminfo | findstr /B /C:" OS 名称" /C:"OS 版本"
修补程序: systeminfo | findstr /i "kb"
6、route print
顾名思义,打印路由表
6、WMIC的艺术
Windows的命令还有很多,这里只介绍了,常用的,以后在渗透中慢慢学习和积累~~
之前在国外的一个哥们博客看看到了一篇文章,讲的是WMIC在渗透中的使用。
wmic(Windows Management Instrumentation Command-Line),是因为它是Windows平台下最有用的命令行工具。
WMIC在信息搜集和后渗透测试阶段非常实用,这里分享两个学习的链接:
http://www.computerhope.com/wmic.htm
http://synjunkie.blogspot.com/2008/03/command-line-ninjitsu.html
低版本的windows默认的配置是不允许使用WMIC命令的,除非你是管理员组成员。经过我的测试,在XP下低权限用户是不能使用WMIC命令,但是在Windows 7 和Windows8下,低权限用户可以使用WMIC,且不用更改任何设置。这正是我们使用WMIC搜集目标机器信息的前提,实际上Win10也是可以的~~
wmic /?
通过下面这条命令来查看补丁状况:
wmic qfe get Caption,Description,HotFixID,InstalledOn
这个脚本可以放在目标机器上,调用WMIC来提取下面信息(进程,服务,用户,用户组,网络连接,硬盘信息,网络共享信息,已安装补丁,启动项,已安装的软件,操作系统的相关信息)
接下来的这条命令可以搜索system32下的所有名字包含以下几个关键字的文件,当然你可以手动指定关键字。

C:\Windows\system32> dir /s *pass* == *cred* == *vnc* == *.config*
这条是搜索某些特定的文件类型,这可能搜索到大量的结果:
1
C:\Windows\system32> findstr /si password *.xml *.ini *.txt
相似的,接下来的两条命令都是用来搜索注册表的,keyword是password,你可以替换成任何你想要的。
1
2
C:\Windows\system32> reg query HKLM /f password /t REG_SZ /s
C:\Windows\system32> reg query HKCU /f password /t REG_SZ /s
7、powershell
Powershell其实在信息收集中用得比较少,后续提权的过程中,或者后渗透中用的比较多,以后再说

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表