IIS短文件名暴力枚举漏洞利用工具(IIS shortname Scanner)

上文我已经介绍了IIS短文件名暴力枚举漏洞的成因和利用。

这里只是发出昨天写的脚本。

脚本可以测试对应的URL是否存在漏洞,若存在漏洞,则猜解文件夹下所有的短文件名:包括文件和文件名。

网上早前已经有公开的工具了:https://code.google.com/p/iis-shortname-scanner-poc/

我没有参考他的代码。自己用python实现了一个漏洞利用脚本。简单测试,发现比上面的POC能猜解到更多的文件和文件夹。

获取源代码:  https://github.com/lijiejie/IIS_shortname_Scanner   (已于Oct 27, 2016更新

测试: IIS_shortname_Scan.py http://stom.tencent.com

最终结果:

stom-tencent-com

通过联想,就可以猜解到上传页:  http://stom.tencent.com/tapdupfile.aspx

stom-tencent-com_upfile

----------------------------------------------------------------
Dir: /aspnet~1
File: /logina~1.cs
File: /tapdap~1.cs
File: /tapdup~1.cs
File: /queryg~1.ash*
File: /queryi~1.ash*
File: /queryp~1.ash*
File: /tapdap~1.asp*
File: /tapdup~1.asp*
----------------------------------------------------------------
1 Directories, 8 Files found in total
Note that * is a wildcard, matches any character zero or more times.

 

rabbitmq pika connection closed

家中PC上,端口扫描的python脚本多次出现pika connection closed的错误,同一脚本在办公机和虚机上从来没问题。

比较奇怪,因为我比较谨慎,在需要延时的地方都使用了mq.conn.sleep()而非time.sleep(),也避免陷入一个长时的循环。

connection closed一般是因为heartbeat timeout引起的,server主动关闭了连接。

为了解决这个问题,在家中PC机上禁用heartbeat,参数heartbeat_interval设置为0:

params = pika.ConnectionParameters(host=MQ_HOST, port=MQ_PORT,
                                   credentials=pika.credentials.PlainCredentials(MQ_USER, MQ_PASSWD),
                                   heartbeat_interval=0)
self.conn = pika.BlockingConnection(parameters=params)

招聘安全实习生一名(北京-中关村)

招聘安全实习生一名,欢迎投递简历。

地点: 北京 – 中关村

技能要求:

1. 理解常见web漏洞:SQL注入、XSS、CSRF、上传漏洞、代码(命令)执行、常见逻辑缺陷等

2. 熟练使用常见的安全工具: awvs sqlmap nmap burpsuite appscan等

3. 有一定的渗透测试经验,了解常见漏洞的测试流程和利用方法

4. 熟练使用python和Linux(shell scripts)

5. 有android/iOS客户端漏洞挖掘经验可加分, 熟悉主流web框架可加分,  有代码安全审计经验可加分

6. 良好的沟通能力,自我驱动学习,善于用代码解决问题

 

实习期间工作内容:

  1. 内外网安全巡检,漏洞挖掘
  2. 扫描器插件开发(python脚本),扫描平台功能迭代
  3. 扫描器爬虫优化

 

投递邮箱:

python -c “import base64; print base64.b64decode(‘bGlqaWVqaWVAcWl5aS5jb20=’)”

QQ:

echo OTE4MjI2Mwo=|base64 -d

通过Windows批处理自动配置DNS服务器

有时候我会在自己的PC机上启一个dns代理服务器,用来记录本机所有的DNS查询,收集各大公司的域名。

启动脚本的时候,会自动配置主DNS服务器到127.0.0.1,通过netsh命令实现即可:

netsh interface ipv4 set dnsservers "本地连接" static 127.0.0.1
netsh interface ipv4 add dns name="本地连接" addr="8.8.8.8" index=2

以上将主dns设置为127.0.0.1,辅dns服务器设置为8.8.8.8。

同理,在代理程序中止的时候,又自动将DNS设置还原为原始IP。

记一次木马的发现

昨天清理磁盘,整理旧文件的时候,轻信直接打开了wooyun zone里某位白帽子分享的工具,一时大意,中马了。

PC机上有个360安全卫士,也没有一丁点的提示。。。(这木马过360的)

随后我在修改subDomainsBrute的时候,抓dns query,惊讶地发现,出现了一个3322.org的域名,并且对应记录是不存在的,如下图:

likang.3322.org

以前玩远控木马的同学可能知道,3322.0rg,花生壳之类的,常常被用来木马在内网反向上线的。所以,这个地方十分不正常,这让我意识到,有较大的几率已经中马了。

用360安全卫士扫描,没有发现任何木马和危险项,之前也提到了,这个木马是过360的。

现在的问题是,如何抓到这个木马,我绕了一个弯子,因为我想从dns query入手来查找(正确的做法是打开进程查看器,逐个进程检查):

  1. 我们已经知道,木马会主动去连likang.3322.org,但是wireshark是抓不到进程pid,它仅仅支持从某一网卡抓包,并不关心包来自于哪个进程
  2. 即使能抓到DNS查询的对应进程,其实也只能抓到windows下的DNS Client:svchost.exe进程,实际并无意义,我们依然不知道背后到底是哪个进程在请求likang.3322.org

在抓dns query源进程受阻的情况下,我想到,既然木马想访问likang.3322.org,而这个域名又不存在。 那么我应该可以欺骗它去访问我自己的服务器,我修改hosts文件,添加:

11.22.33.44	likang.3322.org

这个时候,我应该可以抓到访问likang.3322.org的其他请求了。

我用smartsniff抓包,发现有到目标11.22.33.44的http request,木马会请求http://likang.3322.org/ip.txt,看起来像是一个DDOS木马,下载攻击目标的。

这个时候我还是没抓到进程,对应的http://likang.3322.org/ip.txt文件并不存在,http request一瞬间就结束了,tcp查看工具因为刷新频率的原因,还看不到对应的进程。

于是我在11.22.33.44上python起了一个http server,并且让get请求hang住,sleep 30s,最终抓到了对应的进程:

virus_found

如图,QQ进程:

process_QQ

总结一下,上面也说到,正确的做法,应该是查看进程列表,然后逐个检查进程是否正常,从 启动时间 |  可执行文件的创建日期 等特征对比。

绕个弯子,换了个思路。  🙂