主頁 >  其他 > nmap使用指南

nmap使用指南

2022-03-27 07:39:15 其他

0x00 簡介

nmap還用介紹嗎?搞安全的人還有不知道或者不會用nmap的嗎?據我觀察,能夠全面靈活運用nmap的人其實并不多見,其實nmap早已經不再是你眼中那個網路層的掃描器軟體了,早在十年前它就已經進化成為一個全功能的安全評估框架,今天,利用nmap強大的腳本功能,你可以輕松開發出任何漏洞檢測和利用的功能,甚至完全不需要掌握那些常見的編程語言,本課我向你介紹了nmap幾乎全部引數功能,同時演示了如何自己開發一個腳本的程序,

本文使用的nmap版本是7.92

image-20220325162247098

0x01 歷史行程

  • 誕生于1997年
    • 最早的版本只有2000行代碼,沒有版本號
    • 只作為埠掃描工具
    • 6個月后成為黑客社區中網路掃描的事實標準
  • 2003年發布3.45版本
    • Fyodor開始全職維護nmap
    • 增加了服務檢測、OS檢測、時間控制等功能
    • 進入成熟期
  • 2006年集成NSE
    • 從單一的網路掃描工具,轉變為可擴展的全功能漏洞評估引擎

0x02 默認掃描引數

  • 默認TCP syn掃描,利用TCP的三次握手機制,當發送syn包后,如果目標主機的那個埠是開著的,就會回傳syn+ack資料包,同時nmap接收到之后不再回傳ack的確認包,不會建立完成的TCP連接,節約掃描發起者機器的資源
  • 默認掃描1000個常用埠,包括httphttpsftpsmtpssh等等

0x03 指定掃描IP

0x03-1 指定多個掃描IP

例子 含義
sudo nmap 10.0.2.1,2,25 掃描10.0.2.110.0.2.210.0.2.25這3個IP
sudo nmap 10.0.1,2.23,25 掃描10.0.1.2310.0.1.2510.0.2.2310.0.2.25這4個IP
sudo nmap 10.0,1.2,3.23,25 掃描10.0.2.2310.0.2.2510.0.3.2310.0.3.2510.1.2.2310.1.2.2510.1.3.2310.1.3.25這8個IP

image-20220325004733347

例子 含義
sudo nmap 10.0.2.20-25 掃描10.0.2.20-25這一段的IP
sudo nmap 10.0.2-10,25 掃描10.0.2-10,25這幾段的IP
sudo nmap 10.0.2-10.20-25 掃描10.0.2-10.20-25這幾段的IP

image-20220325005544670

例子 含義
sudo nmap 10.0.2.25/24 掃描10.0.2.1/24這個網段中的所有IP
sudo nmap 10.0.2.1/16 掃描10.0.2.1/16這個網段中的所有IP

image-20220325005758883

例子 含義
sudo nmap -iL ip.txt 掃描ip.txt這個檔案內容中所有的IP,注意IP得是一個一行的形式寫入檔案中

image-20220325010055774

0x03-2 指定掃描域名

例子 含義
sudo nmap www.baidu.com 掃描www.baidu,com這個域名對應的IP

image-20220324233643718

0x03-3 排除要掃描的IP

例子 含義
sudo nmap 10.0.2.25/24 --exclude 10.0.2.2,3,4 掃描10.0.2.1/24這個網段中除10.0.2.210.0.2.310.0.2.4外的所有IP
sudo nmap 10.0.2.25/24 --exclude 10.0.2.2-10 掃描10.0.2.1/24這個網段中除10.0.2.2-10這一段外的所有IP
sudo nmap 10.0.2.25/16 --exclude 10.0.2.0/24 掃描10.0.2.1/16這一大段中除10.0.2.0/24這一小段外的所有IP

image-20220325010237185

例子 含義
sudo nmap 10.0.2.25/24 --excludefile exip.txt 掃描10.0.2.25/24這個網段中除exip.txt檔案內容中包含的IP外的所有IP

image-20220325010426850

0x04 反向域名查詢

0x04-1 -R 一定要做DNS反向域名查詢

例子 含義
sudo nmap 220.181.38.251 -R -sn 在掃描時一定要做DNS反向域名查詢,也就是查詢IP地址對應的域名,并且只做主機發現

image-20220325175418772

image-20220325175533234

0x04-2 -n 不做DNS反向域名查詢

例子 含義
sudo nmap 220.181.38.251 -n -sn 在掃描時不做DNS反向域名查詢,也就是不查詢IP地址對應的域名,并且只做主機發現

image-20220325175746724

image-20220325175858216

0x04-3 --dns-servers 指定 DNS 服務器做反向域名查詢

例子 含義
sudo nmap 220.181.38.251 -R --dns-servers 114.114.114.114 -sn 在掃描時做DNS反向域名查詢,指定DNS服務器為114.114.114.114,并且只做主機發現

image-20220325180430896

image-20220325180523385

0x05 -e <iface> 指定發包網卡

例子 含義
sudo nmap 10.0.2.25 -e eth0 指定發掃描資料包的網卡為eth0

image-20220325004329043

如果沒有指定發包網卡,nmap就會使用本機序號為第一個的網卡發掃描包

0x06 主機發現

做掃描的時候,先做主機發現,別一上來就對所有的IP發送大量資料包進行埠掃描,不要做這種莽撞的行為,因為在掃描的時候經常會觸發安全機制的報警,所以做掃描的時候要越隱蔽越好,先做主機發現再做埠掃描,不僅節省自己的時間,還能避免被發現,何樂而不為呢?

0x06-1 -sn 使用ICMP,TCP ping掃描,只做主機發現

向目標系統的80443埠發送ICMPTCP ping掃描,如果目標系統回傳了ICMP回應包、SYN+ACK包、RST+ACK包,就認為這個IP是活著的

并且判斷完IP是否是活著的之后,就會結束,不會再發送埠掃描資料包

例子 含義
sudo nmap -sn 192.168.123.2 掃描192.168.123.2是否是活著的

image-20220326231805062

image-20220325160918236

0x06-2 -Pn 跳過主機發現環節

跳過主機發現環節,直接將IP視為在線狀態,直接發送大量的埠掃描資料包;不加此引數的情況是:若發現此IP不在線,則不進行埠掃描

因為會發出大量的掃描資料包,一點也不隱蔽,所以用此引數來進行主機發現是不可取的

例子 含義
sudo nmap -Pn 192.168.123.2 掃描192.168.123.2,不管此IP是否是活著的狀態

image-20220325161634733

0x06-3 --traceroute 顯示經過的路由

例子 含義
sudo nmap www.baidu.com --traceroute -sn 在掃描結果種顯示每一跳經過的路由IP,而且只做主機發現這一步

0x06-4 -PS 發送 TCP SYN 包

加入這個引數之后只會發送TCP SYN資料包包

例子 含義
sudo nmap 192.168.123.1 -PS -sn 只發送TCP SYN 包進行主機發現

image-20220325163818274

image-20220325164116669

0x06-5 -PA 發送 TCP SYN 包

加入這個引數之后只會發送TCP ACK資料包

例子 含義
sudo nmap 192.168.123.1 -PA -sn -n 只發送TCP ACK 包進行主機發現,并且跳過DNS反向域名決議環節

image-20220325164456252

image-20220325164346257

0x06-6 -PU 發送 UDP 包

加入這個引數之后只會發送UDP 資料包

例子 含義
sudo nmap 192.168.123.1 -PU -sn -n 只發送UDP 包進行主機發現,并且跳過DNS反向域名決議環節

image-20220325165255590

image-20220325165216711

0x06-7 -PY 發送 SCTP 包

加入這個引數之后只會發送SCTP 資料包

例子 含義
sudo nmap 192.168.123.1 -PY -sn -n 只發送SCTP 包進行主機發現,并且跳過DNS反向域名決議環節

image-20220325170549306

image-20220325170706245

0x06-8 -PE 發送 ICMP 包

加入這個引數之后只會發送ICMP 資料包,跟使用ping命令是完全一回事

例子 含義
sudo nmap 192.168.123.1 -PE -sn -n 只發送ICMP 包進行主機發現,并且跳過DNS反向域名決議環節

image-20220325172513655

image-20220325171616497

0x06-9 -PP 請求目標系統時間戳

請求目標系統時間戳,如果回傳的話則說明這個IP是活著的

例子 含義
sudo nmap 192.168.123.1 -PP -sn -n 請求目標系統時間戳,如果回傳的話則說明這個IP是活著的,并且跳過DNS反向域名決議環節

image-20220325172358857

image-20220325172318373

抓包結果顯示發送了兩次 ICMP 資料包請求目標系統時間戳都沒有得到回復,但其實這個IP是活著的

注意:每個引數的使用場景不一樣,沒有哪個引數可以全場景覆寫,要針對當前掃描的環境使用相對應的掃描引數

0x06-10 -PM 請求目標系統子網掩碼

請求目標子網掩碼,如果回傳的話則說明這個IP是活著的

例子 含義
sudo nmap 192.168.123.1 -PM -sn -n 請求目標系統子網掩碼,如果回傳的話則說明這個IP是活著的,并且跳過DNS反向域名決議環節

image-20220325173245931

image-20220325173340517

抓包結果顯示發送了兩次 ICMP 資料包請求目標系統子網掩碼都沒有得到回復,但其實這個IP是活著的

注意:每個引數的使用場景不一樣,沒有哪個引數可以全場景覆寫,要針對當前掃描的環境使用相對應的掃描引數

0x06-11 -PO[protocol list] 指定IP協議包探測目標主機是否開啟

指定IP協議包探測目標主機是否開啟,如果回傳的話則說明這個IP是活著的

數值 值描述
0 保留欄位,用于IPv6(跳躍點到跳躍點選項)
1 Internet控制訊息 (ICMP)
2 Internet組管理 (IGMP)
3 網關到網關 (GGP)
4 IP中的IP(封裝)
5
6 傳輸控制 (TCP)
7 CBT
8 外部網關協議 (EGP)
9 任何私有內部網關(Cisco在它的IGRP實作中使用) (IGP)
10 BBNRCC監視
11 網路語音協議
12 PUP
13 ARGUS
14 EMCON
15 網路診斷工具
16 混亂(Chaos)
17 用戶資料報文 (UDP)
18 復用
19 DCN測量子系統
20 主機監視
21 包無線測量
22 XEROXNSIDP
23 Trunk-1
24 Trunk-2
25 leaf-1
26 1eaf-2
27 可靠的資料協議
28 Internet可靠交易
29 1SO傳輸協議第四類 (TP4)
30 大塊資料傳輸協議
31 MFE網路服務協議
32 MERIT節點之間協議
33 序列交換協議
34 第三方連接協議
35 域之間策略路由協議
36 XTP
37 資料報文傳遞協議
38 IDPR控制訊息傳輸協議
39 TP+ +傳輸協議
40 IL傳輸協議
41 IPv6
42 資源命令路由協議
43 IPv6的路由報頭
44 IPv6的片報頭
45 域之間路由協議
46 保留協議
47 通用路由封裝
48 可移動主機路由協議
49 BNA
50 IPv6封裝安全有效負載
51 IPv6驗證報頭
52 集成的網路層安全TUBA
53 帶加密的IP
54 NBMA地址決議協議
55 IP可移動性
56 使用Kryptonet鑰匙管理的傳輸層安全協議
57 SKIP
58 IPv6的ICMP
59 IPv6的無下一個報頭
60 IPv6的信宿選項
61 任何主機內部協議
62 CFTP
63 任何本地網路
64 SATNET和BackroomEXPAK
65 Kryptolan
66 MIT遠程虛擬磁盤協議
67 Internet Pluribus包核心
68 任何分布式檔案系統
69 SATNET監視
70 VISA協議
71 Internet包核心工具
72 計算機協議Network Executive
73 計算機協議Heart Beat
74 Wang Span網路
75 包視頻協議
76 Backroom SATNET監視
77 SUN ND PROTOCOL—臨時
78 WIDEBAND監視
79 WIDEBAND EXPAK
80 ISO Internet協議
81 VMTP
82 SECURE—VMTP(安全的VMTP)
83 VINES
84 TTP
85 NSFNET—IGP
86 不同網關協議
87 TCF
88 EIGRP
89 OSPF IGP
90 Sprite RPC協議
9] Locus地址決議協議
92 多播傳輸協議
93 AX.25幀
94 IP內部的IP封裝協議
95 可移動網路互連控制協議
96 旗語通訊安全協議
97 IP中的以太封裝
98 封裝報頭
99 任何私有加密方案
100 GMTP
101 Ipsilon流量管理協議
102 PNNI over IP
103 協議獨立多播
104 ARIS
105 SCPS
106 QNX
107 活動網路
108 IP有效負載壓縮協議
109 Sitara網路協議
110 Compaq對等協議
111 IP中的IPX
112 虛擬路由器冗余協議
113 PGM可靠傳輸協議
114 任何0跳躍協議
115 第二層隧道協議
116 D-II資料交換(DDX)
117 互動式代理傳輸協議
118 日程計劃傳輸協議
119 SpectraLink無線協議
120 UTI
121 簡單訊息協議
122 SM
123 性能透明性協議
124 ISIS over IPv4
125 FIRE
126 Combat無線傳輸協議
127 Combat無線用戶資料報文
128 SSCOPMCE
129 IPLT
130 安全包防護
131 IP中的私有IP封裝
132 流控制傳輸協議
133~254 未分配
255 保留
例子 含義
sudo nmap 192.168.123.1 -PO1 -sn -n 指定IP協議包探測目標主機是否開啟,-PO1表示使用ICMP協議,如果回傳的話則說明這個IP是活著的,并且跳過DNS反向域名決議環節

image-20220325174506504

image-20220325174726816

0x07 埠掃描

0x07-1 --top-ports <number> 掃描最常用的埠

例子 含義
sudo nmap 10.0.2.25 --top-ports 100 掃描前100個最常用的埠

image-20220325003844196

0x07-2 指定掃描埠

例子 含義
sudo nmap 10.0.2.25 -p22,80,443,5000 掃描10.0.2.2522804435000
sudo nmap 10.0.2.25 -p1-100 掃描10.0.2.251-100
sudo nmap 10.0.2.25 -p- 掃描10.0.2.25的全部埠,也就是1-65535

image-20220325011539720

0x07-3 -sS 發 TCP SYN 包掃描

例子 含義
sudo nmap 192.168.123.1 -sS TCPSYN資料包進行掃描

image-20220325214137025

image-20220325213922402

0x07-4 -sA 發 TCP ACK 包掃描

例子 含義
sudo nmap 192.168.123.1 -sA TCPACK資料包進行掃描

image-20220325215110697

image-20220325215223870

0x07-5 -sT 三次握手建立完整的 TCP 連接

有些特殊的應用可能會拒絕SYN掃描,拒絕半開的連接,所以這時候必須要通過三次握手建立完成的TCP連接才能發現埠是否是開放的

例子 含義
sudo nmap 192.168.123.1 -sT 通過三次握手建立完整的TCP連接,來判斷埠是否開放

image-20220325214414172

image-20220325214607733

0x07-6 -sN 發送的 TCP 包 flag 位為空

目標主機收到包之后丟棄掉,即不做回應代表這個埠是開放的,如果回傳RST資料包則表示這個埠是開放的;當然這和目標主機的安全配置有關,只是一般情況下是這樣的

所以使用此引數進行埠掃描時要先確保目標IP是活著的

例子 含義
sudo nmap 192.168.123.1 -sN 發送的TCPflag位全設定為0,進行埠掃描

image-20220325221857670

image-20220325222314871

0x07-7 -sF 發送的 TCP 包 flag 位的 Fin 設定為1

目標主機收到包之后丟棄掉,即不做回應代表這個埠是開放的,如果回傳RST資料包則表示這個埠是開放的;當然這和目標主機的安全配置有關,只是一般情況下是這樣的

所以使用此引數進行埠掃描時要先確保目標IP是活著的

例子 含義
sudo nmap 192.168.123.1 -sF 發送的TCP資料包flagFin設定為1

image-20220325222400871

image-20220325222841696

0x07-8 -sX 發送的 TCP 包 flag 位的 Urgent、Push、Fin 設定為1

目標主機收到包之后丟棄掉,即不做回應代表這個埠是開放的,如果回傳RST資料包則表示這個埠是開放的;當然這和目標主機的安全配置有關,只是一般情況下是這樣的

所以使用此引數進行埠掃描時要先確保目標IP是活著的

例子 含義
sudo nmap 192.168.123.1 -sX 發送的TCP資料包flagUrgentPushFin設定為1

image-20220325222941303

image-20220325223212540

0x07-9 --scanflags <flags> 自定義 TCP Flags設定

例子 含義
sudo nmap 192.168.123.1 --scanflags syn,ack,fin 自定義發送的TCP資料包flagsynackFin設定為1

image-20220325224957370

image-20220325225147970

0x07-10 重頭戲:-sI <zombie host[:probeport]> 僵尸掃描

引數:-sI <zombie host[:probeport]> 僵尸掃描

是非常非常隱蔽的掃描方式

原理

  1. 首先需要在被掃描的網路中找一臺符合下面兩個要求的計算機

    • 非常非常空閑的計算機,空閑到沒有和別的任何計算機進行通信(在一個大型的網路中這種空閑的機器還是比較好找的)

    • 這臺計算機的IPID必須是遞增的,且增長方式是有規律的,比方說每次遞增1IPID即是IP頭部的ID欄位)

    很多的計算機的IPID都是遞增的,比方說一天中的第一個資料包的IPID是隨即的,下一個資料包的IPID則會在前一個的IPID上加1或加2或者加一些有規律的數值

  2. nmap先探測僵尸機當前的IPID是多少,并記錄下來

  3. 然后nmap將自己的IP地址偽裝成僵尸機的IP地址,向要目標主機的埠發送SYN

  4. 目標主機埠接收到SYN包之后

    1. 如果目標埠是開放的則會向僵尸機發送SYN+ACK,但是僵尸機從頭到尾都沒有發送過SYN包,憑空接收到了目標主機的向它發送SYN+ACK,僵尸機就會回傳RST資料包,此時僵尸機的IPID遞增1

      image-20220325234241313

    2. 如果目標埠是關閉的則會向僵尸機發送RST包,僵尸機莫名其妙的接收到這個RST包之后會將這個包丟棄掉,此時僵尸機的IPID不變化

      image-20220326003549102

  5. 這時候nmap再次向僵尸機發送資料包,探測僵尸機當前的IPID,如果數值為之前探測的基礎上+2,則表明目標主機的目標埠是開放的;如果數值為之前探測的基礎上+1,則表明目標主機的目標埠是關閉的

  6. 在整個程序中掃描者是完全隱蔽的,安全性很高,但是反向做路由追蹤還是有可能發現的,不過難度特別大,

例子

  • 僵尸機IP10.0.2.11
  • 目標IP10.0.2.25

實施僵尸掃描

執行命令:sudo nmap 10.0.2.25 -sI 10.0.2.11 -Pn

image-20220326014920327

注:利用此命令可以單獨探測僵尸機的IPID變化規律

執行命令:sudo nmap 10.0.2.11 -p445 --script=ipidseq.nse 使用nmap專門用來掃描IPID變化的腳本ipidseq.nse

0x07-11 -sU 發 UDP 資料包掃 UDP 埠

因為UDP是不建立連接的,沒有辦法像TCP那樣在建立連接的程序中就可以判斷出埠是否開放,所以掃UDP埠挺不靠譜的

UDP埠一般需要建立基于UDP以上的應用層連接,發送應用層報文才可以判斷UDP埠是否開放

例子 含義
sudo nmap 192.168.123.1 -sU 發送UDP資料包,掃描UDP

image-20220325221720774

image-20220325220157336

0x07-12 默認配置下埠掃描在做什么

如果目標主機和kali不在同一網段中

執行命令:sudo nmap 192.168.123.1,2 -p80,5000

一圖勝千言

image-20220325153132549

如果目標主機和kali在同一網段中

執行命令:sudo nmap 10.0.2.2,25 -p22,5000

一圖勝千言

image-20220325015657489

0x08 -sV 掃描服務版本

結合多種方式,包括banner,指紋等技術,判斷目標埠上運行的到底是什么服務,準確率很高的

例子 含義
sudo nmap 10.0.2.25 -p22,5000 -sV 探測225000埠運行的是什么服務

image-20220326162508601

例子 含義
sudo nmap 192.168.123.1 -p53 -sU -sV 探測UDP 53埠運行的是什么服務

image-20220326162715813

0x09 -O 掃描系統版本

很多情況下沒有辦法100%判斷出系統的具體版本,就會給出所有可能的結果

例子 含義
sudo nmap 10.0.2.25 -O 探測系統版本

image-20220326162252716

0x0a 掃描速度控制

0x0a-1 -T<0-5> 設定掃描速度等級

0最慢,5最快,不過最快速度可能會更容易被發現

例子 含義
sudo nmap 10.0.2.25 -T3 限定掃描速度為等級3

image-20220326163057579

0x0a-2 --scan-delay <time> 設定探測間隔時間

例子 含義
sudo nmap 10.0.2.25 --scan-delay 10s 每個掃描間隔10
sudo nmap 10.0.2.25 --scan-delay 10m 每個掃描間隔10分鐘
sudo nmap 10.0.2.25 --scan-delay 10h 每個掃描間隔10小時

0x0a-3 --min-rate 最小掃描速度

例子 含義
sudo nmap 10.0.2.25 --min-rate 最小掃描速度

0x0a-3 --min-rate 最大掃描速度

例子 含義
sudo nmap 10.0.2.25 --max-rate 最大掃描速度

0x0a-4 解決掃描被卡住的問題(大范圍地址空間)

nmap掃描大范圍地址塊時經常會被卡死在中間的一個IP中,

絕大多數是由于目標系統的安全機制造成的,目標系統發現你在掃描時就估計將你的掃描請求掛在那不回應,讓掃描進行不下去

例子 含義
sudo nmap 10.0.2.0/24 --host-timeout 10m 設定掃描超時時間為10分鐘,超過了設定的時間就會掃描下一個

0x0b 躲避安全檢測

0x0b-1 -f 將 IP 資料段分片(8位元組一片)

IP資料段分片發送,使目標的安全機制IPS等設備無法還原資料包的原始內容,從而使安全檢測機制失效

比方說

標準的TCP包頭是20個位元組,加入了-f引數后會將這個20位元組分3個包發出去,第一個包8位元組,第二個包8位元組,第三個包4位元組再加上4位元組TCP資料段的內容(如果有資料段的話也是每次發8位元組)

例子 含義
sudo nmap 10.0.2.25 -f 將 IP 資料段分片(8位元組一片)

0x0b-2 -D <decoy1,decoy2[,ME],...> 偽造多個源IP,真實IP隱藏在其中

ME代表自己的IP

偽造多個源IP發送掃描資料包,將真實的掃描IP隱藏起來

據有些安全資料上說,當ME位于第6個*或者再之后時,有些知名廠家安全設備不會記錄到安全日志中

例子 含義
sudo nmap 10.0.2.25 -D 10.0.2.22,10.0.2.23,10.0.2.24,ME 偽造10.0.2.22 10.0.2.23 10.0.2.24和自己的真實IP ME對目標10.0.2.25進行掃描

0x0b-3 -S <IP_Address> 偽造源IP

將源IP進行偽造,使用此引數的話還需要別的方法判斷偽造的源IP是否接收到了回包

此引數需要搭配-e <iface>指定網卡,-Pn跳過主機發現這兩個引數

例子 含義
sudo nmap 10.0.2.25 -S 10.0.2.11 -e eth0 -Pn 偽造源IP10.0.2.11進行探測,并且指定了發包網卡為eth0,跳過主機發現環節

0x0b-4 -g <portnum> 指定發包埠

例子 含義
sudo nmap 10.0.2.25 -g 3333 指定掃描資料包發送的埠為3333

0x0b-5 --proxies <url1,[url2],...> 掛上HTTP或SOCKS4代理進行掃描

例子 含義
sudo nmap 10.0.2.25 --proxies http://10.0.2.11:8080 使用HTTP代理進行發包掃描

0x0b-6 --data <hex string> 在掃描包中資料段附加自定義的16進制資料

例子 含義
sudo nmap 192.168.123.1 --data "AABB02" 在掃描資料包附加16進制資料AABB02
sudo nmap 192.168.123.1 --data "\xAA\xBB\x02" 在掃描資料包附加16進制資料\xAA\xBB\x02
sudo nmap 192.168.123.1 --data "0xaabb02" 在掃描資料包附加16進制資料0xaabb02

image-20220326173941948

image-20220326173911912

0x0b-7 --data-string <string> 在掃描資料包資料段中附加自定義的ASCII字符

例子 含義
sudo nmap 192.168.123.1 --data-string aabbccdd 在掃描資料包附加ASCII資料aabbccdd
sudo nmap 192.168.123.1 --data-string "aa bb cc dd" 在掃描資料包附加ASCII資料aa bb cc dd

image-20220326174433376

image-20220326174552510

0x0b-8 --ip-options <options> 指定IP OPTION資料(暫時不知道咋用)

0x0b-9 --ttl <val> 指定發送掃描包的TTL值

例子 含義
sudo nmap 192.168.123.1 --ttl 25 指定發送掃描包的TTL值為25

image-20220326180342686

image-20220326180303129

0x0b-10 --spoof-mac <mac address/prefix/vendor name> 偽造掃描資料包中的MAC地址

可能會造成收不到回包的情況

例子 含義
sudo nmap 192.168.123.1 --spoof-mac AA:BB:CC:DD:EE:FF 偽造資料包中的MAC地址AA:BB:CC:DD:EE:FF

image-20220326181220475

image-20220326181041082

0x0b-11 --badsum 使用錯誤的checksum

IP包頭中的checksum校驗值故意寫錯,看看目標的安全檢測機制會不會放棄這樣的包,從而繞過安全機制

例子 含義
sudo nmap 192.168.123.1 --badsum 故意使用錯誤的checksu

0x0c 輸出格式

0x0c-1 -oA <basename> 將掃描結果保存為三種根式日志

三種主要的根式日志,分別是xmlnmapgnmap

例子 含義
sudo nmap 192.168.123.1 -oA a 將掃描結果保存為三種主要的根式日志,檔案名為a

image-20220326181822411

a.nmap格式的內容就是螢屏輸出的內容

image-20220326182027203

a.gnmap格式的內容是為了方便用grep命令篩選結果的

image-20220326182201250

比方說掃描了大量的IP后,現在想要提取所有開放80埠的IP地址

可以這樣執行命令:cat a.gnmap | grep 80

image-20220326182434935

a.xml格式就是xml格式嘍

0x0c-2 -oX <file> 將掃描結果保存為XML格式檔案

三種主要的根式日志,分別是xmlnmapgnmap

例子 含義
sudo nmap 192.168.123.1 -oX a 將掃描結果保存為XML格式檔案,檔案名為a.xml

0x0c-3 顯示詳細資訊

例子 含義
sudo nmap 192.168.123.1 -v 顯示詳細資訊
sudo nmap 192.168.123.1 -vv 顯示更詳細資訊
sudo nmap 192.168.123.1 -vvv 顯示更更詳細資訊
sudo nmap 192.168.123.1 -v3 等同于-vvv

0x0c-4 -d 顯示debug資訊

例子 含義
sudo nmap 192.168.123.1 -d 顯示debug資訊

0x0c-5 --reason 顯示判斷埠狀態的依據

例子 含義
sudo nmap 10.0.2.25 --reason 在結果中顯示判斷埠狀態的依據

image-20220325004139695

0x07-6 --open 掃描結果中只顯示開放的埠

例子 含義
sudo nmap 10.0.2.25 --open 只顯示開放的埠

image-20220325003945068

0x07-7 --packet-trace 顯示 nmap 都發了或收了什么包

例子 含義
sudo nmap 10.0.2.25 --packet-trace 顯示nmap都發了和都收了什么包

image-20220326183241345

0x07-8 --script-trace 只顯示腳本都發了和都收了什么包

例子 含義
sudo nmap 10.0.2.25 --script-trace 只顯示腳本都發了和都收了什么包

0x07-9 --iflist 顯示系統中都有哪些網卡

例子 含義
sudo nmap --iflist 顯示系統中都有哪些網卡

image-20220326183713489

0x0d -6 開啟 IPV6 掃描

例子 含義
sudo nmap fe80::a00:27ff:fe6a:30e3 -6 開啟IPV6掃描

0x0e NSE 腳本引擎(Nmap Scripting Engine)

0x0e-1 簡介

  • 2006年發布4.21 ALPHA1版本時加入的

  • 在第二屆Google summer code大會上創造的

  • 由于具有NSE腳本引擎,所以nmap成為了全功能的掃描工具套件

  • 基于lua語言特殊標記的腳本框架,腳本由NSE執行

    lua是非常快速的解釋性語言,很多waf上會使用lua

  • 升級腳本檔案:nmap --script-updatedb

  • 腳本檔案保存在:/usr/share/nmap/scripts

  • 腳本的描述和使用方法:https://nmap.org/nsedoc/ 或者 在腳本中查看description部分

  • 目前默認包含600多個腳本(14大類)

    型別 中文
    Auth 身份認證
    Broadcast 廣播
    Brute 暴力
    Default 默認
    Discovery 發現類
    Dos 拒絕服務
    Exploit 漏洞利用
    External 外部類(查詢第三方介面獲取資訊,比方說有的網站會公布這個IP是否已經中招了、遭泄露了等等)
    Fuzzer 模糊測驗
    Intrusive 入侵性探測
    Malware 惡意軟體類
    Safe 安全
    Version 獲取版本資訊類
    Vuln 漏洞類

    一般在企業中建議使用DefaultSafe型別的腳本進行掃描,盡量避免使用IntrusiveDosExploit型別的腳本,盡量對自己家的服務器溫柔一點

0x0e-2 腳本使用

例子 含義
sudo nmap 192.168.123.1 --script=http-title 使用http-title.nse這個腳本
sudo nmap 10.0.2.25 -sC 使用所有的Default類腳本
sudo nmap 10.0.2.25 --script=default 使用所有的Default類腳本,與-sC相同
sudo nmap 10.0.2.25 --script=vuln 使用所有的Vuln類腳本
sudo nmap 10.0.2.25 --script=dos,exploit,vuln 使用所有的DosExploitVuln類腳本
sudo nmap 10.0.2.25 --script="not(dos or exploit or vuln)" 使用除DosExploitVuln類外的所有腳本
sudo nmap 10.0.2.25 --script="whois-ip,banner,upnp-info" 使用whois-ip.nsebanner.nseupnp-info.nse這三個腳本
sudo nmap 10.0.2.25 --script="http-*" 使用所有的以http-開頭的腳本
sudo nmap 10.0.2.25 --script="http-* and not(http-slowloris or http-brute or http-enum or http-form-fuzzer)" 使用除http-slowloris.nsehttp-brute.nsehttp-enum.nsehttp-form-fuzzer.nse外所有以http-開頭的腳本
sudo nmap 10.0.2.25 --script=+vuln -p4343 使用所有的Vuln類腳本掃描4343埠;當服務不作業在非標準埠時,部分腳本就不作業了,使用+來強制Vuln類所有腳本都要對4343埠進行掃描

image-20220326193441371

0x0e-3 腳本引數

例子 含義
sudo nmap 192.168.123.1 --script=http-title --script-args=http.useragent="w00l00" 使用http-title.nse這個腳本,并設定其中的useragent引數值為w00l00

image-20220326205943657

image-20220326210129956

例子 含義
sudo nmap 192.168.123.1 --script=http-majordomo2-dir-traversal,http-axis2-dir-traversal --script-args=http-axis2-dir-traversal.uri=/axis2/,uri=/majordomo/ 分別指定http-majordomo2-dir-traversal.nsehttp-axis2-dir-traversal.nse兩個腳本中的uri引數值

0x0e-4 使用實體

例子 含義
sudo nmap 10.0.2.25 -sL --script=targets-sniffer -e eth0 targets-sniffer.nse腳本的功能是做被動偵聽
sudo nmap 10.0.2.25 -p3306 -script=mysql-brute 針對mysql 3306埠做簡單的暴力破解密碼
sudo nmap 10.0.2.25 -p25 -script=smtp-brute 針對smtp 25埠做簡單的暴力破解密碼
sudo nmap 10.0.2.25 -p3306 -script=mysql-audit --script-args='mysql-audit.username="root"',mysql-audit.password="pass",mysql-audit.filename=/usr/share/nmap/nselib/data/mysql-cis.audit 提供mysql賬號root密碼pass,連接之后,按照/usr/share/nmap/nselib/data/mysql-cis.audit檔案內容做相應的審計,檢測是否存在漏洞
sudo nmap 10.0.2.25 -p445 -n --open --script=smb-vuln-ms17-010.nse 檢測ms17-010漏洞

image-20220326212312350

0x0e-5 寫自己的腳本

使用Lua的語法寫就行,注意要把TAB鍵改成2個空格長度

先來看一個現成的smb-vuln-ms17-010.nse

----------------------------------------------------------- 頭部 -----------------------------------------------------------
----------------------------------------------------------- 頭部 -----------------------------------------------------------
----------------------------------------------------------- 頭部 -----------------------------------------------------------

-- 變數定義,應用模塊
local nmap = require "nmap"
local smb = require "smb"
local vulns = require "vulns"
local stdnse = require "stdnse"
local string = require "string"

-- 描述,我這個腳本干嘛用的;[[ ]] 是多行注釋
description = [[
Attempts to detect if a Microsoft SMBv1 server is vulnerable to a remote code
 execution vulnerability (ms17-010, a.k.a. EternalBlue).
 The vulnerability is actively exploited by WannaCry and Petya ransomware and other malware.

The script connects to the $IPC tree, executes a transaction on FID 0 and
 checks if the error "STATUS_INSUFF_SERVER_RESOURCES" is returned to
 determine if the target is not patched against ms17-010. Additionally it checks
 for known error codes returned by patched systems.

Tested on Windows XP, 2003, 7, 8, 8.1, 10, 2008, 2012 and 2016.

References:
* https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
* https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
* https://msdn.microsoft.com/en-us/library/ee441489.aspx
* https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/smb/smb_ms17_010.rb
* https://github.com/cldrn/nmap-nse-scripts/wiki/Notes-about-smb-vuln-ms17-010
]]

---
-- 告訴你這個腳本怎么用,怎么樣執行命令
-- @usage nmap -p445 --script smb-vuln-ms17-010 <target>
-- @usage nmap -p445 --script vuln <target>
--
-- @see smb-double-pulsar-backdoor.nse
--
-- @output
-- Host script results:
-- | smb-vuln-ms17-010:
-- |   VULNERABLE:
-- |   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
-- |     State: VULNERABLE
-- |     IDs:  CVE:CVE-2017-0143
-- |     Risk factor: HIGH
-- |       A critical remote code execution vulnerability exists in Microsoft SMBv1
-- |        servers (ms17-010).
-- |
-- |     Disclosure date: 2017-03-14
-- |     References:
-- |       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
-- |       https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
-- |_      https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
--
-- @xmloutput
-- <table key="CVE-2017-0143">
-- <elem key="title">Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)</elem>
-- <elem key="state">VULNERABLE</elem>
-- <table key="ids">
-- <elem>CVE:CVE-2017-0143</elem>
-- </table>
-- <table key="description">
-- <elem>A critical remote code execution vulnerability exists in Microsoft SMBv1&#xa; servers (ms17-010).&#xa;</elem>
-- </table>
-- <table key="dates">
-- <table key="disclosure">
-- <elem key="month">03</elem>
-- <elem key="year">2017</elem>
-- <elem key="day">14</elem>
-- </table>
-- </table>
-- <elem key="disclosure">2017-03-14</elem>
-- <table key="refs">
-- <elem>https://technet.microsoft.com/en-us/library/security/ms17-010.aspx</elem>
-- <elem>https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143</elem>
-- <elem>https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/</elem>
-- </table>
-- </table>
--
-- @args smb-vuln-ms17-010.sharename Share name to connect. Default: IPC$
---

-- 作者是誰
author = "Paulino Calderon <paulino()calderonpale.com>"
-- 這個腳本遵循的許可
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
-- 這個腳本屬于哪些類
categories = {"vuln", "safe"}

----------------------------------------------------------- 規則 -----------------------------------------------------------
----------------------------------------------------------- 規則 -----------------------------------------------------------
----------------------------------------------------------- 規則 -----------------------------------------------------------

[[
	Rule:決定在什么情況下運行后續的Action,滿足設定的條件才運行后續的Action
          有Prerule、Postrule、Portrule、Hostrule
          比如 Portrule 通常用于檢測服務匹配的特征字串
]]

hostrule = function(host)
  return smb.get_port(host) ~= nil
end

local function check_ms17010(host, port, sharename)
  local status, smbstate = smb.start_ex(host, true, true, "\\\\".. host.ip .. "\\" .. sharename, nil, nil, nil)
  if not status then
    stdnse.debug1("Could not connect to '%s'", sharename)
    return false, string.format("Could not connect to '%s'", sharename)
  else
    local overrides = {}
    local smb_header, smb_params, smb_cmd

    stdnse.debug1("Connected to share '%s'", sharename)

    overrides['parameters_length'] = 0x10

    --SMB_COM_TRANSACTION opcode is 0x25
    smb_header = smb.smb_encode_header(smbstate, 0x25, overrides)
    smb_params = string.pack(">I2 I2 I2 I2 B B I2 I4 I2 I2 I2 I2 I2 B B I2 I2 I2 I2 I2 I2",
      0x0,     -- Total Parameter count (2 bytes)
      0x0,     -- Total Data count (2 bytes)
      0xFFFF,  -- Max Parameter count (2 bytes)
      0xFFFF,  -- Max Data count (2 bytes)
      0x0,     -- Max setup Count (1 byte)
      0x0,     -- Reserved (1 byte)
      0x0,     -- Flags (2 bytes)
      0x0,     -- Timeout (4 bytes)
      0x0,     -- Reserved (2 bytes)
      0x0,     -- ParameterCount (2 bytes)
      0x4a00,  -- ParameterOffset (2 bytes)
      0x0,     -- DataCount (2 bytes)
      0x4a00,  -- DataOffset (2 bytes)
      0x02,    -- SetupCount (1 byte)
      0x0,     -- Reserved (1 byte)
      0x2300,  -- PeekNamedPipe opcode
      0x0,     --
      0x0700,  -- BCC (Length of "\PIPE\")
      0x5c50,  -- \P
      0x4950,  -- IP
      0x455c   -- E\
      )
    stdnse.debug2("SMB: Sending SMB_COM_TRANSACTION")
    local result, err = smb.smb_send(smbstate, smb_header, smb_params, '', overrides)
    if(result == false) then
      stdnse.debug1("There was an error in the SMB_COM_TRANSACTION request")
      return false, err
    end

    local result, smb_header, _, _ = smb.smb_read(smbstate)
    if not result then
      stdnse.debug1("Error reading SMB response: %s", smb_header)
      -- error can happen if an (H)IPS resets the connection
      return false, smb_header
    end

    local _ , smb_cmd, err = string.unpack("<c4 B I4", smb_header)
    if smb_cmd == 37 then -- SMB command for Trans is 0x25
      stdnse.debug1("Valid SMB_COM_TRANSACTION response received")

      --STATUS_INSUFF_SERVER_RESOURCES indicate that the machine is not patched
      if err == 0xc0000205 then
        stdnse.debug1("STATUS_INSUFF_SERVER_RESOURCES response received")
        return true
      elseif err == 0xc0000022 then
        stdnse.debug1("STATUS_ACCESS_DENIED response received. This system is likely patched.")
        return false, "This system is patched."
      elseif err == 0xc0000008 then
        stdnse.debug1("STATUS_INVALID_HANDLE response received. This system is likely patched.")
        return false, "This system is patched."
      end
      stdnse.debug1("Error code received:%s", stdnse.tohex(err))
    else
      stdnse.debug1("Received invalid command id.")
      return false, string.format("Unexpected SMB response:%s", stdnse.tohex(err))
    end
  end
end

----------------------------------------------------------- Action -----------------------------------------------------------
----------------------------------------------------------- Action -----------------------------------------------------------
----------------------------------------------------------- Action -----------------------------------------------------------

action = function(host,port)
  local vuln_status, err
  local vuln = {
    title = "Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)",
    IDS = {CVE = 'CVE-2017-0143'},
    risk_factor = "HIGH",
    description = [[
A critical remote code execution vulnerability exists in Microsoft SMBv1
 servers (ms17-010).
    ]],
    references = {
      'https://technet.microsoft.com/en-us/library/security/ms17-010.aspx',
      'https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/'
    },
    dates = {
      disclosure = {year = '2017', month = '03', day = '14'},
    }
  }
  local sharename = stdnse.get_script_args(SCRIPT_NAME .. ".sharename") or "IPC$"
  local report = vulns.Report:new(SCRIPT_NAME, host, port)
  vuln.state = vulns.STATE.NOT_VULN

  vuln_status, err = check_ms17010(host, port, sharename)
  if vuln_status then
    stdnse.debug1("This host is missing the patch for ms17-010!")
    vuln.state = vulns.STATE.VULN
  else
    vuln.state = vulns.STATE.NOT_VULN
    vuln.check_results = err
  end
  return report:make_output(vuln)
end

撰寫自己的腳本,內容如下

----------------------------------------------------------- Header -----------------------------------------------------------
----------------------------------------------------------- Header -----------------------------------------------------------
----------------------------------------------------------- Header -----------------------------------------------------------

local http = require "http"
local nmap = require "nmap"

description = [[
	檢查網站根目錄下是否有 "robots.txt" 這個檔案
]]

author = "w00l00"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"default", "discovery", "safe"}

----------------------------------------------------------- Rules -----------------------------------------------------------
----------------------------------------------------------- Rules -----------------------------------------------------------
----------------------------------------------------------- Rules -----------------------------------------------------------

-- 規則是 判斷埠是否開放,開放則回傳True
portrule = function(host, port)
    return port.state == "open"
end

----------------------------------------------------------- Action -----------------------------------------------------------
----------------------------------------------------------- Action -----------------------------------------------------------
----------------------------------------------------------- Action -----------------------------------------------------------

-- 如果規則函式回傳的是True,做下面的Action
action = function(host, port)
    -- 請求目標主機目標埠下的 robots.txt 檔案
    local robots = http.get(host, port, "/robots.txt")

    -- 如果回傳的http狀態碼是200則表明檔案存在
    if robots.status == 200 then
        return "robots.txt status 200"
    else
        return "robots.txt status: " .. robots.status
    end
end

執行自己撰寫的腳本

image-20220326221752300

0x0f -A 綜合引數,相當于 -O、-sV、-sC、traceroute 引數結合體

例子 含義
sudo nmap 10.0.2.25 -A -A綜合引數,相當于-O-sV-sCtraceroute 引數結合體
  • 對應的視頻鏈接:點擊查看

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/449779.html

標籤:其他

上一篇:【統計學習方法|筆記】第1章 統計學習方法理論

下一篇:【認證】資料結構的基本概念【408統考】

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more