1. 程式人生 > >Scapy常用操作和命令(4)

Scapy常用操作和命令(4)

使用dir()可以檢視當前的臨時變數

>>> dir()

['__builtins__', 'a', 'ans', 'conf', 'p', 'r', 's', 'unans']

make_table方法小結:

make_table由一個list物件呼叫,接受一個返回值為3元祖的方法,返回的3元組的第一個引數為tableXrowtitle,第二個引數為Ycol title,第三個引數為X,Y位置顯示的內容,例如:

>>> ans,unans=sr(IP(dst="www.test.fr/30", ttl=(1,6))/TCP())

Received 49 packets, got 24 answers, remaining 0 packets

>>> ans.make_table( lambda (s,r): (s.dst, s.ttl, r.src) )

216.15.189.192216.15.189.193216.15.189.194 216.15.189.195

1 192.168.8.1192.168.8.1192.168.8.1192.168.8.1

2 81.57.239.25481.57.239.25481.57.239.25481.57.239.254

3 213.228.4.254213.228.4.254213.228.4.254213.228.4.254

4 213.228.3.3213.228.3.3213.228.3.3213.228.3.3

5 193.251.254.1193.251.251.69193.251.254.1193.251.251.69

6 193.251.241.174 193.251.241.178 193.251.241.174 193.251.241.178

此外,make_lined_table()make_tex_table()make_table的兩個變體,用法如下:

>>> ans.filter(lambda (s,r):r.sprintf("%TCP.flags%")=="SA").make_lined_table(lambda (s,r):(s.dst,r.sport,"X"))

----+----------------+----------------+

| 172.31.100.127 | 172.31.100.149 |

----+----------------+----------------+

80| X| X |

135 | X| X|

139 | X| -|

445 | X| -|

902 | -| X|

912 | -| X|

----+----------------+----------------+

>>> ans.filter(lambda (s,r):r.sprintf("%TCP.flags%")=="SA").make_tex_table(lambda (s,r):(s.dst,r.sport,"X"))

\hline

& 172.31.100.127 & 172.31.100.149 \\

\hline

80 & X & X \\

135 & X & X \\

139 & X & - \\

445 & X & - \\

902 & - & X \\

912 & - & X \\

\hline

Scapy可以定義自己的路由表,這樣可以在不影響作業系統路由表的前提下測試路由:

>>> conf.route

NetworkNetmaskGateway Iface

127.0.0.0255.0.0.00.0.0.0 lo

192.168.8.0255.255.255.00.0.0.0 eth0

0.0.0.00.0.0.0192.168.8.1 eth0

>>> conf.route.delt(net="0.0.0.0/0",gw="192.168.8.1")

>>> conf.route.add(net="0.0.0.0/0",gw="192.168.8.254")

>>> conf.route.add(host="192.168.1.1",gw="192.168.8.1")

>>> conf.route

NetworkNetmaskGateway Iface

127.0.0.0255.0.0.00.0.0.0 lo

192.168.8.0255.255.255.00.0.0.0 eth0

0.0.0.00.0.0.0192.168.8.254 eth0

192.168.1.1255.255.255.255 192.168.8.1eth0

>>> conf.route.resync()

>>> conf.route

NetworkNetmaskGateway Iface

127.0.0.0255.0.0.00.0.0.0 lo

192.168.8.0255.255.255.00.0.0.0 eth0

0.0.0.00.0.0.0192.168.8.1 eth0

traceroute方法基於TCP,會同時給所有路徑上的節點發送探測報文,好處是效率非常高,壞處是這樣就不知道在哪個節點停止(預設最多30個節點),所以可以通過maxttl引數來限制跳數。可以指定多個目標:

>>> traceroute(["www.yahoo.com","www.altavista.com","www.wisenut.com","www.copernic.com"],maxttl=20)

Begin emission:

....*********************************************Finished to send 80 packets.

*************************

Received 74 packets, got 70 answers, remaining 10 packets

188.125.66.105:tcp80 206.190.36.45:tcp80 211.39.140.160:tcp80 64.26.185.74:tcp80

1 172.31.100.111172.31.100.111172.31.100.111172.31.100.111

2 172.31.99.111172.31.99.111172.31.99.111172.31.99.111

3 172.30.1.1711172.30.1.1711172.30.1.1711172.30.1.1711

4 172.30.1.511172.30.1.511172.30.1.511172.30.1.511

5 106.120.78.18911106.120.78.18911106.120.78.18911106.120.78.18911

6 -219.141.158.138 11 -219.141.158.138 11

7 59.43.77.111-59.43.77.111-

8 59.43.247.701159.43.77.91159.43.17.1181159.43.77.911

9 59.43.246.141159.43.17.611-59.43.17.611

10 59.43.183.7411-59.43.246.25411-

11 59.43.244.21159.43.246.16211203.234.255.173 1159.43.246.162 11

12 80.239.193.1411159.43.182.7711112.174.83.3311-

13 62.115.140.24811213.248.79.25211112.174.48.13711213.248.79.25211

14 62.115.113.2191162.115.118.24611112.174.60.901162.115.121.22711

15 62.115.61.1101162.115.125.16011112.188.244.194 11213.155.130.247 11

16 66.196.68.1531162.115.120.751161.78.39.2461180.239.128.5811

17 66.196.65.251162.115.116.14011211.39.140.160SA64.230.79.9011

18 217.146.186.731162.115.61.12211211.39.140.160SA64.230.79.13911

19 -216.115.101.109 11211.39.140.160 SA64.230.79.12411

20 -66.196.67.10111211.39.140.160SA64.230.50.16611

(<Traceroute: TCP:4 UDP:0 ICMP:66 Other:0>, <Unanswered: TCP:10 UDP:0 ICMP:0 Other:0>)

幾個常用的Random函式:

RandShort():返回一個隨機short

RandIP():返回一個隨機IP地址

RandIP6():返回一個隨機IPv6地址

RandMAC():返回一個隨機MAC地址



相關推薦

Scapy常用操作命令(4)

使用dir()可以檢視當前的臨時變數 >>> dir() ['__builtins__', 'a', 'ans', 'conf', 'p', 'r', 's', 'unans

Scapy常用操作命令(3)

 syn埠掃描的寫法: >>> ans, unans=sr(IP(src="172.31.100.222", dst="172.31.100.149")/TCP(sport=

Scapy常用操作命令(2)

>>> ans, unans = sr(IP(src="172.31.100.149/30", dst="www.baidu.com")/TCP(dport=80), inter=0.5, retry=-3, timeout=1) .Begin emission: ............

Linux 常用操作命令

linux 命令 1. 什麽是linux服務器load average?Load是用來度量服務器工作量的大小,即計算機cpu任務執行隊列的長度,值越大,表明包括正在運行和待運行的進程數越多。參考資料:http://en.wikipedia.org/wiki/Load_average2. 如何查看lin

H3C常用配置命令

info arp rim cond link bpp ogg ica 動態arp 鄰居發現命令display lldp neighbor-information list DHCP中繼配置dhcp enabledhcp relay server-group 1 ip x.x

1.linux 基本操作命令

shu init 奇數 oot 普通 安裝腳本 uname 工作目錄 文本文件 整理復習之前的linux學習筆記,正好貼出來了。 1.【root@chen ~】# 【當前登錄用戶@主機名 當前所在目錄】# 當前用戶身份 #號表示管理員root $

redis常用操作操作鍵值

string、list常用操作 string資料建立、覆蓋及設定過期時間 127.0.0.1:6379> get key1         檢視原來的key1的值 "b" 127.0.0.1:6379> set key1 123   &nbs

Composer 常用方法命令

//設定中國映象 方法一: 修改 composer 的全域性配置檔案(推薦方式) 開啟命令列視窗(windows使用者)或控制檯(Linux、Mac 使用者)並執行如下命令: composer config -g repo.packagist composer https://packa

python筆記 1-2 liunx基本操作 - 命令

day 1 liunx 常用命令 ls 命令 檢視 ls : 以列表方式檢視當前檔案內容 ls -a : 檢視所有內容 (包含隱藏檔案 , 隱藏檔案 是帶 . 的檔案) ls -l : 檢視詳細資訊 (包含可讀寫,許可權 大小用量 -h 是友好模式顯示) ls -h ; 友好模式

Manjaro常用軟體命令列推薦

簡介 最近安裝上了號稱世界排名第一的基於Arch Linux的發行版Manjaro,並進行了一些配置,可以點選檢視。安裝了很多好的軟體和命令列工具,以此記錄,給以後的自己和需要的人。 首先檢視我的manjaro詳細資訊,一個screenfetch命令: Man

MYSQL資料庫基本操作命令詳解

在學習MySQL資料庫之前我們要知道MySQL資料庫的操作語言的分類; DDL(資料定義語言) 表的定義、使用者的定義… create drop alter DML(資料操控語言) 對資料的增加、修改、刪除、查詢 insert update delete select

maven用途、核心概念、用法、常用引數命令、擴充套件

本文由淺入深,主要介紹maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)介紹、用法(Archetype意義及建立各種專案)、maven常用引數和命令以及簡單故障排除、maven擴充套件(eclipse、cobertura、findb

m語言常用函式命令

1.Set 設定變數 set s=3 2.write 輸出變數 w s 3.kill 刪除所有變數或一些指定的變數或所有變數除了指定的變數。 4.new 初始化變數。 5.Do(d):執行命令 6.Quit(q): 結束執行一個函式並返回一

cache資料庫入門教程 資料庫m語言常用函式命令

1.Set 設定變數 set s=3 2.write 輸出變數 w s  3.kill 刪除所有變數或一些指定的變數或所有變數除了指定的變數。 4.new 初始化變數。 5.Do(d):執行命令 6.Quit(q): 結束執行一個函式並返回一個值 7.$Horolog$Hor

如何在VC中加減日期及 CTime COleDateTime的常用操作比較

如何在VC中加減日期 使用CTime類,如:    CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999    CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999  

Linux下oracle資料庫常用操作命令

本文出自 "高興F" 部落格,請務必保留此出處http://gaoxingf.blog.51cto.com/612518/121138 Linux下oracle資料庫常用命令 Oracle使用者下執行: $ sqlplus system/manager @ file.s

linux常用知識點命令總結

系統常用命令:①  檢視當前目錄:pwd②  切換目錄 cd③  檢視目錄檔案資訊  檢視檔案詳細資訊stata)    Ls //列出檔案資訊b)    Ls -l //以詳細資訊方式列出檔案資訊c)     Ls-al  //以詳細資訊方式列出所有檔案資訊,包含隱藏檔案d

Windows平臺下MySQL常用操作命令

1.匯出整個資料庫 mysqldump -u 使用者名稱 -p --default-character-set=latin1 資料庫名 > 匯出的檔名(資料庫預設編碼是latin1) mysqldump -u wcnc -p smgp_apps_wcnc >

讀Hadoop3.2原始碼,深入瞭解java呼叫HDFS的常用操作HDFS原理

> 本文將通過一個演示工程來快速上手java呼叫HDFS的常見操作。接下來以建立檔案為例,通過閱讀HDFS的原始碼,一步步展開HDFS相關原理、理論知識的說明。 > 說明:本文件基於最新版本Hadoop3.2.1 # 目錄 ### 一、java呼叫HDFS的常見操作 #### 1.1、演示環境搭

dockerdocker compose常用操作命令

clas _id 命名空間 down gpo 本地 export 啟動 pru 首先區分一下docker中幾個概念 Image:鏡像,相當於一個root文件系統,不包含任何動態數據 Container:容器,鏡像運行時的實體,實質是進程,容器進程運行於屬於自己的獨立的命名空