简易逆向【通过】

起因

隔壁计科学院有个考试系统,就要来分析了一下

image

很好程序到手,直接运行分析

01

image

直接上wireshark抓包,看看是什么如何通信

emmmm,着熟悉的语法,不过看了下请求中并没有带账户密码等连接信息。不管了,先用NMAP扫描一波

image

确定是MSSQL,好,IDA走起,不对,在此之前先康康有没有壳。

image

有个ASPack壳,这个壳好说,手脱或者脱壳机都可以。我就直接上看雪的脱壳机了

image

发现是delphi。。有点古老。。我还以为至少是vc++6.0+mfc的程序呢

image

然而启动失败,不过有界面出来只是崩溃,并不影响IDA。

直接搜索ip的字符串

双击,然后按X查找引用。

image

被压入了个函数,疑似个解码,先不管了懒得看这个。

想想delphi这种古老的东西是如何连解mssql的,试着搜索了下user id=

image

大概逻辑在这下面了。然而堆栈并不平衡。估计是脱壳的时候出了点问题。

现在有两个办法,一个是直接拿头硬怼跑密码,反正我是不想。第二个就是动态调试。

那还能怎么办,果断动态调试。OD走起。

先设置CreateWindow的断点。到断点然后搜索字符串

flow进去,然后右键,内存访问

这样有谁访问这个内存我们就会都知道啦

然后执行,执行到这的时候使命按F7单步,然后看地下栈调用。

最后手都按酸了,终于找到了

就此大功告成,不过在输入密码的时候,发现密码不对,看到这有三个框框,对应hex是1F1A3B,我原本以为是mssqsl的自定义颜色,输入进去也不对。最后放弃思考,直接把这三个东西复制到密码框里面连解。

image

嘿。成了。

进mssql,那肯定惯例xps_cmdshell了,然而运行了发现并没有回显,没报错也没回显。八成被什么东西给拦截了

我们换个方式

使用


declare @shell int

exec sp_oacreate 'wscript.shell',@shell output

exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami >c:\log.txt'

执行数据,然后再用


create table tmp_text (lines nvarchar(1000))

bulk insert tmp_text from N'C:\log.txt'

select * from tmp_text

drop table tmp_text

读取,我们先查看权限

image

emmmm,system。直接新建一个用户吧。

连接成功。

END

  • 通过
  • 未通过

0 投票者