Tcpreplay是網(wǎng)絡(luò)安全中一種常用的工具,對(duì)于其報(bào)文重放的功能大家都非常清楚,但是對(duì)于其能夠在重放過(guò)程中改寫(xiě)報(bào)文的內(nèi)容的功能應(yīng)用卻不是很多,如果能夠熟練的應(yīng)用Tcpreplay的報(bào)文改寫(xiě)功能就有可能使攻擊者安全的規(guī)避的防火墻的檢測(cè)手段,
巧用Tcpreplay讓攻擊流量瞞天過(guò)海
。針對(duì)目前很多防火墻產(chǎn)品并不檢測(cè)報(bào)文的載荷,只是根據(jù)規(guī)則來(lái)阻止某個(gè)協(xié)議字段來(lái)達(dá)到防范的目的,這樣通過(guò)Tcprepaly就可以改寫(xiě)敏感的報(bào)文字段,使其安全的通過(guò)防火墻的檢測(cè)。重寫(xiě)二層頭
從Client端發(fā)送攻擊流量到Server端,如果在Firewall上配置了策略,阻止了Client的MAC地址,Client端可以通過(guò)Tcprepaly將攻擊報(bào)文的源MAC地址重寫(xiě)。具體使用如下:
./tcpreplay -i eth0 -k 00:02:02:03:04:05 /tmp/1.pcap
參數(shù)-i用來(lái)指定發(fā)送的Primary接口,-k用來(lái)指定重寫(xiě)源MAC地址。通過(guò)-k指定一個(gè)Firewall的可信MAC地址,攻擊流量就有可能瞞天過(guò)海。如果Firewall工作在transparent模式下,那么我們的攻擊流量需要重放,目的MAC則需要改為Server的MAC,我們則可以通過(guò)命令行
./tcpreplay -i eth0 -I 00:01:02:03:04 -k 00:02:02:03:02:07 /tmp/1.pcap
亦即通過(guò)添加參數(shù)-I來(lái)重寫(xiě)通過(guò)Primary端口流量的目的MAC。如果我們需要在Client的多個(gè)端口上將攻擊流量重放,那么我們則可以通過(guò)添加參數(shù)-j來(lái)指定Secondary接口,通過(guò)參數(shù)-J來(lái)重寫(xiě)Secondary接口流量的目的MAC,通過(guò)參數(shù)-K來(lái)重寫(xiě)Secondary端口的源MAC,具體應(yīng)用如下:
./tcpreplay -j eth1 -J 00:01:02:03:04 -K 00:02:02:03:02:07 /tmp/1.pcap
同樣,我們也可以綜合運(yùn)用以上各個(gè)參數(shù)將同一個(gè)攻擊報(bào)文在Client的不同端口上以不同的目的MAC和源MAC發(fā)送,這樣亂拳出擊,可以充分考驗(yàn)Firewall的應(yīng)用,具體使用如下:
./tcpreplay -i eth0 -I 00:01:01:02:02:03 -k 00:02:02:04:04:05 -j eth1 -J 00:01:02:03:04 -K 00:02:02:03:02:07 /tmp/1.pcap
重寫(xiě)三層頭
仍舊以上面的TOPO為例,如果Firewall上配置了策略阻止了特定的IP地址,Client端就可以通過(guò)Tcpreplay來(lái)重寫(xiě)攻擊報(bào)文的源與目的IP,以此來(lái)規(guī)避Firewall的規(guī)則,達(dá)到其攻擊的效果,
電腦資料
《巧用Tcpreplay讓攻擊流量瞞天過(guò)海》(http://www.msguai.com)。具體的應(yīng)用如下:./tcpreplay -e 1.1.1.1:2.2.2.2 -i eth1 /tmp/2.pcap
通過(guò)參數(shù)-e來(lái)具體的指定攻擊報(bào)文的源、目的IP,以此來(lái)修改成Firewall能夠允許通過(guò)的IP地址以此來(lái)達(dá)到攻擊的目的。這在修改三層頭中是最常用的一種方式。如果你獲得了一個(gè)pcap報(bào)文,你想把它重放給某人同時(shí)又不愿意暴露自己的IP地址,那么可以利用參數(shù)-s來(lái)隨機(jī)的選用IP地址,具體使用如下:
./tcpreplay -s 11 -i eth1 /tmp/2.pcap
其中參數(shù)-s決定了你隨機(jī)選用的IP地址,不同的seed值會(huì)導(dǎo)致不用的pcap報(bào)文的IP地址。Tcprepaly在再深一點(diǎn)的應(yīng)用是可以把報(bào)文的IP地址進(jìn)行映射,類(lèi)似于NAT的應(yīng)用,可以將攻擊報(bào)文的IP地址映射到不用的網(wǎng)段,具體應(yīng)用如下:
./tcpreplay -N 10.0.0.0/8:11.0.0.0/8 -i eth1 /tmp/2.pcap
其中參數(shù)-N來(lái)指定需要映射的網(wǎng)段。
重寫(xiě)四層頭
Tcprepaly可以修改二、三層頭來(lái)修改傳輸層面的信息,同樣也可以修改四層頭來(lái)修改session層面的信息,例如我們可以修改運(yùn)行在8080端口上的HTTP的流量使其運(yùn)行在80端口上,具體應(yīng)用如下:
./tcpreplay -4 80:8080 -i eth1 /tmp/2.pcap
我們通過(guò)參數(shù)-4來(lái)重新映射需要重放的報(bào)文的端口號(hào)。在修改報(bào)文頭的過(guò)程中面臨一個(gè)checksum的問(wèn)題,因?yàn)樵S多網(wǎng)卡支持TCP/UDP/IP checksun的offloading,所以如果我們捕獲的流量是同一個(gè)系統(tǒng)產(chǎn)生的,則checksum就會(huì)是錯(cuò)誤的,這在以后的重放中就會(huì)產(chǎn)生問(wèn)題,所以我們需要通過(guò)參數(shù)-F來(lái)固定checksum,在重放的過(guò)程中編輯報(bào)文時(shí)不會(huì)改變checksum的值。具體應(yīng)用如下:
./tcpreplay -4 80:8080 -i eth1 -F /tmp/2.pcap
參數(shù)-F來(lái)固定checksum。
小結(jié)
靈活的運(yùn)用tcpreplay的重寫(xiě)功能,相信會(huì)在網(wǎng)絡(luò)的攻防檢測(cè)給大家?guī)?lái)很大的幫助。