nmap以及Windows和Linux常见命令

一、网络扫描-nmap

1.功能介绍

找出目标主机或目标设备开放的端口和提供的服务,为下一步攻击做好准备。

发现主机或端口扫描

2.各种参数

-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。  

-sn: Ping Scan 只进行主机发现,不进行端口扫描。  

-Pn: 跳过主机发现而进行端口扫描等高级操作。  

-PS/PA/PU/PY[portlist]: 使用TCP SYN/ACK或SCTP INIT/ECHO方式进行主机发现。

-sS/sT/sA/sW:指定使用 TCP SYN/Connect()/ACK/Window方式来对目标主机进行扫描。

-sU: 使用UDP扫描方式确定目标主机的UDP端口。    

-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。  

-sF  不受防火墙和IDS的限制  

--scanflags <flags>: 定制TCP包的flags。    

-sO: 使用IP protocol 扫描确定目标机支持的协议类型。 

-p <port ranges>: 扫描指定的端口    实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)  

 -F: Fast mode   快速模式,仅扫描TOP 100的端口    

-r: 按端口有序扫描(如无该参数,随机顺序方式扫描端口)

3.Nmap所识别的6个端口状态:

Open端口是开放的
Closed端口是关闭的
filtered端口被防火墙IDS/IPS屏蔽,无法确定其状态
unfiltered端口没有被屏蔽,但是否开放需要进一步确定
open|filtered端口是开放的或被屏蔽
closed|filtered端口是关闭的或被屏蔽

4.SYN扫描

(-sS)半开放扫描 nmap -sS IP地址

发送SYN到目标端口,如果收到SYN/ACK回复,端口是开放的; 如果收到RST包,说明该端口是关闭的。 如果没有收到回复,判断该端口被屏蔽(Filtered,防火墙)。 仅发送SYN包到目标主机的特定端口,不建立的完整的TCP连接,相对比较隐蔽,效率比较高,适用范围广。

5.TCP扫描

(-sT)全扫描   三次握手 nmap -sT IP地址

使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。能建立连接,则端口打开该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。

6.ACK扫描 

nmap -sA IP地址

向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽(判断防火墙设置) 没有收到RST包,说明被屏蔽。 不能用于判断端口的打开与关闭,只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。

7.三种 秘密扫描

TCP FIN/Xmas/NULL scanning    

分别向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包。 如果收到对方RST回复包,则该端口是关闭的;(图1) 没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。(图2) Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。

自定义TCP扫描包的参数为(--scanflags)nmap --scanflags  URGSYN  目标IP

8.UDP 扫描

(0-65535)

向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就说明该端口是关闭的; 如果没有收到回复,那说明UDP端口可能是开放的或屏蔽的。

9.版本扫描

nmap  -sV 目标

-sV: 指定让Nmap进行版本侦测  

--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。  

--version-light: 指定使用轻量侦测方式 (intensity 2)  

--version-trace: 显示出详细的版本侦测过程信息。

10.操作系统类型扫描

nmap -O <target IP>

-O: 指定Nmap进行OS侦测。  

 --osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。  

 --osscan-guess: 大胆猜测对方的主机的系统类型。

11.假冒扫描

nmap -D IP地址1,IP地址2,…,ME IP地址

nmap --data-length 垃圾数据长度 IP地址 常规扫描的数据包是特定数据长度的。 通过在发送的数据包末尾添加随机的垃圾数据,以达到混淆视听的作效果。

nmap --randomize-hosts IP地址段网络s 打乱扫描顺序,以规避检测系统的检测。

12.NSE脚本引擎

NSE脚本引擎是Nmap最强大最灵活的功能之一,允许用户自己编写脚本来执行自动化的操作或者扩展Nmap的功能。 NSE使用Lua脚本语言,并且默认提供了丰富的脚本库,包含14个类别的600多个脚本。

功能

网络发现(Network Discovery)

更加复杂的版本侦测(例如skype软件)

漏洞侦测(Vulnerability Detection)

后门侦测(Backdoor Detection)

漏洞利用(Vulnerability Exploitation)

13.脚本扫描

ls /usr/share/nmap/script     列举所有可用脚本

ls /usr/share/nmap/script | grep smb  列举smb相关脚本

nmap IP --script smb-os-discovery      (--script = -sC)

nmap IP --script smb-enum-shares

nmap IP --script smb-brute

nmap IP --script http-enum

14.unicornscan扫描

通过连接用户系统分布式TCP/IP堆栈获得信息和关联关系的端口扫描器。

1.用法

安装:apt-get install unicornscan

(1)TCP SYN扫描

unicornscan  -v -I 目标    v详细输出;I立即模式

(2)特定协议的扫描

unicornscan  -mT  目标 扫描模式是默认的TCP(SYN)扫描, -U表示UDP -T表示TCP连接扫描 -A表示ARP

(3)指定端口

unicornscan -mT -r200 -v -I [IP地址]/24:端口

2.功能

具有TCP标志的所有变体的异步无状态TCP扫描

异步无状态TCP标语抓取

异步UDP扫描(发送足够多的签名以引起响应)

通过分析响应来进行主动和被动远程OS,应用程序和组件标识

PCAP文件记录和过滤

关系数据库输出

自定义模块支持

定制的数据集视图

二、Windows命令

1.系统架构

可快速获取目标主机的各种信息,如操作系统,安装的SP版号等。

systeminfo /fo list

systeminfo | findstr “主机名”

systeminfo | findstr “KB”

systeminfo /fo table

systeminfo /fo csv

2.tasklist

显示本地计算机或远程计算机上当前正在运行的进程列表

若要列出进程 ID 大于 1000 的所有任务,并将它们以 csv 格式显示 tasklist /v /fi "PID gt 1000" /fo csv

列出当前正在运行的系统进程 tasklist /fi "USERNAME ne NT AUTHORITY\SYSTEM" /fi "STATUS eq running”

列出当前正在运行的所有进程的详细信息 tasklist /v /fi "STATUS eq running”

列出zhangsan用户正在运行的进程 tasklist /fi “username ne zhangsan” /fi ”status eq running”

列出远程计算机运行的进程 tasklist /s 192.169.200.1 /u zhangsan /p 123456

3.用户和组

whoami 为当前登录的用户返回域名、计算机名、用户名、组名、登录标识符以及特权

whoami 查看当前登录的用户名称

whoami /user   查看当前用户的SID

whoami /all 查看当前用户的用户名和组信息

net user  查看系统中包含哪些用户

wmic useraccount get name,sid 查看当前系统中所有用户的SID

wmic useraccount list brief

查看账户aaa的信息信息:net user aaa

创建[删除]空密码账户aaa:net user aaa /add [del]

创建[删除]普通账户aaa,密码为123:net user aaa 123 /add [del]

创建[删除]普通账户aaa,密码为123:net user aaa$ 123 /add [del]

把aaa加入[退出]管理员组:net localgroup administrators aaa /add [del]

启用[停用]账户aaa:net user aaa /active:yes [no]

新建[删除]组admin1:net localgroup admin1 /add [del]

4.服务sc

例如:在注册表和服务数据库中创建服务项 sc create cmdaa type= own type= interact binPath= "c:\win dows\system32\cmd.exe /c cmd.exe"  & sc start cmdaa

5.网络ipconfig

6.Netstat

7.文件系统

8.wmic

三、Linux命令

1.系统架构

2.进程

3.用户和组

4.服务状态

5.网络

6.文件系统