web靶机有一块NAT网卡,只需要修改这块NAT网卡的网关,IP改成与攻击机器同网段就可以了
到web靶机中C:/Oracle/Middleware/user_projects/domains/base_domain/bin目录下以管理员权限点击weblogic启动脚本开启weblogic服务,管理员口令是administrator/1qaz@WSX
关闭防火墙
nmap扫描一下这两个IP,如下图,两台主机均开放有135、139、445、3389、49152、49153、49154、49155端口,192.168.10.136主机还开放有80端口存在web服务、开放7001端口存在weblogic服务,weblogic版本为10.3.6.0
先使用fscan扫描一下这些端口,如下,fscan扫描出两个IP都疑似存在ms17-010,192.168.10.137的RDP口令为administrator/1qaz@WSX
使用goby扫描结果如下,同样扫描出两台主机都有ms17-010,但192.168.10.136的weblogic扫出大量高危漏洞
访问一下192.168.10.136的80端口,发现页面是空的,再访问一下7001端口的weblogic,界面如下
使用weblogic利用工具上传一个jsp冰蝎马,先利用rce获取系统信息,如下
利用该工具的文件上传功能直接将冰蝎的jsp马上传到web主机的C:\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\目录下,然后冰蝎访问http://IP:7001/console/framework/skins/wlsconsole/images/shell.jsp,成功连接
反弹shell到msf,查看ipconfig/all,发现存在两个网卡
得想办法提升权限,先激活一下guest
激活成功,但是guest无权连接3389远程桌面,使用de1ay\administrator用户登录远程桌面,提示必须修改密码,修改成de1ayAdmin.,修改成功后即可进入远程桌面,发现开启了360,直接将360退出
启动cobalt strike,生成一个木马,通过冰蝎的文件管理上传到web主机上,此时我们再通过远程桌面的管理员权限启动cs的木马就不会被拦截和查杀了,web主机成功上线cs获取到administrator权限
查看域信息,如下,域为delay.com
cs中执行域命令总是报错,到远程桌面中通过cmd执行命令,判断主域
net time /domain
查看域控,域控IP为10.10.10.10
net dclist
通过巨龙拉东插件获取域信息时发现域内另一台主机PC,IP:192.168.10.137、10.10.10.201
抓一下密码
logonpasswords
cs新建一个监听,然后点击视图——>目标
点击Launch,等待一会后并没有上线,但查看过程应该是会话传递成功了的,估计是域控不出网无法形成反向shell
扫描一下域控主机,发现开放有445、3389,既然域控不出网,可以考虑利用smb
新建一个smb监听
利用smb监听再次尝试会话传递
成功上线,拿下域控权限
目录引入表引擎的概念以及特点一、TinyLog二、Memory三、MergeTree四、ReplacingMergeTree五、SummingMergeTree六、Integrations(集成引擎)-ODBC-JDBC-MySQL-MongoDB-HDFS-S3-Kafka-RabbitMQ-PostgreSQL引入表引擎的概念以及特点官方网站:https://clickhouse.com/docs/zh/engines/table-engines/表引擎决定了如何存储表的数据。包括:➢数据的存储方式和位置,写到哪里以及从哪里读取数据。➢支持哪些查询以及如何支持 比如数组不能在merge引擎中使用。➢并发数据访问。➢索引的使用(如果存在)。➢是否可以执行多线程请求。➢数据复制参数。表引擎的使用方式就是必须显式在创建表时定义该表使用的引擎,以及引擎使用的相关参数。特别注意:引擎的名称大小写敏感。一、TinyLog以列文件的形式保存在磁盘上,不支持索引,没有并发控制。一般保存少量数据的小表,生产环境上作用有限。可以用于平时练习测试用。createtablet_tinylog(idStr
检测基因组选择信号的方法有很多种,其中XP-CLR方法是常用的一种。XP-CLR是陈华老师、NickPatterson和DavidReich在2010年发表的方法,全称叫thecross-populationcompositelikelihoodratiotest(跨群体复合似然比检验),是一种是基于选择扫荡(selectivesweeep)的似然方法。选择扫荡可以增加群体之间的遗传分化,导致等位基因频率偏离中性条件下的预期值。XP-CLR利用了两个群体之间的多基因座等位基因频率差异(multilocusallelefrequencydifferentiation)建立模型,使用布朗运动来模拟中性下的遗传漂移,并使用确定性模型来近似地对附近的单核苷酸多态性(SNPs)进行选择性扫描。XP-CLR不仅可以用在人类上,它在动植物驯化研究中也用得较多,比如玉米、大豆、家犬、牛等。安装XP-CLR的下载地址可以在https://reich.hms.harvard.edu/software找到。wgethttps://reich.hms.harvard.edu/sites/reich.hms.h
经过这么多年的视频技术开发,TSINGSEE青犀视频团队已经有了一套自己的研发体系,除了大家比较熟知的视频智能分析平台外,其实TSINGSEE青犀视频还有很多好用的SDK及工具。其中EasyScreenLive就是我们研发的一款简单、高效、稳定的同屏功能组件。EasyScreenLive同屏组件支持自定义OSD添加,本实例只针对拉RTSP和RTMP流设置OSD,采集屏幕和本机摄像头目前不支持。EasyScreenLive增加如下接口函数用于OSD的设置:LIB_EASYSLIVE_APIintEasyScreenLive_SetOSD(EASYSLIVE_HANDLEhandler,boolbShow,EASY_OSDosd);各参数解释:handler:EasyScreenLive_Create()函数返回的句柄bShow:控制是否进行显示,允许值:true或者falseosd:OSD显示的具体位置、内容等,定义的标准结构体如下typedefstructtagEASY_OSD { charstOSD[1024]; DWORDalpha;//0-255 DWORDcolor;//RGB
转载请注明:http://blog.csdn.net/uniquewonderq 使用EL表达式,显示Action中的数据问题:在struts2框架下,如何将业务控制器Action的数据传递给JSP,并在JSP上显示出这些数据。解决方案:Struts2会自动的将Action的数据传递给JSP,并且对传递方式进行了封装,在使用时变得十分方便,甚至不需要使用request对象。它仅仅要求我们在Action中定义属性,并为属性提供get方法,那么从Action跳转到JSP时,struts2会自动的通过这些get方法将这些属性的值传递给JSP。最终在JSP上我们可以使用EL表达式来显示Action的属性值。我们还是利用StrutsDay01项目的实例,目前HelloAction中已经有了两个属性,即realName、user,而该Action最终跳转的页面为hello.jsp,我们的目标是在hello.jsp上使用EL表达式输出这些属性值。实现步骤:步骤一:在Action中,给属性追加get方法在HelloAction中,给realName属性追加get方法,用于页面的EL表达式访问并取值,u
“四个现代化”IT现代化武装身体,应用现代化解放大脑,数据管理现代化精确洞察,安全合规现代化扫清路障。@CEO数字经济下,基于资源和规模的传统业务模式正受到数字原生业务模式的挑战,市场利润空间不断受到挤压。无论互联网企业,还是数字原生创新企业,都在以创新挑战资源,以迅捷挑战规模,通过数字化新产品、新服务,将IT从成本中心转化为创新业务引擎。在这种过程中,构建数字DNA,成为了传统企业逃脱被市场淘汰厄运的“救命稻草”。早期互联网企业和传统企业“井水不犯河水”的共存模式已成为过去。基于数字化的平台经济,正在颠覆着全球的行业格局和产业价值分配。正如,万豪花了几十年的时间,在酒店行业有50万间客房。而2008年成立的Airbnb,仅过了10年,就有550万间客房。在数字化时代,传统行业受到的冲击,并不仅仅在于数字原生企业的创新速度和快速占领市场的能力,更在于它们所处的打破行业界限的万物互联生态系统。对于传统的企业级用户而言,构建数字DNA,加速技术交融,实现数字平台化成为其实现数字化转型的重要突破口。那么,在这个过程中企业会遇到哪些挑战?1.缺乏构建数字DNA的能力传统以产品为核心的企业,IT
GNU系统是一套向上兼容Unix的完全自由的操作系统。GNU代表“GNU'sNotUnix”。它的发音是带有g音的单音节。RichardStallman在1983年9月做出了GNU工程的初始声明。接着在1985年3月又发表了更长的版本,叫做GNU宣言。它被翻译成多种其他语言。起“GNU”这个名字是因为它满足了几个要求:第一,它是“GNU'sNotUnix”的递归缩写;第二,它是一个真正的单词;第三,它说(或唱)起来有趣。“freesoftware”中的单词“free”关乎自由,而不是价格。您可以付费或不付费得到GNU软件。无论如何,一旦得到了软件,你便拥有了使用它的四项特定自由。有自由按照自己的意愿运行该软件;有自由复制软件并将其送给您的朋友和同事;有自由通过对源代码的完全控制而改进程序;有自由发布改进的版本从而帮助社区建设。(如果您再发布GNU软件,您可以为发布拷贝过程中的物理行为收取一定的费用,你也可以赠送拷贝。)开发GNU系统的工程叫做“GNU工程”。GNU工程构思于1983年,意在找回在早期计算机社区中广泛存在的合作精神—通过除去专属软件所有者设置的障碍而使
本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢!开发工具:VS2017语言:C#DotNet版本:.NetFrameWork4.0及以上一、安装Quartz在“程序包管理器控制台”输入(下划线所示):PM>Install-PackageQuartz复制安装完毕之后,引用的DLL如下:二、编写以下代码(具体见注释)1usingQuartz; 2usingQuartz.Impl; 3usingSystem; 4usingSystem.Threading; 5 6namespaceQuartzConsoleApp 7{ 8classProgram 9{ 10staticvoidMain(string[]args) 11{ 12//创建一个标准调度器工厂 13ISchedulerFactoryfactory=newStdSchedulerFactory(); 14//通过从标准调度器工厂获得一个调度器,用来启动任务 15ISchedulerscheduler=factory.GetScheduler(); 16//调度器的线程开始执
翻译|王柯凝 出品|人工智能头条(公众号ID:AI_Thinker) 苹果手机很常见,苹果工程师却不常见。国内的网络上活跃着诸多Google、微软、亚马逊、Facebook的工程师,而且会热心解答公司相关的各种问题,但是苹果工程师却没有什么声音。那么,想要进入苹果公司做AI相关的工作,却不知道从何入手,要怎么办呢?没关系,今天我们就为大家带来苹果的面试指南,以及20道与AI和数据科学相关的面试题。当然,如果你对Google也感兴趣,可以查看我们之前发布的文章——《想去Google做AI?》;如果你只是单纯的想找一份AI相关的工作,并没有公司要求,也可查看《面试了8家公司,他们问了我这些机器学习题目》。▌职位要求 我们在苹果的官网http://jobs.apple.com上找了几个机器学习相关的职位,首先看一下苹果对这些职位的硬性要求:1、机器学习工程师学位要求:计算机科学、电子工程、统计学以及相关专业的硕士或博士工作经验:5年以上的数据科学项目的工作经验知识技能:ApacheHadoop,Spark,Solr/Lucene,Cassandra等相关经验;熟悉Scikit-learn,
随着新一轮娱乐类无人机的发布,避障再一次成为热点。无人机为什么要避障,怎么避障,有哪些技术和坑点?今天来八一八。无人机本来在高空穿梭,不知障碍为何物。可是多旋翼的普及改变了一切。植保,运货,勘测,穿越,娱乐,拍照等等低空应用成为常态。于是地面各种障碍物变得突兀起来,变得值钱,能够炒作了。于是大大小小的无人机无论是否必须,都开始谈论避障。什么是避障?简单的说就是躲避航线或飞行中遇到的物体,避免双方损伤,注意是双方。怎么避障?要解决三个问题:1,有哪些类型的障碍。 2,怎么定位障碍。 3,怎么躲避。简单的说障碍物有三种类型:大障碍,小障碍,动障碍。大障碍是不可逾越的比如墙,楼,山等等,对于这种障碍只能停不能避。小障碍是电线杆,树木等等可以躲避的障碍。动障碍就是人畜鸟,有人说飞过来一块石头,好吧,也算是。对于后两种障碍,大部分厂家含糊其辞,因为真正做到避障,知道障碍还要知道它的位置;躲避障碍还要知道往哪躲。并不是探测就绕开说起来这么简单,需要一系列传感器和算法配合。而且真的需要么?我们看看动障碍都是在娱乐过程中才会出现,工业作业遇到的基本都是不动的小障碍,那么为什么不能勘测用航线避开呢?树是
美团外卖自2013年创建以来,业务一直高速发展。目前美团外卖日完成订单量已突破1800万,成为美团点评最重要的业务之一。美团外卖的用户端入口,从单一的外卖独立App,拓展为外卖、美团、点评等多个App入口。美团外卖所承载的业务,也从单一的餐饮业务,发展到餐饮、超市、生鲜、果蔬、药品、鲜花、蛋糕、跑腿等十多个大品类业务。业务的快速发展对客户端架构不断提出新的挑战。平台化背景很早之前,外卖作为孵化中的项目只有美团外卖App(下文简称外卖App)一个入口,后来外卖作为一个子频道接入到美团App(下文简称外卖频道),两端业务并行迭代开发。早期为了快速上线,开发同学直接将外卖App的代码拷贝出一份到外卖频道,做了简单的适配就很快接入到美团App了。早期外卖App和外卖频道由两个团队分别维护,而在随后一段时间里,两端代码体系差异越来越来大。最后演变成了从网络、图片等基础库到UI控件、类的命名等都不尽相同的两套代码。尽管后来两个团队合并到一起,但历史的差异已经形成,为了优先满足业务需求,很长一段时间内,我们只能在两套代码的基础上不断堆积更多的功能。维护两套代码的成本可想而知,而业务的迅猛发展又使得这
今天来分享一个发现隐藏资产的小技巧,开始之前,先来测试一个小工具,项目地址:https://github.com/allyshka/vhostbrute怎么用,看看官方介绍即可,接下来我想看看xazlsec.com域名下能不能发现一些正常情况下无法访问的网站,首先准备一个子域名的字典:然后看看xazlsec.com域名下的正常网站的IP地址:IP是47.94.225.171,接下来使用如下命令:pythonvhostbrute.py-uxazlsec.com-r47.94.225.171-dsub.txt结果如图:从结果上看,好像这些子域名都存在网站,那么接下来可以一一访问,经过测试,发现,vulns、admin、dev、test都未解析出IP,如图:那么这些网站如何访问的呢?直接使用浏览器肯定无法直接访问到,因为dns未能解析出IP,查看脚本中是如何验证的:程序修改了header中的Host字段为拼接的子域名,而访问的目标url为IP地址,也就是如下数据包:通过修改Host字段然后重复请求网站,如果该字段请求后有返回内容,或者返回内容与其他不同,说明该域名下存在网站,比如vulns.
第一件事首先是微信的选择图片功能,就是微信发朋友圈选择图片的时候那个界面 //调用微信拍照功能 wx.chooseImage({ count:1,//默认9 sizeType:['original','compressed'],//原图-压缩图 sourceType:['album','camera'],//指定来源是相册还是相机 success:function(res){ letlocalIds=res.localIds; syncUpload(localIds); } });复制 其中syncUpload函数功能为上传图片到微信服务器中 varsyncUpload=function(localIds){ varlocalId=localIds.pop(); //上传图片 wx.uploadImage({ localId:localId, isShowProgressTips:1, success:function(res){ //返回图片的服务器端ID varserverId=res.serverId; $.ajax({ url:"", data:{media_id:ser
从网上下载的一些源码,有的打开工程文件的时候报错: 如:无法读取项目文件.......未找到导入的项目.........请确认<Import>声明中的路径正确,且磁盘上存在该文 解决办法: 找到<Import>节点,修改如下 <ImportProject="$(MSBuildBinPath)\Microsoft.CSharp.targets"/><ImportProject="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets"/> 备注:v9.0是用vs2008去打开,改成v8.0就可以用vs2005去打开了,关键也就是改一下这个地方。
hi,大家好,我是hhf。 有这么一个Go面试题:请说出slice和array的区别? 这简直就是送分题。现在思考一下,你咋样回答才能让面试官满意呢? 我这里就不贴这道题的答案了。但是我想内存方面简单分析下slice和array的区别。 Array funcmain(){ as:=[4]int{10,5,8,7} fmt.Println("as[0]:",as[0]) fmt.Println("as[1]:",as[1]) fmt.Println("as[2]:",as[2]) fmt.Println("as[3]:",as[3]) } 复制 这段很简单的代码,声明了一个array。当然输出结果也足够简单。 我们现在玩点花活,如何通过非正常的手段访问数组里面的元素呢?在做这个事情之前是需要先知道array的底层结构的。其实很简单,Goarray就是一块连续的内存空间。如下图所示 写一段简单的代码,我们不通过下标访问的方式去获取元素。通过移动指针的方式去获取对应位置的指针。 funcmain(){ as:=[4]int{10,5,8,7} p1:=*(*int)(unsafe.Po
喜欢我的博客可以加关注,有问题可以提问我。 1.基本使用(下面的html由于过长就不复制了都复用第一个) html=""" <html> <head><title>dsojfeoifjosieofiej</title></head> <metahttp-equiv="content-type"content="text/html;charset=utf-8"> <metahttp-equiv="X-UA-Compatible"content="IE=Edge"> <metacontent="always"name="referrer"> <metaname="theme-color"content="#2932e1"> <linkrel="shortcuticon"href="/favicon.ico"type="image/x-icon"/> <linkrel="search"type="application/opensearchdescript
Linux全靠命令,这里直接上命令,大家参考做就是了。 cd/data/svn/gps/hooks cppre-commit.tmplpre-commit chomd777pre-commit vimpre-commit复制 其中pre-commit文件内容可以直接使用下面的脚本。 #!/bin/sh#!/bin/sh #脚本编写:Ken.xu REPOS="$1" TXN="$2" #最小注释长度 MIN_REPOS_LEN=5 LOGMSG=`svnlooklog-t"$TXN""$REPOS"|wc-c` #echo"注释长度:$LOGMSG"1>&2 if["$LOGMSG"-lt$MIN_REPOS_LEN] then echo"####################################"1>&2 echo-e"★☆★提醒:注释最少$MIN_REPOS_LEN个字符!★☆★"1>&2 echo-e"补充注释后,再重新提交!"1>&2 echo"##########################
557. ReverseWordsinaStringIII Givenastring,youneedtoreversetheorderofcharactersineachwordwithinasentencewhilestillpreservingwhitespaceandinitialwordorder. Example1: Input:"Let'stakeLeetCodecontest" Output:"s'teLekatedoCteeLtsetnoc"复制 Note: Inthestring,eachwordisseparatedbysinglespaceandtherewillnotbeanyextraspaceinthestring. packageleedcode; classSolution{ publicstaticvoidmain(String[]args){ //Strings="Let'stakeLeetCodecontest"; Strings="12345"; System.ou
Swagger是这个非常强大的api文档工具,通常可以用来测试接口,和查看接口,就像这样: 非常的好用和快捷,这是一个小小的demo,我们在完成系统时,发布后,外部依旧可以用/swagger访问到这个接口文档,这就造成了系统不安全的问题,那么我们应该怎么办呢,我们需要隐藏这些接口。 如何隐藏呢,首先我们需要建立一个新类: namespaceTR.Unit { usingSystem; usingSystem.Linq; usingMicrosoft.AspNetCore.Mvc.ApiExplorer; usingSwashbuckle.AspNetCore.Swagger; usingSwashbuckle.AspNetCore.SwaggerGen; ///<summary> ///隐藏接口,不生成到swagger文档展示 ///</summary> [AttributeUsage(AttributeTargets.Method|AttributeTargets.Class)]//此特性可以在方法上和类上使用 publicpar
存一下模板。。 点分治推荐 https://blog.csdn.net/qq_39553725/article/details/77542223 讲得很清楚 POJ1741 #include<cstdio> #include<cstdlib> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> #definemaxn10002 #defineINF2147483646 #definelllonglong usingnamespacestd; inlineintgi() { intdate=0,m=1;charch=0; while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar(); if(ch=='-'){m=-1;ch=getchar();} while(ch>='0'&&ch<='9') { date